From c25895423321d181fba837f4b677a8064fc6424e Mon Sep 17 00:00:00 2001 From: artagnon <37226+artagnon@users.noreply.github.com> Date: Wed, 6 Nov 2024 01:15:29 +0800 Subject: [PATCH 1/2] pre-commit: PR108973 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..51ef45f685d 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/108973 # Please rebase manually # git fetch origin From c10dc35137d7b912ae9dd9ce01531f4a03743390 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 17:33:50 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/abc/optimized/wlcWriteVer.c.ll | 2 +- bench/arrow/optimized/decimal.cc.ll | 4 +- bench/arrow/optimized/int_util.cc.ll | 14 +- .../optimized/fixed-dtoa.cc.ll | 6 +- bench/eastl/optimized/EADateTime.cpp.ll | 66 ++- bench/fmt/optimized/chrono-test.cc.ll | 88 ++-- bench/fmt/optimized/compile-test.cc.ll | 210 ++++----- bench/llvm/optimized/AArch64BaseInfo.cpp.ll | 122 ++--- bench/mitsuba3/optimized/string.cpp.ll | 8 +- bench/nuttx/optimized/lib_strptime.c.ll | 394 ++++++++-------- bench/postgres/optimized/freespace.ll | 127 +++-- bench/sentencepiece/optimized/strutil.cc.ll | 10 +- bench/tomlplusplus/optimized/toml.cpp.ll | 166 +++---- bench/vcpkg/optimized/strings.cpp.ll | 446 +++++++++--------- bench/velox/optimized/CastExpr.cpp.ll | 410 ++++++++-------- bench/velox/optimized/md5.cpp.ll | 394 ++++++++-------- 16 files changed, 1229 insertions(+), 1238 deletions(-) diff --git a/bench/abc/optimized/wlcWriteVer.c.ll b/bench/abc/optimized/wlcWriteVer.c.ll index a55955b92d9..117200a329f 100644 --- a/bench/abc/optimized/wlcWriteVer.c.ll +++ b/bench/abc/optimized/wlcWriteVer.c.ll @@ -3338,7 +3338,7 @@ Abc_Base10Log.exit1063: ; preds = %.lr.ph.i1058, %1200 %.0812.i1068 = phi i32 [ %1330, %.lr.ph.i1066 ], [ %1329, %1323 ] %1330 = udiv i32 %.0812.i1068, 10 %1331 = add nuw nsw i32 %.013.i1067, 1 - %.not.i1069 = icmp ult i32 %.0812.i1068, 10 + %.not.i1069 = icmp samesign ult i32 %.0812.i1068, 10 br i1 %.not.i1069, label %Abc_Base10Log.exit1071, label %.lr.ph.i1066, !llvm.loop !12 Abc_Base10Log.exit1071: ; preds = %.lr.ph.i1066 diff --git a/bench/arrow/optimized/decimal.cc.ll b/bench/arrow/optimized/decimal.cc.ll index 57b7d2a8e98..f351cde1ed0 100644 --- a/bench/arrow/optimized/decimal.cc.ll +++ b/bench/arrow/optimized/decimal.cc.ll @@ -1477,7 +1477,7 @@ while.body.i.i: ; preds = %do.end28, %while.bo %incdec.ptr.i3.i.i.i = getelementptr inbounds i8, ptr %cursor.0.i, i64 -2 store i8 %6, ptr %incdec.ptr.i3.i.i.i, align 1 %div.i.i = udiv i32 %value.addr.016.i.i, 100 - %cmp.i.i = icmp ugt i32 %value.addr.016.i.i, 9999 + %cmp.i.i = icmp samesign ugt i32 %value.addr.016.i.i, 9999 br i1 %cmp.i.i, label %while.body.i.i, label %while.end.i.i, !llvm.loop !23 while.end.i.i: ; preds = %while.body.i.i, %do.end28 @@ -3008,7 +3008,7 @@ while.body.i.i: ; preds = %do.end28, %while.bo %incdec.ptr.i3.i.i.i = getelementptr inbounds i8, ptr %cursor.0.i, i64 -2 store i8 %6, ptr %incdec.ptr.i3.i.i.i, align 1 %div.i.i = udiv i32 %value.addr.016.i.i, 100 - %cmp.i.i = icmp ugt i32 %value.addr.016.i.i, 9999 + %cmp.i.i = icmp samesign ugt i32 %value.addr.016.i.i, 9999 br i1 %cmp.i.i, label %while.body.i.i, label %while.end.i.i, !llvm.loop !23 while.end.i.i: ; preds = %while.body.i.i, %do.end28 diff --git a/bench/arrow/optimized/int_util.cc.ll b/bench/arrow/optimized/int_util.cc.ll index 242bffefc34..d026733440d 100644 --- a/bench/arrow/optimized/int_util.cc.ll +++ b/bench/arrow/optimized/int_util.cc.ll @@ -21998,11 +21998,11 @@ if.end5.i.i.i: ; preds = %if.end.i.i.i if.end9.i.i.i: ; preds = %if.end5.i.i.i %cmp11.i.i.i = icmp ult i16 %value, 10000 - %spec.select.i = select i1 %cmp11.i.i.i, i32 4, i32 5 + %..i = select i1 %cmp11.i.i.i, i32 4, i32 5 br label %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i: ; preds = %if.end9.i.i.i, %if.end5.i.i.i, %if.end.i.i.i, %if.end6.i - %retval.0.i.i.i = phi i32 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ 3, %if.end5.i.i.i ], [ %spec.select.i, %if.end9.i.i.i ] + %retval.0.i.i.i = phi i32 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ 3, %if.end5.i.i.i ], [ %..i, %if.end9.i.i.i ] %sub.ptr.lhs.cast.i20.i = ptrtoint ptr %call1 to i64 %sub.ptr.rhs.cast.i21.i = ptrtoint ptr %call to i64 %sub.ptr.sub.i22.i = sub i64 %sub.ptr.lhs.cast.i20.i, %sub.ptr.rhs.cast.i21.i @@ -22012,7 +22012,7 @@ _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i: ; preds = %if.end9.i.i.i, %if. while.body.lr.ph.thread: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i %cmp11.i.i.i17164 = icmp ult i16 %value, 10000 - %spec.select.i18165 = select i1 %cmp11.i.i.i17164, i32 4, i32 5 + %..i18165 = select i1 %cmp11.i.i.i17164, i32 4, i32 5 br label %while.body.lr.ph.split if.end.i25.i: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i @@ -22079,7 +22079,7 @@ _ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvI while.body.lr.ph: ; preds = %invoke.cont %cmp11.i.i.i17 = icmp ult i16 %value, 10000 - %spec.select.i18 = select i1 %cmp11.i.i.i17, i32 4, i32 5 + %..i18 = select i1 %cmp11.i.i.i17, i32 4, i32 5 br i1 %cmp2.i9, label %while.body.us, label %while.body.lr.ph.split while.body.us: ; preds = %while.body.lr.ph, %invoke.cont6.us @@ -22100,14 +22100,14 @@ lpad2.loopexit.split.us: ; preds = %while.body.us br label %lpad2 while.body.lr.ph.split: ; preds = %while.body.lr.ph.thread, %while.body.lr.ph - %spec.select.i18169 = phi i32 [ %spec.select.i18165, %while.body.lr.ph.thread ], [ %spec.select.i18, %while.body.lr.ph ] + %..i18169 = phi i32 [ %..i18165, %while.body.lr.ph.thread ], [ %..i18, %while.body.lr.ph ] %cmp3.i.i.i13167 = icmp ult i16 %value, 100 %cmp6.i.i.i15168 = icmp ult i16 %value, 1000 %cmp14.i.i.i27 = icmp ugt i16 %value, 99 br i1 %cmp14.i.i.i27, label %while.body.us74.preheader, label %while.body.lr.ph.split.split while.body.us74.preheader: ; preds = %while.body.lr.ph.split - %spec.select = select i1 %cmp6.i.i.i15168, i32 3, i32 %spec.select.i18169 + %spec.select = select i1 %cmp6.i.i.i15168, i32 3, i32 %..i18169 %conv.i23.i24.us = zext nneg i32 %spec.select to i64 br label %while.body.us74 @@ -22196,7 +22196,7 @@ while.body.lr.ph.split.split: ; preds = %while.body.lr.ph.sp br i1 %cmp9.i.i.i30, label %while.body.us93.preheader, label %while.body.us125 while.body.us93.preheader: ; preds = %while.body.lr.ph.split.split - %12 = zext nneg i32 %spec.select.i18169 to i64 + %12 = zext nneg i32 %..i18169 to i64 %13 = select i1 %cmp6.i.i.i15168, i64 3, i64 %12 %conv.i23.i24.us109 = select i1 %cmp3.i.i.i13167, i64 2, i64 %13 br label %while.body.us93 diff --git a/bench/double_conversion/optimized/fixed-dtoa.cc.ll b/bench/double_conversion/optimized/fixed-dtoa.cc.ll index 6e8f69780be..cf716f9c2a9 100644 --- a/bench/double_conversion/optimized/fixed-dtoa.cc.ll +++ b/bench/double_conversion/optimized/fixed-dtoa.cc.ll @@ -443,7 +443,7 @@ while.body.i: ; preds = %if.then, %while.bod %arrayidx.i.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %idxprom.i.i store i8 %conv.i, ptr %arrayidx.i.i, align 1 %inc.i = add nuw nsw i32 %number_length.028.i, 1 - %cmp.not.i = icmp ult i32 %number.addr.029.i, 10 + %cmp.not.i = icmp samesign ult i32 %number.addr.029.i, 10 br i1 %cmp.not.i, label %while.end.i, label %while.body.i, !llvm.loop !4 while.end.i: ; preds = %while.body.i @@ -536,7 +536,7 @@ while.body.i45: ; preds = %if.else, %while.bod %arrayidx.i.i53 = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %idxprom.i.i52 store i8 %conv.i50, ptr %arrayidx.i.i53, align 1 %inc.i54 = add nuw nsw i32 %number_length.028.i47, 1 - %cmp.not.i55 = icmp ult i32 %number.addr.029.i46, 10 + %cmp.not.i55 = icmp samesign ult i32 %number.addr.029.i46, 10 br i1 %cmp.not.i55, label %while.end.i56, label %while.body.i45, !llvm.loop !4 while.end.i56: ; preds = %while.body.i45 @@ -607,7 +607,7 @@ while.body.i89: ; preds = %if.else11, %while.b %arrayidx.i.i97 = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %idxprom.i.i96 store i8 %conv.i94, ptr %arrayidx.i.i97, align 1 %inc.i98 = add nuw nsw i32 %number_length.028.i91, 1 - %cmp.not.i99 = icmp ult i32 %number.addr.029.i90, 10 + %cmp.not.i99 = icmp samesign ult i32 %number.addr.029.i90, 10 br i1 %cmp.not.i99, label %while.end.i100, label %while.body.i89, !llvm.loop !4 while.end.i100: ; preds = %while.body.i89, %if.else11 diff --git a/bench/eastl/optimized/EADateTime.cpp.ll b/bench/eastl/optimized/EADateTime.cpp.ll index db89e6deb0a..14355af0ac9 100644 --- a/bench/eastl/optimized/EADateTime.cpp.ll +++ b/bench/eastl/optimized/EADateTime.cpp.ll @@ -4243,8 +4243,8 @@ sw.bb: ; preds = %FormatBegin br i1 %cmp25.not, label %sw.epilog, label %return for.body: ; preds = %for.body.preheader, %for.inc - %indvars.iv593 = phi i64 [ %indvars.iv.next594, %for.inc ], [ 0, %for.body.preheader ] - %arrayidx = getelementptr inbounds [7 x ptr], ptr %mDay, i64 0, i64 %indvars.iv593 + %indvars.iv592 = phi i64 [ %indvars.iv.next593, %for.inc ], [ 0, %for.body.preheader ] + %arrayidx = getelementptr inbounds [7 x ptr], ptr %mDay, i64 0, i64 %indvars.iv592 %12 = load ptr, ptr %arrayidx, align 8 %call31 = tail call noundef i64 @_ZN2EA4StdC6StrlenEPKc(ptr noundef %12) %call35 = tail call noundef i32 @_ZN2EA4StdC8StrnicmpEPKcS2_m(ptr noundef %12, ptr noundef %p.0512, i64 noundef %call31) @@ -4252,7 +4252,7 @@ for.body: ; preds = %for.body.preheader, br i1 %cmp36, label %if.end51, label %if.end38 if.end38: ; preds = %for.body - %arrayidx40 = getelementptr inbounds [7 x ptr], ptr %spec.store.select, i64 0, i64 %indvars.iv593 + %arrayidx40 = getelementptr inbounds [7 x ptr], ptr %spec.store.select, i64 0, i64 %indvars.iv592 %13 = load ptr, ptr %arrayidx40, align 8 %call41 = tail call noundef i64 @_ZN2EA4StdC6StrlenEPKc(ptr noundef %13) %call45 = tail call noundef i32 @_ZN2EA4StdC8StrnicmpEPKcS2_m(ptr noundef %13, ptr noundef %p.0512, i64 noundef %call41) @@ -4260,13 +4260,13 @@ if.end38: ; preds = %for.body br i1 %cmp46, label %if.end51, label %for.inc for.inc: ; preds = %if.end38 - %indvars.iv.next594 = add nuw nsw i64 %indvars.iv593, 1 - %exitcond596.not = icmp eq i64 %indvars.iv.next594, 7 - br i1 %exitcond596.not, label %return, label %for.body, !llvm.loop !102 + %indvars.iv.next593 = add nuw nsw i64 %indvars.iv592, 1 + %exitcond595.not = icmp eq i64 %indvars.iv.next593, 7 + br i1 %exitcond595.not, label %return, label %for.body, !llvm.loop !102 if.end51: ; preds = %for.body, %if.end38 %len.3419.ph = phi i64 [ %call31, %for.body ], [ %call41, %if.end38 ] - %14 = trunc nuw nsw i64 %indvars.iv593 to i32 + %14 = trunc nuw nsw i64 %indvars.iv592 to i32 store i32 %14, ptr %tm_wday199, align 8 %add.ptr = getelementptr inbounds i8, ptr %p.0512, i64 %len.3419.ph br label %sw.epilog @@ -4360,7 +4360,7 @@ sw.bb93: ; preds = %FormatBegin br i1 %or.cond.i, label %do.body.i.preheader, label %return do.body.i.preheader: ; preds = %sw.bb93 - %scevgep591 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep590 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i do.body.i: ; preds = %do.body.i.preheader, %land.lhs.true4.i @@ -4386,7 +4386,7 @@ land.lhs.true4.i: ; preds = %do.body.i br i1 %or.cond14.i, label %do.end.i, label %do.body.i, !llvm.loop !104 do.end.i: ; preds = %land.lhs.true4.i, %do.body.i - %incdec.ptr.i.lcssa = phi ptr [ %incdec.ptr.i, %land.lhs.true4.i ], [ %scevgep591, %do.body.i ] + %incdec.ptr.i.lcssa = phi ptr [ %incdec.ptr.i, %land.lhs.true4.i ], [ %scevgep590, %do.body.i ] %or.cond15.i = icmp ugt i32 %add.i, 99 br i1 %or.cond15.i, label %return, label %if.end96 @@ -4414,7 +4414,7 @@ sw.bb103: ; preds = %FormatBegin, %Forma br i1 %or.cond.i73, label %do.body.i75.preheader, label %return do.body.i75.preheader: ; preds = %sw.bb103 - %scevgep590 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep589 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i75 do.body.i75: ; preds = %do.body.i75.preheader, %land.lhs.true4.i85 @@ -4440,7 +4440,7 @@ land.lhs.true4.i85: ; preds = %do.body.i75 br i1 %or.cond14.i90, label %do.end.i91, label %do.body.i75, !llvm.loop !104 do.end.i91: ; preds = %land.lhs.true4.i85, %do.body.i75 - %incdec.ptr.i80.lcssa = phi ptr [ %incdec.ptr.i80, %land.lhs.true4.i85 ], [ %scevgep590, %do.body.i75 ] + %incdec.ptr.i80.lcssa = phi ptr [ %incdec.ptr.i80, %land.lhs.true4.i85 ], [ %scevgep589, %do.body.i75 ] %36 = add i32 %add.i83, -32 %or.cond15.i94 = icmp ult i32 %36, -31 br i1 %or.cond15.i94, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 @@ -4461,7 +4461,7 @@ sw.bb112: ; preds = %FormatBegin br i1 %or.cond.i97, label %do.body.i99.preheader, label %return do.body.i99.preheader: ; preds = %sw.bb112 - %scevgep589 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep588 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i99 do.body.i99: ; preds = %do.body.i99.preheader, %land.lhs.true4.i109 @@ -4487,7 +4487,7 @@ land.lhs.true4.i109: ; preds = %do.body.i99 br i1 %or.cond14.i114, label %do.end.i115, label %do.body.i99, !llvm.loop !104 do.end.i115: ; preds = %land.lhs.true4.i109, %do.body.i99 - %incdec.ptr.i104.lcssa = phi ptr [ %incdec.ptr.i104, %land.lhs.true4.i109 ], [ %scevgep589, %do.body.i99 ] + %incdec.ptr.i104.lcssa = phi ptr [ %incdec.ptr.i104, %land.lhs.true4.i109 ], [ %scevgep588, %do.body.i99 ] %or.cond15.i118 = icmp ugt i32 %add.i107, 23 br i1 %or.cond15.i118, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 @@ -4502,7 +4502,7 @@ sw.bb116: ; preds = %FormatBegin br i1 %or.cond.i121, label %do.body.i123.preheader, label %return do.body.i123.preheader: ; preds = %sw.bb116 - %scevgep588 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep587 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i123 do.body.i123: ; preds = %do.body.i123.preheader, %land.lhs.true4.i133 @@ -4528,7 +4528,7 @@ land.lhs.true4.i133: ; preds = %do.body.i123 br i1 %or.cond14.i138, label %do.end.i139, label %do.body.i123, !llvm.loop !104 do.end.i139: ; preds = %land.lhs.true4.i133, %do.body.i123 - %incdec.ptr.i128.lcssa = phi ptr [ %incdec.ptr.i128, %land.lhs.true4.i133 ], [ %scevgep588, %do.body.i123 ] + %incdec.ptr.i128.lcssa = phi ptr [ %incdec.ptr.i128, %land.lhs.true4.i133 ], [ %scevgep587, %do.body.i123 ] %47 = add i32 %add.i131, -13 %or.cond15.i142 = icmp ult i32 %47, -12 br i1 %or.cond15.i142, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 @@ -4544,7 +4544,7 @@ sw.bb121: ; preds = %FormatBegin br i1 %or.cond.i145, label %do.body.i147.preheader, label %return do.body.i147.preheader: ; preds = %sw.bb121 - %scevgep587 = getelementptr i8, ptr %p.0512, i64 3 + %scevgep586 = getelementptr i8, ptr %p.0512, i64 3 br label %do.body.i147 do.body.i147: ; preds = %do.body.i147.preheader, %land.lhs.true4.i157 @@ -4570,7 +4570,7 @@ land.lhs.true4.i157: ; preds = %do.body.i147 br i1 %or.cond14.i162, label %do.end.i163, label %do.body.i147, !llvm.loop !104 do.end.i163: ; preds = %land.lhs.true4.i157, %do.body.i147 - %incdec.ptr.i152.lcssa = phi ptr [ %incdec.ptr.i152, %land.lhs.true4.i157 ], [ %scevgep587, %do.body.i147 ] + %incdec.ptr.i152.lcssa = phi ptr [ %incdec.ptr.i152, %land.lhs.true4.i157 ], [ %scevgep586, %do.body.i147 ] %53 = add i32 %add.i155, -367 %or.cond15.i166 = icmp ult i32 %53, -366 br i1 %or.cond15.i166, label %return, label %if.end124 @@ -4587,7 +4587,7 @@ sw.bb125: ; preds = %FormatBegin br i1 %or.cond.i169, label %do.body.i171.preheader, label %return do.body.i171.preheader: ; preds = %sw.bb125 - %scevgep586 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep585 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i171 do.body.i171: ; preds = %do.body.i171.preheader, %land.lhs.true4.i181 @@ -4613,7 +4613,7 @@ land.lhs.true4.i181: ; preds = %do.body.i171 br i1 %or.cond14.i186, label %do.end.i187, label %do.body.i171, !llvm.loop !104 do.end.i187: ; preds = %land.lhs.true4.i181, %do.body.i171 - %incdec.ptr.i176.lcssa = phi ptr [ %incdec.ptr.i176, %land.lhs.true4.i181 ], [ %scevgep586, %do.body.i171 ] + %incdec.ptr.i176.lcssa = phi ptr [ %incdec.ptr.i176, %land.lhs.true4.i181 ], [ %scevgep585, %do.body.i171 ] %or.cond15.i190 = icmp ugt i32 %add.i179, 59 br i1 %or.cond15.i190, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 @@ -4628,7 +4628,7 @@ sw.bb129: ; preds = %FormatBegin br i1 %or.cond.i193, label %do.body.i195.preheader, label %return do.body.i195.preheader: ; preds = %sw.bb129 - %scevgep585 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep584 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i195 do.body.i195: ; preds = %do.body.i195.preheader, %land.lhs.true4.i205 @@ -4654,7 +4654,7 @@ land.lhs.true4.i205: ; preds = %do.body.i195 br i1 %or.cond14.i210, label %do.end.i211, label %do.body.i195, !llvm.loop !104 do.end.i211: ; preds = %land.lhs.true4.i205, %do.body.i195 - %incdec.ptr.i200.lcssa = phi ptr [ %incdec.ptr.i200, %land.lhs.true4.i205 ], [ %scevgep585, %do.body.i195 ] + %incdec.ptr.i200.lcssa = phi ptr [ %incdec.ptr.i200, %land.lhs.true4.i205 ], [ %scevgep584, %do.body.i195 ] %64 = add i32 %add.i203, -13 %or.cond15.i214 = icmp ult i32 %64, -12 br i1 %or.cond15.i214, label %return, label %if.end132 @@ -4737,7 +4737,7 @@ sw.bb188: ; preds = %FormatBegin br i1 %or.cond.i220, label %do.body.i222.preheader, label %return do.body.i222.preheader: ; preds = %sw.bb188 - %scevgep584 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep583 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i222 do.body.i222: ; preds = %do.body.i222.preheader, %land.lhs.true4.i232 @@ -4763,7 +4763,7 @@ land.lhs.true4.i232: ; preds = %do.body.i222 br i1 %or.cond14.i237, label %do.end.i238, label %do.body.i222, !llvm.loop !104 do.end.i238: ; preds = %land.lhs.true4.i232, %do.body.i222 - %incdec.ptr.i227.lcssa = phi ptr [ %incdec.ptr.i227, %land.lhs.true4.i232 ], [ %scevgep584, %do.body.i222 ] + %incdec.ptr.i227.lcssa = phi ptr [ %incdec.ptr.i227, %land.lhs.true4.i232 ], [ %scevgep583, %do.body.i222 ] %or.cond15.i241 = icmp ugt i32 %add.i230, 61 br i1 %or.cond15.i241, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 @@ -4778,18 +4778,14 @@ sw.bb192: ; preds = %FormatBegin sw.bb198: ; preds = %FormatBegin %77 = load i8, ptr %p.0512, align 1 - %78 = add i8 %77, -48 - %or.cond.i244 = icmp ult i8 %78, 10 - br i1 %or.cond.i244, label %do.end.i262, label %return + %78 = add i8 %77, -55 + %or.cond = icmp ult i8 %78, -7 + br i1 %or.cond, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 -do.end.i262: ; preds = %sw.bb198 +_ZN2EA4StdCL7ReadIntERPKcRiii.exit267: ; preds = %sw.bb198 %conv3.i252 = zext nneg i8 %77 to i32 %add.i254 = add nsw i32 %conv3.i252, -48 - %or.cond15.i265 = icmp ugt i32 %add.i254, 6 - br i1 %or.cond15.i265, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 - -_ZN2EA4StdCL7ReadIntERPKcRiii.exit267: ; preds = %do.end.i262 - %scevgep583 = getelementptr i8, ptr %p.0512, i64 1 + %incdec.ptr.i251 = getelementptr inbounds i8, ptr %p.0512, i64 1 store i32 %add.i254, ptr %tm_wday199, align 4 br label %sw.epilog @@ -5009,14 +5005,14 @@ if.else235: ; preds = %if.end230 br label %sw.epilog sw.epilog: ; preds = %FormatBegin, %FormatBegin, %while.cond136, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96, %if.then232, %if.else235, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %sw.bb107, %if.then98, %if.else, %if.end88, %sw.bb, %if.then225, %if.end217, %if.end174, %if.end157, %if.end132, %if.end124, %if.end81, %if.end51 - %p.2 = phi ptr [ %incdec.ptr.i309.lcssa, %if.then225 ], [ %incdec.ptr.i309.lcssa, %if.then232 ], [ %incdec.ptr.i309.lcssa, %if.else235 ], [ %incdec.ptr.i285.lcssa, %if.end217 ], [ %call1.i274, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %call1.i, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %scevgep583, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %call193, %sw.bb192 ], [ %incdec.ptr.i227.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %call184, %sw.bb183 ], [ %call179, %sw.bb178 ], [ %add.ptr158, %if.end157 ], [ %add.ptr175, %if.end174 ], [ %incdec.ptr.i200.lcssa, %if.end132 ], [ %incdec.ptr.i176.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %incdec.ptr.i152.lcssa, %if.end124 ], [ %incdec.ptr.i128.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %incdec.ptr.i104.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %call108, %sw.bb107 ], [ %incdec.ptr.i80.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %incdec.ptr.i.lcssa, %if.then98 ], [ %incdec.ptr.i.lcssa, %if.else ], [ %call89, %if.end88 ], [ %add.ptr82, %if.end81 ], [ %add.ptr, %if.end51 ], [ %incdec.ptr23, %sw.bb ], [ %p.3, %while.cond136 ], [ %p.0512, %FormatBegin ], [ %p.0512, %FormatBegin ] + %p.2 = phi ptr [ %incdec.ptr.i309.lcssa, %if.then225 ], [ %incdec.ptr.i309.lcssa, %if.then232 ], [ %incdec.ptr.i309.lcssa, %if.else235 ], [ %incdec.ptr.i285.lcssa, %if.end217 ], [ %call1.i274, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %call1.i, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %incdec.ptr.i251, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %call193, %sw.bb192 ], [ %incdec.ptr.i227.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %call184, %sw.bb183 ], [ %call179, %sw.bb178 ], [ %add.ptr158, %if.end157 ], [ %add.ptr175, %if.end174 ], [ %incdec.ptr.i200.lcssa, %if.end132 ], [ %incdec.ptr.i176.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %incdec.ptr.i152.lcssa, %if.end124 ], [ %incdec.ptr.i128.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %incdec.ptr.i104.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %call108, %sw.bb107 ], [ %incdec.ptr.i80.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %incdec.ptr.i.lcssa, %if.then98 ], [ %incdec.ptr.i.lcssa, %if.else ], [ %call89, %if.end88 ], [ %add.ptr82, %if.end81 ], [ %add.ptr, %if.end51 ], [ %incdec.ptr23, %sw.bb ], [ %p.3, %while.cond136 ], [ %p.0512, %FormatBegin ], [ %p.0512, %FormatBegin ] %bSplitYear.1 = phi i8 [ %bSplitYear.0.ph521, %if.then225 ], [ 1, %if.then232 ], [ 1, %if.else235 ], [ %bSplitYear.0.ph521, %if.end217 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %bSplitYear.0.ph521, %sw.bb192 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %bSplitYear.0.ph521, %sw.bb183 ], [ %bSplitYear.0.ph521, %sw.bb178 ], [ %bSplitYear.0.ph521, %if.end157 ], [ %bSplitYear.0.ph521, %if.end174 ], [ %bSplitYear.0.ph521, %if.end132 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %bSplitYear.0.ph521, %if.end124 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %bSplitYear.0.ph521, %sw.bb107 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %bSplitYear.0.ph521, %if.then98 ], [ 1, %if.else ], [ %bSplitYear.0.ph521, %if.end88 ], [ %bSplitYear.0.ph521, %if.end81 ], [ %bSplitYear.0.ph521, %if.end51 ], [ %bSplitYear.0.ph521, %sw.bb ], [ %bSplitYear.0.ph521, %while.cond136 ], [ %bSplitYear.0.ph521, %FormatBegin ], [ %bSplitYear.0.ph521, %FormatBegin ] %105 = load i8, ptr %incdec.ptr20, align 1 %cmp.not511 = icmp eq i8 %105, 0 br i1 %cmp.not511, label %return, label %while.body.lr.ph, !llvm.loop !101 -return: ; preds = %sw.epilog, %sw.bb220, %do.end.i320, %sw.bb213, %do.end.i296, %sw.bb198, %do.end.i262, %sw.bb188, %do.end.i238, %sw.bb129, %do.end.i211, %sw.bb125, %do.end.i187, %sw.bb121, %do.end.i163, %sw.bb116, %do.end.i139, %sw.bb112, %do.end.i115, %sw.bb103, %do.end.i91, %sw.bb93, %do.end.i, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %if.else159, %if.end170, %sw.bb107, %if.end88, %sw.bb, %if.then12, %while.cond.backedge, %FormatBegin, %for.inc76, %for.inc, %entry - %retval.0 = phi ptr [ %pTimeString, %entry ], [ null, %for.inc ], [ null, %for.inc76 ], [ null, %FormatBegin ], [ %p.0.be, %while.cond.backedge ], [ null, %if.then12 ], [ %p.2, %sw.epilog ], [ null, %sw.bb220 ], [ null, %do.end.i320 ], [ null, %sw.bb213 ], [ null, %do.end.i296 ], [ null, %sw.bb198 ], [ null, %do.end.i262 ], [ null, %sw.bb188 ], [ null, %do.end.i238 ], [ null, %sw.bb129 ], [ null, %do.end.i211 ], [ null, %sw.bb125 ], [ null, %do.end.i187 ], [ null, %sw.bb121 ], [ null, %do.end.i163 ], [ null, %sw.bb116 ], [ null, %do.end.i139 ], [ null, %sw.bb112 ], [ null, %do.end.i115 ], [ null, %sw.bb103 ], [ null, %do.end.i91 ], [ null, %sw.bb93 ], [ null, %do.end.i ], [ null, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %sw.bb192 ], [ null, %sw.bb183 ], [ null, %sw.bb178 ], [ null, %if.else159 ], [ null, %if.end170 ], [ null, %sw.bb107 ], [ null, %if.end88 ], [ null, %sw.bb ] +return: ; preds = %sw.epilog, %sw.bb220, %do.end.i320, %sw.bb213, %do.end.i296, %sw.bb198, %sw.bb188, %do.end.i238, %sw.bb129, %do.end.i211, %sw.bb125, %do.end.i187, %sw.bb121, %do.end.i163, %sw.bb116, %do.end.i139, %sw.bb112, %do.end.i115, %sw.bb103, %do.end.i91, %sw.bb93, %do.end.i, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %if.else159, %if.end170, %sw.bb107, %if.end88, %sw.bb, %if.then12, %while.cond.backedge, %FormatBegin, %for.inc76, %for.inc, %entry + %retval.0 = phi ptr [ %pTimeString, %entry ], [ null, %for.inc ], [ null, %for.inc76 ], [ null, %FormatBegin ], [ %p.0.be, %while.cond.backedge ], [ null, %if.then12 ], [ %p.2, %sw.epilog ], [ null, %sw.bb220 ], [ null, %do.end.i320 ], [ null, %sw.bb213 ], [ null, %do.end.i296 ], [ null, %sw.bb198 ], [ null, %sw.bb188 ], [ null, %do.end.i238 ], [ null, %sw.bb129 ], [ null, %do.end.i211 ], [ null, %sw.bb125 ], [ null, %do.end.i187 ], [ null, %sw.bb121 ], [ null, %do.end.i163 ], [ null, %sw.bb116 ], [ null, %do.end.i139 ], [ null, %sw.bb112 ], [ null, %do.end.i115 ], [ null, %sw.bb103 ], [ null, %do.end.i91 ], [ null, %sw.bb93 ], [ null, %do.end.i ], [ null, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %sw.bb192 ], [ null, %sw.bb183 ], [ null, %sw.bb178 ], [ null, %if.else159 ], [ null, %if.end170 ], [ null, %sw.bb107 ], [ null, %if.end88 ], [ null, %sw.bb ] ret ptr %retval.0 } diff --git a/bench/fmt/optimized/chrono-test.cc.ll b/bench/fmt/optimized/chrono-test.cc.ll index a485d471247..ad3681e7fae 100644 --- a/bench/fmt/optimized/chrono-test.cc.ll +++ b/bench/fmt/optimized/chrono-test.cc.ll @@ -71800,7 +71800,7 @@ while.body.i.i114: ; preds = %_ZN3fmt3v106detail5 %30 = load i16, ptr %arrayidx.i.i.i120, align 1 store i16 %30, ptr %add.ptr2.i.i117, align 1 %div.i.i121 = udiv i64 %value.addr.021.i.i115, 100 - %cmp1.i.i122 = icmp ugt i64 %value.addr.021.i.i115, 9999 + %cmp1.i.i122 = icmp samesign ugt i64 %value.addr.021.i.i115, 9999 br i1 %cmp1.i.i122, label %while.body.i.i114, label %while.end.i.i82, !llvm.loop !2222 while.end.i.i82: ; preds = %while.body.i.i114, %_ZN3fmt3v106detail5pow10Ej.exit @@ -74259,7 +74259,7 @@ while.body.i.i114: ; preds = %_ZN3fmt3v106detail5 %30 = load i16, ptr %arrayidx.i.i.i120, align 1 store i16 %30, ptr %add.ptr2.i.i117, align 1 %div.i.i121 = udiv i64 %value.addr.021.i.i115, 100 - %cmp1.i.i122 = icmp ugt i64 %value.addr.021.i.i115, 9999 + %cmp1.i.i122 = icmp samesign ugt i64 %value.addr.021.i.i115, 9999 br i1 %cmp1.i.i122, label %while.body.i.i114, label %while.end.i.i82, !llvm.loop !2222 while.end.i.i82: ; preds = %while.body.i.i114, %_ZN3fmt3v106detail5pow10Ej.exit @@ -76641,7 +76641,7 @@ while.body.i.i114: ; preds = %_ZN3fmt3v106detail5 %30 = load i16, ptr %arrayidx.i.i.i120, align 1 store i16 %30, ptr %add.ptr2.i.i117, align 1 %div.i.i121 = udiv i64 %value.addr.021.i.i115, 100 - %cmp1.i.i122 = icmp ugt i64 %value.addr.021.i.i115, 9999 + %cmp1.i.i122 = icmp samesign ugt i64 %value.addr.021.i.i115, 9999 br i1 %cmp1.i.i122, label %while.body.i.i114, label %while.end.i.i82, !llvm.loop !2222 while.end.i.i82: ; preds = %while.body.i.i114, %_ZN3fmt3v106detail5pow10Ej.exit @@ -79035,7 +79035,7 @@ while.body.i.i115: ; preds = %_ZN3fmt3v106detail5 %31 = load i16, ptr %arrayidx.i.i.i121, align 1 store i16 %31, ptr %add.ptr2.i.i118, align 1 %div.i.i122 = udiv i64 %value.addr.021.i.i116, 100 - %cmp1.i.i123 = icmp ugt i64 %value.addr.021.i.i116, 9999 + %cmp1.i.i123 = icmp samesign ugt i64 %value.addr.021.i.i116, 9999 br i1 %cmp1.i.i123, label %while.body.i.i115, label %while.end.i.i83, !llvm.loop !2222 while.end.i.i83: ; preds = %while.body.i.i115, %_ZN3fmt3v106detail5pow10Ej.exit @@ -81429,7 +81429,7 @@ while.body.i.i115: ; preds = %_ZN3fmt3v106detail5 %31 = load i16, ptr %arrayidx.i.i.i121, align 1 store i16 %31, ptr %add.ptr2.i.i118, align 1 %div.i.i122 = udiv i64 %value.addr.021.i.i116, 100 - %cmp1.i.i123 = icmp ugt i64 %value.addr.021.i.i116, 9999 + %cmp1.i.i123 = icmp samesign ugt i64 %value.addr.021.i.i116, 9999 br i1 %cmp1.i.i123, label %while.body.i.i115, label %while.end.i.i83, !llvm.loop !2222 while.end.i.i83: ; preds = %while.body.i.i115, %_ZN3fmt3v106detail5pow10Ej.exit @@ -83647,9 +83647,9 @@ _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcE %idx.ext.i.i = sext i32 %sub.i.i to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp samesign ugt i64 %0, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit +while.body.i.i: ; preds = %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i64 %0, 100 %mul.i.i.i = shl nuw nsw i64 %rem.i.i, 1 @@ -83657,11 +83657,11 @@ while.body.i.i.preheader: ; preds = %_ZSt6fill_nISt20bac %14 = load i16, ptr %arrayidx.i.i.i, align 1 store i16 %14, ptr %add.ptr2.i.i, align 1 %div.i.i42 = udiv i64 %0, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2222 -while.end.i.i: ; preds = %while.body.i.i.preheader, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i64 [ %0, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %div.i.i42, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i64 [ %0, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %div.i.i42, %while.body.i.i ] %cmp4.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -83808,9 +83808,9 @@ _ZN3fmt3v106detail5pow10Ej.exit: ; preds = %cond.false.i, %if.t %idx.ext.i.i80 = sext i32 %sub45 to i64 %add.ptr.i.i81 = getelementptr inbounds i8, ptr %buffer.i79, i64 %idx.ext.i.i80 %cmp119.i.i82 = icmp samesign ugt i64 %div, 99 - br i1 %cmp119.i.i82, label %while.end.i.i83.loopexit, label %while.end.i.i83 + br i1 %cmp119.i.i82, label %while.body.i.i115, label %while.end.i.i83 -while.end.i.i83.loopexit: ; preds = %_ZN3fmt3v106detail5pow10Ej.exit +while.body.i.i115: ; preds = %_ZN3fmt3v106detail5pow10Ej.exit %add.ptr2.i.i118 = getelementptr inbounds i8, ptr %add.ptr.i.i81, i64 -2 %rem.i.i119 = urem i64 %div, 100 %mul.i.i.i120 = shl nuw nsw i64 %rem.i.i119, 1 @@ -83818,11 +83818,11 @@ while.end.i.i83.loopexit: ; preds = %_ZN3fmt3v106detail5 %31 = load i16, ptr %arrayidx.i.i.i121, align 1 store i16 %31, ptr %add.ptr2.i.i118, align 1 %div.i.i122 = udiv i64 %div, 100 - br label %while.end.i.i83 + br label %while.end.i.i83, !llvm.loop !2222 -while.end.i.i83: ; preds = %while.end.i.i83.loopexit, %_ZN3fmt3v106detail5pow10Ej.exit - %out.addr.0.lcssa.i.i84 = phi ptr [ %add.ptr.i.i81, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %add.ptr2.i.i118, %while.end.i.i83.loopexit ] - %value.addr.0.lcssa.i.i85 = phi i64 [ %div, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %div.i.i122, %while.end.i.i83.loopexit ] +while.end.i.i83: ; preds = %while.body.i.i115, %_ZN3fmt3v106detail5pow10Ej.exit + %out.addr.0.lcssa.i.i84 = phi ptr [ %add.ptr.i.i81, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %add.ptr2.i.i118, %while.body.i.i115 ] + %value.addr.0.lcssa.i.i85 = phi i64 [ %div, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %div.i.i122, %while.body.i.i115 ] %cmp4.i.i86 = icmp samesign ult i64 %value.addr.0.lcssa.i.i85, 10 br i1 %cmp4.i.i86, label %if.then.i.i112, label %if.end.i.i87 @@ -83885,9 +83885,9 @@ if.end: ; preds = %_ZSt6fill_nISt20bac %idx.ext.i.i126 = sext i32 %sub.i.i to i64 %add.ptr.i.i127 = getelementptr inbounds i8, ptr %buffer.i125, i64 %idx.ext.i.i126 %cmp119.i.i128 = icmp samesign ugt i64 %0, 99 - br i1 %cmp119.i.i128, label %while.body.i.i161.preheader, label %while.end.i.i129 + br i1 %cmp119.i.i128, label %while.body.i.i161, label %while.end.i.i129 -while.body.i.i161.preheader: ; preds = %if.end +while.body.i.i161: ; preds = %if.end %add.ptr2.i.i164 = getelementptr inbounds i8, ptr %add.ptr.i.i127, i64 -2 %rem.i.i165 = urem i64 %0, 100 %mul.i.i.i166 = shl nuw nsw i64 %rem.i.i165, 1 @@ -83895,11 +83895,11 @@ while.body.i.i161.preheader: ; preds = %if.end %40 = load i16, ptr %arrayidx.i.i.i167, align 1 store i16 %40, ptr %add.ptr2.i.i164, align 1 %div.i.i168 = udiv i64 %0, 100 - br label %while.end.i.i129 + br label %while.end.i.i129, !llvm.loop !2222 -while.end.i.i129: ; preds = %while.body.i.i161.preheader, %if.end - %out.addr.0.lcssa.i.i130 = phi ptr [ %add.ptr.i.i127, %if.end ], [ %add.ptr2.i.i164, %while.body.i.i161.preheader ] - %value.addr.0.lcssa.i.i131 = phi i64 [ %0, %if.end ], [ %div.i.i168, %while.body.i.i161.preheader ] +while.end.i.i129: ; preds = %while.body.i.i161, %if.end + %out.addr.0.lcssa.i.i130 = phi ptr [ %add.ptr.i.i127, %if.end ], [ %add.ptr2.i.i164, %while.body.i.i161 ] + %value.addr.0.lcssa.i.i131 = phi i64 [ %0, %if.end ], [ %div.i.i168, %while.body.i.i161 ] %cmp4.i.i132 = icmp samesign ult i64 %value.addr.0.lcssa.i.i131, 10 br i1 %cmp4.i.i132, label %if.then.i.i158, label %if.end.i.i133 @@ -141442,9 +141442,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -141453,11 +141453,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp samesign ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -150961,9 +150961,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -150972,11 +150972,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp samesign ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -158394,7 +158394,7 @@ while.body.i.i115: ; preds = %_ZN3fmt3v106detail5 %31 = load i16, ptr %arrayidx.i.i.i121, align 1 store i16 %31, ptr %add.ptr2.i.i118, align 1 %div.i.i122 = udiv i64 %value.addr.021.i.i116, 100 - %cmp1.i.i123 = icmp ugt i64 %value.addr.021.i.i116, 9999 + %cmp1.i.i123 = icmp samesign ugt i64 %value.addr.021.i.i116, 9999 br i1 %cmp1.i.i123, label %while.body.i.i115, label %while.end.i.i83, !llvm.loop !2222 while.end.i.i83: ; preds = %while.body.i.i115, %_ZN3fmt3v106detail5pow10Ej.exit @@ -163937,7 +163937,7 @@ while.body.i.i117: ; preds = %_ZN3fmt3v106detail5 %32 = load i16, ptr %arrayidx.i.i.i123, align 1 store i16 %32, ptr %add.ptr2.i.i120, align 1 %div.i.i124 = udiv i64 %value.addr.021.i.i118, 100 - %cmp1.i.i125 = icmp ugt i64 %value.addr.021.i.i118, 9999 + %cmp1.i.i125 = icmp samesign ugt i64 %value.addr.021.i.i118, 9999 br i1 %cmp1.i.i125, label %while.body.i.i117, label %while.end.i.i85, !llvm.loop !2222 while.end.i.i85: ; preds = %while.body.i.i117, %_ZN3fmt3v106detail5pow10Ej.exit @@ -166394,7 +166394,7 @@ while.body.i.i117: ; preds = %_ZN3fmt3v106detail5 %32 = load i16, ptr %arrayidx.i.i.i123, align 1 store i16 %32, ptr %add.ptr2.i.i120, align 1 %div.i.i124 = udiv i64 %value.addr.021.i.i118, 100 - %cmp1.i.i125 = icmp ugt i64 %value.addr.021.i.i118, 9999 + %cmp1.i.i125 = icmp samesign ugt i64 %value.addr.021.i.i118, 9999 br i1 %cmp1.i.i125, label %while.body.i.i117, label %while.end.i.i85, !llvm.loop !2222 while.end.i.i85: ; preds = %while.body.i.i117, %_ZN3fmt3v106detail5pow10Ej.exit @@ -168282,9 +168282,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -168293,11 +168293,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp samesign ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i diff --git a/bench/fmt/optimized/compile-test.cc.ll b/bench/fmt/optimized/compile-test.cc.ll index f9f68627b98..97c45ed9e66 100644 --- a/bench/fmt/optimized/compile-test.cc.ll +++ b/bench/fmt/optimized/compile-test.cc.ll @@ -19300,21 +19300,21 @@ sw.bb.i: ; preds = %cond.true br i1 %cmp.i30, label %if.then.i31, label %if.end11.i if.then.i31: ; preds = %sw.bb.i - %or.cond323 = icmp samesign ult i16 %2, 2 - br i1 %or.cond323, label %if.end.i34, label %for.body.i.preheader + %or.cond328 = icmp samesign ult i16 %2, 2 + br i1 %or.cond328, label %if.end.i34, label %for.body.i.preheader for.body.i.preheader: ; preds = %if.then.i31 %and.i = and i32 %3, 16777215 br label %for.body.i for.body.i: ; preds = %for.body.i.preheader, %for.body.i - %it.i.1321 = phi ptr [ %incdec.ptr.i, %for.body.i ], [ %out, %for.body.i.preheader ] - %p.i.0320 = phi i32 [ %shr8.i, %for.body.i ], [ %and.i, %for.body.i.preheader ] - %conv7.i = trunc i32 %p.i.0320 to i8 - %incdec.ptr.i = getelementptr inbounds i8, ptr %it.i.1321, i64 1 - store i8 %conv7.i, ptr %it.i.1321, align 1 - %shr8.i = lshr i32 %p.i.0320, 8 - %cmp5.i.not = icmp samesign ult i32 %p.i.0320, 256 + %it.i.1326 = phi ptr [ %incdec.ptr.i, %for.body.i ], [ %out, %for.body.i.preheader ] + %p.i.0325 = phi i32 [ %shr8.i, %for.body.i ], [ %and.i, %for.body.i.preheader ] + %conv7.i = trunc i32 %p.i.0325 to i8 + %incdec.ptr.i = getelementptr inbounds i8, ptr %it.i.1326, i64 1 + store i8 %conv7.i, ptr %it.i.1326, align 1 + %shr8.i = lshr i32 %p.i.0325, 8 + %cmp5.i.not = icmp samesign ult i32 %p.i.0325, 256 br i1 %cmp5.i.not, label %if.end.i34, label %for.body.i, !llvm.loop !395 if.end.i34: ; preds = %for.body.i, %if.then.i31 @@ -19395,17 +19395,17 @@ if.end.i21: ; preds = %if.then.i23, %sw.bb if.then.i51: ; preds = %if.end.i21 %and.i62 = and i32 %prefix.i.0, 16777215 - %cmp5.i64.not315 = icmp eq i32 %and.i62, 0 - br i1 %cmp5.i64.not315, label %if.end.i58, label %for.body.i66 + %cmp5.i64.not320 = icmp eq i32 %and.i62, 0 + br i1 %cmp5.i64.not320, label %if.end.i58, label %for.body.i66 for.body.i66: ; preds = %if.then.i51, %for.body.i66 - %it.i41.1317 = phi ptr [ %incdec.ptr.i69, %for.body.i66 ], [ %out, %if.then.i51 ] - %p.i42.0316 = phi i32 [ %shr8.i70, %for.body.i66 ], [ %and.i62, %if.then.i51 ] - %conv7.i68 = trunc i32 %p.i42.0316 to i8 - %incdec.ptr.i69 = getelementptr inbounds i8, ptr %it.i41.1317, i64 1 - store i8 %conv7.i68, ptr %it.i41.1317, align 1 - %shr8.i70 = lshr i32 %p.i42.0316, 8 - %cmp5.i64.not = icmp samesign ult i32 %p.i42.0316, 256 + %it.i41.1322 = phi ptr [ %incdec.ptr.i69, %for.body.i66 ], [ %out, %if.then.i51 ] + %p.i42.0321 = phi i32 [ %shr8.i70, %for.body.i66 ], [ %and.i62, %if.then.i51 ] + %conv7.i68 = trunc i32 %p.i42.0321 to i8 + %incdec.ptr.i69 = getelementptr inbounds i8, ptr %it.i41.1322, i64 1 + store i8 %conv7.i68, ptr %it.i41.1322, align 1 + %shr8.i70 = lshr i32 %p.i42.0321, 8 + %cmp5.i64.not = icmp samesign ult i32 %p.i42.0321, 256 br i1 %cmp5.i64.not, label %if.end.i58, label %for.body.i66, !llvm.loop !396 if.end.i58: ; preds = %for.body.i66, %if.then.i51 @@ -19575,17 +19575,17 @@ if.end28.i: ; preds = %if.then22.i, %sw.bb if.then.i87: ; preds = %if.end28.i %and.i98 = and i32 %prefix.i.1, 16777215 - %cmp5.i100.not311 = icmp eq i32 %and.i98, 0 - br i1 %cmp5.i100.not311, label %if.end.i94, label %for.body.i102 + %cmp5.i100.not316 = icmp eq i32 %and.i98, 0 + br i1 %cmp5.i100.not316, label %if.end.i94, label %for.body.i102 for.body.i102: ; preds = %if.then.i87, %for.body.i102 - %it.i77.1313 = phi ptr [ %incdec.ptr.i105, %for.body.i102 ], [ %out, %if.then.i87 ] - %p.i78.0312 = phi i32 [ %shr8.i106, %for.body.i102 ], [ %and.i98, %if.then.i87 ] - %conv7.i104 = trunc i32 %p.i78.0312 to i8 - %incdec.ptr.i105 = getelementptr inbounds i8, ptr %it.i77.1313, i64 1 - store i8 %conv7.i104, ptr %it.i77.1313, align 1 - %shr8.i106 = lshr i32 %p.i78.0312, 8 - %cmp5.i100.not = icmp samesign ult i32 %p.i78.0312, 256 + %it.i77.1318 = phi ptr [ %incdec.ptr.i105, %for.body.i102 ], [ %out, %if.then.i87 ] + %p.i78.0317 = phi i32 [ %shr8.i106, %for.body.i102 ], [ %and.i98, %if.then.i87 ] + %conv7.i104 = trunc i32 %p.i78.0317 to i8 + %incdec.ptr.i105 = getelementptr inbounds i8, ptr %it.i77.1318, i64 1 + store i8 %conv7.i104, ptr %it.i77.1318, align 1 + %shr8.i106 = lshr i32 %p.i78.0317, 8 + %cmp5.i100.not = icmp samesign ult i32 %p.i78.0317, 256 br i1 %cmp5.i100.not, label %if.end.i94, label %for.body.i102, !llvm.loop !398 if.end.i94: ; preds = %for.body.i102, %if.then.i87 @@ -19731,12 +19731,12 @@ sw.bb33.i: ; preds = %cond.true %.pre = load i32, ptr %precision.i117.phi.trans.insert, align 4 %cmp41.i = icmp slt i32 %.pre, 2 %41 = and i1 %cmp41.i, %bf.cast40.i.not - %or.cond331 = and i1 %41, %value + %or.cond336 = and i1 %41, %value %cmp.not.i241 = icmp samesign ult i16 %2, 2 %cond.i242 = select i1 %cmp.not.i241, i32 48, i32 12288 %or.i243 = or i32 %cond.i242, %3 %add4.i244 = add i32 %or.i243, 16777216 - %prefix.i.2 = select i1 %or.cond331, i32 %add4.i244, i32 %3 + %prefix.i.2 = select i1 %or.cond336, i32 %add4.i244, i32 %3 %42 = load i32, ptr %specs, align 4 %add.i118 = add nsw i32 %.pre, 1 %or.i119 = or i32 %add.i118, %42 @@ -19745,17 +19745,17 @@ sw.bb33.i: ; preds = %cond.true if.then.i123: ; preds = %sw.bb33.i %and.i134 = and i32 %prefix.i.2, 16777215 - %cmp5.i136.not308 = icmp eq i32 %and.i134, 0 - br i1 %cmp5.i136.not308, label %if.end.i130, label %for.body.i138 + %cmp5.i136.not313 = icmp eq i32 %and.i134, 0 + br i1 %cmp5.i136.not313, label %if.end.i130, label %for.body.i138 for.body.i138: ; preds = %if.then.i123, %for.body.i138 - %it.i113.1310 = phi ptr [ %incdec.ptr.i141, %for.body.i138 ], [ %out, %if.then.i123 ] - %p.i114.0309 = phi i32 [ %shr8.i142, %for.body.i138 ], [ %and.i134, %if.then.i123 ] - %conv7.i140 = trunc i32 %p.i114.0309 to i8 - %incdec.ptr.i141 = getelementptr inbounds i8, ptr %it.i113.1310, i64 1 - store i8 %conv7.i140, ptr %it.i113.1310, align 1 - %shr8.i142 = lshr i32 %p.i114.0309, 8 - %cmp5.i136.not = icmp samesign ult i32 %p.i114.0309, 256 + %it.i113.1315 = phi ptr [ %incdec.ptr.i141, %for.body.i138 ], [ %out, %if.then.i123 ] + %p.i114.0314 = phi i32 [ %shr8.i142, %for.body.i138 ], [ %and.i134, %if.then.i123 ] + %conv7.i140 = trunc i32 %p.i114.0314 to i8 + %incdec.ptr.i141 = getelementptr inbounds i8, ptr %it.i113.1315, i64 1 + store i8 %conv7.i140, ptr %it.i113.1315, align 1 + %shr8.i142 = lshr i32 %p.i114.0314, 8 + %cmp5.i136.not = icmp samesign ult i32 %p.i114.0314, 256 br i1 %cmp5.i136.not, label %if.end.i130, label %for.body.i138, !llvm.loop !400 if.end.i130: ; preds = %for.body.i138, %if.then.i123 @@ -50817,24 +50817,24 @@ if.then.i39: ; preds = %sw.bb.i tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %out.coerce, i64 noundef %add.i87) %call.i.i = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %out.coerce, i64 noundef 0) %add.ptr.i = getelementptr inbounds i8, ptr %call.i.i, i64 %call2.i - %or.cond244 = icmp samesign ult i16 %2, 2 - br i1 %or.cond244, label %if.then.i.i, label %for.body.i.preheader + %or.cond249 = icmp samesign ult i16 %2, 2 + br i1 %or.cond249, label %while.end.i.i, label %for.body.i.preheader for.body.i.preheader: ; preds = %if.then.i39 %and.i = and i32 %3, 16777215 br label %for.body.i for.body.i: ; preds = %for.body.i.preheader, %for.body.i - %it.i.1242 = phi ptr [ %incdec.ptr.i, %for.body.i ], [ %add.ptr.i, %for.body.i.preheader ] - %p.i.0241 = phi i32 [ %shr9.i, %for.body.i ], [ %and.i, %for.body.i.preheader ] - %conv8.i = trunc i32 %p.i.0241 to i8 - %incdec.ptr.i = getelementptr inbounds i8, ptr %it.i.1242, i64 1 - store i8 %conv8.i, ptr %it.i.1242, align 1 - %shr9.i = lshr i32 %p.i.0241, 8 - %cmp6.i.not = icmp samesign ult i32 %p.i.0241, 256 - br i1 %cmp6.i.not, label %if.then.i.i, label %for.body.i, !llvm.loop !675 - -if.then.i.i: ; preds = %for.body.i, %if.then.i39 + %it.i.1247 = phi ptr [ %incdec.ptr.i, %for.body.i ], [ %add.ptr.i, %for.body.i.preheader ] + %p.i.0246 = phi i32 [ %shr9.i, %for.body.i ], [ %and.i, %for.body.i.preheader ] + %conv8.i = trunc i32 %p.i.0246 to i8 + %incdec.ptr.i = getelementptr inbounds i8, ptr %it.i.1247, i64 1 + store i8 %conv8.i, ptr %it.i.1247, align 1 + %shr9.i = lshr i32 %p.i.0246, 8 + %cmp6.i.not = icmp samesign ult i32 %p.i.0246, 256 + br i1 %cmp6.i.not, label %while.end.i.i, label %for.body.i, !llvm.loop !675 + +while.end.i.i: ; preds = %for.body.i, %if.then.i39 %it.i.0 = phi ptr [ %add.ptr.i, %if.then.i39 ], [ %incdec.ptr.i, %for.body.i ] %6 = zext i1 %value to i8 %conv5.i.i = or disjoint i8 %6, 48 @@ -50917,17 +50917,17 @@ if.then.i63: ; preds = %if.end.i29 %call.i.i101 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %out.coerce, i64 noundef 0) %add.ptr.i102 = getelementptr inbounds i8, ptr %call.i.i101, i64 %call2.i99 %and.i74 = and i32 %prefix.i.0, 16777215 - %cmp6.i76.not236 = icmp eq i32 %and.i74, 0 - br i1 %cmp6.i76.not236, label %if.end.i70, label %for.body.i78 + %cmp6.i76.not241 = icmp eq i32 %and.i74, 0 + br i1 %cmp6.i76.not241, label %if.end.i70, label %for.body.i78 for.body.i78: ; preds = %if.then.i63, %for.body.i78 - %it.i50.1238 = phi ptr [ %incdec.ptr.i81, %for.body.i78 ], [ %add.ptr.i102, %if.then.i63 ] - %p.i52.0237 = phi i32 [ %shr9.i82, %for.body.i78 ], [ %and.i74, %if.then.i63 ] - %conv8.i80 = trunc i32 %p.i52.0237 to i8 - %incdec.ptr.i81 = getelementptr inbounds i8, ptr %it.i50.1238, i64 1 - store i8 %conv8.i80, ptr %it.i50.1238, align 1 - %shr9.i82 = lshr i32 %p.i52.0237, 8 - %cmp6.i76.not = icmp samesign ult i32 %p.i52.0237, 256 + %it.i50.1243 = phi ptr [ %incdec.ptr.i81, %for.body.i78 ], [ %add.ptr.i102, %if.then.i63 ] + %p.i52.0242 = phi i32 [ %shr9.i82, %for.body.i78 ], [ %and.i74, %if.then.i63 ] + %conv8.i80 = trunc i32 %p.i52.0242 to i8 + %incdec.ptr.i81 = getelementptr inbounds i8, ptr %it.i50.1243, i64 1 + store i8 %conv8.i80, ptr %it.i50.1243, align 1 + %shr9.i82 = lshr i32 %p.i52.0242, 8 + %cmp6.i76.not = icmp samesign ult i32 %p.i52.0242, 256 br i1 %cmp6.i76.not, label %if.end.i70, label %for.body.i78, !llvm.loop !131 if.end.i70: ; preds = %for.body.i78, %if.then.i63 @@ -51016,17 +51016,17 @@ if.then.i102: ; preds = %if.end35.i %call.i.i142 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %out.coerce, i64 noundef 0) %add.ptr.i143 = getelementptr inbounds i8, ptr %call.i.i142, i64 %call2.i140 %and.i113 = and i32 %prefix.i.1, 16777215 - %cmp6.i115.not232 = icmp eq i32 %and.i113, 0 - br i1 %cmp6.i115.not232, label %if.end.i109, label %for.body.i117 + %cmp6.i115.not237 = icmp eq i32 %and.i113, 0 + br i1 %cmp6.i115.not237, label %if.end.i109, label %for.body.i117 for.body.i117: ; preds = %if.then.i102, %for.body.i117 - %it.i89.1234 = phi ptr [ %incdec.ptr.i120, %for.body.i117 ], [ %add.ptr.i143, %if.then.i102 ] - %p.i91.0233 = phi i32 [ %shr9.i121, %for.body.i117 ], [ %and.i113, %if.then.i102 ] - %conv8.i119 = trunc i32 %p.i91.0233 to i8 - %incdec.ptr.i120 = getelementptr inbounds i8, ptr %it.i89.1234, i64 1 - store i8 %conv8.i119, ptr %it.i89.1234, align 1 - %shr9.i121 = lshr i32 %p.i91.0233, 8 - %cmp6.i115.not = icmp samesign ult i32 %p.i91.0233, 256 + %it.i89.1239 = phi ptr [ %incdec.ptr.i120, %for.body.i117 ], [ %add.ptr.i143, %if.then.i102 ] + %p.i91.0238 = phi i32 [ %shr9.i121, %for.body.i117 ], [ %and.i113, %if.then.i102 ] + %conv8.i119 = trunc i32 %p.i91.0238 to i8 + %incdec.ptr.i120 = getelementptr inbounds i8, ptr %it.i89.1239, i64 1 + store i8 %conv8.i119, ptr %it.i89.1239, align 1 + %shr9.i121 = lshr i32 %p.i91.0238, 8 + %cmp6.i115.not = icmp samesign ult i32 %p.i91.0238, 256 br i1 %cmp6.i115.not, label %if.end.i109, label %for.body.i117, !llvm.loop !132 if.end.i109: ; preds = %for.body.i117, %if.then.i102 @@ -51083,12 +51083,12 @@ sw.bb43.i: ; preds = %cond.true %.pre = load i32, ptr %precision.i135.phi.trans.insert, align 4 %cmp51.i = icmp slt i32 %.pre, 2 %27 = and i1 %cmp51.i, %bf.cast50.i.not - %or.cond248 = and i1 %27, %value + %or.cond253 = and i1 %27, %value %cmp.not.i177 = icmp samesign ult i16 %2, 2 %cond.i178 = select i1 %cmp.not.i177, i32 48, i32 12288 %or.i179 = or i32 %cond.i178, %3 %add4.i180 = add i32 %or.i179, 16777216 - %prefix.i.2 = select i1 %or.cond248, i32 %add4.i180, i32 %3 + %prefix.i.2 = select i1 %or.cond253, i32 %add4.i180, i32 %3 %28 = load i32, ptr %specs, align 4 %add.i136 = add nsw i32 %.pre, 1 %or.i137 = or i32 %add.i136, %28 @@ -51101,17 +51101,17 @@ sw.bb43.i: ; preds = %cond.true if.then.i141: ; preds = %sw.bb43.i %call3.i146 = tail call noundef ptr @_ZN3fmt3v106detail7reserveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNSA_10value_typeESt20back_insert_iteratorISA_Em(ptr %out.coerce, i64 noundef %conv.i145) %and.i152 = and i32 %prefix.i.2, 16777215 - %cmp6.i154.not229 = icmp eq i32 %and.i152, 0 - br i1 %cmp6.i154.not229, label %if.end.i148, label %for.body.i156 + %cmp6.i154.not234 = icmp eq i32 %and.i152, 0 + br i1 %cmp6.i154.not234, label %if.end.i148, label %for.body.i156 for.body.i156: ; preds = %if.then.i141, %for.body.i156 - %it.i128.1231 = phi ptr [ %incdec.ptr.i159, %for.body.i156 ], [ %call3.i146, %if.then.i141 ] - %p.i130.0230 = phi i32 [ %shr9.i160, %for.body.i156 ], [ %and.i152, %if.then.i141 ] - %conv8.i158 = trunc i32 %p.i130.0230 to i8 - %incdec.ptr.i159 = getelementptr inbounds i8, ptr %it.i128.1231, i64 1 - store i8 %conv8.i158, ptr %it.i128.1231, align 1 - %shr9.i160 = lshr i32 %p.i130.0230, 8 - %cmp6.i154.not = icmp samesign ult i32 %p.i130.0230, 256 + %it.i128.1236 = phi ptr [ %incdec.ptr.i159, %for.body.i156 ], [ %call3.i146, %if.then.i141 ] + %p.i130.0235 = phi i32 [ %shr9.i160, %for.body.i156 ], [ %and.i152, %if.then.i141 ] + %conv8.i158 = trunc i32 %p.i130.0235 to i8 + %incdec.ptr.i159 = getelementptr inbounds i8, ptr %it.i128.1236, i64 1 + store i8 %conv8.i158, ptr %it.i128.1236, align 1 + %shr9.i160 = lshr i32 %p.i130.0235, 8 + %cmp6.i154.not = icmp samesign ult i32 %p.i130.0235, 256 br i1 %cmp6.i154.not, label %if.end.i148, label %for.body.i156, !llvm.loop !134 if.end.i148: ; preds = %for.body.i156, %if.then.i141 @@ -51186,8 +51186,8 @@ cond.false: ; preds = %entry, %entry call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp.i217) br label %cond.end -cond.end: ; preds = %if.end.i70, %if.end.i109, %if.end.i148, %if.then.i.i, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit210, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit173, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit129, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit, %sw.bb61.i, %cond.false - %retval.sroa.0.0 = phi ptr [ %call.i.i218, %cond.false ], [ %call.i.i215, %sw.bb61.i ], [ %call.i93, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit ], [ %call.i130, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit129 ], [ %call.i174, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit173 ], [ %call.i211, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit210 ], [ %out.coerce, %if.then.i.i ], [ %out.coerce, %if.end.i70 ], [ %out.coerce, %if.end.i109 ], [ %out.coerce, %if.end.i148 ] +cond.end: ; preds = %if.end.i70, %if.end.i109, %if.end.i148, %while.end.i.i, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit210, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit173, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit129, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit, %sw.bb61.i, %cond.false + %retval.sroa.0.0 = phi ptr [ %call.i.i218, %cond.false ], [ %call.i.i215, %sw.bb61.i ], [ %call.i93, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit ], [ %call.i130, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit129 ], [ %call.i174, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit173 ], [ %call.i211, %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit210 ], [ %out.coerce, %while.end.i.i ], [ %out.coerce, %if.end.i70 ], [ %out.coerce, %if.end.i109 ], [ %out.coerce, %if.end.i148 ] ret ptr %retval.sroa.0.0 } @@ -54171,9 +54171,9 @@ if.end.i29.i: ; preds = %for.body.i.i, %if.t %idx.ext.i.i = ashr i64 %add.i.i352, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %it.i.i.0, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %2, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end.i29.i +while.body.i.i: ; preds = %if.end.i29.i %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %arg.i.i.sroa.0.0.extract.trunc, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -54182,11 +54182,11 @@ while.body.i.i.preheader: ; preds = %if.end.i29.i %15 = load i16, ptr %arrayidx.i.i.i, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %arg.i.i.sroa.0.0.extract.trunc, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !322 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end.i29.i - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end.i29.i ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %arg.i.i.sroa.0.0.extract.trunc, %if.end.i29.i ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end.i29.i + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end.i29.i ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %arg.i.i.sroa.0.0.extract.trunc, %if.end.i29.i ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp samesign ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i355, label %if.end.i.i354 @@ -54667,9 +54667,9 @@ if.end.i29.i310: ; preds = %for.body.i.i318, %i %idx.ext.i.i503 = ashr i64 %add.i.i496, 32 %add.ptr.i.i504 = getelementptr inbounds i8, ptr %it.i.i105.0, i64 %idx.ext.i.i503 %cmp119.i.i505 = icmp ugt i8 %2, 99 - br i1 %cmp119.i.i505, label %while.body.i.i517.preheader, label %while.end.i.i506 + br i1 %cmp119.i.i505, label %while.body.i.i517, label %while.end.i.i506 -while.body.i.i517.preheader: ; preds = %if.end.i29.i310 +while.body.i.i517: ; preds = %if.end.i29.i310 %add.ptr2.i.i520 = getelementptr inbounds i8, ptr %add.ptr.i.i504, i64 -2 %rem.i.i521 = urem i32 %arg.i.i114.sroa.0.0.extract.trunc, 100 %57 = shl nuw nsw i32 %rem.i.i521, 1 @@ -54678,11 +54678,11 @@ while.body.i.i517.preheader: ; preds = %if.end.i29.i310 %58 = load i16, ptr %arrayidx.i.i.i523, align 1 store i16 %58, ptr %add.ptr2.i.i520, align 1 %div.i.i524 = udiv i32 %arg.i.i114.sroa.0.0.extract.trunc, 100 - br label %while.end.i.i506 + br label %while.end.i.i506, !llvm.loop !322 -while.end.i.i506: ; preds = %while.body.i.i517.preheader, %if.end.i29.i310 - %out.addr.0.lcssa.i.i507 = phi ptr [ %add.ptr.i.i504, %if.end.i29.i310 ], [ %add.ptr2.i.i520, %while.body.i.i517.preheader ] - %value.addr.0.lcssa.i.i508 = phi i32 [ %arg.i.i114.sroa.0.0.extract.trunc, %if.end.i29.i310 ], [ %div.i.i524, %while.body.i.i517.preheader ] +while.end.i.i506: ; preds = %while.body.i.i517, %if.end.i29.i310 + %out.addr.0.lcssa.i.i507 = phi ptr [ %add.ptr.i.i504, %if.end.i29.i310 ], [ %add.ptr2.i.i520, %while.body.i.i517 ] + %value.addr.0.lcssa.i.i508 = phi i32 [ %arg.i.i114.sroa.0.0.extract.trunc, %if.end.i29.i310 ], [ %div.i.i524, %while.body.i.i517 ] %cmp4.i.i509 = icmp samesign ult i32 %value.addr.0.lcssa.i.i508, 10 br i1 %cmp4.i.i509, label %if.then.i.i514, label %if.end.i.i510 @@ -55232,9 +55232,9 @@ if.end.i29.i579: ; preds = %for.body.i.i587, %i %idx.ext.i.i713 = ashr i64 %add.i.i706, 32 %add.ptr.i.i714 = getelementptr inbounds i8, ptr %it.i.i374.0, i64 %idx.ext.i.i713 %cmp119.i.i715 = icmp ugt i8 %114, 99 - br i1 %cmp119.i.i715, label %while.body.i.i727.preheader, label %while.end.i.i716 + br i1 %cmp119.i.i715, label %while.body.i.i727, label %while.end.i.i716 -while.body.i.i727.preheader: ; preds = %if.end.i29.i579 +while.body.i.i727: ; preds = %if.end.i29.i579 %add.ptr2.i.i730 = getelementptr inbounds i8, ptr %add.ptr.i.i714, i64 -2 %rem.i.i731 = urem i32 %arg.i.i383.sroa.0.0.extract.trunc, 100 %125 = shl nuw nsw i32 %rem.i.i731, 1 @@ -55243,11 +55243,11 @@ while.body.i.i727.preheader: ; preds = %if.end.i29.i579 %126 = load i16, ptr %arrayidx.i.i.i733, align 1 store i16 %126, ptr %add.ptr2.i.i730, align 1 %div.i.i734 = udiv i32 %arg.i.i383.sroa.0.0.extract.trunc, 100 - br label %while.end.i.i716 + br label %while.end.i.i716, !llvm.loop !322 -while.end.i.i716: ; preds = %while.body.i.i727.preheader, %if.end.i29.i579 - %out.addr.0.lcssa.i.i717 = phi ptr [ %add.ptr.i.i714, %if.end.i29.i579 ], [ %add.ptr2.i.i730, %while.body.i.i727.preheader ] - %value.addr.0.lcssa.i.i718 = phi i32 [ %arg.i.i383.sroa.0.0.extract.trunc, %if.end.i29.i579 ], [ %div.i.i734, %while.body.i.i727.preheader ] +while.end.i.i716: ; preds = %while.body.i.i727, %if.end.i29.i579 + %out.addr.0.lcssa.i.i717 = phi ptr [ %add.ptr.i.i714, %if.end.i29.i579 ], [ %add.ptr2.i.i730, %while.body.i.i727 ] + %value.addr.0.lcssa.i.i718 = phi i32 [ %arg.i.i383.sroa.0.0.extract.trunc, %if.end.i29.i579 ], [ %div.i.i734, %while.body.i.i727 ] %cmp4.i.i719 = icmp samesign ult i32 %value.addr.0.lcssa.i.i718, 10 br i1 %cmp4.i.i719, label %if.then.i.i724, label %if.end.i.i720 @@ -55716,9 +55716,9 @@ if.end.i29.i848: ; preds = %for.body.i.i856, %i %idx.ext.i.i924 = ashr i64 %add.i.i917, 32 %add.ptr.i.i925 = getelementptr inbounds i8, ptr %it.i.i643.0, i64 %idx.ext.i.i924 %cmp119.i.i926 = icmp ugt i8 %114, 99 - br i1 %cmp119.i.i926, label %while.body.i.i938.preheader, label %while.end.i.i927 + br i1 %cmp119.i.i926, label %while.body.i.i938, label %while.end.i.i927 -while.body.i.i938.preheader: ; preds = %if.end.i29.i848 +while.body.i.i938: ; preds = %if.end.i29.i848 %add.ptr2.i.i941 = getelementptr inbounds i8, ptr %add.ptr.i.i925, i64 -2 %rem.i.i942 = urem i32 %arg.i.i652.sroa.0.0.extract.trunc, 100 %159 = shl nuw nsw i32 %rem.i.i942, 1 @@ -55727,11 +55727,11 @@ while.body.i.i938.preheader: ; preds = %if.end.i29.i848 %160 = load i16, ptr %arrayidx.i.i.i944, align 1 store i16 %160, ptr %add.ptr2.i.i941, align 1 %div.i.i945 = udiv i32 %arg.i.i652.sroa.0.0.extract.trunc, 100 - br label %while.end.i.i927 + br label %while.end.i.i927, !llvm.loop !322 -while.end.i.i927: ; preds = %while.body.i.i938.preheader, %if.end.i29.i848 - %out.addr.0.lcssa.i.i928 = phi ptr [ %add.ptr.i.i925, %if.end.i29.i848 ], [ %add.ptr2.i.i941, %while.body.i.i938.preheader ] - %value.addr.0.lcssa.i.i929 = phi i32 [ %arg.i.i652.sroa.0.0.extract.trunc, %if.end.i29.i848 ], [ %div.i.i945, %while.body.i.i938.preheader ] +while.end.i.i927: ; preds = %while.body.i.i938, %if.end.i29.i848 + %out.addr.0.lcssa.i.i928 = phi ptr [ %add.ptr.i.i925, %if.end.i29.i848 ], [ %add.ptr2.i.i941, %while.body.i.i938 ] + %value.addr.0.lcssa.i.i929 = phi i32 [ %arg.i.i652.sroa.0.0.extract.trunc, %if.end.i29.i848 ], [ %div.i.i945, %while.body.i.i938 ] %cmp4.i.i930 = icmp samesign ult i32 %value.addr.0.lcssa.i.i929, 10 br i1 %cmp4.i.i930, label %if.then.i.i935, label %if.end.i.i931 diff --git a/bench/llvm/optimized/AArch64BaseInfo.cpp.ll b/bench/llvm/optimized/AArch64BaseInfo.cpp.ll index 3d00d02fd9e..87f79344c7a 100644 --- a/bench/llvm/optimized/AArch64BaseInfo.cpp.ll +++ b/bench/llvm/optimized/AArch64BaseInfo.cpp.ll @@ -3940,8 +3940,8 @@ _ZN4llvm6utostrB5cxx11Emb.exit: 52: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit %53 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10, !noalias !46 - %.not.i17 = icmp ugt i64 %49, %53 - br i1 %.not.i17, label %56, label %54 + %.not.i = icmp ugt i64 %49, %53 + br i1 %.not.i, label %56, label %54 54: ; preds = %52 %55 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %18) #10, !noalias !46 @@ -3961,37 +3961,37 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) %59 = getelementptr inbounds i8, ptr %6, i64 21 %60 = icmp eq i32 %28, 0 - br i1 %60, label %.thread.i23, label %.lr.ph.i18.preheader + br i1 %60, label %.thread.i17, label %.lr.ph.i14.preheader -.lr.ph.i18.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit +.lr.ph.i14.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %61 = zext nneg i32 %28 to i64 - br label %.lr.ph.i18 + br label %.lr.ph.i14 -.thread.i23: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit +.thread.i17: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %62 = getelementptr inbounds i8, ptr %6, i64 20 store i8 48, ptr %62, align 4, !noalias !52 - br label %_ZN4llvm6utostrB5cxx11Emb.exit24 + br label %_ZN4llvm6utostrB5cxx11Emb.exit18 -.lr.ph.i18: ; preds = %.lr.ph.i18.preheader, %.lr.ph.i18 - %.111.i19 = phi ptr [ %66, %.lr.ph.i18 ], [ %59, %.lr.ph.i18.preheader ] - %.0810.i20 = phi i64 [ %67, %.lr.ph.i18 ], [ %61, %.lr.ph.i18.preheader ] - %63 = urem i64 %.0810.i20, 10 +.lr.ph.i14: ; preds = %.lr.ph.i14.preheader, %.lr.ph.i14 + %.111.i = phi ptr [ %66, %.lr.ph.i14 ], [ %59, %.lr.ph.i14.preheader ] + %.0810.i = phi i64 [ %67, %.lr.ph.i14 ], [ %61, %.lr.ph.i14.preheader ] + %63 = urem i64 %.0810.i, 10 %64 = trunc nuw nsw i64 %63 to i8 %65 = or disjoint i8 %64, 48 - %66 = getelementptr inbounds i8, ptr %.111.i19, i64 -1 + %66 = getelementptr inbounds i8, ptr %.111.i, i64 -1 store i8 %65, ptr %66, align 1, !noalias !52 - %67 = udiv i64 %.0810.i20, 10 - %.not.i21 = icmp samesign ult i64 %.0810.i20, 10 - br i1 %.not.i21, label %_ZN4llvm6utostrB5cxx11Emb.exit24, label %.lr.ph.i18, !llvm.loop !55 + %67 = udiv i64 %.0810.i, 10 + %.not.i15 = icmp samesign ult i64 %.0810.i, 10 + br i1 %.not.i15, label %_ZN4llvm6utostrB5cxx11Emb.exit18, label %.lr.ph.i14, !llvm.loop !55 -_ZN4llvm6utostrB5cxx11Emb.exit24: ; preds = %.lr.ph.i18, %.thread.i23 - %.1.lcssa.i22 = phi ptr [ %62, %.thread.i23 ], [ %66, %.lr.ph.i18 ] +_ZN4llvm6utostrB5cxx11Emb.exit18: ; preds = %.lr.ph.i14, %.thread.i17 + %.1.lcssa.i16 = phi ptr [ %62, %.thread.i17 ], [ %66, %.lr.ph.i14 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10, !noalias !52 %68 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %68, ptr noundef nonnull align 1 dereferenceable(1) %7) #10 %69 = getelementptr inbounds nuw i8, ptr %22, i64 8 store i64 0, ptr %69, align 8, !alias.scope !52 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %.1.lcssa.i22, ptr noundef nonnull %59) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %.1.lcssa.i16, ptr noundef nonnull %59) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 call void @llvm.lifetime.end.p0(i64 21, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) @@ -4002,22 +4002,22 @@ _ZN4llvm6utostrB5cxx11Emb.exit24: ; preds = %.lr.ph.i18, %.threa %74 = icmp ugt i64 %72, %73 br i1 %74, label %75, label %79 -75: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit24 +75: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit18 %76 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #10, !noalias !56 - %.not.i26 = icmp ugt i64 %72, %76 - br i1 %.not.i26, label %79, label %77 + %.not.i20 = icmp ugt i64 %72, %76 + br i1 %.not.i20, label %79, label %77 77: ; preds = %75 %78 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %16) #10, !noalias !56 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 -79: ; preds = %75, %_ZN4llvm6utostrB5cxx11Emb.exit24 +79: ; preds = %75, %_ZN4llvm6utostrB5cxx11Emb.exit18 %80 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %22) #10, !noalias !56 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27: ; preds = %77, %79 - %.sink.i25 = phi ptr [ %80, %79 ], [ %78, %77 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i25) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21: ; preds = %77, %79 + %.sink.i19 = phi ptr [ %80, %79 ], [ %78, %77 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i19) #10 %81 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1340) #10, !noalias !59 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %81) #10 call void @llvm.experimental.noalias.scope.decl(metadata !62) @@ -4025,37 +4025,37 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) %82 = getelementptr inbounds i8, ptr %4, i64 21 %83 = icmp eq i32 %30, 0 - br i1 %83, label %.thread.i33, label %.lr.ph.i28.preheader + br i1 %83, label %.thread.i27, label %.lr.ph.i22.preheader -.lr.ph.i28.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 +.lr.ph.i22.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 %84 = zext nneg i32 %30 to i64 - br label %.lr.ph.i28 + br label %.lr.ph.i22 -.thread.i33: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 +.thread.i27: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 %85 = getelementptr inbounds i8, ptr %4, i64 20 store i8 48, ptr %85, align 4, !noalias !62 - br label %_ZN4llvm6utostrB5cxx11Emb.exit34 + br label %_ZN4llvm6utostrB5cxx11Emb.exit28 -.lr.ph.i28: ; preds = %.lr.ph.i28.preheader, %.lr.ph.i28 - %.111.i29 = phi ptr [ %89, %.lr.ph.i28 ], [ %82, %.lr.ph.i28.preheader ] - %.0810.i30 = phi i64 [ %90, %.lr.ph.i28 ], [ %84, %.lr.ph.i28.preheader ] - %86 = urem i64 %.0810.i30, 10 +.lr.ph.i22: ; preds = %.lr.ph.i22.preheader, %.lr.ph.i22 + %.111.i23 = phi ptr [ %89, %.lr.ph.i22 ], [ %82, %.lr.ph.i22.preheader ] + %.0810.i24 = phi i64 [ %90, %.lr.ph.i22 ], [ %84, %.lr.ph.i22.preheader ] + %86 = urem i64 %.0810.i24, 10 %87 = trunc nuw nsw i64 %86 to i8 %88 = or disjoint i8 %87, 48 - %89 = getelementptr inbounds i8, ptr %.111.i29, i64 -1 + %89 = getelementptr inbounds i8, ptr %.111.i23, i64 -1 store i8 %88, ptr %89, align 1, !noalias !62 - %90 = udiv i64 %.0810.i30, 10 - %.not.i31 = icmp samesign ult i64 %.0810.i30, 10 - br i1 %.not.i31, label %_ZN4llvm6utostrB5cxx11Emb.exit34, label %.lr.ph.i28, !llvm.loop !55 + %90 = udiv i64 %.0810.i24, 10 + %.not.i25 = icmp samesign ult i64 %.0810.i24, 10 + br i1 %.not.i25, label %_ZN4llvm6utostrB5cxx11Emb.exit28, label %.lr.ph.i22, !llvm.loop !55 -_ZN4llvm6utostrB5cxx11Emb.exit34: ; preds = %.lr.ph.i28, %.thread.i33 - %.1.lcssa.i32 = phi ptr [ %85, %.thread.i33 ], [ %89, %.lr.ph.i28 ] +_ZN4llvm6utostrB5cxx11Emb.exit28: ; preds = %.lr.ph.i22, %.thread.i27 + %.1.lcssa.i26 = phi ptr [ %85, %.thread.i27 ], [ %89, %.lr.ph.i22 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10, !noalias !62 %91 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %91, ptr noundef nonnull align 1 dereferenceable(1) %5) #10 %92 = getelementptr inbounds nuw i8, ptr %23, i64 8 store i64 0, ptr %92, align 8, !alias.scope !62 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %.1.lcssa.i32, ptr noundef nonnull %82) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %.1.lcssa.i26, ptr noundef nonnull %82) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10 call void @llvm.lifetime.end.p0(i64 21, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) @@ -4066,22 +4066,22 @@ _ZN4llvm6utostrB5cxx11Emb.exit34: ; preds = %.lr.ph.i28, %.threa %97 = icmp ugt i64 %95, %96 br i1 %97, label %98, label %102 -98: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit34 +98: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit28 %99 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #10, !noalias !65 - %.not.i36 = icmp ugt i64 %95, %99 - br i1 %.not.i36, label %102, label %100 + %.not.i30 = icmp ugt i64 %95, %99 + br i1 %.not.i30, label %102, label %100 100: ; preds = %98 %101 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %14) #10, !noalias !65 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 -102: ; preds = %98, %_ZN4llvm6utostrB5cxx11Emb.exit34 +102: ; preds = %98, %_ZN4llvm6utostrB5cxx11Emb.exit28 %103 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %23) #10, !noalias !65 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37: ; preds = %100, %102 - %.sink.i35 = phi ptr [ %103, %102 ], [ %101, %100 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i35) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31: ; preds = %100, %102 + %.sink.i29 = phi ptr [ %103, %102 ], [ %101, %100 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i29) #10 %104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.1339) #10, !noalias !68 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %104) #10 call void @llvm.experimental.noalias.scope.decl(metadata !71) @@ -4109,22 +4109,22 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %116 = icmp ugt i64 %114, %115 br i1 %116, label %117, label %121 -117: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 +117: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 %118 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #10, !noalias !74 - %.not.i46 = icmp ugt i64 %114, %118 - br i1 %.not.i46, label %121, label %119 + %.not.i40 = icmp ugt i64 %114, %118 + br i1 %.not.i40, label %121, label %119 119: ; preds = %117 %120 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %24, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %12) #10, !noalias !74 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41 -121: ; preds = %117, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 +121: ; preds = %117, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 %122 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %24) #10, !noalias !74 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47: ; preds = %119, %121 - %.sink.i45 = phi ptr [ %122, %121 ], [ %120, %119 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i45) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41: ; preds = %119, %121 + %.sink.i39 = phi ptr [ %122, %121 ], [ %120, %119 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i39) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10 diff --git a/bench/mitsuba3/optimized/string.cpp.ll b/bench/mitsuba3/optimized/string.cpp.ll index 4d16b182231..75d70ee555b 100644 --- a/bench/mitsuba3/optimized/string.cpp.ll +++ b/bench/mitsuba3/optimized/string.cpp.ll @@ -3545,7 +3545,7 @@ define linkonce_odr hidden { ptr, i32 } @_ZN10fast_float19from_chars_advancedIfE %.12433.i = phi i32 [ %422, %.lr.ph35.i ], [ %.023.lcssa.i, %.preheader29.i ] %421 = udiv i64 %.134.i, 100 %422 = add nsw i32 %.12433.i, 2 - %423 = icmp ugt i64 %.134.i, 9999 + %423 = icmp samesign ugt i64 %.134.i, 9999 br i1 %423, label %.lr.ph35.i, label %.preheader.i, !llvm.loop !41 .lr.ph40.i: ; preds = %.preheader.i, %.lr.ph40.i @@ -3553,7 +3553,7 @@ define linkonce_odr hidden { ptr, i32 } @_ZN10fast_float19from_chars_advancedIfE %.22538.i = phi i32 [ %425, %.lr.ph40.i ], [ %.124.lcssa.i, %.preheader.i ] %424 = udiv i64 %.239.i, 10 %425 = add nsw i32 %.22538.i, 1 - %426 = icmp ugt i64 %.239.i, 99 + %426 = icmp samesign ugt i64 %.239.i, 99 br i1 %426, label %.lr.ph40.i, label %._crit_edge.i, !llvm.loop !42 ._crit_edge.i: ; preds = %.lr.ph40.i, %.preheader.i @@ -6448,7 +6448,7 @@ define linkonce_odr hidden { ptr, i32 } @_ZN10fast_float19from_chars_advancedIdE %.12433.i = phi i32 [ %422, %.lr.ph35.i ], [ %.023.lcssa.i, %.preheader29.i ] %421 = udiv i64 %.134.i, 100 %422 = add nsw i32 %.12433.i, 2 - %423 = icmp ugt i64 %.134.i, 9999 + %423 = icmp samesign ugt i64 %.134.i, 9999 br i1 %423, label %.lr.ph35.i, label %.preheader.i, !llvm.loop !41 .lr.ph40.i: ; preds = %.preheader.i, %.lr.ph40.i @@ -6456,7 +6456,7 @@ define linkonce_odr hidden { ptr, i32 } @_ZN10fast_float19from_chars_advancedIdE %.22538.i = phi i32 [ %425, %.lr.ph40.i ], [ %.124.lcssa.i, %.preheader.i ] %424 = udiv i64 %.239.i, 10 %425 = add nsw i32 %.22538.i, 1 - %426 = icmp ugt i64 %.239.i, 99 + %426 = icmp samesign ugt i64 %.239.i, 99 br i1 %426, label %.lr.ph40.i, label %._crit_edge.i, !llvm.loop !42 ._crit_edge.i: ; preds = %.lr.ph40.i, %.preheader.i diff --git a/bench/nuttx/optimized/lib_strptime.c.ll b/bench/nuttx/optimized/lib_strptime.c.ll index b721b8de691..a75bc14bffb 100644 --- a/bench/nuttx/optimized/lib_strptime.c.ll +++ b/bench/nuttx/optimized/lib_strptime.c.ll @@ -65,8 +65,8 @@ define ptr @strptime(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noun ; Function Attrs: nofree nounwind memory(readwrite, inaccessiblemem: read) uwtable define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr noundef nonnull %3) unnamed_addr #0 { %5 = load i8, ptr %1, align 1 - %.not591597 = icmp eq i8 %5, 0 - br i1 %.not591597, label %.outer._crit_edge, label %.lr.ph.lr.ph + %.not589595 = icmp eq i8 %5, 0 + br i1 %.not589595, label %.outer._crit_edge, label %.lr.ph.lr.ph .lr.ph.lr.ph: ; preds = %4 %6 = getelementptr inbounds i8, ptr %3, i64 4 @@ -81,15 +81,15 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read .lr.ph: ; preds = %.lr.ph.backedge, %.lr.ph.lr.ph %14 = phi i8 [ %5, %.lr.ph.lr.ph ], [ %.be, %.lr.ph.backedge ] - %.095593 = phi ptr [ %1, %.lr.ph.lr.ph ], [ %.095593.be, %.lr.ph.backedge ] - %.0375592 = phi ptr [ %0, %.lr.ph.lr.ph ], [ %.0375592.be, %.lr.ph.backedge ] + %.095591 = phi ptr [ %1, %.lr.ph.lr.ph ], [ %.095591.be, %.lr.ph.backedge ] + %.0375590 = phi ptr [ %0, %.lr.ph.lr.ph ], [ %.0375590.be, %.lr.ph.backedge ] %15 = zext i8 %14 to i32 %16 = tail call i32 @isspace(i32 noundef %15) #3 %.not109 = icmp eq i32 %16, 0 br i1 %.not109, label %24, label %.preheader429 .preheader429: ; preds = %.lr.ph, %.preheader429 - %.1376 = phi ptr [ %20, %.preheader429 ], [ %.0375592, %.lr.ph ] + %.1376 = phi ptr [ %20, %.preheader429 ], [ %.0375590, %.lr.ph ] %17 = load i8, ptr %.1376, align 1 %18 = zext i8 %17 to i32 %19 = tail call i32 @isspace(i32 noundef %18) #3 @@ -98,19 +98,19 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not160, label %21, label %.preheader429, !llvm.loop !6 21: ; preds = %.preheader429 - %22 = getelementptr inbounds i8, ptr %.095593, i64 1 + %22 = getelementptr inbounds i8, ptr %.095591, i64 1 %23 = load i8, ptr %22, align 1 %.not = icmp eq i8 %23, 0 br i1 %.not, label %.outer._crit_edge, label %.lr.ph.backedge .lr.ph.backedge: ; preds = %21, %_conv_num.exit298 - %.be = phi i8 [ %23, %21 ], [ %411, %_conv_num.exit298 ] - %.095593.be = phi ptr [ %22, %21 ], [ %.398, %_conv_num.exit298 ] - %.0375592.be = phi ptr [ %.1376, %21 ], [ %.2377, %_conv_num.exit298 ] + %.be = phi i8 [ %23, %21 ], [ %412, %_conv_num.exit298 ] + %.095591.be = phi ptr [ %22, %21 ], [ %.398, %_conv_num.exit298 ] + %.0375590.be = phi ptr [ %.1376, %21 ], [ %.2377, %_conv_num.exit298 ] br label %.lr.ph, !llvm.loop !8 24: ; preds = %.lr.ph - %25 = getelementptr inbounds i8, ptr %.095593, i64 1 + %25 = getelementptr inbounds i8, ptr %.095591, i64 1 %.not110 = icmp eq i8 %14, 37 br i1 %.not110, label %.preheader428, label %.loopexit @@ -152,17 +152,17 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read i8 85, label %317 i8 87, label %317 i8 119, label %342 - i8 89, label %356 - i8 121, label %382 - i8 110, label %406 - i8 116, label %406 + i8 89, label %357 + i8 121, label %383 + i8 110, label %407 + i8 116, label %407 ] .loopexit: ; preds = %.preheader428, %24 %.196 = phi ptr [ %25, %24 ], [ %26, %.preheader428 ] %.093 = phi i8 [ %14, %24 ], [ %27, %.preheader428 ] - %28 = getelementptr inbounds i8, ptr %.0375592, i64 1 - %29 = load i8, ptr %.0375592, align 1 + %28 = getelementptr inbounds i8, ptr %.0375590, i64 1 + %29 = load i8, ptr %.0375590, align 1 %.not159 = icmp eq i8 %.093, %29 br i1 %.not159, label %_conv_num.exit298, label %_conv_num.exit.thread @@ -181,7 +181,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not114, label %33, label %_conv_num.exit.thread 33: ; preds = %32 - %34 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str.43, ptr noundef %2, ptr noundef %3) + %34 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str.43, ptr noundef %2, ptr noundef %3) %.not156 = icmp eq ptr %34, null br i1 %.not156, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -189,7 +189,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not111, label %36, label %_conv_num.exit.thread 36: ; preds = %35 - %37 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str, ptr noundef %2, ptr noundef %3) + %37 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str, ptr noundef %2, ptr noundef %3) %.not154 = icmp eq ptr %37, null br i1 %.not154, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -197,7 +197,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not111, label %39, label %_conv_num.exit.thread 39: ; preds = %38 - %40 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str.1, ptr noundef %2, ptr noundef %3) + %40 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str.1, ptr noundef %2, ptr noundef %3) %.not152 = icmp eq ptr %40, null br i1 %.not152, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -205,7 +205,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not111, label %42, label %_conv_num.exit.thread 42: ; preds = %41 - %43 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef %3) + %43 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef %3) %.not150 = icmp eq ptr %43, null br i1 %.not150, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -213,7 +213,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not111, label %45, label %_conv_num.exit.thread 45: ; preds = %44 - %46 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str.3, ptr noundef %2, ptr noundef %3) + %46 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str.3, ptr noundef %2, ptr noundef %3) %.not148 = icmp eq ptr %46, null br i1 %.not148, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -221,7 +221,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not114, label %48, label %_conv_num.exit.thread 48: ; preds = %47 - %49 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str.3, ptr noundef %2, ptr noundef %3) + %49 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str.3, ptr noundef %2, ptr noundef %3) %.not146 = icmp eq ptr %49, null br i1 %.not146, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -229,7 +229,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not114, label %51, label %_conv_num.exit.thread 51: ; preds = %50 - %52 = tail call fastcc ptr @_strptime(ptr noundef %.0375592, ptr noundef nonnull @.str, ptr noundef %2, ptr noundef %3) + %52 = tail call fastcc ptr @_strptime(ptr noundef %.0375590, ptr noundef nonnull @.str, ptr noundef %2, ptr noundef %3) %.not144 = icmp eq ptr %52, null br i1 %.not144, label %_conv_num.exit.thread, label %_conv_num.exit298 @@ -237,32 +237,32 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not111, label %.preheader, label %_conv_num.exit.thread .preheader: ; preds = %53, %65 - %indvars.iv767 = phi i64 [ %indvars.iv.next768, %65 ], [ 0, %53 ] - %54 = getelementptr inbounds [7 x ptr], ptr getelementptr inbounds (i8, ptr @g_defaulttimelocale, i64 56), i64 0, i64 %indvars.iv767 + %indvars.iv763 = phi i64 [ %indvars.iv.next764, %65 ], [ 0, %53 ] + %54 = getelementptr inbounds [7 x ptr], ptr getelementptr inbounds (i8, ptr @g_defaulttimelocale, i64 56), i64 0, i64 %indvars.iv763 %55 = load ptr, ptr %54, align 8 %56 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %55) #4 - %57 = tail call i32 @strncasecmp(ptr noundef %55, ptr noundef %.0375592, i64 noundef %56) + %57 = tail call i32 @strncasecmp(ptr noundef %55, ptr noundef %.0375590, i64 noundef %56) %58 = icmp eq i32 %57, 0 br i1 %58, label %.thread, label %59 59: ; preds = %.preheader - %60 = getelementptr inbounds [7 x ptr], ptr @g_defaulttimelocale, i64 0, i64 %indvars.iv767 + %60 = getelementptr inbounds [7 x ptr], ptr @g_defaulttimelocale, i64 0, i64 %indvars.iv763 %61 = load ptr, ptr %60, align 8 %62 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %61) #4 - %63 = tail call i32 @strncasecmp(ptr noundef %61, ptr noundef %.0375592, i64 noundef %62) + %63 = tail call i32 @strncasecmp(ptr noundef %61, ptr noundef %.0375590, i64 noundef %62) %64 = icmp eq i32 %63, 0 br i1 %64, label %.thread, label %65 65: ; preds = %59 - %indvars.iv.next768 = add nuw nsw i64 %indvars.iv767, 1 - %exitcond770.not = icmp eq i64 %indvars.iv.next768, 7 - br i1 %exitcond770.not, label %_conv_num.exit.thread, label %.preheader, !llvm.loop !9 + %indvars.iv.next764 = add nuw nsw i64 %indvars.iv763, 1 + %exitcond766.not = icmp eq i64 %indvars.iv.next764, 7 + br i1 %exitcond766.not, label %_conv_num.exit.thread, label %.preheader, !llvm.loop !9 .thread: ; preds = %.preheader, %59 %.3382.ph = phi i64 [ %56, %.preheader ], [ %62, %59 ] - %66 = trunc nuw nsw i64 %indvars.iv767 to i32 + %66 = trunc nuw nsw i64 %indvars.iv763 to i32 store i32 %66, ptr %8, align 8 - %67 = getelementptr inbounds i8, ptr %.0375592, i64 %.3382.ph + %67 = getelementptr inbounds i8, ptr %.0375590, i64 %.3382.ph br label %_conv_num.exit298 68: ; preds = %.preheader428, %.preheader428, %.preheader428 @@ -273,7 +273,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read %69 = getelementptr inbounds [12 x ptr], ptr getelementptr inbounds (i8, ptr @g_defaulttimelocale, i64 208), i64 0, i64 %indvars.iv %70 = load ptr, ptr %69, align 8 %71 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %70) #4 - %72 = tail call i32 @strncasecmp(ptr noundef %70, ptr noundef %.0375592, i64 noundef %71) + %72 = tail call i32 @strncasecmp(ptr noundef %70, ptr noundef %.0375590, i64 noundef %71) %73 = icmp eq i32 %72, 0 br i1 %73, label %.thread384, label %74 @@ -281,7 +281,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read %75 = getelementptr inbounds [12 x ptr], ptr getelementptr inbounds (i8, ptr @g_defaulttimelocale, i64 112), i64 0, i64 %indvars.iv %76 = load ptr, ptr %75, align 8 %77 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %76) #4 - %78 = tail call i32 @strncasecmp(ptr noundef %76, ptr noundef %.0375592, i64 noundef %77) + %78 = tail call i32 @strncasecmp(ptr noundef %76, ptr noundef %.0375590, i64 noundef %77) %79 = icmp eq i32 %78, 0 br i1 %79, label %.thread384, label %80 @@ -294,21 +294,21 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read %.5386.ph = phi i64 [ %71, %.preheader426 ], [ %77, %74 ] %81 = trunc nuw nsw i64 %indvars.iv to i32 store i32 %81, ptr %10, align 8 - %82 = getelementptr inbounds i8, ptr %.0375592, i64 %.5386.ph + %82 = getelementptr inbounds i8, ptr %.0375590, i64 %.5386.ph br label %_conv_num.exit298 83: ; preds = %.preheader428 br i1 %.not114, label %84, label %_conv_num.exit.thread 84: ; preds = %83 - %85 = load i8, ptr %.0375592, align 1 + %85 = load i8, ptr %.0375590, align 1 %86 = zext i8 %85 to i32 %87 = tail call i32 @isspace(i32 noundef %86) #3 %.not31.i = icmp eq i32 %87, 0 br i1 %.not31.i, label %._crit_edge.i, label %.lr.ph.i .lr.ph.i: ; preds = %84, %.lr.ph.i - %88 = phi ptr [ %89, %.lr.ph.i ], [ %.0375592, %84 ] + %88 = phi ptr [ %89, %.lr.ph.i ], [ %.0375590, %84 ] %89 = getelementptr inbounds i8, ptr %88, i64 1 %90 = load i8, ptr %89, align 1 %91 = zext i8 %90 to i32 @@ -317,7 +317,7 @@ define internal fastcc ptr @_strptime(ptr noundef %0, ptr nocapture noundef read br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !11 ._crit_edge.i: ; preds = %.lr.ph.i, %84 - %.promoted32.i = phi ptr [ %.0375592, %84 ], [ %89, %.lr.ph.i ] + %.promoted32.i = phi ptr [ %.0375590, %84 ], [ %89, %.lr.ph.i ] %.lcssa30.i = phi i8 [ %85, %84 ], [ %90, %.lr.ph.i ] %93 = add i8 %.lcssa30.i, -58 %or.cond27.i = icmp ult i8 %93, -10 @@ -359,14 +359,14 @@ _conv_num.exit: ; preds = %.critedge.i br i1 %.not116, label %110, label %_conv_num.exit.thread 110: ; preds = %109 - %111 = load i8, ptr %.0375592, align 1 + %111 = load i8, ptr %.0375590, align 1 %112 = zext i8 %111 to i32 %113 = tail call i32 @isspace(i32 noundef %112) #3 %.not31.i164 = icmp eq i32 %113, 0 br i1 %.not31.i164, label %._crit_edge.i167, label %.lr.ph.i165 .lr.ph.i165: ; preds = %110, %.lr.ph.i165 - %114 = phi ptr [ %115, %.lr.ph.i165 ], [ %.0375592, %110 ] + %114 = phi ptr [ %115, %.lr.ph.i165 ], [ %.0375590, %110 ] %115 = getelementptr inbounds i8, ptr %114, i64 1 %116 = load i8, ptr %115, align 1 %117 = zext i8 %116 to i32 @@ -375,7 +375,7 @@ _conv_num.exit: ; preds = %.critedge.i br i1 %.not.i166, label %._crit_edge.i167, label %.lr.ph.i165, !llvm.loop !11 ._crit_edge.i167: ; preds = %.lr.ph.i165, %110 - %.promoted32.i168 = phi ptr [ %.0375592, %110 ], [ %115, %.lr.ph.i165 ] + %.promoted32.i168 = phi ptr [ %.0375590, %110 ], [ %115, %.lr.ph.i165 ] %.lcssa30.i169 = phi i8 [ %111, %110 ], [ %116, %.lr.ph.i165 ] %119 = add i8 %.lcssa30.i169, -58 %or.cond27.i170 = icmp ult i8 %119, -10 @@ -421,14 +421,14 @@ _conv_num.exit179: ; preds = %.critedge.i175 br i1 %.not116, label %137, label %_conv_num.exit.thread 137: ; preds = %135, %136 - %138 = load i8, ptr %.0375592, align 1 + %138 = load i8, ptr %.0375590, align 1 %139 = zext i8 %138 to i32 %140 = tail call i32 @isspace(i32 noundef %139) #3 %.not31.i181 = icmp eq i32 %140, 0 br i1 %.not31.i181, label %._crit_edge.i184, label %.lr.ph.i182 .lr.ph.i182: ; preds = %137, %.lr.ph.i182 - %141 = phi ptr [ %142, %.lr.ph.i182 ], [ %.0375592, %137 ] + %141 = phi ptr [ %142, %.lr.ph.i182 ], [ %.0375590, %137 ] %142 = getelementptr inbounds i8, ptr %141, i64 1 %143 = load i8, ptr %142, align 1 %144 = zext i8 %143 to i32 @@ -437,7 +437,7 @@ _conv_num.exit179: ; preds = %.critedge.i175 br i1 %.not.i183, label %._crit_edge.i184, label %.lr.ph.i182, !llvm.loop !11 ._crit_edge.i184: ; preds = %.lr.ph.i182, %137 - %.promoted32.i185 = phi ptr [ %.0375592, %137 ], [ %142, %.lr.ph.i182 ] + %.promoted32.i185 = phi ptr [ %.0375590, %137 ], [ %142, %.lr.ph.i182 ] %.lcssa30.i186 = phi i8 [ %138, %137 ], [ %143, %.lr.ph.i182 ] %146 = add i8 %.lcssa30.i186, -58 %or.cond27.i187 = icmp ult i8 %146, -10 @@ -482,14 +482,14 @@ _conv_num.exit196: ; preds = %.critedge.i192 br i1 %.not116, label %163, label %_conv_num.exit.thread 163: ; preds = %161, %162 - %164 = load i8, ptr %.0375592, align 1 + %164 = load i8, ptr %.0375590, align 1 %165 = zext i8 %164 to i32 %166 = tail call i32 @isspace(i32 noundef %165) #3 %.not31.i198 = icmp eq i32 %166, 0 br i1 %.not31.i198, label %._crit_edge.i201, label %.lr.ph.i199 .lr.ph.i199: ; preds = %163, %.lr.ph.i199 - %167 = phi ptr [ %168, %.lr.ph.i199 ], [ %.0375592, %163 ] + %167 = phi ptr [ %168, %.lr.ph.i199 ], [ %.0375590, %163 ] %168 = getelementptr inbounds i8, ptr %167, i64 1 %169 = load i8, ptr %168, align 1 %170 = zext i8 %169 to i32 @@ -498,7 +498,7 @@ _conv_num.exit196: ; preds = %.critedge.i192 br i1 %.not.i200, label %._crit_edge.i201, label %.lr.ph.i199, !llvm.loop !11 ._crit_edge.i201: ; preds = %.lr.ph.i199, %163 - %.promoted32.i202 = phi ptr [ %.0375592, %163 ], [ %168, %.lr.ph.i199 ] + %.promoted32.i202 = phi ptr [ %.0375590, %163 ], [ %168, %.lr.ph.i199 ] %.lcssa30.i203 = phi i8 [ %164, %163 ], [ %169, %.lr.ph.i199 ] %172 = add i8 %.lcssa30.i203, -58 %or.cond27.i204 = icmp ult i8 %172, -10 @@ -540,14 +540,14 @@ _conv_num.exit213: ; preds = %.critedge.i209 br i1 %.not111, label %189, label %_conv_num.exit.thread 189: ; preds = %188 - %190 = load i8, ptr %.0375592, align 1 + %190 = load i8, ptr %.0375590, align 1 %191 = zext i8 %190 to i32 %192 = tail call i32 @isspace(i32 noundef %191) #3 %.not31.i215 = icmp eq i32 %192, 0 br i1 %.not31.i215, label %._crit_edge.i218, label %.lr.ph.i216 .lr.ph.i216: ; preds = %189, %.lr.ph.i216 - %193 = phi ptr [ %194, %.lr.ph.i216 ], [ %.0375592, %189 ] + %193 = phi ptr [ %194, %.lr.ph.i216 ], [ %.0375590, %189 ] %194 = getelementptr inbounds i8, ptr %193, i64 1 %195 = load i8, ptr %194, align 1 %196 = zext i8 %195 to i32 @@ -556,7 +556,7 @@ _conv_num.exit213: ; preds = %.critedge.i209 br i1 %.not.i217, label %._crit_edge.i218, label %.lr.ph.i216, !llvm.loop !11 ._crit_edge.i218: ; preds = %.lr.ph.i216, %189 - %.promoted32.i219 = phi ptr [ %.0375592, %189 ], [ %194, %.lr.ph.i216 ] + %.promoted32.i219 = phi ptr [ %.0375590, %189 ], [ %194, %.lr.ph.i216 ] %.lcssa30.i220 = phi i8 [ %190, %189 ], [ %195, %.lr.ph.i216 ] %198 = add i8 %.lcssa30.i220, -58 %or.cond27.i221 = icmp ult i8 %198, -10 @@ -599,14 +599,14 @@ _conv_num.exit213: ; preds = %.critedge.i209 br i1 %.not116, label %217, label %_conv_num.exit.thread 217: ; preds = %216 - %218 = load i8, ptr %.0375592, align 1 + %218 = load i8, ptr %.0375590, align 1 %219 = zext i8 %218 to i32 %220 = tail call i32 @isspace(i32 noundef %219) #3 %.not31.i232 = icmp eq i32 %220, 0 br i1 %.not31.i232, label %._crit_edge.i235, label %.lr.ph.i233 .lr.ph.i233: ; preds = %217, %.lr.ph.i233 - %221 = phi ptr [ %222, %.lr.ph.i233 ], [ %.0375592, %217 ] + %221 = phi ptr [ %222, %.lr.ph.i233 ], [ %.0375590, %217 ] %222 = getelementptr inbounds i8, ptr %221, i64 1 %223 = load i8, ptr %222, align 1 %224 = zext i8 %223 to i32 @@ -615,7 +615,7 @@ _conv_num.exit213: ; preds = %.critedge.i209 br i1 %.not.i234, label %._crit_edge.i235, label %.lr.ph.i233, !llvm.loop !11 ._crit_edge.i235: ; preds = %.lr.ph.i233, %217 - %.promoted32.i236 = phi ptr [ %.0375592, %217 ], [ %222, %.lr.ph.i233 ] + %.promoted32.i236 = phi ptr [ %.0375590, %217 ], [ %222, %.lr.ph.i233 ] %.lcssa30.i237 = phi i8 [ %218, %217 ], [ %223, %.lr.ph.i233 ] %226 = add i8 %.lcssa30.i237, -58 %or.cond27.i238 = icmp ult i8 %226, -10 @@ -656,14 +656,14 @@ _conv_num.exit247: ; preds = %.critedge.i243 br i1 %.not116, label %242, label %_conv_num.exit.thread 242: ; preds = %241 - %243 = load i8, ptr %.0375592, align 1 + %243 = load i8, ptr %.0375590, align 1 %244 = zext i8 %243 to i32 %245 = tail call i32 @isspace(i32 noundef %244) #3 %.not31.i249 = icmp eq i32 %245, 0 br i1 %.not31.i249, label %._crit_edge.i252, label %.lr.ph.i250 .lr.ph.i250: ; preds = %242, %.lr.ph.i250 - %246 = phi ptr [ %247, %.lr.ph.i250 ], [ %.0375592, %242 ] + %246 = phi ptr [ %247, %.lr.ph.i250 ], [ %.0375590, %242 ] %247 = getelementptr inbounds i8, ptr %246, i64 1 %248 = load i8, ptr %247, align 1 %249 = zext i8 %248 to i32 @@ -672,7 +672,7 @@ _conv_num.exit247: ; preds = %.critedge.i243 br i1 %.not.i251, label %._crit_edge.i252, label %.lr.ph.i250, !llvm.loop !11 ._crit_edge.i252: ; preds = %.lr.ph.i250, %242 - %.promoted32.i253 = phi ptr [ %.0375592, %242 ], [ %247, %.lr.ph.i250 ] + %.promoted32.i253 = phi ptr [ %.0375590, %242 ], [ %247, %.lr.ph.i250 ] %.lcssa30.i254 = phi i8 [ %243, %242 ], [ %248, %.lr.ph.i250 ] %251 = add i8 %.lcssa30.i254, -58 %or.cond27.i255 = icmp ult i8 %251, -10 @@ -715,7 +715,7 @@ _conv_num.exit247: ; preds = %.critedge.i243 br i1 %.not111, label %270, label %_conv_num.exit.thread 270: ; preds = %269 - %271 = tail call i32 @strncasecmp(ptr noundef nonnull @.str.41, ptr noundef %.0375592, i64 noundef 2) + %271 = tail call i32 @strncasecmp(ptr noundef nonnull @.str.41, ptr noundef %.0375590, i64 noundef 2) %272 = icmp eq i32 %271, 0 br i1 %272, label %273, label %281 @@ -733,11 +733,11 @@ _conv_num.exit247: ; preds = %.critedge.i243 br label %279 279: ; preds = %276, %278 - %280 = getelementptr inbounds i8, ptr %.0375592, i64 2 + %280 = getelementptr inbounds i8, ptr %.0375590, i64 2 br label %_conv_num.exit298 281: ; preds = %270 - %282 = tail call i32 @strncasecmp(ptr noundef nonnull @.str.42, ptr noundef %.0375592, i64 noundef 2) + %282 = tail call i32 @strncasecmp(ptr noundef nonnull @.str.42, ptr noundef %.0375590, i64 noundef 2) %283 = icmp eq i32 %282, 0 br i1 %283, label %284, label %_conv_num.exit.thread @@ -756,21 +756,21 @@ _conv_num.exit247: ; preds = %.critedge.i243 br label %290 290: ; preds = %287, %288 - %291 = getelementptr inbounds i8, ptr %.0375592, i64 2 + %291 = getelementptr inbounds i8, ptr %.0375590, i64 2 br label %_conv_num.exit298 292: ; preds = %.preheader428 br i1 %.not116, label %293, label %_conv_num.exit.thread 293: ; preds = %292 - %294 = load i8, ptr %.0375592, align 1 + %294 = load i8, ptr %.0375590, align 1 %295 = zext i8 %294 to i32 %296 = tail call i32 @isspace(i32 noundef %295) #3 %.not31.i266 = icmp eq i32 %296, 0 br i1 %.not31.i266, label %._crit_edge.i269, label %.lr.ph.i267 .lr.ph.i267: ; preds = %293, %.lr.ph.i267 - %297 = phi ptr [ %298, %.lr.ph.i267 ], [ %.0375592, %293 ] + %297 = phi ptr [ %298, %.lr.ph.i267 ], [ %.0375590, %293 ] %298 = getelementptr inbounds i8, ptr %297, i64 1 %299 = load i8, ptr %298, align 1 %300 = zext i8 %299 to i32 @@ -779,7 +779,7 @@ _conv_num.exit247: ; preds = %.critedge.i243 br i1 %.not.i268, label %._crit_edge.i269, label %.lr.ph.i267, !llvm.loop !11 ._crit_edge.i269: ; preds = %.lr.ph.i267, %293 - %.promoted32.i270 = phi ptr [ %.0375592, %293 ], [ %298, %.lr.ph.i267 ] + %.promoted32.i270 = phi ptr [ %.0375590, %293 ], [ %298, %.lr.ph.i267 ] %.lcssa30.i271 = phi i8 [ %294, %293 ], [ %299, %.lr.ph.i267 ] %302 = add i8 %.lcssa30.i271, -58 %or.cond27.i272 = icmp ult i8 %302, -10 @@ -820,14 +820,14 @@ _conv_num.exit281: ; preds = %.critedge.i277 br i1 %.not116, label %318, label %_conv_num.exit.thread 318: ; preds = %317 - %319 = load i8, ptr %.0375592, align 1 + %319 = load i8, ptr %.0375590, align 1 %320 = zext i8 %319 to i32 %321 = tail call i32 @isspace(i32 noundef %320) #3 %.not31.i283 = icmp eq i32 %321, 0 br i1 %.not31.i283, label %._crit_edge.i286, label %.lr.ph.i284 .lr.ph.i284: ; preds = %318, %.lr.ph.i284 - %322 = phi ptr [ %323, %.lr.ph.i284 ], [ %.0375592, %318 ] + %322 = phi ptr [ %323, %.lr.ph.i284 ], [ %.0375590, %318 ] %323 = getelementptr inbounds i8, ptr %322, i64 1 %324 = load i8, ptr %323, align 1 %325 = zext i8 %324 to i32 @@ -836,7 +836,7 @@ _conv_num.exit281: ; preds = %.critedge.i277 br i1 %.not.i285, label %._crit_edge.i286, label %.lr.ph.i284, !llvm.loop !11 ._crit_edge.i286: ; preds = %.lr.ph.i284, %318 - %.promoted32.i287 = phi ptr [ %.0375592, %318 ], [ %323, %.lr.ph.i284 ] + %.promoted32.i287 = phi ptr [ %.0375590, %318 ], [ %323, %.lr.ph.i284 ] %.lcssa30.i288 = phi i8 [ %319, %318 ], [ %324, %.lr.ph.i284 ] %327 = add i8 %.lcssa30.i288, -58 %or.cond27.i289 = icmp ult i8 %327, -10 @@ -873,14 +873,14 @@ _conv_num.exit281: ; preds = %.critedge.i277 br i1 %.not116, label %343, label %_conv_num.exit.thread 343: ; preds = %342 - %344 = load i8, ptr %.0375592, align 1 + %344 = load i8, ptr %.0375590, align 1 %345 = zext i8 %344 to i32 %346 = tail call i32 @isspace(i32 noundef %345) #3 %.not31.i300 = icmp eq i32 %346, 0 br i1 %.not31.i300, label %._crit_edge.i303, label %.lr.ph.i301 .lr.ph.i301: ; preds = %343, %.lr.ph.i301 - %347 = phi ptr [ %348, %.lr.ph.i301 ], [ %.0375592, %343 ] + %347 = phi ptr [ %348, %.lr.ph.i301 ], [ %.0375590, %343 ] %348 = getelementptr inbounds i8, ptr %347, i64 1 %349 = load i8, ptr %348, align 1 %350 = zext i8 %349 to i32 @@ -889,186 +889,182 @@ _conv_num.exit281: ; preds = %.critedge.i277 br i1 %.not.i302, label %._crit_edge.i303, label %.lr.ph.i301, !llvm.loop !11 ._crit_edge.i303: ; preds = %.lr.ph.i301, %343 - %.promoted32.i304 = phi ptr [ %.0375592, %343 ], [ %348, %.lr.ph.i301 ] + %.promoted32.i304 = phi ptr [ %.0375590, %343 ], [ %348, %.lr.ph.i301 ] %352 = phi i8 [ %344, %343 ], [ %349, %.lr.ph.i301 ] - %353 = add i8 %352, -58 - %or.cond27.i306 = icmp ult i8 %353, -10 - br i1 %or.cond27.i306, label %_conv_num.exit.thread, label %.critedge.i311 + %353 = add i8 %352, -55 + %or.cond929 = icmp ult i8 %353, -7 + br i1 %or.cond929, label %_conv_num.exit.thread, label %_conv_num.exit315 -.critedge.i311: ; preds = %._crit_edge.i303 +_conv_num.exit315: ; preds = %._crit_edge.i303 %354 = zext nneg i8 %352 to i32 %355 = add nsw i32 %354, -48 - %or.cond29.i312 = icmp ugt i32 %355, 6 - br i1 %or.cond29.i312, label %_conv_num.exit.thread, label %_conv_num.exit315 - -_conv_num.exit315: ; preds = %.critedge.i311 - %scevgep = getelementptr i8, ptr %.promoted32.i304, i64 1 + %356 = getelementptr inbounds i8, ptr %.promoted32.i304, i64 1 store i32 %355, ptr %8, align 4 br label %_conv_num.exit298 -356: ; preds = %.preheader428 - br i1 %.not114, label %357, label %_conv_num.exit.thread +357: ; preds = %.preheader428 + br i1 %.not114, label %358, label %_conv_num.exit.thread -357: ; preds = %356 - %358 = load i8, ptr %.0375592, align 1 - %359 = zext i8 %358 to i32 - %360 = tail call i32 @isspace(i32 noundef %359) #3 - %.not31.i317 = icmp eq i32 %360, 0 +358: ; preds = %357 + %359 = load i8, ptr %.0375590, align 1 + %360 = zext i8 %359 to i32 + %361 = tail call i32 @isspace(i32 noundef %360) #3 + %.not31.i317 = icmp eq i32 %361, 0 br i1 %.not31.i317, label %._crit_edge.i320, label %.lr.ph.i318 -.lr.ph.i318: ; preds = %357, %.lr.ph.i318 - %361 = phi ptr [ %362, %.lr.ph.i318 ], [ %.0375592, %357 ] - %362 = getelementptr inbounds i8, ptr %361, i64 1 - %363 = load i8, ptr %362, align 1 - %364 = zext i8 %363 to i32 - %365 = tail call i32 @isspace(i32 noundef %364) #3 - %.not.i319 = icmp eq i32 %365, 0 +.lr.ph.i318: ; preds = %358, %.lr.ph.i318 + %362 = phi ptr [ %363, %.lr.ph.i318 ], [ %.0375590, %358 ] + %363 = getelementptr inbounds i8, ptr %362, i64 1 + %364 = load i8, ptr %363, align 1 + %365 = zext i8 %364 to i32 + %366 = tail call i32 @isspace(i32 noundef %365) #3 + %.not.i319 = icmp eq i32 %366, 0 br i1 %.not.i319, label %._crit_edge.i320, label %.lr.ph.i318, !llvm.loop !11 -._crit_edge.i320: ; preds = %.lr.ph.i318, %357 - %.promoted32.i321 = phi ptr [ %.0375592, %357 ], [ %362, %.lr.ph.i318 ] - %.lcssa30.i322 = phi i8 [ %358, %357 ], [ %363, %.lr.ph.i318 ] - %366 = add i8 %.lcssa30.i322, -58 - %or.cond27.i323 = icmp ult i8 %366, -10 +._crit_edge.i320: ; preds = %.lr.ph.i318, %358 + %.promoted32.i321 = phi ptr [ %.0375590, %358 ], [ %363, %.lr.ph.i318 ] + %.lcssa30.i322 = phi i8 [ %359, %358 ], [ %364, %.lr.ph.i318 ] + %367 = add i8 %.lcssa30.i322, -58 + %or.cond27.i323 = icmp ult i8 %367, -10 br i1 %or.cond27.i323, label %_conv_num.exit.thread, label %.preheader.i324 -.preheader.i324: ; preds = %._crit_edge.i320, %377 - %367 = phi i8 [ %379, %377 ], [ %.lcssa30.i322, %._crit_edge.i320 ] - %368 = phi ptr [ %370, %377 ], [ %.promoted32.i321, %._crit_edge.i320 ] - %.021.i325 = phi i32 [ %373, %377 ], [ 0, %._crit_edge.i320 ] - %.0.i326 = phi i32 [ %378, %377 ], [ 9999, %._crit_edge.i320 ] - %369 = mul nsw i32 %.021.i325, 10 - %370 = getelementptr inbounds i8, ptr %368, i64 1 - %371 = zext nneg i8 %367 to i32 - %372 = add i32 %369, -48 - %373 = add i32 %372, %371 - %374 = icmp slt i32 %373, 1000 - %375 = add nsw i32 %.0.i326, -10 - %376 = icmp ult i32 %375, -19 - %or.cond.i327 = select i1 %374, i1 %376, i1 false - br i1 %or.cond.i327, label %377, label %.critedge.i328 - -377: ; preds = %.preheader.i324 - %378 = udiv i32 %.0.i326, 10 - %379 = load i8, ptr %370, align 1 - %380 = add i8 %379, -48 - %or.cond28.i331 = icmp ult i8 %380, 10 +.preheader.i324: ; preds = %._crit_edge.i320, %378 + %368 = phi i8 [ %380, %378 ], [ %.lcssa30.i322, %._crit_edge.i320 ] + %369 = phi ptr [ %371, %378 ], [ %.promoted32.i321, %._crit_edge.i320 ] + %.021.i325 = phi i32 [ %374, %378 ], [ 0, %._crit_edge.i320 ] + %.0.i326 = phi i32 [ %379, %378 ], [ 9999, %._crit_edge.i320 ] + %370 = mul nsw i32 %.021.i325, 10 + %371 = getelementptr inbounds i8, ptr %369, i64 1 + %372 = zext nneg i8 %368 to i32 + %373 = add i32 %370, -48 + %374 = add i32 %373, %372 + %375 = icmp slt i32 %374, 1000 + %376 = add nsw i32 %.0.i326, -10 + %377 = icmp ult i32 %376, -19 + %or.cond.i327 = select i1 %375, i1 %377, i1 false + br i1 %or.cond.i327, label %378, label %.critedge.i328 + +378: ; preds = %.preheader.i324 + %379 = udiv i32 %.0.i326, 10 + %380 = load i8, ptr %371, align 1 + %381 = add i8 %380, -48 + %or.cond28.i331 = icmp ult i8 %381, 10 br i1 %or.cond28.i331, label %.preheader.i324, label %.critedge.i328, !llvm.loop !12 -.critedge.i328: ; preds = %377, %.preheader.i324 - %or.cond29.i329 = icmp ugt i32 %373, 9999 +.critedge.i328: ; preds = %378, %.preheader.i324 + %or.cond29.i329 = icmp ugt i32 %374, 9999 br i1 %or.cond29.i329, label %_conv_num.exit.thread, label %_conv_num.exit332 _conv_num.exit332: ; preds = %.critedge.i328 store i32 -1, ptr %6, align 4 - %381 = add nsw i32 %373, -1900 - store i32 %381, ptr %7, align 4 + %382 = add nsw i32 %374, -1900 + store i32 %382, ptr %7, align 4 br label %_conv_num.exit298 -382: ; preds = %.preheader428 - %383 = load i8, ptr %.0375592, align 1 - %384 = zext i8 %383 to i32 - %385 = tail call i32 @isspace(i32 noundef %384) #3 - %.not31.i334 = icmp eq i32 %385, 0 +383: ; preds = %.preheader428 + %384 = load i8, ptr %.0375590, align 1 + %385 = zext i8 %384 to i32 + %386 = tail call i32 @isspace(i32 noundef %385) #3 + %.not31.i334 = icmp eq i32 %386, 0 br i1 %.not31.i334, label %._crit_edge.i337, label %.lr.ph.i335 -.lr.ph.i335: ; preds = %382, %.lr.ph.i335 - %386 = phi ptr [ %387, %.lr.ph.i335 ], [ %.0375592, %382 ] - %387 = getelementptr inbounds i8, ptr %386, i64 1 - %388 = load i8, ptr %387, align 1 - %389 = zext i8 %388 to i32 - %390 = tail call i32 @isspace(i32 noundef %389) #3 - %.not.i336 = icmp eq i32 %390, 0 +.lr.ph.i335: ; preds = %383, %.lr.ph.i335 + %387 = phi ptr [ %388, %.lr.ph.i335 ], [ %.0375590, %383 ] + %388 = getelementptr inbounds i8, ptr %387, i64 1 + %389 = load i8, ptr %388, align 1 + %390 = zext i8 %389 to i32 + %391 = tail call i32 @isspace(i32 noundef %390) #3 + %.not.i336 = icmp eq i32 %391, 0 br i1 %.not.i336, label %._crit_edge.i337, label %.lr.ph.i335, !llvm.loop !11 -._crit_edge.i337: ; preds = %.lr.ph.i335, %382 - %.promoted32.i338 = phi ptr [ %.0375592, %382 ], [ %387, %.lr.ph.i335 ] - %.lcssa30.i339 = phi i8 [ %383, %382 ], [ %388, %.lr.ph.i335 ] - %391 = add i8 %.lcssa30.i339, -58 - %or.cond27.i340 = icmp ult i8 %391, -10 +._crit_edge.i337: ; preds = %.lr.ph.i335, %383 + %.promoted32.i338 = phi ptr [ %.0375590, %383 ], [ %388, %.lr.ph.i335 ] + %.lcssa30.i339 = phi i8 [ %384, %383 ], [ %389, %.lr.ph.i335 ] + %392 = add i8 %.lcssa30.i339, -58 + %or.cond27.i340 = icmp ult i8 %392, -10 br i1 %or.cond27.i340, label %_conv_num.exit.thread, label %.preheader.i341 -.preheader.i341: ; preds = %._crit_edge.i337, %402 - %392 = phi i8 [ %404, %402 ], [ %.lcssa30.i339, %._crit_edge.i337 ] - %393 = phi ptr [ %395, %402 ], [ %.promoted32.i338, %._crit_edge.i337 ] - %.021.i342 = phi i32 [ %398, %402 ], [ 0, %._crit_edge.i337 ] - %.0.i343 = phi i32 [ %403, %402 ], [ 99, %._crit_edge.i337 ] - %394 = mul nsw i32 %.021.i342, 10 - %395 = getelementptr inbounds i8, ptr %393, i64 1 - %396 = zext nneg i8 %392 to i32 - %397 = add i32 %394, -48 - %398 = add i32 %397, %396 - %399 = icmp slt i32 %398, 10 - %400 = add nsw i32 %.0.i343, -10 - %401 = icmp ult i32 %400, -19 - %or.cond.i344 = select i1 %399, i1 %401, i1 false - br i1 %or.cond.i344, label %402, label %.critedge.i345 - -402: ; preds = %.preheader.i341 - %403 = udiv i32 %.0.i343, 10 - %404 = load i8, ptr %395, align 1 - %405 = add i8 %404, -48 - %or.cond28.i348 = icmp ult i8 %405, 10 +.preheader.i341: ; preds = %._crit_edge.i337, %403 + %393 = phi i8 [ %405, %403 ], [ %.lcssa30.i339, %._crit_edge.i337 ] + %394 = phi ptr [ %396, %403 ], [ %.promoted32.i338, %._crit_edge.i337 ] + %.021.i342 = phi i32 [ %399, %403 ], [ 0, %._crit_edge.i337 ] + %.0.i343 = phi i32 [ %404, %403 ], [ 99, %._crit_edge.i337 ] + %395 = mul nsw i32 %.021.i342, 10 + %396 = getelementptr inbounds i8, ptr %394, i64 1 + %397 = zext nneg i8 %393 to i32 + %398 = add i32 %395, -48 + %399 = add i32 %398, %397 + %400 = icmp slt i32 %399, 10 + %401 = add nsw i32 %.0.i343, -10 + %402 = icmp ult i32 %401, -19 + %or.cond.i344 = select i1 %400, i1 %402, i1 false + br i1 %or.cond.i344, label %403, label %.critedge.i345 + +403: ; preds = %.preheader.i341 + %404 = udiv i32 %.0.i343, 10 + %405 = load i8, ptr %396, align 1 + %406 = add i8 %405, -48 + %or.cond28.i348 = icmp ult i8 %406, 10 br i1 %or.cond28.i348, label %.preheader.i341, label %.critedge.i345, !llvm.loop !12 -.critedge.i345: ; preds = %402, %.preheader.i341 - %or.cond29.i346 = icmp ugt i32 %398, 99 +.critedge.i345: ; preds = %403, %.preheader.i341 + %or.cond29.i346 = icmp ugt i32 %399, 99 br i1 %or.cond29.i346, label %_conv_num.exit.thread, label %_conv_num.exit349 _conv_num.exit349: ; preds = %.critedge.i345 - store i32 %398, ptr %6, align 4 + store i32 %399, ptr %6, align 4 br label %_conv_num.exit298 -406: ; preds = %.preheader428, %.preheader428 +407: ; preds = %.preheader428, %.preheader428 br i1 %.not111, label %.preheader427, label %_conv_num.exit.thread -.preheader427: ; preds = %406, %.preheader427 - %.3378 = phi ptr [ %410, %.preheader427 ], [ %.0375592, %406 ] - %407 = load i8, ptr %.3378, align 1 - %408 = zext i8 %407 to i32 - %409 = tail call i32 @isspace(i32 noundef %408) #3 - %.not112 = icmp eq i32 %409, 0 - %410 = getelementptr inbounds i8, ptr %.3378, i64 1 +.preheader427: ; preds = %407, %.preheader427 + %.3378 = phi ptr [ %411, %.preheader427 ], [ %.0375590, %407 ] + %408 = load i8, ptr %.3378, align 1 + %409 = zext i8 %408 to i32 + %410 = tail call i32 @isspace(i32 noundef %409) #3 + %.not112 = icmp eq i32 %410, 0 + %411 = getelementptr inbounds i8, ptr %.3378, i64 1 br i1 %.not112, label %_conv_num.exit298, label %.preheader427, !llvm.loop !13 _conv_num.exit298: ; preds = %.preheader427, %_conv_num.exit349, %_conv_num.exit315, %.critedge.i294, %_conv_num.exit281, %_conv_num.exit247, %_conv_num.exit213, %_conv_num.exit196, %_conv_num.exit179, %51, %48, %45, %42, %39, %36, %33, %.loopexit, %_conv_num.exit332, %290, %279, %267, %214, %_conv_num.exit, %.thread384, %.thread - %.2377 = phi ptr [ %395, %_conv_num.exit349 ], [ %370, %_conv_num.exit332 ], [ %scevgep, %_conv_num.exit315 ], [ %306, %_conv_num.exit281 ], [ %280, %279 ], [ %291, %290 ], [ %255, %267 ], [ %230, %_conv_num.exit247 ], [ %202, %214 ], [ %176, %_conv_num.exit213 ], [ %150, %_conv_num.exit196 ], [ %123, %_conv_num.exit179 ], [ %97, %_conv_num.exit ], [ %82, %.thread384 ], [ %67, %.thread ], [ %52, %51 ], [ %49, %48 ], [ %46, %45 ], [ %43, %42 ], [ %40, %39 ], [ %37, %36 ], [ %34, %33 ], [ %28, %.loopexit ], [ %331, %.critedge.i294 ], [ %.3378, %.preheader427 ] + %.2377 = phi ptr [ %396, %_conv_num.exit349 ], [ %371, %_conv_num.exit332 ], [ %356, %_conv_num.exit315 ], [ %306, %_conv_num.exit281 ], [ %280, %279 ], [ %291, %290 ], [ %255, %267 ], [ %230, %_conv_num.exit247 ], [ %202, %214 ], [ %176, %_conv_num.exit213 ], [ %150, %_conv_num.exit196 ], [ %123, %_conv_num.exit179 ], [ %97, %_conv_num.exit ], [ %82, %.thread384 ], [ %67, %.thread ], [ %52, %51 ], [ %49, %48 ], [ %46, %45 ], [ %43, %42 ], [ %40, %39 ], [ %37, %36 ], [ %34, %33 ], [ %28, %.loopexit ], [ %331, %.critedge.i294 ], [ %.3378, %.preheader427 ] %.398 = phi ptr [ %26, %_conv_num.exit349 ], [ %26, %_conv_num.exit332 ], [ %26, %_conv_num.exit315 ], [ %26, %_conv_num.exit281 ], [ %26, %279 ], [ %26, %290 ], [ %26, %267 ], [ %26, %_conv_num.exit247 ], [ %26, %214 ], [ %26, %_conv_num.exit213 ], [ %26, %_conv_num.exit196 ], [ %26, %_conv_num.exit179 ], [ %26, %_conv_num.exit ], [ %26, %.thread384 ], [ %26, %.thread ], [ %26, %51 ], [ %26, %48 ], [ %26, %45 ], [ %26, %42 ], [ %26, %39 ], [ %26, %36 ], [ %26, %33 ], [ %.196, %.loopexit ], [ %26, %.critedge.i294 ], [ %26, %.preheader427 ] - %411 = load i8, ptr %.398, align 1 - %.not591 = icmp eq i8 %411, 0 - br i1 %.not591, label %.outer._crit_edge, label %.lr.ph.backedge + %412 = load i8, ptr %.398, align 1 + %.not589 = icmp eq i8 %412, 0 + br i1 %.not589, label %.outer._crit_edge, label %.lr.ph.backedge .outer._crit_edge: ; preds = %_conv_num.exit298, %21, %4 %.0375.lcssa = phi ptr [ %0, %4 ], [ %.2377, %_conv_num.exit298 ], [ %.1376, %21 ] - %412 = getelementptr inbounds i8, ptr %3, i64 4 - %413 = load i32, ptr %412, align 4 - %.not108 = icmp eq i32 %413, -1 - br i1 %.not108, label %_conv_num.exit.thread, label %414 - -414: ; preds = %.outer._crit_edge - %415 = load i32, ptr %3, align 4 - %416 = icmp eq i32 %415, 1900 - br i1 %416, label %417, label %420 - -417: ; preds = %414 - %418 = icmp slt i32 %413, 69 - %419 = add nsw i32 %413, 100 - %spec.select = select i1 %418, i32 %419, i32 %413 + %413 = getelementptr inbounds i8, ptr %3, i64 4 + %414 = load i32, ptr %413, align 4 + %.not108 = icmp eq i32 %414, -1 + br i1 %.not108, label %_conv_num.exit.thread, label %415 + +415: ; preds = %.outer._crit_edge + %416 = load i32, ptr %3, align 4 + %417 = icmp eq i32 %416, 1900 + br i1 %417, label %418, label %421 + +418: ; preds = %415 + %419 = icmp slt i32 %414, 69 + %420 = add nsw i32 %414, 100 + %spec.select = select i1 %419, i32 %420, i32 %414 br label %_conv_num.exit.thread.sink.split -420: ; preds = %414 - %421 = add i32 %413, -1900 - %422 = add i32 %421, %415 +421: ; preds = %415 + %422 = add i32 %414, -1900 + %423 = add i32 %422, %416 br label %_conv_num.exit.thread.sink.split -_conv_num.exit.thread.sink.split: ; preds = %417, %420 - %.sink = phi i32 [ %422, %420 ], [ %spec.select, %417 ] - %423 = getelementptr inbounds i8, ptr %2, i64 20 - store i32 %.sink, ptr %423, align 4 +_conv_num.exit.thread.sink.split: ; preds = %418, %421 + %.sink = phi i32 [ %423, %421 ], [ %spec.select, %418 ] + %424 = getelementptr inbounds i8, ptr %2, i64 20 + store i32 %.sink, ptr %424, align 4 br label %_conv_num.exit.thread -_conv_num.exit.thread: ; preds = %.critedge.i345, %._crit_edge.i337, %.critedge.i328, %._crit_edge.i320, %.critedge.i311, %._crit_edge.i303, %.critedge.i294, %._crit_edge.i286, %.critedge.i277, %._crit_edge.i269, %.critedge.i260, %._crit_edge.i252, %.critedge.i243, %._crit_edge.i235, %.critedge.i226, %._crit_edge.i218, %.critedge.i209, %._crit_edge.i201, %.critedge.i192, %._crit_edge.i184, %.critedge.i175, %._crit_edge.i167, %.critedge.i, %._crit_edge.i, %406, %356, %342, %317, %292, %281, %284, %273, %269, %241, %216, %188, %162, %161, %136, %135, %109, %83, %68, %53, %51, %50, %48, %47, %45, %44, %42, %41, %39, %38, %36, %35, %33, %32, %.loopexit, %.preheader428, %31, %30, %80, %65, %_conv_num.exit.thread.sink.split, %.outer._crit_edge - %.094 = phi ptr [ %.0375.lcssa, %.outer._crit_edge ], [ %.0375.lcssa, %_conv_num.exit.thread.sink.split ], [ null, %65 ], [ null, %80 ], [ null, %30 ], [ null, %31 ], [ null, %.preheader428 ], [ null, %.loopexit ], [ null, %32 ], [ null, %33 ], [ null, %35 ], [ null, %36 ], [ null, %38 ], [ null, %39 ], [ null, %41 ], [ null, %42 ], [ null, %44 ], [ null, %45 ], [ null, %47 ], [ null, %48 ], [ null, %50 ], [ null, %51 ], [ null, %53 ], [ null, %68 ], [ null, %83 ], [ null, %109 ], [ null, %135 ], [ null, %136 ], [ null, %161 ], [ null, %162 ], [ null, %188 ], [ null, %216 ], [ null, %241 ], [ null, %269 ], [ null, %273 ], [ null, %284 ], [ null, %281 ], [ null, %292 ], [ null, %317 ], [ null, %342 ], [ null, %356 ], [ null, %406 ], [ null, %._crit_edge.i ], [ null, %.critedge.i ], [ null, %._crit_edge.i167 ], [ null, %.critedge.i175 ], [ null, %._crit_edge.i184 ], [ null, %.critedge.i192 ], [ null, %._crit_edge.i201 ], [ null, %.critedge.i209 ], [ null, %._crit_edge.i218 ], [ null, %.critedge.i226 ], [ null, %._crit_edge.i235 ], [ null, %.critedge.i243 ], [ null, %._crit_edge.i252 ], [ null, %.critedge.i260 ], [ null, %._crit_edge.i269 ], [ null, %.critedge.i277 ], [ null, %._crit_edge.i286 ], [ null, %.critedge.i294 ], [ null, %._crit_edge.i303 ], [ null, %.critedge.i311 ], [ null, %._crit_edge.i320 ], [ null, %.critedge.i328 ], [ null, %._crit_edge.i337 ], [ null, %.critedge.i345 ] +_conv_num.exit.thread: ; preds = %.critedge.i345, %._crit_edge.i337, %.critedge.i328, %._crit_edge.i320, %._crit_edge.i303, %.critedge.i294, %._crit_edge.i286, %.critedge.i277, %._crit_edge.i269, %.critedge.i260, %._crit_edge.i252, %.critedge.i243, %._crit_edge.i235, %.critedge.i226, %._crit_edge.i218, %.critedge.i209, %._crit_edge.i201, %.critedge.i192, %._crit_edge.i184, %.critedge.i175, %._crit_edge.i167, %.critedge.i, %._crit_edge.i, %407, %357, %342, %317, %292, %281, %284, %273, %269, %241, %216, %188, %162, %161, %136, %135, %109, %83, %68, %53, %51, %50, %48, %47, %45, %44, %42, %41, %39, %38, %36, %35, %33, %32, %.loopexit, %.preheader428, %31, %30, %80, %65, %_conv_num.exit.thread.sink.split, %.outer._crit_edge + %.094 = phi ptr [ %.0375.lcssa, %.outer._crit_edge ], [ %.0375.lcssa, %_conv_num.exit.thread.sink.split ], [ null, %65 ], [ null, %80 ], [ null, %30 ], [ null, %31 ], [ null, %.preheader428 ], [ null, %.loopexit ], [ null, %32 ], [ null, %33 ], [ null, %35 ], [ null, %36 ], [ null, %38 ], [ null, %39 ], [ null, %41 ], [ null, %42 ], [ null, %44 ], [ null, %45 ], [ null, %47 ], [ null, %48 ], [ null, %50 ], [ null, %51 ], [ null, %53 ], [ null, %68 ], [ null, %83 ], [ null, %109 ], [ null, %135 ], [ null, %136 ], [ null, %161 ], [ null, %162 ], [ null, %188 ], [ null, %216 ], [ null, %241 ], [ null, %269 ], [ null, %273 ], [ null, %284 ], [ null, %281 ], [ null, %292 ], [ null, %317 ], [ null, %342 ], [ null, %357 ], [ null, %407 ], [ null, %._crit_edge.i ], [ null, %.critedge.i ], [ null, %._crit_edge.i167 ], [ null, %.critedge.i175 ], [ null, %._crit_edge.i184 ], [ null, %.critedge.i192 ], [ null, %._crit_edge.i201 ], [ null, %.critedge.i209 ], [ null, %._crit_edge.i218 ], [ null, %.critedge.i226 ], [ null, %._crit_edge.i235 ], [ null, %.critedge.i243 ], [ null, %._crit_edge.i252 ], [ null, %.critedge.i260 ], [ null, %._crit_edge.i269 ], [ null, %.critedge.i277 ], [ null, %._crit_edge.i286 ], [ null, %.critedge.i294 ], [ null, %._crit_edge.i303 ], [ null, %._crit_edge.i320 ], [ null, %.critedge.i328 ], [ null, %._crit_edge.i337 ], [ null, %.critedge.i345 ] ret ptr %.094 } diff --git a/bench/postgres/optimized/freespace.ll b/bench/postgres/optimized/freespace.ll index 66d8ec61e9b..a36e395835c 100644 --- a/bench/postgres/optimized/freespace.ll +++ b/bench/postgres/optimized/freespace.ll @@ -802,7 +802,7 @@ define internal fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %1, i32 n 8: ; preds = %5 store i8 1, ptr %4, align 1 - br label %64 + br label %63 9: ; preds = %5 store i8 0, ptr %4, align 1 @@ -855,84 +855,83 @@ BufferGetPage.exit: ; preds = %11, %17 br i1 %31, label %.lr.ph, label %._crit_edge, !llvm.loop !8 ._crit_edge: ; preds = %.lr.ph - %32 = and i64 %29, 4294967295 - %33 = trunc nuw nsw i64 %30 to i32 - %34 = lshr i64 %.sroa.018.0.in76, 32 - %.lhs.trunc = trunc nuw i64 %34 to i32 - %35 = urem i32 %.lhs.trunc, 4069 - %.sroa.3.0 = trunc i64 %29 to i32 + %32 = trunc nuw nsw i64 %30 to i32 + %33 = lshr i64 %.sroa.018.0.in76, 32 + %.lhs.trunc = trunc nuw i64 %33 to i32 + %34 = urem i32 %.lhs.trunc, 4069 + %.sroa.3.0 = trunc nuw nsw i64 %29 to i32 %.sroa.4.0 = trunc nuw nsw i64 %28 to i32 - %36 = icmp eq i64 %28, %.sroa.5.0.extract.shift - %37 = icmp sgt i32 %.sroa.4.0, %.sroa.5.0.extract.trunc - %. = select i1 %37, i32 4069, i32 0 - %.060 = select i1 %36, i32 %35, i32 %. - %38 = icmp eq i64 %32, %.sroa.5.0.extract.shift - %39 = icmp sgt i32 %.sroa.3.0, %.sroa.5.0.extract.trunc - %.64 = select i1 %39, i32 4068, i32 -1 - %.059 = select i1 %38, i32 %33, i32 %.64 + %35 = icmp eq i64 %28, %.sroa.5.0.extract.shift + %36 = icmp sgt i32 %.sroa.4.0, %.sroa.5.0.extract.trunc + %. = select i1 %36, i32 4069, i32 0 + %.060 = select i1 %35, i32 %34, i32 %. + %37 = icmp eq i64 %29, %.sroa.5.0.extract.shift + %38 = icmp sgt i32 %.sroa.3.0, %.sroa.5.0.extract.trunc + %.64 = select i1 %38, i32 4068, i32 -1 + %.059 = select i1 %37, i32 %32, i32 %.64 %.not82 = icmp sgt i32 %.060, %.059 br i1 %.not82, label %.loopexit, label %.lr.ph85 .lr.ph85: ; preds = %._crit_edge - %40 = add i64 %1, 4294967295 - %41 = mul nuw nsw i64 %.sroa.5.0.extract.shift, 4069 - %.sroa.01.0.insert.ext.i = and i64 %40, 4294967295 - br label %42 - -42: ; preds = %.lr.ph85, %60 - %.06183 = phi i32 [ %.060, %.lr.ph85 ], [ %61, %60 ] - %43 = load volatile i32, ptr @InterruptPending, align 4 - %.not62 = icmp eq i32 %43, 0 - br i1 %.not62, label %45, label %44 - -44: ; preds = %42 + %39 = add i64 %1, 4294967295 + %40 = mul nuw nsw i64 %.sroa.5.0.extract.shift, 4069 + %.sroa.01.0.insert.ext.i = and i64 %39, 4294967295 + br label %41 + +41: ; preds = %.lr.ph85, %59 + %.06183 = phi i32 [ %.060, %.lr.ph85 ], [ %60, %59 ] + %42 = load volatile i32, ptr @InterruptPending, align 4 + %.not62 = icmp eq i32 %42, 0 + br i1 %.not62, label %44, label %43 + +43: ; preds = %41 tail call void @ProcessInterrupts() #6 - br label %45 - -45: ; preds = %42, %44 - %46 = load i8, ptr %6, align 1 - %47 = trunc i8 %46 to i1 - br i1 %47, label %54, label %48 - -48: ; preds = %45 - %49 = and i32 %.06183, 65535 - %50 = zext nneg i32 %49 to i64 - %51 = add nuw nsw i64 %41, %50 - %.sroa.22.0.insert.ext.i = shl i64 %51, 32 + br label %44 + +44: ; preds = %41, %43 + %45 = load i8, ptr %6, align 1 + %46 = trunc i8 %45 to i1 + br i1 %46, label %53, label %47 + +47: ; preds = %44 + %48 = and i32 %.06183, 65535 + %49 = zext nneg i32 %48 to i64 + %50 = add nuw nsw i64 %40, %49 + %.sroa.22.0.insert.ext.i = shl i64 %50, 32 %.sroa.01.0.insert.insert.i = or disjoint i64 %.sroa.22.0.insert.ext.i, %.sroa.01.0.insert.ext.i - %52 = call fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %.sroa.01.0.insert.insert.i, i32 noundef %2, i32 noundef %3, ptr noundef %6) - %53 = zext i8 %52 to i32 - br label %54 - -54: ; preds = %45, %48 - %.058 = phi i32 [ %53, %48 ], [ 0, %45 ] - %55 = tail call zeroext i8 @fsm_get_avail(ptr noundef %.0.i.i, i32 noundef %.06183) #6 - %56 = zext i8 %55 to i32 - %.not63 = icmp eq i32 %.058, %56 - br i1 %.not63, label %60, label %57 - -57: ; preds = %54 + %51 = call fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %.sroa.01.0.insert.insert.i, i32 noundef %2, i32 noundef %3, ptr noundef %6) + %52 = zext i8 %51 to i32 + br label %53 + +53: ; preds = %44, %47 + %.058 = phi i32 [ %52, %47 ], [ 0, %44 ] + %54 = tail call zeroext i8 @fsm_get_avail(ptr noundef %.0.i.i, i32 noundef %.06183) #6 + %55 = zext i8 %54 to i32 + %.not63 = icmp eq i32 %.058, %55 + br i1 %.not63, label %59, label %56 + +56: ; preds = %53 tail call void @LockBuffer(i32 noundef %7, i32 noundef 2) #6 - %58 = trunc nuw i32 %.058 to i8 - %59 = tail call zeroext i1 @fsm_set_avail(ptr noundef %.0.i.i, i32 noundef %.06183, i8 noundef zeroext %58) #6 + %57 = trunc nuw i32 %.058 to i8 + %58 = tail call zeroext i1 @fsm_set_avail(ptr noundef %.0.i.i, i32 noundef %.06183, i8 noundef zeroext %57) #6 tail call void @MarkBufferDirtyHint(i32 noundef %7, i1 noundef zeroext false) #6 tail call void @LockBuffer(i32 noundef %7, i32 noundef 0) #6 - br label %60 + br label %59 -60: ; preds = %54, %57 - %61 = add i32 %.06183, 1 +59: ; preds = %53, %56 + %60 = add i32 %.06183, 1 %exitcond.not = icmp eq i32 %.06183, %.059 - br i1 %exitcond.not, label %.loopexit, label %42, !llvm.loop !9 + br i1 %exitcond.not, label %.loopexit, label %41, !llvm.loop !9 -.loopexit: ; preds = %60, %._crit_edge, %BufferGetPage.exit - %62 = tail call zeroext i8 @fsm_get_max_avail(ptr noundef %.0.i.i) #6 - %63 = getelementptr i8, ptr %.0.i.i, i64 24 - store i32 0, ptr %63, align 4 +.loopexit: ; preds = %59, %._crit_edge, %BufferGetPage.exit + %61 = tail call zeroext i8 @fsm_get_max_avail(ptr noundef %.0.i.i) #6 + %62 = getelementptr i8, ptr %.0.i.i, i64 24 + store i32 0, ptr %62, align 4 tail call void @ReleaseBuffer(i32 noundef %7) #6 - br label %64 + br label %63 -64: ; preds = %.loopexit, %8 - %.0 = phi i8 [ %62, %.loopexit ], [ 0, %8 ] +63: ; preds = %.loopexit, %8 + %.0 = phi i8 [ %61, %.loopexit ], [ 0, %8 ] ret i8 %.0 } diff --git a/bench/sentencepiece/optimized/strutil.cc.ll b/bench/sentencepiece/optimized/strutil.cc.ll index 10ce7eb6e9e..eb90668658e 100644 --- a/bench/sentencepiece/optimized/strutil.cc.ll +++ b/bench/sentencepiece/optimized/strutil.cc.ll @@ -1630,7 +1630,7 @@ define noundef nonnull ptr @_ZN6google8protobuf17FastInt64ToBufferElPc(i64 nound %29 = getelementptr inbounds i8, ptr %.1, i64 -1 store i8 %28, ptr %.1, align 1 %30 = udiv i64 %.127, 10 - %.not = icmp ult i64 %.127, 10 + %.not = icmp samesign ult i64 %.127, 10 br i1 %.not, label %31, label %25, !llvm.loop !22 31: ; preds = %25 @@ -1694,7 +1694,7 @@ define noundef nonnull ptr @_ZN6google8protobuf17FastInt32ToBufferEiPc(i32 nound %29 = getelementptr inbounds i8, ptr %.1, i64 -1 store i8 %28, ptr %.1, align 1 %30 = udiv i32 %.127, 10 - %.not = icmp ult i32 %.127, 10 + %.not = icmp samesign ult i32 %.127, 10 br i1 %.not, label %31, label %25, !llvm.loop !24 31: ; preds = %25 @@ -2194,7 +2194,7 @@ define void @_ZN6google8protobuf10SimpleItoaB5cxx11Ei(ptr dead_on_unwind noalias %31 = getelementptr inbounds i8, ptr %.1.i, i64 -1 store i8 %30, ptr %.1.i, align 1 %32 = udiv i32 %.127.i, 10 - %.not.i = icmp ult i32 %.127.i, 10 + %.not.i = icmp samesign ult i32 %.127.i, 10 br i1 %.not.i, label %33, label %27, !llvm.loop !24 33: ; preds = %27 @@ -2332,7 +2332,7 @@ define void @_ZN6google8protobuf10SimpleItoaB5cxx11El(ptr dead_on_unwind noalias %31 = getelementptr inbounds i8, ptr %.1.i, i64 -1 store i8 %30, ptr %.1.i, align 1 %32 = udiv i64 %.127.i, 10 - %.not.i = icmp ult i64 %.127.i, 10 + %.not.i = icmp samesign ult i64 %.127.i, 10 br i1 %.not.i, label %33, label %27, !llvm.loop !22 33: ; preds = %27 @@ -2470,7 +2470,7 @@ define void @_ZN6google8protobuf10SimpleItoaB5cxx11Ex(ptr dead_on_unwind noalias %31 = getelementptr inbounds i8, ptr %.1.i, i64 -1 store i8 %30, ptr %.1.i, align 1 %32 = udiv i64 %.127.i, 10 - %.not.i = icmp ult i64 %.127.i, 10 + %.not.i = icmp samesign ult i64 %.127.i, 10 br i1 %.not.i, label %33, label %27, !llvm.loop !22 33: ; preds = %27 diff --git a/bench/tomlplusplus/optimized/toml.cpp.ll b/bench/tomlplusplus/optimized/toml.cpp.ll index 453ee773540..212a9a8bad4 100644 --- a/bench/tomlplusplus/optimized/toml.cpp.ll +++ b/bench/tomlplusplus/optimized/toml.cpp.ll @@ -2651,8 +2651,8 @@ if.end.i.i.i: ; preds = %if.end6.i if.end5.i.i.i: ; preds = %if.end.i.i.i %cmp6.i.i.i = icmp ult i16 %0, 1000 %cmp11.i.i.i = icmp ult i16 %0, 10000 - %spec.select.i = select i1 %cmp11.i.i.i, i32 4, i32 5 - %retval.0.i.i.i.ph = select i1 %cmp6.i.i.i, i32 3, i32 %spec.select.i + %..i = select i1 %cmp11.i.i.i, i32 4, i32 5 + %retval.0.i.i.i.ph = select i1 %cmp6.i.i.i, i32 3, i32 %..i %sub.i.i.i = add nsw i32 %retval.0.i.i.i.ph, -1 br label %while.body.i.i.i @@ -2681,11 +2681,11 @@ while.body.i.i.i: ; preds = %while.body.i.i.i, % br i1 %cmp.i9.i.i, label %while.body.i.i.i, label %while.end.i.i.i.loopexit, !llvm.loop !35 while.end.i.i.i.loopexit: ; preds = %while.body.i.i.i - %conv.i23.i125 = zext nneg i32 %retval.0.i.i.i.ph to i64 + %conv.i23.i124 = zext nneg i32 %retval.0.i.i.i.ph to i64 br label %while.end.i.i.i while.end.i.i.i: ; preds = %while.end.i.i.i.loopexit, %if.end6.i, %if.end.i.i.i - %conv.i23.i128 = phi i64 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ %conv.i23.i125, %while.end.i.i.i.loopexit ] + %conv.i23.i127 = phi i64 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ %conv.i23.i124, %while.end.i.i.i.loopexit ] %__val.addr.0.lcssa.i.i.i = phi i32 [ %conv.i, %if.end6.i ], [ %conv.i, %if.end.i.i.i ], [ %div.i.i.i, %while.end.i.i.i.loopexit ] %cmp9.i.i.i = icmp samesign ugt i32 %__val.addr.0.lcssa.i.i.i, 9 br i1 %cmp9.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i @@ -2711,18 +2711,18 @@ if.else.i.i.i: ; preds = %while.end.i.i.i _ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit: ; preds = %if.then.i.i.i, %if.else.i.i.i %.sink.i = phi i8 [ %conv.i.i.i, %if.else.i.i.i ], [ %4, %if.then.i.i.i ] store i8 %.sink.i, ptr %buf.i.i, align 16 - %cmp1617.i.i = icmp samesign ult i64 %conv.i23.i128, 4 + %cmp1617.i.i = icmp samesign ult i64 %conv.i23.i127, 4 br i1 %cmp1617.i.i, label %for.body17.i.i, label %for.end21.i.i for.body17.i.i: ; preds = %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, %for.body17.i.i - %i14.018.i.i = phi i64 [ %inc20.i.i, %for.body17.i.i ], [ %conv.i23.i128, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit ] + %i14.018.i.i = phi i64 [ %inc20.i.i, %for.body17.i.i ], [ %conv.i23.i127, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit ] %call18.i.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) %inc20.i.i = add nuw nsw i64 %i14.018.i.i, 1 %exitcond.not = icmp eq i64 %inc20.i.i, 4 br i1 %exitcond.not, label %for.end21.i.i, label %for.body17.i.i, !llvm.loop !24 for.end21.i.i: ; preds = %for.body17.i.i, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit - %call.i15.i.i = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i, i64 noundef %conv.i23.i128) + %call.i15.i.i = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i, i64 noundef %conv.i23.i127) br label %_ZN4toml2v34impl15print_to_streamERSotNS0_11value_flagsEm.exit _ZN4toml2v34impl15print_to_streamERSotNS0_11value_flagsEm.exit: ; preds = %for.body.i.i, %for.end21.i.i @@ -2745,25 +2745,25 @@ if.end6.i56: ; preds = %_ZN4toml2v34impl15p %cmp19.i.i.i57 = icmp ult i8 %6, 10 %cmp3.i.i.i58 = icmp ult i8 %6, 100 %7 = select i1 %cmp3.i.i.i58, i64 2, i64 3 - %conv.i23.i62 = select i1 %cmp19.i.i.i57, i64 1, i64 %7 - %cmp14.i.i.i63 = icmp ugt i8 %6, 99 - br i1 %cmp14.i.i.i63, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, label %while.end.i.i.i64 + %conv.i23.i61 = select i1 %cmp19.i.i.i57, i64 1, i64 %7 + %cmp14.i.i.i62 = icmp ugt i8 %6, 99 + br i1 %cmp14.i.i.i62, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, label %while.end.i.i.i63 -while.end.i.i.i64: ; preds = %if.end6.i56 - %cmp9.i.i.i65 = icmp ugt i8 %6, 9 - br i1 %cmp9.i.i.i65, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, label %for.body17.i.i19 +while.end.i.i.i63: ; preds = %if.end6.i56 + %cmp9.i.i.i64 = icmp ugt i8 %6, 9 + br i1 %cmp9.i.i.i64, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, label %for.body17.i.i19 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread: ; preds = %while.end.i.i.i64 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread: ; preds = %while.end.i.i.i63 %8 = shl nuw i8 %6, 1 %9 = or disjoint i8 %8, 1 - %idxprom13.i.i.i75 = zext i8 %9 to i64 - %arrayidx14.i.i.i76 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i75 - %10 = load i8, ptr %arrayidx14.i.i.i76, align 1 - %arrayidx15.i.i.i77 = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 - store i8 %10, ptr %arrayidx15.i.i.i77, align 1 - %idxprom16.i.i.i78 = zext i8 %8 to i64 - %arrayidx17.i.i.i79 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i78 - %11 = load i8, ptr %arrayidx17.i.i.i79, align 2 + %idxprom13.i.i.i74 = zext i8 %9 to i64 + %arrayidx14.i.i.i75 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i74 + %10 = load i8, ptr %arrayidx14.i.i.i75, align 1 + %arrayidx15.i.i.i76 = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 + store i8 %10, ptr %arrayidx15.i.i.i76, align 1 + %idxprom16.i.i.i77 = zext i8 %8 to i64 + %arrayidx17.i.i.i78 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i77 + %11 = load i8, ptr %arrayidx17.i.i.i78, align 2 store i8 %11, ptr %buf.i.i7, align 1 br label %for.end21.i.i16 @@ -2772,28 +2772,28 @@ _ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvI %12 = shl nuw i8 %rem.i.i110.i, 1 %div.i.i111.i = udiv i8 %6, 100 %13 = or disjoint i8 %12, 1 - %idxprom.i.i.i80 = zext i8 %13 to i64 - %arrayidx.i.i.i81 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i80 - %14 = load i8, ptr %arrayidx.i.i.i81, align 1 - %.sroa.gep130.sroa.gep132 = getelementptr inbounds i8, ptr %buf.i.i7, i64 2 - store i8 %14, ptr %.sroa.gep130.sroa.gep132, align 1 - %idxprom3.i.i.i83 = zext i8 %12 to i64 - %arrayidx4.i.i.i84 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i83 - %15 = load i8, ptr %arrayidx4.i.i.i84, align 2 - %.sroa.gep130.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 - store i8 %15, ptr %.sroa.gep130.sroa.gep, align 1 - %conv.i.i.i67 = or disjoint i8 %div.i.i111.i, 48 - store i8 %conv.i.i.i67, ptr %buf.i.i7, align 1 + %idxprom.i.i.i79 = zext i8 %13 to i64 + %arrayidx.i.i.i80 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i79 + %14 = load i8, ptr %arrayidx.i.i.i80, align 1 + %.sroa.gep129.sroa.gep131 = getelementptr inbounds i8, ptr %buf.i.i7, i64 2 + store i8 %14, ptr %.sroa.gep129.sroa.gep131, align 1 + %idxprom3.i.i.i82 = zext i8 %12 to i64 + %arrayidx4.i.i.i83 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i82 + %15 = load i8, ptr %arrayidx4.i.i.i83, align 2 + %.sroa.gep129.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 + store i8 %15, ptr %.sroa.gep129.sroa.gep, align 1 + %conv.i.i.i66 = or disjoint i8 %div.i.i111.i, 48 + store i8 %conv.i.i.i66, ptr %buf.i.i7, align 1 br label %for.end21.i.i16 -for.body17.i.i19: ; preds = %while.end.i.i.i64 - %conv.i.i.i67143 = or disjoint i8 %6, 48 - store i8 %conv.i.i.i67143, ptr %buf.i.i7, align 1 +for.body17.i.i19: ; preds = %while.end.i.i.i63 + %conv.i.i.i66142 = or disjoint i8 %6, 48 + store i8 %conv.i.i.i66142, ptr %buf.i.i7, align 1 %call18.i.i21 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) br label %for.end21.i.i16, !llvm.loop !21 for.end21.i.i16: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, %for.body17.i.i19 - %call.i15.i.i18 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i7, i64 noundef %conv.i23.i62) + %call.i15.i.i18 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i7, i64 noundef %conv.i23.i61) br label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit: ; preds = %for.body.i.i25, %for.end21.i.i16 @@ -2803,7 +2803,7 @@ _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit: ; preds = %for.b %16 = load i8, ptr %day, align 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %buf.i.i30) %tobool.not.i.i31 = icmp eq i8 %16, 0 - br i1 %tobool.not.i.i31, label %for.body.i.i48, label %if.end6.i88 + br i1 %tobool.not.i.i31, label %for.body.i.i48, label %if.end6.i87 for.body.i.i48: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit, %for.body.i.i48 %i.021.i.i49 = phi i64 [ %inc.i.i51, %for.body.i.i48 ], [ 0, %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit ] @@ -2812,59 +2812,59 @@ for.body.i.i48: ; preds = %_ZN4toml2v34impl15p %exitcond22.not.i.i52 = icmp eq i64 %inc.i.i51, 2 br i1 %exitcond22.not.i.i52, label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53, label %for.body.i.i48, !llvm.loop !20 -if.end6.i88: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit - %cmp19.i.i.i89 = icmp ult i8 %16, 10 - %cmp3.i.i.i90 = icmp ult i8 %16, 100 - %17 = select i1 %cmp3.i.i.i90, i64 2, i64 3 - %conv.i23.i94 = select i1 %cmp19.i.i.i89, i64 1, i64 %17 - %cmp14.i.i.i95 = icmp ugt i8 %16, 99 - br i1 %cmp14.i.i.i95, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123, label %while.end.i.i.i96 +if.end6.i87: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit + %cmp19.i.i.i88 = icmp ult i8 %16, 10 + %cmp3.i.i.i89 = icmp ult i8 %16, 100 + %17 = select i1 %cmp3.i.i.i89, i64 2, i64 3 + %conv.i23.i93 = select i1 %cmp19.i.i.i88, i64 1, i64 %17 + %cmp14.i.i.i94 = icmp ugt i8 %16, 99 + br i1 %cmp14.i.i.i94, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122, label %while.end.i.i.i95 -while.end.i.i.i96: ; preds = %if.end6.i88 - %cmp9.i.i.i97 = icmp ugt i8 %16, 9 - br i1 %cmp9.i.i.i97, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread, label %for.body17.i.i42 +while.end.i.i.i95: ; preds = %if.end6.i87 + %cmp9.i.i.i96 = icmp ugt i8 %16, 9 + br i1 %cmp9.i.i.i96, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread, label %for.body17.i.i42 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread: ; preds = %while.end.i.i.i96 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread: ; preds = %while.end.i.i.i95 %18 = shl nuw i8 %16, 1 %19 = or disjoint i8 %18, 1 - %idxprom13.i.i.i109 = zext i8 %19 to i64 - %arrayidx14.i.i.i110 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i109 - %20 = load i8, ptr %arrayidx14.i.i.i110, align 1 - %arrayidx15.i.i.i111 = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 - store i8 %20, ptr %arrayidx15.i.i.i111, align 1 - %idxprom16.i.i.i112 = zext i8 %18 to i64 - %arrayidx17.i.i.i113 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i112 - %21 = load i8, ptr %arrayidx17.i.i.i113, align 2 + %idxprom13.i.i.i108 = zext i8 %19 to i64 + %arrayidx14.i.i.i109 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i108 + %20 = load i8, ptr %arrayidx14.i.i.i109, align 1 + %arrayidx15.i.i.i110 = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 + store i8 %20, ptr %arrayidx15.i.i.i110, align 1 + %idxprom16.i.i.i111 = zext i8 %18 to i64 + %arrayidx17.i.i.i112 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i111 + %21 = load i8, ptr %arrayidx17.i.i.i112, align 2 store i8 %21, ptr %buf.i.i30, align 1 br label %for.end21.i.i39 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123: ; preds = %if.end6.i88 - %rem.i.i110.i115 = urem i8 %16, 100 - %22 = shl nuw i8 %rem.i.i110.i115, 1 - %div.i.i111.i116 = udiv i8 %16, 100 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122: ; preds = %if.end6.i87 + %rem.i.i110.i114 = urem i8 %16, 100 + %22 = shl nuw i8 %rem.i.i110.i114, 1 + %div.i.i111.i115 = udiv i8 %16, 100 %23 = or disjoint i8 %22, 1 - %idxprom.i.i.i117 = zext i8 %23 to i64 - %arrayidx.i.i.i118 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i117 - %24 = load i8, ptr %arrayidx.i.i.i118, align 1 - %.sroa.gep135.sroa.gep138 = getelementptr inbounds i8, ptr %buf.i.i30, i64 2 - store i8 %24, ptr %.sroa.gep135.sroa.gep138, align 1 - %idxprom3.i.i.i120 = zext i8 %22 to i64 - %arrayidx4.i.i.i121 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i120 - %25 = load i8, ptr %arrayidx4.i.i.i121, align 2 - %.sroa.gep135.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 - store i8 %25, ptr %.sroa.gep135.sroa.gep, align 1 - %conv.i.i.i100 = or disjoint i8 %div.i.i111.i116, 48 - store i8 %conv.i.i.i100, ptr %buf.i.i30, align 1 + %idxprom.i.i.i116 = zext i8 %23 to i64 + %arrayidx.i.i.i117 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i116 + %24 = load i8, ptr %arrayidx.i.i.i117, align 1 + %.sroa.gep134.sroa.gep137 = getelementptr inbounds i8, ptr %buf.i.i30, i64 2 + store i8 %24, ptr %.sroa.gep134.sroa.gep137, align 1 + %idxprom3.i.i.i119 = zext i8 %22 to i64 + %arrayidx4.i.i.i120 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i119 + %25 = load i8, ptr %arrayidx4.i.i.i120, align 2 + %.sroa.gep134.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 + store i8 %25, ptr %.sroa.gep134.sroa.gep, align 1 + %conv.i.i.i99 = or disjoint i8 %div.i.i111.i115, 48 + store i8 %conv.i.i.i99, ptr %buf.i.i30, align 1 br label %for.end21.i.i39 -for.body17.i.i42: ; preds = %while.end.i.i.i96 - %conv.i.i.i100147 = or disjoint i8 %16, 48 - store i8 %conv.i.i.i100147, ptr %buf.i.i30, align 1 +for.body17.i.i42: ; preds = %while.end.i.i.i95 + %conv.i.i.i99146 = or disjoint i8 %16, 48 + store i8 %conv.i.i.i99146, ptr %buf.i.i30, align 1 %call18.i.i44 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) br label %for.end21.i.i39, !llvm.loop !21 -for.end21.i.i39: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread, %for.body17.i.i42 - %call.i15.i.i41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i30, i64 noundef %conv.i23.i94) +for.end21.i.i39: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread, %for.body17.i.i42 + %call.i15.i.i41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i30, i64 noundef %conv.i23.i93) br label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53 _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53: ; preds = %for.body.i.i48, %for.end21.i.i39 @@ -39828,7 +39828,7 @@ sw.default: ; preds = %if.end6 if.end.i.i66: ; preds = %sw.default, %if.end14.i.i72 %__value.addr.021.i.i = phi i32 [ %24, %if.end14.i.i72 ], [ %conv, %sw.default ] %__n.020.i.i = phi i32 [ %add17.i.i73, %if.end14.i.i72 ], [ 1, %sw.default ] - %cmp3.i.i67 = icmp ult i32 %__value.addr.021.i.i, %mul.i.i64 + %cmp3.i.i67 = icmp samesign ult i32 %__value.addr.021.i.i, %mul.i.i64 br i1 %cmp3.i.i67, label %if.then4.i.i96, label %if.end5.i.i68 if.then4.i.i96: ; preds = %if.end.i.i66 @@ -40004,11 +40004,11 @@ if.end5.i.i: ; preds = %if.end.i.i if.end9.i.i: ; preds = %if.end5.i.i %cmp11.i.i = icmp ult i16 %__value, 10000 - %spec.select = select i1 %cmp11.i.i, i32 4, i32 5 + %. = select i1 %cmp11.i.i, i32 4, i32 5 br label %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i: ; preds = %if.end9.i.i, %if.end5.i.i, %if.end.i.i, %sw.bb7 - %retval.0.i.i = phi i32 [ 1, %sw.bb7 ], [ 2, %if.end.i.i ], [ 3, %if.end5.i.i ], [ %spec.select, %if.end9.i.i ] + %retval.0.i.i = phi i32 [ 1, %sw.bb7 ], [ 2, %if.end.i.i ], [ 3, %if.end5.i.i ], [ %., %if.end9.i.i ] %sub.ptr.lhs.cast.i20 = ptrtoint ptr %__last to i64 %sub.ptr.rhs.cast.i21 = ptrtoint ptr %__first to i64 %sub.ptr.sub.i22 = sub i64 %sub.ptr.lhs.cast.i20, %sub.ptr.rhs.cast.i21 @@ -40176,7 +40176,7 @@ sw.default: ; preds = %if.end6 if.end.i.i83: ; preds = %sw.default, %if.end14.i.i91 %__value.addr.021.i.i84 = phi i32 [ %26, %if.end14.i.i91 ], [ %conv, %sw.default ] %__n.020.i.i85 = phi i32 [ %add17.i.i92, %if.end14.i.i91 ], [ 1, %sw.default ] - %cmp3.i.i86 = icmp ult i32 %__value.addr.021.i.i84, %mul.i.i81 + %cmp3.i.i86 = icmp samesign ult i32 %__value.addr.021.i.i84, %mul.i.i81 br i1 %cmp3.i.i86, label %if.then4.i.i118, label %if.end5.i.i87 if.then4.i.i118: ; preds = %if.end.i.i83 diff --git a/bench/vcpkg/optimized/strings.cpp.ll b/bench/vcpkg/optimized/strings.cpp.ll index 62d243df075..868110a3bad 100644 --- a/bench/vcpkg/optimized/strings.cpp.ll +++ b/bench/vcpkg/optimized/strings.cpp.ll @@ -4565,31 +4565,31 @@ define linkonce_odr dso_local ptr @_ZNK3fmt3v106detail6concatINS1_9code_unitIcEE call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef %59) %60 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %61 = getelementptr inbounds i8, ptr %60, i64 %58 - %or.cond575 = icmp samesign ult i16 %33, 2 - br i1 %or.cond575, label %.loopexit527, label %.lr.ph553.preheader + %or.cond572 = icmp samesign ult i16 %33, 2 + br i1 %or.cond572, label %.loopexit527, label %.lr.ph550.preheader -.lr.ph553.preheader: ; preds = %57 +.lr.ph550.preheader: ; preds = %57 %62 = and i32 %36, 16777215 - br label %.lr.ph553 - -.lr.ph553: ; preds = %.lr.ph553.preheader, %.lr.ph553 - %.1370552 = phi ptr [ %64, %.lr.ph553 ], [ %61, %.lr.ph553.preheader ] - %.0371551 = phi i32 [ %65, %.lr.ph553 ], [ %62, %.lr.ph553.preheader ] - %63 = trunc i32 %.0371551 to i8 - %64 = getelementptr inbounds i8, ptr %.1370552, i64 1 - store i8 %63, ptr %.1370552, align 1 - %65 = lshr i32 %.0371551, 8 - %.not406 = icmp samesign ult i32 %.0371551, 256 - br i1 %.not406, label %.loopexit527, label %.lr.ph553, !llvm.loop !88 - -.loopexit527: ; preds = %.lr.ph553, %57 - %.0369 = phi ptr [ %61, %57 ], [ %64, %.lr.ph553 ] + br label %.lr.ph550 + +.lr.ph550: ; preds = %.lr.ph550.preheader, %.lr.ph550 + %.1370549 = phi ptr [ %64, %.lr.ph550 ], [ %61, %.lr.ph550.preheader ] + %.0371548 = phi i32 [ %65, %.lr.ph550 ], [ %62, %.lr.ph550.preheader ] + %63 = trunc i32 %.0371548 to i8 + %64 = getelementptr inbounds i8, ptr %.1370549, i64 1 + store i8 %63, ptr %.1370549, align 1 + %65 = lshr i32 %.0371548, 8 + %.not406 = icmp samesign ult i32 %.0371548, 256 + br i1 %.not406, label %.loopexit527, label %.lr.ph550, !llvm.loop !88 + +.loopexit527: ; preds = %.lr.ph550, %57 + %.0369 = phi ptr [ %61, %57 ], [ %64, %.lr.ph550 ] %66 = ashr i64 %46, 32 %67 = getelementptr inbounds i8, ptr %.0369, i64 %66 %68 = icmp ugt i8 %19, 99 - br i1 %68, label %.lr.ph.i.i.preheader, label %._crit_edge.i.i + br i1 %68, label %.lr.ph.i.i, label %._crit_edge.i.i -.lr.ph.i.i.preheader: ; preds = %.loopexit527 +.lr.ph.i.i: ; preds = %.loopexit527 %69 = getelementptr inbounds i8, ptr %67, i64 -2 %70 = urem i32 %.sroa.0172.0.extract.trunc, 100 %71 = shl nuw nsw i32 %70, 1 @@ -4598,11 +4598,11 @@ define linkonce_odr dso_local ptr @_ZNK3fmt3v106detail6concatINS1_9code_unitIcEE %74 = load i16, ptr %73, align 1 store i16 %74, ptr %69, align 1 %75 = udiv i32 %.sroa.0172.0.extract.trunc, 100 - br label %._crit_edge.i.i + br label %._crit_edge.i.i, !llvm.loop !89 -._crit_edge.i.i: ; preds = %.lr.ph.i.i.preheader, %.loopexit527 - %.023.lcssa.i.i = phi ptr [ %67, %.loopexit527 ], [ %69, %.lr.ph.i.i.preheader ] - %.0.lcssa.i.i = phi i32 [ %.sroa.0172.0.extract.trunc, %.loopexit527 ], [ %75, %.lr.ph.i.i.preheader ] +._crit_edge.i.i: ; preds = %.lr.ph.i.i, %.loopexit527 + %.023.lcssa.i.i = phi ptr [ %67, %.loopexit527 ], [ %69, %.lr.ph.i.i ] + %.0.lcssa.i.i = phi i32 [ %.sroa.0172.0.extract.trunc, %.loopexit527 ], [ %75, %.lr.ph.i.i ] %76 = icmp samesign ult i32 %.0.lcssa.i.i, 10 br i1 %76, label %77, label %81 @@ -4702,21 +4702,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit: ; preds %131 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %132 = getelementptr inbounds i8, ptr %131, i64 %129 %133 = and i32 %.0519, 16777215 - %.not404545 = icmp eq i32 %133, 0 - br i1 %.not404545, label %.loopexit529, label %.lr.ph548 - -.lr.ph548: ; preds = %128, %.lr.ph548 - %.1364547 = phi ptr [ %135, %.lr.ph548 ], [ %132, %128 ] - %.0365546 = phi i32 [ %136, %.lr.ph548 ], [ %133, %128 ] - %134 = trunc i32 %.0365546 to i8 - %135 = getelementptr inbounds i8, ptr %.1364547, i64 1 - store i8 %134, ptr %.1364547, align 1 - %136 = lshr i32 %.0365546, 8 - %.not404 = icmp samesign ult i32 %.0365546, 256 - br i1 %.not404, label %.loopexit529, label %.lr.ph548, !llvm.loop !89 - -.loopexit529: ; preds = %.lr.ph548, %128 - %.0363 = phi ptr [ %132, %128 ], [ %135, %.lr.ph548 ] + %.not404542 = icmp eq i32 %133, 0 + br i1 %.not404542, label %.loopexit529, label %.lr.ph545 + +.lr.ph545: ; preds = %128, %.lr.ph545 + %.1364544 = phi ptr [ %135, %.lr.ph545 ], [ %132, %128 ] + %.0365543 = phi i32 [ %136, %.lr.ph545 ], [ %133, %128 ] + %134 = trunc i32 %.0365543 to i8 + %135 = getelementptr inbounds i8, ptr %.1364544, i64 1 + store i8 %134, ptr %.1364544, align 1 + %136 = lshr i32 %.0365543, 8 + %.not404 = icmp samesign ult i32 %.0365543, 256 + br i1 %.not404, label %.loopexit529, label %.lr.ph545, !llvm.loop !90 + +.loopexit529: ; preds = %.lr.ph545, %128 + %.0363 = phi ptr [ %132, %128 ], [ %135, %.lr.ph545 ] %137 = getelementptr inbounds i8, ptr %.0363, i64 %.sroa.2136.0.insert.ext %.str.13..str.14.i.i = select i1 %106, ptr @.str.13, ptr @.str.14 br label %138 @@ -4732,7 +4732,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit: ; preds store i8 %142, ptr %143, align 1 %144 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp samesign ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %138, !llvm.loop !90 + br i1 %.not.i.i, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %138, !llvm.loop !91 145: ; preds = %115 %146 = and i16 %31, 15 @@ -4814,21 +4814,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit411: ; pr %187 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %188 = getelementptr inbounds i8, ptr %187, i64 %185 %189 = and i32 %.1520, 16777215 - %.not401540 = icmp eq i32 %189, 0 - br i1 %.not401540, label %.loopexit531, label %.lr.ph543 - -.lr.ph543: ; preds = %184, %.lr.ph543 - %.1358542 = phi ptr [ %191, %.lr.ph543 ], [ %188, %184 ] - %.0359541 = phi i32 [ %192, %.lr.ph543 ], [ %189, %184 ] - %190 = trunc i32 %.0359541 to i8 - %191 = getelementptr inbounds i8, ptr %.1358542, i64 1 - store i8 %190, ptr %.1358542, align 1 - %192 = lshr i32 %.0359541, 8 - %.not401 = icmp samesign ult i32 %.0359541, 256 - br i1 %.not401, label %.loopexit531, label %.lr.ph543, !llvm.loop !91 - -.loopexit531: ; preds = %.lr.ph543, %184 - %.0357 = phi ptr [ %188, %184 ], [ %191, %.lr.ph543 ] + %.not401537 = icmp eq i32 %189, 0 + br i1 %.not401537, label %.loopexit531, label %.lr.ph540 + +.lr.ph540: ; preds = %184, %.lr.ph540 + %.1358539 = phi ptr [ %191, %.lr.ph540 ], [ %188, %184 ] + %.0359538 = phi i32 [ %192, %.lr.ph540 ], [ %189, %184 ] + %190 = trunc i32 %.0359538 to i8 + %191 = getelementptr inbounds i8, ptr %.1358539, i64 1 + store i8 %190, ptr %.1358539, align 1 + %192 = lshr i32 %.0359538, 8 + %.not401 = icmp samesign ult i32 %.0359538, 256 + br i1 %.not401, label %.loopexit531, label %.lr.ph540, !llvm.loop !92 + +.loopexit531: ; preds = %.lr.ph540, %184 + %.0357 = phi ptr [ %188, %184 ], [ %191, %.lr.ph540 ] %193 = getelementptr inbounds i8, ptr %.0357, i64 %.sroa.2127.0.insert.ext br label %194 @@ -4842,7 +4842,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit411: ; pr store i8 %197, ptr %198, align 1 %199 = lshr i32 %.08.i.i, 1 %.not.i.i414 = icmp samesign ult i32 %.08.i.i, 2 - br i1 %.not.i.i414, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %194, !llvm.loop !92 + br i1 %.not.i.i414, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %194, !llvm.loop !93 200: ; preds = %172 %201 = and i16 %31, 15 @@ -4925,18 +4925,18 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit415: ; pr 240: ; preds = %232 %241 = call noundef ptr @_ZN3fmt3v106detail7reserveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNSA_10value_typeESt20back_insert_iteratorISA_Em(ptr %.sroa.0.0.copyload.i, i64 noundef %239) %242 = and i32 %.2521, 16777215 - %.not398537 = icmp eq i32 %242, 0 - br i1 %.not398537, label %.loopexit533, label %.lr.ph + %.not398534 = icmp eq i32 %242, 0 + br i1 %.not398534, label %.loopexit533, label %.lr.ph .lr.ph: ; preds = %240, %.lr.ph - %.1352539 = phi ptr [ %244, %.lr.ph ], [ %241, %240 ] - %.0353538 = phi i32 [ %245, %.lr.ph ], [ %242, %240 ] - %243 = trunc i32 %.0353538 to i8 - %244 = getelementptr inbounds i8, ptr %.1352539, i64 1 - store i8 %243, ptr %.1352539, align 1 - %245 = lshr i32 %.0353538, 8 - %.not398 = icmp samesign ult i32 %.0353538, 256 - br i1 %.not398, label %.loopexit533, label %.lr.ph, !llvm.loop !93 + %.1352536 = phi ptr [ %244, %.lr.ph ], [ %241, %240 ] + %.0353535 = phi i32 [ %245, %.lr.ph ], [ %242, %240 ] + %243 = trunc i32 %.0353535 to i8 + %244 = getelementptr inbounds i8, ptr %.1352536, i64 1 + store i8 %243, ptr %.1352536, align 1 + %245 = lshr i32 %.0353535, 8 + %.not398 = icmp samesign ult i32 %.0353535, 256 + br i1 %.not398, label %.loopexit533, label %.lr.ph, !llvm.loop !94 .loopexit533: ; preds = %.lr.ph, %240 %.0351 = phi ptr [ %241, %240 ], [ %244, %.lr.ph ] @@ -4953,7 +4953,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit415: ; pr store i8 %250, ptr %251, align 1 %252 = lshr i32 %.08.i.i417, 3 %.not.i.i419 = icmp samesign ult i32 %.08.i.i417, 8 - br i1 %.not.i.i419, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %247, !llvm.loop !94 + br i1 %.not.i.i419, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %247, !llvm.loop !95 253: ; preds = %232 %254 = and i16 %31, 15 @@ -5057,31 +5057,31 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit420: ; pr call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %306) %307 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %308 = getelementptr inbounds i8, ptr %307, i64 %305 - %or.cond579 = icmp samesign ult i16 %279, 2 - br i1 %or.cond579, label %.loopexit, label %.lr.ph573.preheader + %or.cond576 = icmp samesign ult i16 %279, 2 + br i1 %or.cond576, label %.loopexit, label %.lr.ph570.preheader -.lr.ph573.preheader: ; preds = %304 +.lr.ph570.preheader: ; preds = %304 %309 = and i32 %282, 16777215 - br label %.lr.ph573 - -.lr.ph573: ; preds = %.lr.ph573.preheader, %.lr.ph573 - %.1367572 = phi ptr [ %311, %.lr.ph573 ], [ %308, %.lr.ph573.preheader ] - %.0368571 = phi i32 [ %312, %.lr.ph573 ], [ %309, %.lr.ph573.preheader ] - %310 = trunc i32 %.0368571 to i8 - %311 = getelementptr inbounds i8, ptr %.1367572, i64 1 - store i8 %310, ptr %.1367572, align 1 - %312 = lshr i32 %.0368571, 8 - %.not394 = icmp samesign ult i32 %.0368571, 256 - br i1 %.not394, label %.loopexit, label %.lr.ph573, !llvm.loop !88 - -.loopexit: ; preds = %.lr.ph573, %304 - %.0366 = phi ptr [ %308, %304 ], [ %311, %.lr.ph573 ] + br label %.lr.ph570 + +.lr.ph570: ; preds = %.lr.ph570.preheader, %.lr.ph570 + %.1367569 = phi ptr [ %311, %.lr.ph570 ], [ %308, %.lr.ph570.preheader ] + %.0368568 = phi i32 [ %312, %.lr.ph570 ], [ %309, %.lr.ph570.preheader ] + %310 = trunc i32 %.0368568 to i8 + %311 = getelementptr inbounds i8, ptr %.1367569, i64 1 + store i8 %310, ptr %.1367569, align 1 + %312 = lshr i32 %.0368568, 8 + %.not394 = icmp samesign ult i32 %.0368568, 256 + br i1 %.not394, label %.loopexit, label %.lr.ph570, !llvm.loop !88 + +.loopexit: ; preds = %.lr.ph570, %304 + %.0366 = phi ptr [ %308, %304 ], [ %311, %.lr.ph570 ] %313 = ashr i64 %292, 32 %314 = getelementptr inbounds i8, ptr %.0366, i64 %313 %315 = icmp ugt i8 %19, 99 - br i1 %315, label %.lr.ph.i.i429.preheader, label %._crit_edge.i.i426 + br i1 %315, label %.lr.ph.i.i429, label %._crit_edge.i.i426 -.lr.ph.i.i429.preheader: ; preds = %.loopexit +.lr.ph.i.i429: ; preds = %.loopexit %316 = getelementptr inbounds i8, ptr %314, i64 -2 %317 = urem i32 %.sroa.0115.0.extract.trunc, 100 %318 = shl nuw nsw i32 %317, 1 @@ -5090,11 +5090,11 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit420: ; pr %321 = load i16, ptr %320, align 1 store i16 %321, ptr %316, align 1 %322 = udiv i32 %.sroa.0115.0.extract.trunc, 100 - br label %._crit_edge.i.i426 + br label %._crit_edge.i.i426, !llvm.loop !89 -._crit_edge.i.i426: ; preds = %.lr.ph.i.i429.preheader, %.loopexit - %.023.lcssa.i.i427 = phi ptr [ %314, %.loopexit ], [ %316, %.lr.ph.i.i429.preheader ] - %.0.lcssa.i.i428 = phi i32 [ %.sroa.0115.0.extract.trunc, %.loopexit ], [ %322, %.lr.ph.i.i429.preheader ] +._crit_edge.i.i426: ; preds = %.lr.ph.i.i429, %.loopexit + %.023.lcssa.i.i427 = phi ptr [ %314, %.loopexit ], [ %316, %.lr.ph.i.i429 ] + %.0.lcssa.i.i428 = phi i32 [ %.sroa.0115.0.extract.trunc, %.loopexit ], [ %322, %.lr.ph.i.i429 ] %323 = icmp samesign ult i32 %.0.lcssa.i.i428, 10 br i1 %323, label %324, label %328 @@ -5195,21 +5195,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit433: ; pr %379 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %380 = getelementptr inbounds i8, ptr %379, i64 %377 %381 = and i32 %.0517, 16777215 - %.not392565 = icmp eq i32 %381, 0 - br i1 %.not392565, label %.loopexit522, label %.lr.ph568 - -.lr.ph568: ; preds = %376, %.lr.ph568 - %.1361567 = phi ptr [ %383, %.lr.ph568 ], [ %380, %376 ] - %.0362566 = phi i32 [ %384, %.lr.ph568 ], [ %381, %376 ] - %382 = trunc i32 %.0362566 to i8 - %383 = getelementptr inbounds i8, ptr %.1361567, i64 1 - store i8 %382, ptr %.1361567, align 1 - %384 = lshr i32 %.0362566, 8 - %.not392 = icmp samesign ult i32 %.0362566, 256 - br i1 %.not392, label %.loopexit522, label %.lr.ph568, !llvm.loop !89 - -.loopexit522: ; preds = %.lr.ph568, %376 - %.0360 = phi ptr [ %380, %376 ], [ %383, %.lr.ph568 ] + %.not392562 = icmp eq i32 %381, 0 + br i1 %.not392562, label %.loopexit522, label %.lr.ph565 + +.lr.ph565: ; preds = %376, %.lr.ph565 + %.1361564 = phi ptr [ %383, %.lr.ph565 ], [ %380, %376 ] + %.0362563 = phi i32 [ %384, %.lr.ph565 ], [ %381, %376 ] + %382 = trunc i32 %.0362563 to i8 + %383 = getelementptr inbounds i8, ptr %.1361564, i64 1 + store i8 %382, ptr %.1361564, align 1 + %384 = lshr i32 %.0362563, 8 + %.not392 = icmp samesign ult i32 %.0362563, 256 + br i1 %.not392, label %.loopexit522, label %.lr.ph565, !llvm.loop !90 + +.loopexit522: ; preds = %.lr.ph565, %376 + %.0360 = phi ptr [ %380, %376 ], [ %383, %.lr.ph565 ] %385 = getelementptr inbounds i8, ptr %.0360, i64 %.sroa.280.0.insert.ext %.str.13..str.14.i.i435 = select i1 %353, ptr @.str.13, ptr @.str.14 br label %386 @@ -5225,7 +5225,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit433: ; pr store i8 %390, ptr %391, align 1 %392 = lshr i32 %.09.i.i436, 4 %.not.i.i438 = icmp samesign ult i32 %.09.i.i436, 16 - br i1 %.not.i.i438, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %386, !llvm.loop !90 + br i1 %.not.i.i438, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %386, !llvm.loop !91 393: ; preds = %362 %394 = and i16 %277, 15 @@ -5308,21 +5308,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit440: ; pr %436 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %437 = getelementptr inbounds i8, ptr %436, i64 %434 %438 = and i32 %.1518, 16777215 - %.not389560 = icmp eq i32 %438, 0 - br i1 %.not389560, label %.loopexit524, label %.lr.ph563 - -.lr.ph563: ; preds = %433, %.lr.ph563 - %.1355562 = phi ptr [ %440, %.lr.ph563 ], [ %437, %433 ] - %.0356561 = phi i32 [ %441, %.lr.ph563 ], [ %438, %433 ] - %439 = trunc i32 %.0356561 to i8 - %440 = getelementptr inbounds i8, ptr %.1355562, i64 1 - store i8 %439, ptr %.1355562, align 1 - %441 = lshr i32 %.0356561, 8 - %.not389 = icmp samesign ult i32 %.0356561, 256 - br i1 %.not389, label %.loopexit524, label %.lr.ph563, !llvm.loop !91 - -.loopexit524: ; preds = %.lr.ph563, %433 - %.0354 = phi ptr [ %437, %433 ], [ %440, %.lr.ph563 ] + %.not389557 = icmp eq i32 %438, 0 + br i1 %.not389557, label %.loopexit524, label %.lr.ph560 + +.lr.ph560: ; preds = %433, %.lr.ph560 + %.1355559 = phi ptr [ %440, %.lr.ph560 ], [ %437, %433 ] + %.0356558 = phi i32 [ %441, %.lr.ph560 ], [ %438, %433 ] + %439 = trunc i32 %.0356558 to i8 + %440 = getelementptr inbounds i8, ptr %.1355559, i64 1 + store i8 %439, ptr %.1355559, align 1 + %441 = lshr i32 %.0356558, 8 + %.not389 = icmp samesign ult i32 %.0356558, 256 + br i1 %.not389, label %.loopexit524, label %.lr.ph560, !llvm.loop !92 + +.loopexit524: ; preds = %.lr.ph560, %433 + %.0354 = phi ptr [ %437, %433 ], [ %440, %.lr.ph560 ] %442 = getelementptr inbounds i8, ptr %.0354, i64 %.sroa.272.0.insert.ext br label %443 @@ -5336,7 +5336,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit440: ; pr store i8 %446, ptr %447, align 1 %448 = lshr i32 %.08.i.i442, 1 %.not.i.i444 = icmp samesign ult i32 %.08.i.i442, 2 - br i1 %.not.i.i444, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %443, !llvm.loop !92 + br i1 %.not.i.i444, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %443, !llvm.loop !93 449: ; preds = %420 %450 = and i16 %277, 15 @@ -5388,11 +5388,11 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr %473 = and i16 %277, 128 %.not384 = icmp eq i16 %473, 0 %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 12 - %.pre599 = load i32, ptr %.phi.trans.insert, align 4 + %.pre592 = load i32, ptr %.phi.trans.insert, align 4 br i1 %.not384, label %._crit_edge, label %474 474: ; preds = %467 - %475 = icmp sle i32 %.pre599, %472 + %475 = icmp sle i32 %.pre592, %472 %476 = icmp ne i8 %19, 0 %or.cond3 = select i1 %475, i1 %476, i1 false br i1 %or.cond3, label %477, label %._crit_edge @@ -5409,7 +5409,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr %.sroa.2.0.insert.ext = zext nneg i8 %narrow.i448 to i64 %.sroa.2.0.insert.shift = shl nuw nsw i64 %.sroa.2.0.insert.ext, 32 %481 = load i32, ptr %18, align 8 - %482 = add nsw i32 %.pre599, 1 + %482 = add nsw i32 %.pre592, 1 %483 = or i32 %482, %481 %484 = icmp eq i32 %483, 0 %485 = lshr i32 %.2, 24 @@ -5420,21 +5420,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr 488: ; preds = %._crit_edge %489 = call noundef ptr @_ZN3fmt3v106detail7reserveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNSA_10value_typeESt20back_insert_iteratorISA_Em(ptr %1, i64 noundef %487) %490 = and i32 %.2, 16777215 - %.not386555 = icmp eq i32 %490, 0 - br i1 %.not386555, label %.loopexit526, label %.lr.ph558 - -.lr.ph558: ; preds = %488, %.lr.ph558 - %.1557 = phi ptr [ %492, %.lr.ph558 ], [ %489, %488 ] - %.0350556 = phi i32 [ %493, %.lr.ph558 ], [ %490, %488 ] - %491 = trunc i32 %.0350556 to i8 - %492 = getelementptr inbounds i8, ptr %.1557, i64 1 - store i8 %491, ptr %.1557, align 1 - %493 = lshr i32 %.0350556, 8 - %.not386 = icmp samesign ult i32 %.0350556, 256 - br i1 %.not386, label %.loopexit526, label %.lr.ph558, !llvm.loop !93 - -.loopexit526: ; preds = %.lr.ph558, %488 - %.0 = phi ptr [ %489, %488 ], [ %492, %.lr.ph558 ] + %.not386552 = icmp eq i32 %490, 0 + br i1 %.not386552, label %.loopexit526, label %.lr.ph555 + +.lr.ph555: ; preds = %488, %.lr.ph555 + %.1554 = phi ptr [ %492, %.lr.ph555 ], [ %489, %488 ] + %.0350553 = phi i32 [ %493, %.lr.ph555 ], [ %490, %488 ] + %491 = trunc i32 %.0350553 to i8 + %492 = getelementptr inbounds i8, ptr %.1554, i64 1 + store i8 %491, ptr %.1554, align 1 + %493 = lshr i32 %.0350553, 8 + %.not386 = icmp samesign ult i32 %.0350553, 256 + br i1 %.not386, label %.loopexit526, label %.lr.ph555, !llvm.loop !94 + +.loopexit526: ; preds = %.lr.ph555, %488 + %.0 = phi ptr [ %489, %488 ], [ %492, %.lr.ph555 ] %494 = getelementptr inbounds i8, ptr %.0, i64 %.sroa.2.0.insert.ext br label %495 @@ -5448,7 +5448,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr store i8 %498, ptr %499, align 1 %500 = lshr i32 %.08.i.i450, 3 %.not.i.i452 = icmp samesign ult i32 %.08.i.i450, 8 - br i1 %.not.i.i452, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %495, !llvm.loop !94 + br i1 %.not.i.i452, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %495, !llvm.loop !95 501: ; preds = %._crit_edge %502 = and i16 %277, 15 @@ -5465,13 +5465,13 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr br label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 509: ; preds = %501 - %510 = icmp sgt i32 %.pre599, %472 + %510 = icmp sgt i32 %.pre592, %472 br i1 %510, label %511, label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 511: ; preds = %509 - %512 = add nuw i32 %.pre599, %485 + %512 = add nuw i32 %.pre592, %485 %513 = zext i32 %512 to i64 - %514 = sub nsw i32 %.pre599, %472 + %514 = sub nsw i32 %.pre592, %472 %515 = zext i32 %514 to i64 br label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 @@ -5520,12 +5520,12 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ 7: ; preds = %3 %8 = getelementptr inbounds i8, ptr %1, i64 8 %9 = load i32, ptr %8, align 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !95) - tail call void @llvm.experimental.noalias.scope.decl(metadata !98) + tail call void @llvm.experimental.noalias.scope.decl(metadata !96) + tail call void @llvm.experimental.noalias.scope.decl(metadata !99) %10 = getelementptr inbounds i8, ptr %2, i64 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !101) + tail call void @llvm.experimental.noalias.scope.decl(metadata !102) %11 = getelementptr inbounds i8, ptr %4, i64 16 - %12 = load i64, ptr %10, align 8, !noalias !104 + %12 = load i64, ptr %10, align 8, !noalias !105 %13 = icmp sgt i64 %12, -1 br i1 %13, label %17, label %14 @@ -5544,13 +5544,13 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ %22 = lshr i64 %12, %21 %23 = trunc i64 %22 to i32 %24 = and i32 %23, 15 - store i32 %24, ptr %11, align 16, !alias.scope !104 + store i32 %24, ptr %11, align 16, !alias.scope !105 %25 = icmp eq i32 %24, 0 br i1 %25, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i: ; preds = %19 %26 = getelementptr inbounds i8, ptr %2, i64 16 - %27 = load ptr, ptr %26, align 8, !noalias !104 + %27 = load ptr, ptr %26, align 8, !noalias !105 %28 = sext i32 %9 to i64 %29 = getelementptr inbounds %"class.fmt::v10::detail::value", ptr %27, i64 %28 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) %29, i64 16, i1 false) @@ -5558,16 +5558,16 @@ _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_s _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i: ; preds = %14 %30 = getelementptr inbounds i8, ptr %2, i64 16 - %31 = load ptr, ptr %30, align 8, !noalias !104 + %31 = load ptr, ptr %30, align 8, !noalias !105 %32 = sext i32 %9 to i64 %33 = getelementptr inbounds %"class.fmt::v10::basic_format_arg", ptr %31, i64 %32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %4, ptr noundef nonnull align 16 dereferenceable(20) %33, i64 20, i1 false) - %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !95 + %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !96 %34 = icmp eq i32 %.pr.pre.i, 0 br i1 %34, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i, %19, %17, %14 - tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !95 + tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !96 unreachable _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i, %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i @@ -5582,7 +5582,7 @@ _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorIN %38 = getelementptr inbounds i8, ptr %2, i64 8 call void @_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getIcEENS0_16basic_format_argISB_EENS0_17basic_string_viewIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.fmt::v10::basic_format_arg") align 16 %5, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr %.sroa.0.0.copyload, i64 %.sroa.2.0.copyload) %39 = getelementptr inbounds i8, ptr %5, i64 16 - %40 = load i32, ptr %39, align 16, !alias.scope !105 + %40 = load i32, ptr %39, align 16, !alias.scope !106 %.not.i = icmp eq i32 %40, 0 br i1 %.not.i, label %41, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_.exit @@ -5616,12 +5616,12 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ 7: ; preds = %3 %8 = getelementptr inbounds i8, ptr %1, i64 8 %9 = load i32, ptr %8, align 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !108) - tail call void @llvm.experimental.noalias.scope.decl(metadata !111) + tail call void @llvm.experimental.noalias.scope.decl(metadata !109) + tail call void @llvm.experimental.noalias.scope.decl(metadata !112) %10 = getelementptr inbounds i8, ptr %2, i64 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !114) + tail call void @llvm.experimental.noalias.scope.decl(metadata !115) %11 = getelementptr inbounds i8, ptr %4, i64 16 - %12 = load i64, ptr %10, align 8, !noalias !117 + %12 = load i64, ptr %10, align 8, !noalias !118 %13 = icmp sgt i64 %12, -1 br i1 %13, label %17, label %14 @@ -5640,13 +5640,13 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ %22 = lshr i64 %12, %21 %23 = trunc i64 %22 to i32 %24 = and i32 %23, 15 - store i32 %24, ptr %11, align 16, !alias.scope !117 + store i32 %24, ptr %11, align 16, !alias.scope !118 %25 = icmp eq i32 %24, 0 br i1 %25, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i: ; preds = %19 %26 = getelementptr inbounds i8, ptr %2, i64 16 - %27 = load ptr, ptr %26, align 8, !noalias !117 + %27 = load ptr, ptr %26, align 8, !noalias !118 %28 = sext i32 %9 to i64 %29 = getelementptr inbounds %"class.fmt::v10::detail::value", ptr %27, i64 %28 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) %29, i64 16, i1 false) @@ -5654,16 +5654,16 @@ _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_s _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i: ; preds = %14 %30 = getelementptr inbounds i8, ptr %2, i64 16 - %31 = load ptr, ptr %30, align 8, !noalias !117 + %31 = load ptr, ptr %30, align 8, !noalias !118 %32 = sext i32 %9 to i64 %33 = getelementptr inbounds %"class.fmt::v10::basic_format_arg", ptr %31, i64 %32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %4, ptr noundef nonnull align 16 dereferenceable(20) %33, i64 20, i1 false) - %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !108 + %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !109 %34 = icmp eq i32 %.pr.pre.i, 0 br i1 %34, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i, %19, %17, %14 - tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !108 + tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !109 unreachable _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i, %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i @@ -5678,7 +5678,7 @@ _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorIN %38 = getelementptr inbounds i8, ptr %2, i64 8 call void @_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getIcEENS0_16basic_format_argISB_EENS0_17basic_string_viewIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.fmt::v10::basic_format_arg") align 16 %5, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr %.sroa.0.0.copyload, i64 %.sroa.2.0.copyload) %39 = getelementptr inbounds i8, ptr %5, i64 16 - %40 = load i32, ptr %39, align 16, !alias.scope !118 + %40 = load i32, ptr %39, align 16, !alias.scope !119 %.not.i = icmp eq i32 %40, 0 br i1 %.not.i, label %41, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_.exit @@ -5870,7 +5870,7 @@ _ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i: ; preds = %15 _ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.thread.i: ; preds = %_ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i %22 = add nuw i64 %.01316.i, 1 %exitcond.not.i = icmp eq i64 %22, %13 - br i1 %exitcond.not.i, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit.thread, label %15, !llvm.loop !121 + br i1 %exitcond.not.i, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit.thread, label %15, !llvm.loop !122 _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i, %_ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i %23 = getelementptr inbounds %"struct.fmt::v10::detail::named_arg_info", ptr %14, i64 %.01316.i, i32 1 @@ -5880,7 +5880,7 @@ _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_itera 26: ; preds = %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit %27 = getelementptr inbounds i8, ptr %0, i64 16 - store i32 0, ptr %27, align 16, !alias.scope !122 + store i32 0, ptr %27, align 16, !alias.scope !123 %28 = icmp sgt i64 %5, -1 br i1 %28, label %35, label %29 @@ -5905,7 +5905,7 @@ _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_itera %40 = lshr i64 %5, %39 %41 = trunc i64 %40 to i32 %42 = and i32 %41, 15 - store i32 %42, ptr %27, align 16, !alias.scope !122 + store i32 %42, ptr %27, align 16, !alias.scope !123 %43 = icmp eq i32 %42, 0 br i1 %43, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi.exit, label %44 @@ -6122,7 +6122,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6139,7 +6139,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %40, ptr %.069.i, align 1 %42 = lshr i32 %.010.i, 8 %.not.i30 = icmp samesign ult i32 %.010.i, 256 - br i1 %.not.i30, label %._crit_edge.i, label %.lr.ph.i29, !llvm.loop !126 + br i1 %.not.i30, label %._crit_edge.i, label %.lr.ph.i29, !llvm.loop !127 ._crit_edge.i: ; preds = %.lr.ph.i29, %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit %.06.lcssa.i = phi ptr [ %.0, %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit ], [ %41, %.lr.ph.i29 ] @@ -6168,7 +6168,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i16 %58, ptr %53, align 1 %59 = udiv i32 %.025.i.i.i, 100 %60 = icmp ugt i32 %.025.i.i.i, 9999 - br i1 %60, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i, !llvm.loop !127 + br i1 %60, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i, !llvm.loop !89 ._crit_edge.i.i.i: ; preds = %.lr.ph.i.i.i, %._crit_edge.i %.023.lcssa.i.i.i = phi ptr [ %51, %._crit_edge.i ], [ %53, %.lr.ph.i.i.i ] @@ -6216,7 +6216,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %77 = getelementptr inbounds i8, ptr %.01517.i37, i64 %74 %78 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %78, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %72, %75, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6277,7 +6277,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6325,7 +6325,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %59, ptr %60, align 1 %61 = lshr i32 %.09.i.i.i, 4 %.not.i.i.i = icmp ult i32 %.09.i.i.i, 16 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %55, !llvm.loop !90 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %55, !llvm.loop !91 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %55 %.not28 = icmp eq i64 %8, %17 @@ -6351,7 +6351,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %67 = getelementptr inbounds i8, ptr %.01517.i37, i64 %64 %68 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %68, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %62, %65, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6412,7 +6412,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6455,7 +6455,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %55, ptr %56, align 1 %57 = lshr i32 %.08.i.i.i, 1 %.not.i.i.i = icmp ult i32 %.08.i.i.i, 2 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !92 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !93 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %52 %.not28 = icmp eq i64 %8, %17 @@ -6481,7 +6481,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %63 = getelementptr inbounds i8, ptr %.01517.i37, i64 %60 %64 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %64, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %58, %61, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6542,7 +6542,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6585,7 +6585,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %55, ptr %56, align 1 %57 = lshr i32 %.08.i.i.i, 3 %.not.i.i.i = icmp ult i32 %.08.i.i.i, 8 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !94 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !95 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %52 %.not28 = icmp eq i64 %8, %17 @@ -6611,7 +6611,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %63 = getelementptr inbounds i8, ptr %.01517.i37, i64 %60 %64 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %64, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %58, %61, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6674,7 +6674,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %38 = getelementptr inbounds i8, ptr %.01517.i, i64 %33 %39 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %39, %19 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %35, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %30, %5 ], [ %37, %35 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %38, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6766,7 +6766,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %67 = getelementptr inbounds i8, ptr %.01517.i35, i64 %64 %68 = add nuw i64 %.018.i34, 1 %exitcond.not.i36 = icmp eq i64 %68, %20 - br i1 %exitcond.not.i36, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, !llvm.loop !125 + br i1 %exitcond.not.i36, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, %62, %65, %_ZZN3fmt3v106detail10write_charIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEET0_SB_T_RKNS0_12format_specsISC_EEENKUlPcE_clESH_.exit ret ptr %0 @@ -6823,7 +6823,7 @@ define linkonce_odr dso_local noundef ptr @_ZN3fmt3v106detail16write_escaped_cpI store i8 %22, ptr %23, align 1 %24 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit, label %18, !llvm.loop !90 + br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit, label %18, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit: ; preds = %18 %25 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6857,7 +6857,7 @@ _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit: ; preds = %18 store i8 %37, ptr %38, align 1 %39 = lshr i32 %.09.i.i35, 4 %.not.i.i37 = icmp ult i32 %.09.i.i35, 16 - br i1 %.not.i.i37, label %_ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit, label %33, !llvm.loop !90 + br i1 %.not.i.i37, label %_ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit, label %33, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit: ; preds = %33 %40 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6891,7 +6891,7 @@ _ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit: ; preds = %33 store i8 %52, ptr %53, align 1 %54 = lshr i32 %.09.i.i38, 4 %.not.i.i40 = icmp ult i32 %.09.i.i38, 16 - br i1 %.not.i.i40, label %_ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit, label %48, !llvm.loop !90 + br i1 %.not.i.i40, label %_ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit, label %48, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit: ; preds = %48 %55 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6935,7 +6935,7 @@ _ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit: ; preds = %48 store i8 %71, ptr %72, align 1 %73 = lshr i32 %.09.i.i41, 4 %.not.i.i43 = icmp samesign ult i32 %.09.i.i41, 16 - br i1 %.not.i.i43, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44, label %67, !llvm.loop !90 + br i1 %.not.i.i43, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44, label %67, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44: ; preds = %67 %74 = getelementptr inbounds i8, ptr %.148, i64 2 @@ -8931,7 +8931,7 @@ define linkonce_odr dso_local i64 @_ZN3fmt3v106detail16write_escaped_cpINS1_17co store i8 %17, ptr %18, align 1 %19 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %13, !llvm.loop !90 + br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %13, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %13 %20 = add i64 %0, 4 @@ -8958,7 +8958,7 @@ _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %29, ptr %30, align 1 %31 = lshr i32 %.09.i.i27, 4 %.not.i.i29 = icmp ult i32 %.09.i.i27, 16 - br i1 %.not.i.i29, label %_ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %25, !llvm.loop !90 + br i1 %.not.i.i29, label %_ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %25, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %25 %32 = add i64 %0, 6 @@ -8985,7 +8985,7 @@ _ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %41, ptr %42, align 1 %43 = lshr i32 %.09.i.i30, 4 %.not.i.i32 = icmp ult i32 %.09.i.i30, 16 - br i1 %.not.i.i32, label %_ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %37, !llvm.loop !90 + br i1 %.not.i.i32, label %_ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %37, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %37 %44 = add i64 %0, 10 @@ -9022,7 +9022,7 @@ _ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %57, ptr %58, align 1 %59 = lshr i32 %.09.i.i33, 4 %.not.i.i35 = icmp samesign ult i32 %.09.i.i33, 16 - br i1 %.not.i.i35, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36, label %53, !llvm.loop !90 + br i1 %.not.i.i35, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36, label %53, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36: ; preds = %53 %60 = add i64 %.sroa.044.156, 4 @@ -9784,7 +9784,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -9898,7 +9898,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -10012,7 +10012,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -11196,37 +11196,37 @@ attributes #31 = { nounwind willreturn memory(none) } !92 = distinct !{!92, !6} !93 = distinct !{!93, !6} !94 = distinct !{!94, !6} -!95 = !{!96} -!96 = distinct !{!96, !97, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!97 = distinct !{!97, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} -!98 = !{!99} -!99 = distinct !{!99, !100, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} -!100 = distinct !{!100, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} -!101 = !{!102} -!102 = distinct !{!102, !103, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!103 = distinct !{!103, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!104 = !{!102, !99, !96} -!105 = !{!106} -!106 = distinct !{!106, !107, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!107 = distinct !{!107, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} -!108 = !{!109} -!109 = distinct !{!109, !110, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!110 = distinct !{!110, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} -!111 = !{!112} -!112 = distinct !{!112, !113, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} -!113 = distinct !{!113, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} -!114 = !{!115} -!115 = distinct !{!115, !116, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!116 = distinct !{!116, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!117 = !{!115, !112, !109} -!118 = !{!119} -!119 = distinct !{!119, !120, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!120 = distinct !{!120, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} -!121 = distinct !{!121, !6} -!122 = !{!123} -!123 = distinct !{!123, !124, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!124 = distinct !{!124, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!125 = distinct !{!125, !6} +!95 = distinct !{!95, !6} +!96 = !{!97} +!97 = distinct !{!97, !98, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!98 = distinct !{!98, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} +!99 = !{!100} +!100 = distinct !{!100, !101, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} +!101 = distinct !{!101, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} +!102 = !{!103} +!103 = distinct !{!103, !104, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!104 = distinct !{!104, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} +!105 = !{!103, !100, !97} +!106 = !{!107} +!107 = distinct !{!107, !108, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!108 = distinct !{!108, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} +!109 = !{!110} +!110 = distinct !{!110, !111, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!111 = distinct !{!111, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} +!112 = !{!113} +!113 = distinct !{!113, !114, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} +!114 = distinct !{!114, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} +!115 = !{!116} +!116 = distinct !{!116, !117, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!117 = distinct !{!117, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} +!118 = !{!116, !113, !110} +!119 = !{!120} +!120 = distinct !{!120, !121, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!121 = distinct !{!121, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} +!122 = distinct !{!122, !6} +!123 = !{!124} +!124 = distinct !{!124, !125, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!125 = distinct !{!125, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} !126 = distinct !{!126, !6} !127 = distinct !{!127, !6} !128 = distinct !{!128, !6} diff --git a/bench/velox/optimized/CastExpr.cpp.ll b/bench/velox/optimized/CastExpr.cpp.ll index 7ea348a4e01..838269aa081 100644 --- a/bench/velox/optimized/CastExpr.cpp.ll +++ b/bench/velox/optimized/CastExpr.cpp.ll @@ -38157,7 +38157,7 @@ if.then12: ; preds = %if.end7 if.end.i: ; preds = %if.then12, %if.end12.i %n.addr.i.059 = phi i128 [ %div.i, %if.end12.i ], [ %rem.decomposed, %if.then12 ] %count.i.058 = phi i32 [ %add13.i, %if.end12.i ], [ 1, %if.then12 ] - %cmp2.i = icmp ult i128 %n.addr.i.059, 100 + %cmp2.i = icmp samesign ult i128 %n.addr.i.059, 100 br i1 %cmp2.i, label %if.then3.i, label %if.end4.i if.then3.i: ; preds = %if.end.i @@ -38165,7 +38165,7 @@ if.then3.i: ; preds = %if.end.i br label %_ZN8facebook5velox11countDigitsEo.exit if.end4.i: ; preds = %if.end.i - %cmp5.i = icmp ult i128 %n.addr.i.059, 1000 + %cmp5.i = icmp samesign ult i128 %n.addr.i.059, 1000 br i1 %cmp5.i, label %if.then6.i, label %if.end8.i if.then6.i: ; preds = %if.end4.i @@ -38173,7 +38173,7 @@ if.then6.i: ; preds = %if.end4.i br label %_ZN8facebook5velox11countDigitsEo.exit if.end8.i: ; preds = %if.end4.i - %cmp9.i = icmp ult i128 %n.addr.i.059, 10000 + %cmp9.i = icmp samesign ult i128 %n.addr.i.059, 10000 br i1 %cmp9.i, label %if.then10.i, label %if.end12.i if.then10.i: ; preds = %if.end8.i @@ -38183,7 +38183,7 @@ if.then10.i: ; preds = %if.end8.i if.end12.i: ; preds = %if.end8.i %div.i = udiv i128 %n.addr.i.059, 10000 %add13.i = add nuw nsw i32 %count.i.058, 4 - %cmp.i = icmp ult i128 %n.addr.i.059, 100000 + %cmp.i = icmp samesign ult i128 %n.addr.i.059, 100000 br i1 %cmp.i, label %_ZN8facebook5velox11countDigitsEo.exit, label %if.end.i, !llvm.loop !131 _ZN8facebook5velox11countDigitsEo.exit: ; preds = %if.end12.i, %if.then12, %if.then10.i, %if.then6.i, %if.then3.i @@ -38206,7 +38206,7 @@ if.end6.i45: ; preds = %if.end.i43 if.end.i.i.i: ; preds = %if.end6.i45, %if.end18.i.i.i %__value.addr.021.i.i.i = phi i128 [ %div.i.i.i, %if.end18.i.i.i ], [ %rem.decomposed, %if.end6.i45 ] %__n.020.i.i.i = phi i32 [ %add20.i.i.i, %if.end18.i.i.i ], [ 1, %if.end6.i45 ] - %cmp6.i.i.i = icmp ult i128 %__value.addr.021.i.i.i, 100 + %cmp6.i.i.i = icmp samesign ult i128 %__value.addr.021.i.i.i, 100 br i1 %cmp6.i.i.i, label %if.then7.i.i.i, label %if.end8.i.i.i if.then7.i.i.i: ; preds = %if.end.i.i.i @@ -38214,7 +38214,7 @@ if.then7.i.i.i: ; preds = %if.end.i.i.i br label %_ZNSt8__detail14__to_chars_lenIoEEjT_i.exit.i.i if.end8.i.i.i: ; preds = %if.end.i.i.i - %cmp10.i.i.i = icmp ult i128 %__value.addr.021.i.i.i, 1000 + %cmp10.i.i.i = icmp samesign ult i128 %__value.addr.021.i.i.i, 1000 br i1 %cmp10.i.i.i, label %if.then11.i.i.i, label %if.end13.i.i.i if.then11.i.i.i: ; preds = %if.end8.i.i.i @@ -38222,7 +38222,7 @@ if.then11.i.i.i: ; preds = %if.end8.i.i.i br label %_ZNSt8__detail14__to_chars_lenIoEEjT_i.exit.i.i if.end13.i.i.i: ; preds = %if.end8.i.i.i - %cmp15.i.i.i = icmp ult i128 %__value.addr.021.i.i.i, 10000 + %cmp15.i.i.i = icmp samesign ult i128 %__value.addr.021.i.i.i, 10000 br i1 %cmp15.i.i.i, label %if.then16.i.i.i, label %if.end18.i.i.i if.then16.i.i.i: ; preds = %if.end13.i.i.i @@ -38232,7 +38232,7 @@ if.then16.i.i.i: ; preds = %if.end13.i.i.i if.end18.i.i.i: ; preds = %if.end13.i.i.i %div.i.i.i = udiv i128 %__value.addr.021.i.i.i, 10000 %add20.i.i.i = add i32 %__n.020.i.i.i, 4 - %cmp.i.i.i46 = icmp ult i128 %__value.addr.021.i.i.i, 100000 + %cmp.i.i.i46 = icmp samesign ult i128 %__value.addr.021.i.i.i, 100000 br i1 %cmp.i.i.i46, label %_ZNSt8__detail14__to_chars_lenIoEEjT_i.exit.i.i, label %if.end.i.i.i, !llvm.loop !132 _ZNSt8__detail14__to_chars_lenIoEEjT_i.exit.i.i: ; preds = %if.end18.i.i.i, %if.then16.i.i.i, %if.then11.i.i.i, %if.then7.i.i.i, %if.end6.i45 @@ -38271,7 +38271,7 @@ while.body.i.i.i: ; preds = %while.body.i.i.i, % %arrayidx8.i.i.i = getelementptr inbounds i8, ptr %add.ptr24, i64 %idxprom7.i.i.i store i8 %6, ptr %arrayidx8.i.i.i, align 1 %sub9.i.i.i = add i32 %__pos.015.i.i.i, -2 - %cmp.i10.i.i = icmp ugt i128 %__val.addr.016.i.i.i, 9999 + %cmp.i10.i.i = icmp samesign ugt i128 %__val.addr.016.i.i.i, 9999 br i1 %cmp.i10.i.i, label %while.body.i.i.i, label %while.end.i.i.i, !llvm.loop !133 while.end.i.i.i: ; preds = %while.body.i.i.i, %if.end.i25.i @@ -38280,7 +38280,7 @@ while.end.i.i.i: ; preds = %while.body.i.i.i, % br i1 %cmp10.i7.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %while.end.i.i.i - %__val.addr.0.tr.i.i.i = trunc nuw i128 %__val.addr.0.lcssa.i.i.i to i64 + %__val.addr.0.tr.i.i.i = trunc nuw nsw i128 %__val.addr.0.lcssa.i.i.i to i64 %7 = shl nuw nsw i64 %__val.addr.0.tr.i.i.i, 1 %idxprom14.i.i.i = or disjoint i64 %7, 1 %arrayidx15.i.i.i = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIoEEvPcjT_E8__digits, i64 0, i64 %idxprom14.i.i.i @@ -680424,7 +680424,7 @@ nrvo.skipdtor: ; preds = %_ZN5folly8toAppendI define linkonce_odr noundef i64 @_ZN5folly6detail18unsafeTelescope128EPcS1_o(ptr noundef %outb, ptr noundef %oute, i64 noundef %x.coerce0, i64 noundef %x.coerce1) local_unnamed_addr #0 comdat { entry: %cmp.not = icmp eq i64 %x.coerce1, 0 - br i1 %cmp.not, label %for.body.i.i.i94, label %if.then + br i1 %cmp.not, label %for.body.i.i.i93, label %if.then if.then: ; preds = %entry %x.sroa.0.0.insert.ext = zext i64 %x.coerce0 to i128 @@ -680520,224 +680520,224 @@ _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit: ; preds = %_ZN5fo br label %while.body.i.i.i10 while.body.i.i.i10: ; preds = %while.body.i.i.i10, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit - %v.addr.i.i.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i.i12, %while.body.i.i.i10 ] + %v.addr.i.i.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i.i, %while.body.i.i.i10 ] %pos.i.i.08.i = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %sub.i.i.i11, %while.body.i.i.i10 ] %sub.i.i.i11 = add nsw i64 %pos.i.i.08.i, -2 - %div.i.i.i12 = udiv i64 %v.addr.i.i.09.i, 100 - %rem.i.i.i13 = urem i64 %v.addr.i.i.09.i, 100 - %arrayidx.i.i.i14 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i13 - %5 = load i16, ptr %arrayidx.i.i.i14, align 2 - %add.ptr.i.i.i15 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i.i11 - store i16 %5, ptr %add.ptr.i.i.i15, align 1 + %div.i.i.i = udiv i64 %v.addr.i.i.09.i, 100 + %rem.i.i.i12 = urem i64 %v.addr.i.i.09.i, 100 + %arrayidx.i.i.i13 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i12 + %5 = load i16, ptr %arrayidx.i.i.i13, align 2 + %add.ptr.i.i.i14 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i.i11 + store i16 %5, ptr %add.ptr.i.i.i14, align 1 %cmp.i.i.i = icmp ugt i64 %sub.i.i.i11, 2 br i1 %cmp.i.i.i, label %while.body.i.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !730 _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit: ; preds = %while.body.i.i.i10 - %arrayidx2.i.i.i16 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i12 - %6 = load i16, ptr %arrayidx2.i.i.i16, align 2 + %arrayidx2.i.i.i15 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i + %6 = load i16, ptr %arrayidx2.i.i.i15, align 2 %7 = lshr i16 %6, 8 - %conv4.i.i.i17 = trunc nuw i16 %7 to i8 - store i8 %conv4.i.i.i17, ptr %add.ptr.i, align 1 - %add.ptr.i18 = getelementptr i8, ptr %add.ptr.i, i64 19 - br label %while.body.i.i.i19 - -while.body.i.i.i19: ; preds = %while.body.i.i.i19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit - %v.addr.i.i.09.i20 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i.i23, %while.body.i.i.i19 ] - %pos.i.i.08.i21 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i.i22, %while.body.i.i.i19 ] - %sub.i.i.i22 = add nsw i64 %pos.i.i.08.i21, -2 - %div.i.i.i23 = udiv i64 %v.addr.i.i.09.i20, 100 - %rem.i.i.i24 = urem i64 %v.addr.i.i.09.i20, 100 - %arrayidx.i.i.i25 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i24 - %8 = load i16, ptr %arrayidx.i.i.i25, align 2 - %add.ptr.i.i.i26 = getelementptr inbounds i8, ptr %add.ptr.i18, i64 %sub.i.i.i22 - store i16 %8, ptr %add.ptr.i.i.i26, align 1 - %cmp.i.i.i27 = icmp ugt i64 %sub.i.i.i22, 2 - br i1 %cmp.i.i.i27, label %while.body.i.i.i19, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32, !llvm.loop !730 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32: ; preds = %while.body.i.i.i19 - %arrayidx2.i.i.i28 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i23 - %9 = load i16, ptr %arrayidx2.i.i.i28, align 2 + %conv4.i.i.i16 = trunc nuw i16 %7 to i8 + store i8 %conv4.i.i.i16, ptr %add.ptr.i, align 1 + %add.ptr.i17 = getelementptr i8, ptr %add.ptr.i, i64 19 + br label %while.body.i.i.i18 + +while.body.i.i.i18: ; preds = %while.body.i.i.i18, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit + %v.addr.i.i.09.i19 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i.i22, %while.body.i.i.i18 ] + %pos.i.i.08.i20 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i.i21, %while.body.i.i.i18 ] + %sub.i.i.i21 = add nsw i64 %pos.i.i.08.i20, -2 + %div.i.i.i22 = udiv i64 %v.addr.i.i.09.i19, 100 + %rem.i.i.i23 = urem i64 %v.addr.i.i.09.i19, 100 + %arrayidx.i.i.i24 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i23 + %8 = load i16, ptr %arrayidx.i.i.i24, align 2 + %add.ptr.i.i.i25 = getelementptr inbounds i8, ptr %add.ptr.i17, i64 %sub.i.i.i21 + store i16 %8, ptr %add.ptr.i.i.i25, align 1 + %cmp.i.i.i26 = icmp ugt i64 %sub.i.i.i21, 2 + br i1 %cmp.i.i.i26, label %while.body.i.i.i18, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31, !llvm.loop !730 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31: ; preds = %while.body.i.i.i18 + %arrayidx2.i.i.i27 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i22 + %9 = load i16, ptr %arrayidx2.i.i.i27, align 2 %10 = lshr i16 %9, 8 - %conv4.i.i.i29 = trunc nuw i16 %10 to i8 - store i8 %conv4.i.i.i29, ptr %add.ptr.i18, align 1 - %add.i31 = add i64 %retval.i.0.i, 38 + %conv4.i.i.i28 = trunc nuw i16 %10 to i8 + store i8 %conv4.i.i.i28, ptr %add.ptr.i17, align 1 + %add.i30 = add i64 %retval.i.0.i, 38 br label %return if.end: ; preds = %if.then %coerce10.sroa.0.0.extract.trunc = trunc i128 %div to i64 - br label %for.body.i.i.i33 - -for.body.i.i.i33: ; preds = %if.end.i.i.i37, %if.end - %i.i.i.020.i34 = phi i64 [ 0, %if.end ], [ %inc.i.i.i38, %if.end.i.i.i37 ] - %arrayidx.i.i.i35 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i34 - %11 = load i64, ptr %arrayidx.i.i.i35, align 8 - %cmp1.i.i.i36 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc - br i1 %cmp1.i.i.i36, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68, label %if.end.i.i.i37 - -if.end.i.i.i37: ; preds = %for.body.i.i.i33 - %inc.i.i.i38 = add nuw nsw i64 %i.i.i.020.i34, 1 - %exitcond.not.i39 = icmp eq i64 %inc.i.i.i38, 20 - br i1 %exitcond.not.i39, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40, label %for.body.i.i.i33, !llvm.loop !729 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68: ; preds = %for.body.i.i.i33 - %add.i.i.i69 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i34, i64 1) - %cmp.i.i70 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i71 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i72 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i73 = sub i64 %sub.ptr.lhs.cast.i.i71, %sub.ptr.rhs.cast.i.i72 - %cmp1.i.i74 = icmp ult i64 %sub.ptr.sub.i.i73, %add.i.i.i69 - %or.cond.i75 = or i1 %cmp.i.i70, %cmp1.i.i74 - br i1 %or.cond.i75, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.cond.i.i.preheader.i76 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40: ; preds = %if.end.i.i.i37 - %cmp.i27.i41 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i42 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i43 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i44 = sub i64 %sub.ptr.lhs.cast.i28.i42, %sub.ptr.rhs.cast.i29.i43 - %cmp1.i31.i45 = icmp ult i64 %sub.ptr.sub.i30.i44, 20 - %or.cond32.i46 = or i1 %cmp.i27.i41, %cmp1.i31.i45 - br i1 %or.cond32.i46, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.body.i.i.preheader.i47 - -while.cond.i.i.preheader.i76: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68 - %cmp.i.i621.i77 = icmp samesign ugt i64 %i.i.i.020.i34, 2 - br i1 %cmp.i.i621.i77, label %while.body.i.i.preheader.i47, label %while.end.i.i.i58 - -while.body.i.i.preheader.i47: ; preds = %while.cond.i.i.preheader.i76, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 - %retval.i.i.03336.i48 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 ] - br label %while.body.i.i.i49 - -while.body.i.i.i49: ; preds = %while.body.i.i.i49, %while.body.i.i.preheader.i47 - %v.addr.i.i3.023.i50 = phi i64 [ %div.i.i.i53, %while.body.i.i.i49 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.i.preheader.i47 ] - %pos.i.i.022.i51 = phi i64 [ %sub.i.i.i52, %while.body.i.i.i49 ], [ %retval.i.i.03336.i48, %while.body.i.i.preheader.i47 ] - %sub.i.i.i52 = add i64 %pos.i.i.022.i51, -2 - %div.i.i.i53 = udiv i64 %v.addr.i.i3.023.i50, 100 - %rem.i.i.i54 = urem i64 %v.addr.i.i3.023.i50, 100 - %arrayidx.i.i9.i55 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i54 - %12 = load i16, ptr %arrayidx.i.i9.i55, align 2 - %add.ptr.i.i.i56 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i52 - store i16 %12, ptr %add.ptr.i.i.i56, align 1 - %cmp.i.i6.i57 = icmp ugt i64 %sub.i.i.i52, 2 - br i1 %cmp.i.i6.i57, label %while.body.i.i.i49, label %while.end.i.i.i58, !llvm.loop !730 - -while.end.i.i.i58: ; preds = %while.body.i.i.i49, %while.cond.i.i.preheader.i76 - %retval.i.i.03337.i59 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ %retval.i.i.03336.i48, %while.body.i.i.i49 ] - %pos.i.i.0.lcssa.i60 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ %sub.i.i.i52, %while.body.i.i.i49 ] - %v.addr.i.i3.0.lcssa.i61 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.i.preheader.i76 ], [ %div.i.i.i53, %while.body.i.i.i49 ] - %arrayidx2.i.i.i62 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i61 - %13 = load i16, ptr %arrayidx2.i.i.i62, align 2 - %cmp3.i.i.i63 = icmp eq i64 %pos.i.i.0.lcssa.i60, 2 - br i1 %cmp3.i.i.i63, label %if.then.i.i8.i67, label %if.else.i.i.i64 - -if.then.i.i8.i67: ; preds = %while.end.i.i.i58 + br label %for.body.i.i.i32 + +for.body.i.i.i32: ; preds = %if.end.i.i.i36, %if.end + %i.i.i.020.i33 = phi i64 [ 0, %if.end ], [ %inc.i.i.i37, %if.end.i.i.i36 ] + %arrayidx.i.i.i34 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i33 + %11 = load i64, ptr %arrayidx.i.i.i34, align 8 + %cmp1.i.i.i35 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc + br i1 %cmp1.i.i.i35, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67, label %if.end.i.i.i36 + +if.end.i.i.i36: ; preds = %for.body.i.i.i32 + %inc.i.i.i37 = add nuw nsw i64 %i.i.i.020.i33, 1 + %exitcond.not.i38 = icmp eq i64 %inc.i.i.i37, 20 + br i1 %exitcond.not.i38, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39, label %for.body.i.i.i32, !llvm.loop !729 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67: ; preds = %for.body.i.i.i32 + %add.i.i.i68 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i33, i64 1) + %cmp.i.i69 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i70 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i71 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i72 = sub i64 %sub.ptr.lhs.cast.i.i70, %sub.ptr.rhs.cast.i.i71 + %cmp1.i.i73 = icmp ult i64 %sub.ptr.sub.i.i72, %add.i.i.i68 + %or.cond.i74 = or i1 %cmp.i.i69, %cmp1.i.i73 + br i1 %or.cond.i74, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77, label %while.cond.i.i.preheader.i75 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39: ; preds = %if.end.i.i.i36 + %cmp.i27.i40 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i41 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i42 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i43 = sub i64 %sub.ptr.lhs.cast.i28.i41, %sub.ptr.rhs.cast.i29.i42 + %cmp1.i31.i44 = icmp ult i64 %sub.ptr.sub.i30.i43, 20 + %or.cond32.i45 = or i1 %cmp.i27.i40, %cmp1.i31.i44 + br i1 %or.cond32.i45, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77, label %while.body.i.i.preheader.i46 + +while.cond.i.i.preheader.i75: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67 + %cmp.i.i621.i76 = icmp samesign ugt i64 %i.i.i.020.i33, 2 + br i1 %cmp.i.i621.i76, label %while.body.i.i.preheader.i46, label %while.end.i.i.i57 + +while.body.i.i.preheader.i46: ; preds = %while.cond.i.i.preheader.i75, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 + %retval.i.i.03336.i47 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 ] + br label %while.body.i.i.i48 + +while.body.i.i.i48: ; preds = %while.body.i.i.i48, %while.body.i.i.preheader.i46 + %v.addr.i.i3.023.i49 = phi i64 [ %div.i.i.i52, %while.body.i.i.i48 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.i.preheader.i46 ] + %pos.i.i.022.i50 = phi i64 [ %sub.i.i.i51, %while.body.i.i.i48 ], [ %retval.i.i.03336.i47, %while.body.i.i.preheader.i46 ] + %sub.i.i.i51 = add i64 %pos.i.i.022.i50, -2 + %div.i.i.i52 = udiv i64 %v.addr.i.i3.023.i49, 100 + %rem.i.i.i53 = urem i64 %v.addr.i.i3.023.i49, 100 + %arrayidx.i.i9.i54 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i53 + %12 = load i16, ptr %arrayidx.i.i9.i54, align 2 + %add.ptr.i.i.i55 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i51 + store i16 %12, ptr %add.ptr.i.i.i55, align 1 + %cmp.i.i6.i56 = icmp ugt i64 %sub.i.i.i51, 2 + br i1 %cmp.i.i6.i56, label %while.body.i.i.i48, label %while.end.i.i.i57, !llvm.loop !730 + +while.end.i.i.i57: ; preds = %while.body.i.i.i48, %while.cond.i.i.preheader.i75 + %retval.i.i.03337.i58 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ %retval.i.i.03336.i47, %while.body.i.i.i48 ] + %pos.i.i.0.lcssa.i59 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ %sub.i.i.i51, %while.body.i.i.i48 ] + %v.addr.i.i3.0.lcssa.i60 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.i.preheader.i75 ], [ %div.i.i.i52, %while.body.i.i.i48 ] + %arrayidx2.i.i.i61 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i60 + %13 = load i16, ptr %arrayidx2.i.i.i61, align 2 + %cmp3.i.i.i62 = icmp eq i64 %pos.i.i.0.lcssa.i59, 2 + br i1 %cmp3.i.i.i62, label %if.then.i.i8.i66, label %if.else.i.i.i63 + +if.then.i.i8.i66: ; preds = %while.end.i.i.i57 store i16 %13, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 -if.else.i.i.i64: ; preds = %while.end.i.i.i58 +if.else.i.i.i63: ; preds = %while.end.i.i.i57 %14 = lshr i16 %13, 8 - %conv4.i.i.i65 = trunc nuw i16 %14 to i8 - store i8 %conv4.i.i.i65, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40, %if.then.i.i8.i67, %if.else.i.i.i64 - %retval.i.0.i66 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68 ], [ %retval.i.i.03337.i59, %if.else.i.i.i64 ], [ %retval.i.i.03337.i59, %if.then.i.i8.i67 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 ] - %add.ptr.i79 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i66 - br label %while.body.i.i.i80 - -while.body.i.i.i80: ; preds = %while.body.i.i.i80, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 - %v.addr.i.i.09.i81 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %div.i.i.i84, %while.body.i.i.i80 ] - %pos.i.i.08.i82 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %sub.i.i.i83, %while.body.i.i.i80 ] - %sub.i.i.i83 = add nsw i64 %pos.i.i.08.i82, -2 - %div.i.i.i84 = udiv i64 %v.addr.i.i.09.i81, 100 - %rem.i.i.i85 = urem i64 %v.addr.i.i.09.i81, 100 - %arrayidx.i.i.i86 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i85 - %15 = load i16, ptr %arrayidx.i.i.i86, align 2 - %add.ptr.i.i.i87 = getelementptr inbounds i8, ptr %add.ptr.i79, i64 %sub.i.i.i83 - store i16 %15, ptr %add.ptr.i.i.i87, align 1 - %cmp.i.i.i88 = icmp ugt i64 %sub.i.i.i83, 2 - br i1 %cmp.i.i.i88, label %while.body.i.i.i80, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, !llvm.loop !730 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93: ; preds = %while.body.i.i.i80 - %arrayidx2.i.i.i89 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i84 - %16 = load i16, ptr %arrayidx2.i.i.i89, align 2 + %conv4.i.i.i64 = trunc nuw i16 %14 to i8 + store i8 %conv4.i.i.i64, ptr %outb, align 1 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39, %if.then.i.i8.i66, %if.else.i.i.i63 + %retval.i.0.i65 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67 ], [ %retval.i.i.03337.i58, %if.else.i.i.i63 ], [ %retval.i.i.03337.i58, %if.then.i.i8.i66 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 ] + %add.ptr.i78 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i65 + br label %while.body.i.i.i79 + +while.body.i.i.i79: ; preds = %while.body.i.i.i79, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 + %v.addr.i.i.09.i80 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 ], [ %div.i.i.i83, %while.body.i.i.i79 ] + %pos.i.i.08.i81 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 ], [ %sub.i.i.i82, %while.body.i.i.i79 ] + %sub.i.i.i82 = add nsw i64 %pos.i.i.08.i81, -2 + %div.i.i.i83 = udiv i64 %v.addr.i.i.09.i80, 100 + %rem.i.i.i84 = urem i64 %v.addr.i.i.09.i80, 100 + %arrayidx.i.i.i85 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i84 + %15 = load i16, ptr %arrayidx.i.i.i85, align 2 + %add.ptr.i.i.i86 = getelementptr inbounds i8, ptr %add.ptr.i78, i64 %sub.i.i.i82 + store i16 %15, ptr %add.ptr.i.i.i86, align 1 + %cmp.i.i.i87 = icmp ugt i64 %sub.i.i.i82, 2 + br i1 %cmp.i.i.i87, label %while.body.i.i.i79, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92, !llvm.loop !730 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92: ; preds = %while.body.i.i.i79 + %arrayidx2.i.i.i88 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i83 + %16 = load i16, ptr %arrayidx2.i.i.i88, align 2 %17 = lshr i16 %16, 8 - %conv4.i.i.i90 = trunc nuw i16 %17 to i8 - store i8 %conv4.i.i.i90, ptr %add.ptr.i79, align 1 - %add.i92 = add i64 %retval.i.0.i66, 19 + %conv4.i.i.i89 = trunc nuw i16 %17 to i8 + store i8 %conv4.i.i.i89, ptr %add.ptr.i78, align 1 + %add.i91 = add i64 %retval.i.0.i65, 19 br label %return -for.body.i.i.i94: ; preds = %entry, %if.end.i.i.i98 - %i.i.i.020.i95 = phi i64 [ %inc.i.i.i99, %if.end.i.i.i98 ], [ 0, %entry ] - %arrayidx.i.i.i96 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i95 - %18 = load i64, ptr %arrayidx.i.i.i96, align 8 - %cmp1.i.i.i97 = icmp ult i64 %x.coerce0, %18 - br i1 %cmp1.i.i.i97, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129, label %if.end.i.i.i98 - -if.end.i.i.i98: ; preds = %for.body.i.i.i94 - %inc.i.i.i99 = add nuw nsw i64 %i.i.i.020.i95, 1 - %exitcond.not.i100 = icmp eq i64 %inc.i.i.i99, 20 - br i1 %exitcond.not.i100, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101, label %for.body.i.i.i94, !llvm.loop !729 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129: ; preds = %for.body.i.i.i94 - %add.i.i.i130 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i95, i64 1) - %cmp.i.i131 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i132 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i133 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i134 = sub i64 %sub.ptr.lhs.cast.i.i132, %sub.ptr.rhs.cast.i.i133 - %cmp1.i.i135 = icmp ult i64 %sub.ptr.sub.i.i134, %add.i.i.i130 - %or.cond.i136 = or i1 %cmp.i.i131, %cmp1.i.i135 - br i1 %or.cond.i136, label %return, label %while.cond.i.i.preheader.i137 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101: ; preds = %if.end.i.i.i98 - %cmp.i27.i102 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i103 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i104 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i105 = sub i64 %sub.ptr.lhs.cast.i28.i103, %sub.ptr.rhs.cast.i29.i104 - %cmp1.i31.i106 = icmp ult i64 %sub.ptr.sub.i30.i105, 20 - %or.cond32.i107 = or i1 %cmp.i27.i102, %cmp1.i31.i106 - br i1 %or.cond32.i107, label %return, label %while.body.i.i.preheader.i108 - -while.cond.i.i.preheader.i137: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129 - %cmp.i.i621.i138 = icmp samesign ugt i64 %i.i.i.020.i95, 2 - br i1 %cmp.i.i621.i138, label %while.body.i.i.preheader.i108, label %while.end.i.i.i119 - -while.body.i.i.preheader.i108: ; preds = %while.cond.i.i.preheader.i137, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 - %retval.i.i.03336.i109 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 ] - br label %while.body.i.i.i110 - -while.body.i.i.i110: ; preds = %while.body.i.i.i110, %while.body.i.i.preheader.i108 - %v.addr.i.i3.023.i111 = phi i64 [ %div.i.i.i114, %while.body.i.i.i110 ], [ %x.coerce0, %while.body.i.i.preheader.i108 ] - %pos.i.i.022.i112 = phi i64 [ %sub.i.i.i113, %while.body.i.i.i110 ], [ %retval.i.i.03336.i109, %while.body.i.i.preheader.i108 ] - %sub.i.i.i113 = add i64 %pos.i.i.022.i112, -2 - %div.i.i.i114 = udiv i64 %v.addr.i.i3.023.i111, 100 - %rem.i.i.i115 = urem i64 %v.addr.i.i3.023.i111, 100 - %arrayidx.i.i9.i116 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i115 - %19 = load i16, ptr %arrayidx.i.i9.i116, align 2 - %add.ptr.i.i.i117 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i113 - store i16 %19, ptr %add.ptr.i.i.i117, align 1 - %cmp.i.i6.i118 = icmp ugt i64 %sub.i.i.i113, 2 - br i1 %cmp.i.i6.i118, label %while.body.i.i.i110, label %while.end.i.i.i119, !llvm.loop !730 - -while.end.i.i.i119: ; preds = %while.body.i.i.i110, %while.cond.i.i.preheader.i137 - %retval.i.i.03337.i120 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ %retval.i.i.03336.i109, %while.body.i.i.i110 ] - %pos.i.i.0.lcssa.i121 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ %sub.i.i.i113, %while.body.i.i.i110 ] - %v.addr.i.i3.0.lcssa.i122 = phi i64 [ %x.coerce0, %while.cond.i.i.preheader.i137 ], [ %div.i.i.i114, %while.body.i.i.i110 ] - %arrayidx2.i.i.i123 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i122 - %20 = load i16, ptr %arrayidx2.i.i.i123, align 2 - %cmp3.i.i.i124 = icmp eq i64 %pos.i.i.0.lcssa.i121, 2 - br i1 %cmp3.i.i.i124, label %if.then.i.i8.i128, label %if.else.i.i.i125 - -if.then.i.i8.i128: ; preds = %while.end.i.i.i119 +for.body.i.i.i93: ; preds = %entry, %if.end.i.i.i97 + %i.i.i.020.i94 = phi i64 [ %inc.i.i.i98, %if.end.i.i.i97 ], [ 0, %entry ] + %arrayidx.i.i.i95 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i94 + %18 = load i64, ptr %arrayidx.i.i.i95, align 8 + %cmp1.i.i.i96 = icmp ult i64 %x.coerce0, %18 + br i1 %cmp1.i.i.i96, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128, label %if.end.i.i.i97 + +if.end.i.i.i97: ; preds = %for.body.i.i.i93 + %inc.i.i.i98 = add nuw nsw i64 %i.i.i.020.i94, 1 + %exitcond.not.i99 = icmp eq i64 %inc.i.i.i98, 20 + br i1 %exitcond.not.i99, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100, label %for.body.i.i.i93, !llvm.loop !729 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128: ; preds = %for.body.i.i.i93 + %add.i.i.i129 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i94, i64 1) + %cmp.i.i130 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i131 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i132 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i133 = sub i64 %sub.ptr.lhs.cast.i.i131, %sub.ptr.rhs.cast.i.i132 + %cmp1.i.i134 = icmp ult i64 %sub.ptr.sub.i.i133, %add.i.i.i129 + %or.cond.i135 = or i1 %cmp.i.i130, %cmp1.i.i134 + br i1 %or.cond.i135, label %return, label %while.cond.i.i.preheader.i136 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100: ; preds = %if.end.i.i.i97 + %cmp.i27.i101 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i102 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i103 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i104 = sub i64 %sub.ptr.lhs.cast.i28.i102, %sub.ptr.rhs.cast.i29.i103 + %cmp1.i31.i105 = icmp ult i64 %sub.ptr.sub.i30.i104, 20 + %or.cond32.i106 = or i1 %cmp.i27.i101, %cmp1.i31.i105 + br i1 %or.cond32.i106, label %return, label %while.body.i.i.preheader.i107 + +while.cond.i.i.preheader.i136: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128 + %cmp.i.i621.i137 = icmp samesign ugt i64 %i.i.i.020.i94, 2 + br i1 %cmp.i.i621.i137, label %while.body.i.i.preheader.i107, label %while.end.i.i.i118 + +while.body.i.i.preheader.i107: ; preds = %while.cond.i.i.preheader.i136, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 + %retval.i.i.03336.i108 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 ] + br label %while.body.i.i.i109 + +while.body.i.i.i109: ; preds = %while.body.i.i.i109, %while.body.i.i.preheader.i107 + %v.addr.i.i3.023.i110 = phi i64 [ %div.i.i.i113, %while.body.i.i.i109 ], [ %x.coerce0, %while.body.i.i.preheader.i107 ] + %pos.i.i.022.i111 = phi i64 [ %sub.i.i.i112, %while.body.i.i.i109 ], [ %retval.i.i.03336.i108, %while.body.i.i.preheader.i107 ] + %sub.i.i.i112 = add i64 %pos.i.i.022.i111, -2 + %div.i.i.i113 = udiv i64 %v.addr.i.i3.023.i110, 100 + %rem.i.i.i114 = urem i64 %v.addr.i.i3.023.i110, 100 + %arrayidx.i.i9.i115 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i114 + %19 = load i16, ptr %arrayidx.i.i9.i115, align 2 + %add.ptr.i.i.i116 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i112 + store i16 %19, ptr %add.ptr.i.i.i116, align 1 + %cmp.i.i6.i117 = icmp ugt i64 %sub.i.i.i112, 2 + br i1 %cmp.i.i6.i117, label %while.body.i.i.i109, label %while.end.i.i.i118, !llvm.loop !730 + +while.end.i.i.i118: ; preds = %while.body.i.i.i109, %while.cond.i.i.preheader.i136 + %retval.i.i.03337.i119 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ %retval.i.i.03336.i108, %while.body.i.i.i109 ] + %pos.i.i.0.lcssa.i120 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ %sub.i.i.i112, %while.body.i.i.i109 ] + %v.addr.i.i3.0.lcssa.i121 = phi i64 [ %x.coerce0, %while.cond.i.i.preheader.i136 ], [ %div.i.i.i113, %while.body.i.i.i109 ] + %arrayidx2.i.i.i122 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i121 + %20 = load i16, ptr %arrayidx2.i.i.i122, align 2 + %cmp3.i.i.i123 = icmp eq i64 %pos.i.i.0.lcssa.i120, 2 + br i1 %cmp3.i.i.i123, label %if.then.i.i8.i127, label %if.else.i.i.i124 + +if.then.i.i8.i127: ; preds = %while.end.i.i.i118 store i16 %20, ptr %outb, align 1 br label %return -if.else.i.i.i125: ; preds = %while.end.i.i.i119 +if.else.i.i.i124: ; preds = %while.end.i.i.i118 %21 = lshr i16 %20, 8 - %conv4.i.i.i126 = trunc nuw i16 %21 to i8 - store i8 %conv4.i.i.i126, ptr %outb, align 1 + %conv4.i.i.i125 = trunc nuw i16 %21 to i8 + store i8 %conv4.i.i.i125, ptr %outb, align 1 br label %return -return: ; preds = %if.else.i.i.i125, %if.then.i.i8.i128, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 - %p.0 = phi i64 [ %add.i92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93 ], [ %add.i31, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129 ], [ %retval.i.i.03337.i120, %if.else.i.i.i125 ], [ %retval.i.i.03337.i120, %if.then.i.i8.i128 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 ] +return: ; preds = %if.else.i.i.i124, %if.then.i.i8.i127, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31 + %p.0 = phi i64 [ %add.i91, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92 ], [ %add.i30, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128 ], [ %retval.i.i.03337.i119, %if.else.i.i.i124 ], [ %retval.i.i.03337.i119, %if.then.i.i8.i127 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 ] ret i64 %p.0 } diff --git a/bench/velox/optimized/md5.cpp.ll b/bench/velox/optimized/md5.cpp.ll index bc2bbfbd987..bae8c713674 100644 --- a/bench/velox/optimized/md5.cpp.ll +++ b/bench/velox/optimized/md5.cpp.ll @@ -1299,7 +1299,7 @@ declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm(pt define linkonce_odr noundef i64 @_ZN5folly6detail18unsafeTelescope128EPcS1_o(ptr noundef %outb, ptr noundef %oute, i64 noundef %x.coerce0, i64 noundef %x.coerce1) local_unnamed_addr #5 comdat { entry: %cmp.not = icmp eq i64 %x.coerce1, 0 - br i1 %cmp.not, label %for.body.i.i95, label %if.then + br i1 %cmp.not, label %for.body.i.i94, label %if.then if.then: ; preds = %entry %x.sroa.0.0.insert.ext = zext i64 %x.coerce0 to i128 @@ -1395,224 +1395,224 @@ _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit: ; preds = %_ZN5fo br label %while.body.i.i10 while.body.i.i10: ; preds = %while.body.i.i10, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit - %v.addr.i3.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i12, %while.body.i.i10 ] + %v.addr.i3.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i, %while.body.i.i10 ] %pos.i.08.i = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %sub.i.i11, %while.body.i.i10 ] %sub.i.i11 = add nsw i64 %pos.i.08.i, -2 - %div.i.i12 = udiv i64 %v.addr.i3.09.i, 100 - %rem.i.i13 = urem i64 %v.addr.i3.09.i, 100 - %arrayidx.i.i14 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i13 - %5 = load i16, ptr %arrayidx.i.i14, align 2 - %add.ptr.i.i15 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i11 - store i16 %5, ptr %add.ptr.i.i15, align 1 - %cmp.i.i16 = icmp ugt i64 %sub.i.i11, 2 - br i1 %cmp.i.i16, label %while.body.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !30 + %div.i.i = udiv i64 %v.addr.i3.09.i, 100 + %rem.i.i12 = urem i64 %v.addr.i3.09.i, 100 + %arrayidx.i.i13 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i12 + %5 = load i16, ptr %arrayidx.i.i13, align 2 + %add.ptr.i.i14 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i11 + store i16 %5, ptr %add.ptr.i.i14, align 1 + %cmp.i.i15 = icmp ugt i64 %sub.i.i11, 2 + br i1 %cmp.i.i15, label %while.body.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !30 _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit: ; preds = %while.body.i.i10 - %arrayidx2.i.i17 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i12 - %6 = load i16, ptr %arrayidx2.i.i17, align 2 + %arrayidx2.i.i16 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i + %6 = load i16, ptr %arrayidx2.i.i16, align 2 %7 = lshr i16 %6, 8 - %conv4.i.i18 = trunc nuw i16 %7 to i8 - store i8 %conv4.i.i18, ptr %add.ptr.i, align 1 - %add.ptr.i19 = getelementptr i8, ptr %add.ptr.i, i64 19 - br label %while.body.i.i20 - -while.body.i.i20: ; preds = %while.body.i.i20, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit - %v.addr.i3.09.i21 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i24, %while.body.i.i20 ] - %pos.i.08.i22 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i23, %while.body.i.i20 ] - %sub.i.i23 = add nsw i64 %pos.i.08.i22, -2 - %div.i.i24 = udiv i64 %v.addr.i3.09.i21, 100 - %rem.i.i25 = urem i64 %v.addr.i3.09.i21, 100 - %arrayidx.i.i26 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i25 - %8 = load i16, ptr %arrayidx.i.i26, align 2 - %add.ptr.i.i27 = getelementptr inbounds i8, ptr %add.ptr.i19, i64 %sub.i.i23 - store i16 %8, ptr %add.ptr.i.i27, align 1 - %cmp.i.i28 = icmp ugt i64 %sub.i.i23, 2 - br i1 %cmp.i.i28, label %while.body.i.i20, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33, !llvm.loop !30 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33: ; preds = %while.body.i.i20 - %arrayidx2.i.i29 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i24 - %9 = load i16, ptr %arrayidx2.i.i29, align 2 + %conv4.i.i17 = trunc nuw i16 %7 to i8 + store i8 %conv4.i.i17, ptr %add.ptr.i, align 1 + %add.ptr.i18 = getelementptr i8, ptr %add.ptr.i, i64 19 + br label %while.body.i.i19 + +while.body.i.i19: ; preds = %while.body.i.i19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit + %v.addr.i3.09.i20 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i23, %while.body.i.i19 ] + %pos.i.08.i21 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i22, %while.body.i.i19 ] + %sub.i.i22 = add nsw i64 %pos.i.08.i21, -2 + %div.i.i23 = udiv i64 %v.addr.i3.09.i20, 100 + %rem.i.i24 = urem i64 %v.addr.i3.09.i20, 100 + %arrayidx.i.i25 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i24 + %8 = load i16, ptr %arrayidx.i.i25, align 2 + %add.ptr.i.i26 = getelementptr inbounds i8, ptr %add.ptr.i18, i64 %sub.i.i22 + store i16 %8, ptr %add.ptr.i.i26, align 1 + %cmp.i.i27 = icmp ugt i64 %sub.i.i22, 2 + br i1 %cmp.i.i27, label %while.body.i.i19, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32, !llvm.loop !30 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32: ; preds = %while.body.i.i19 + %arrayidx2.i.i28 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i23 + %9 = load i16, ptr %arrayidx2.i.i28, align 2 %10 = lshr i16 %9, 8 - %conv4.i.i30 = trunc nuw i16 %10 to i8 - store i8 %conv4.i.i30, ptr %add.ptr.i19, align 1 - %add.i32 = add i64 %retval.i.0.i, 38 + %conv4.i.i29 = trunc nuw i16 %10 to i8 + store i8 %conv4.i.i29, ptr %add.ptr.i18, align 1 + %add.i31 = add i64 %retval.i.0.i, 38 br label %return if.end: ; preds = %if.then %coerce10.sroa.0.0.extract.trunc = trunc i128 %div to i64 - br label %for.body.i.i34 - -for.body.i.i34: ; preds = %if.end.i11.i38, %if.end - %i.i.020.i35 = phi i64 [ 0, %if.end ], [ %inc.i.i39, %if.end.i11.i38 ] - %arrayidx.i.i36 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i35 - %11 = load i64, ptr %arrayidx.i.i36, align 8 - %cmp1.i10.i37 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc - br i1 %cmp1.i10.i37, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69, label %if.end.i11.i38 - -if.end.i11.i38: ; preds = %for.body.i.i34 - %inc.i.i39 = add nuw nsw i64 %i.i.020.i35, 1 - %exitcond.not.i40 = icmp eq i64 %inc.i.i39, 20 - br i1 %exitcond.not.i40, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41, label %for.body.i.i34, !llvm.loop !29 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69: ; preds = %for.body.i.i34 - %add.i.i70 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i35, i64 1) - %cmp.i.i71 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i72 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i73 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i74 = sub i64 %sub.ptr.lhs.cast.i.i72, %sub.ptr.rhs.cast.i.i73 - %cmp1.i.i75 = icmp ult i64 %sub.ptr.sub.i.i74, %add.i.i70 - %or.cond.i76 = or i1 %cmp.i.i71, %cmp1.i.i75 - br i1 %or.cond.i76, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79, label %while.cond.i.preheader.i77 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41: ; preds = %if.end.i11.i38 - %cmp.i27.i42 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i43 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i44 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i45 = sub i64 %sub.ptr.lhs.cast.i28.i43, %sub.ptr.rhs.cast.i29.i44 - %cmp1.i31.i46 = icmp ult i64 %sub.ptr.sub.i30.i45, 20 - %or.cond32.i47 = or i1 %cmp.i27.i42, %cmp1.i31.i46 - br i1 %or.cond32.i47, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79, label %while.body.i.preheader.i48 - -while.cond.i.preheader.i77: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69 - %cmp.i1521.i78 = icmp samesign ugt i64 %i.i.020.i35, 2 - br i1 %cmp.i1521.i78, label %while.body.i.preheader.i48, label %while.end.i.i59 - -while.body.i.preheader.i48: ; preds = %while.cond.i.preheader.i77, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 - %retval.i7.03336.i49 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 ] - br label %while.body.i.i50 - -while.body.i.i50: ; preds = %while.body.i.i50, %while.body.i.preheader.i48 - %v.addr.i14.023.i51 = phi i64 [ %div.i.i54, %while.body.i.i50 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.preheader.i48 ] - %pos.i.022.i52 = phi i64 [ %sub.i.i53, %while.body.i.i50 ], [ %retval.i7.03336.i49, %while.body.i.preheader.i48 ] - %sub.i.i53 = add i64 %pos.i.022.i52, -2 - %div.i.i54 = udiv i64 %v.addr.i14.023.i51, 100 - %rem.i.i55 = urem i64 %v.addr.i14.023.i51, 100 - %arrayidx.i19.i56 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i55 - %12 = load i16, ptr %arrayidx.i19.i56, align 2 - %add.ptr.i.i57 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i53 - store i16 %12, ptr %add.ptr.i.i57, align 1 - %cmp.i15.i58 = icmp ugt i64 %sub.i.i53, 2 - br i1 %cmp.i15.i58, label %while.body.i.i50, label %while.end.i.i59, !llvm.loop !30 - -while.end.i.i59: ; preds = %while.body.i.i50, %while.cond.i.preheader.i77 - %retval.i7.03337.i60 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ %retval.i7.03336.i49, %while.body.i.i50 ] - %pos.i.0.lcssa.i61 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ %sub.i.i53, %while.body.i.i50 ] - %v.addr.i14.0.lcssa.i62 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.preheader.i77 ], [ %div.i.i54, %while.body.i.i50 ] - %arrayidx2.i.i63 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i62 - %13 = load i16, ptr %arrayidx2.i.i63, align 2 - %cmp3.i.i64 = icmp eq i64 %pos.i.0.lcssa.i61, 2 - br i1 %cmp3.i.i64, label %if.then.i18.i68, label %if.else.i.i65 - -if.then.i18.i68: ; preds = %while.end.i.i59 + br label %for.body.i.i33 + +for.body.i.i33: ; preds = %if.end.i11.i37, %if.end + %i.i.020.i34 = phi i64 [ 0, %if.end ], [ %inc.i.i38, %if.end.i11.i37 ] + %arrayidx.i.i35 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i34 + %11 = load i64, ptr %arrayidx.i.i35, align 8 + %cmp1.i10.i36 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc + br i1 %cmp1.i10.i36, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68, label %if.end.i11.i37 + +if.end.i11.i37: ; preds = %for.body.i.i33 + %inc.i.i38 = add nuw nsw i64 %i.i.020.i34, 1 + %exitcond.not.i39 = icmp eq i64 %inc.i.i38, 20 + br i1 %exitcond.not.i39, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40, label %for.body.i.i33, !llvm.loop !29 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68: ; preds = %for.body.i.i33 + %add.i.i69 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i34, i64 1) + %cmp.i.i70 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i71 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i72 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i73 = sub i64 %sub.ptr.lhs.cast.i.i71, %sub.ptr.rhs.cast.i.i72 + %cmp1.i.i74 = icmp ult i64 %sub.ptr.sub.i.i73, %add.i.i69 + %or.cond.i75 = or i1 %cmp.i.i70, %cmp1.i.i74 + br i1 %or.cond.i75, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.cond.i.preheader.i76 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40: ; preds = %if.end.i11.i37 + %cmp.i27.i41 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i42 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i43 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i44 = sub i64 %sub.ptr.lhs.cast.i28.i42, %sub.ptr.rhs.cast.i29.i43 + %cmp1.i31.i45 = icmp ult i64 %sub.ptr.sub.i30.i44, 20 + %or.cond32.i46 = or i1 %cmp.i27.i41, %cmp1.i31.i45 + br i1 %or.cond32.i46, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.body.i.preheader.i47 + +while.cond.i.preheader.i76: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68 + %cmp.i1521.i77 = icmp samesign ugt i64 %i.i.020.i34, 2 + br i1 %cmp.i1521.i77, label %while.body.i.preheader.i47, label %while.end.i.i58 + +while.body.i.preheader.i47: ; preds = %while.cond.i.preheader.i76, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 + %retval.i7.03336.i48 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 ] + br label %while.body.i.i49 + +while.body.i.i49: ; preds = %while.body.i.i49, %while.body.i.preheader.i47 + %v.addr.i14.023.i50 = phi i64 [ %div.i.i53, %while.body.i.i49 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.preheader.i47 ] + %pos.i.022.i51 = phi i64 [ %sub.i.i52, %while.body.i.i49 ], [ %retval.i7.03336.i48, %while.body.i.preheader.i47 ] + %sub.i.i52 = add i64 %pos.i.022.i51, -2 + %div.i.i53 = udiv i64 %v.addr.i14.023.i50, 100 + %rem.i.i54 = urem i64 %v.addr.i14.023.i50, 100 + %arrayidx.i19.i55 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i54 + %12 = load i16, ptr %arrayidx.i19.i55, align 2 + %add.ptr.i.i56 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i52 + store i16 %12, ptr %add.ptr.i.i56, align 1 + %cmp.i15.i57 = icmp ugt i64 %sub.i.i52, 2 + br i1 %cmp.i15.i57, label %while.body.i.i49, label %while.end.i.i58, !llvm.loop !30 + +while.end.i.i58: ; preds = %while.body.i.i49, %while.cond.i.preheader.i76 + %retval.i7.03337.i59 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ %retval.i7.03336.i48, %while.body.i.i49 ] + %pos.i.0.lcssa.i60 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ %sub.i.i52, %while.body.i.i49 ] + %v.addr.i14.0.lcssa.i61 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.preheader.i76 ], [ %div.i.i53, %while.body.i.i49 ] + %arrayidx2.i.i62 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i61 + %13 = load i16, ptr %arrayidx2.i.i62, align 2 + %cmp3.i.i63 = icmp eq i64 %pos.i.0.lcssa.i60, 2 + br i1 %cmp3.i.i63, label %if.then.i18.i67, label %if.else.i.i64 + +if.then.i18.i67: ; preds = %while.end.i.i58 store i16 %13, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 -if.else.i.i65: ; preds = %while.end.i.i59 +if.else.i.i64: ; preds = %while.end.i.i58 %14 = lshr i16 %13, 8 - %conv4.i.i66 = trunc nuw i16 %14 to i8 - store i8 %conv4.i.i66, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41, %if.then.i18.i68, %if.else.i.i65 - %retval.i.0.i67 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69 ], [ %retval.i7.03337.i60, %if.else.i.i65 ], [ %retval.i7.03337.i60, %if.then.i18.i68 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 ] - %add.ptr.i80 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i67 - br label %while.body.i.i81 - -while.body.i.i81: ; preds = %while.body.i.i81, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 - %v.addr.i3.09.i82 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 ], [ %div.i.i85, %while.body.i.i81 ] - %pos.i.08.i83 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 ], [ %sub.i.i84, %while.body.i.i81 ] - %sub.i.i84 = add nsw i64 %pos.i.08.i83, -2 - %div.i.i85 = udiv i64 %v.addr.i3.09.i82, 100 - %rem.i.i86 = urem i64 %v.addr.i3.09.i82, 100 - %arrayidx.i.i87 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i86 - %15 = load i16, ptr %arrayidx.i.i87, align 2 - %add.ptr.i.i88 = getelementptr inbounds i8, ptr %add.ptr.i80, i64 %sub.i.i84 - store i16 %15, ptr %add.ptr.i.i88, align 1 - %cmp.i.i89 = icmp ugt i64 %sub.i.i84, 2 - br i1 %cmp.i.i89, label %while.body.i.i81, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94, !llvm.loop !30 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94: ; preds = %while.body.i.i81 - %arrayidx2.i.i90 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i85 - %16 = load i16, ptr %arrayidx2.i.i90, align 2 + %conv4.i.i65 = trunc nuw i16 %14 to i8 + store i8 %conv4.i.i65, ptr %outb, align 1 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40, %if.then.i18.i67, %if.else.i.i64 + %retval.i.0.i66 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68 ], [ %retval.i7.03337.i59, %if.else.i.i64 ], [ %retval.i7.03337.i59, %if.then.i18.i67 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 ] + %add.ptr.i79 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i66 + br label %while.body.i.i80 + +while.body.i.i80: ; preds = %while.body.i.i80, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + %v.addr.i3.09.i81 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %div.i.i84, %while.body.i.i80 ] + %pos.i.08.i82 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %sub.i.i83, %while.body.i.i80 ] + %sub.i.i83 = add nsw i64 %pos.i.08.i82, -2 + %div.i.i84 = udiv i64 %v.addr.i3.09.i81, 100 + %rem.i.i85 = urem i64 %v.addr.i3.09.i81, 100 + %arrayidx.i.i86 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i85 + %15 = load i16, ptr %arrayidx.i.i86, align 2 + %add.ptr.i.i87 = getelementptr inbounds i8, ptr %add.ptr.i79, i64 %sub.i.i83 + store i16 %15, ptr %add.ptr.i.i87, align 1 + %cmp.i.i88 = icmp ugt i64 %sub.i.i83, 2 + br i1 %cmp.i.i88, label %while.body.i.i80, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, !llvm.loop !30 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93: ; preds = %while.body.i.i80 + %arrayidx2.i.i89 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i84 + %16 = load i16, ptr %arrayidx2.i.i89, align 2 %17 = lshr i16 %16, 8 - %conv4.i.i91 = trunc nuw i16 %17 to i8 - store i8 %conv4.i.i91, ptr %add.ptr.i80, align 1 - %add.i93 = add i64 %retval.i.0.i67, 19 + %conv4.i.i90 = trunc nuw i16 %17 to i8 + store i8 %conv4.i.i90, ptr %add.ptr.i79, align 1 + %add.i92 = add i64 %retval.i.0.i66, 19 br label %return -for.body.i.i95: ; preds = %entry, %if.end.i11.i99 - %i.i.020.i96 = phi i64 [ %inc.i.i100, %if.end.i11.i99 ], [ 0, %entry ] - %arrayidx.i.i97 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i96 - %18 = load i64, ptr %arrayidx.i.i97, align 8 - %cmp1.i10.i98 = icmp ult i64 %x.coerce0, %18 - br i1 %cmp1.i10.i98, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130, label %if.end.i11.i99 - -if.end.i11.i99: ; preds = %for.body.i.i95 - %inc.i.i100 = add nuw nsw i64 %i.i.020.i96, 1 - %exitcond.not.i101 = icmp eq i64 %inc.i.i100, 20 - br i1 %exitcond.not.i101, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102, label %for.body.i.i95, !llvm.loop !29 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130: ; preds = %for.body.i.i95 - %add.i.i131 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i96, i64 1) - %cmp.i.i132 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i133 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i134 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i135 = sub i64 %sub.ptr.lhs.cast.i.i133, %sub.ptr.rhs.cast.i.i134 - %cmp1.i.i136 = icmp ult i64 %sub.ptr.sub.i.i135, %add.i.i131 - %or.cond.i137 = or i1 %cmp.i.i132, %cmp1.i.i136 - br i1 %or.cond.i137, label %return, label %while.cond.i.preheader.i138 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102: ; preds = %if.end.i11.i99 - %cmp.i27.i103 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i104 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i105 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i106 = sub i64 %sub.ptr.lhs.cast.i28.i104, %sub.ptr.rhs.cast.i29.i105 - %cmp1.i31.i107 = icmp ult i64 %sub.ptr.sub.i30.i106, 20 - %or.cond32.i108 = or i1 %cmp.i27.i103, %cmp1.i31.i107 - br i1 %or.cond32.i108, label %return, label %while.body.i.preheader.i109 - -while.cond.i.preheader.i138: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130 - %cmp.i1521.i139 = icmp samesign ugt i64 %i.i.020.i96, 2 - br i1 %cmp.i1521.i139, label %while.body.i.preheader.i109, label %while.end.i.i120 - -while.body.i.preheader.i109: ; preds = %while.cond.i.preheader.i138, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 - %retval.i7.03336.i110 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 ] - br label %while.body.i.i111 - -while.body.i.i111: ; preds = %while.body.i.i111, %while.body.i.preheader.i109 - %v.addr.i14.023.i112 = phi i64 [ %div.i.i115, %while.body.i.i111 ], [ %x.coerce0, %while.body.i.preheader.i109 ] - %pos.i.022.i113 = phi i64 [ %sub.i.i114, %while.body.i.i111 ], [ %retval.i7.03336.i110, %while.body.i.preheader.i109 ] - %sub.i.i114 = add i64 %pos.i.022.i113, -2 - %div.i.i115 = udiv i64 %v.addr.i14.023.i112, 100 - %rem.i.i116 = urem i64 %v.addr.i14.023.i112, 100 - %arrayidx.i19.i117 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i116 - %19 = load i16, ptr %arrayidx.i19.i117, align 2 - %add.ptr.i.i118 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i114 - store i16 %19, ptr %add.ptr.i.i118, align 1 - %cmp.i15.i119 = icmp ugt i64 %sub.i.i114, 2 - br i1 %cmp.i15.i119, label %while.body.i.i111, label %while.end.i.i120, !llvm.loop !30 - -while.end.i.i120: ; preds = %while.body.i.i111, %while.cond.i.preheader.i138 - %retval.i7.03337.i121 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ %retval.i7.03336.i110, %while.body.i.i111 ] - %pos.i.0.lcssa.i122 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ %sub.i.i114, %while.body.i.i111 ] - %v.addr.i14.0.lcssa.i123 = phi i64 [ %x.coerce0, %while.cond.i.preheader.i138 ], [ %div.i.i115, %while.body.i.i111 ] - %arrayidx2.i.i124 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i123 - %20 = load i16, ptr %arrayidx2.i.i124, align 2 - %cmp3.i.i125 = icmp eq i64 %pos.i.0.lcssa.i122, 2 - br i1 %cmp3.i.i125, label %if.then.i18.i129, label %if.else.i.i126 - -if.then.i18.i129: ; preds = %while.end.i.i120 +for.body.i.i94: ; preds = %entry, %if.end.i11.i98 + %i.i.020.i95 = phi i64 [ %inc.i.i99, %if.end.i11.i98 ], [ 0, %entry ] + %arrayidx.i.i96 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i95 + %18 = load i64, ptr %arrayidx.i.i96, align 8 + %cmp1.i10.i97 = icmp ult i64 %x.coerce0, %18 + br i1 %cmp1.i10.i97, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129, label %if.end.i11.i98 + +if.end.i11.i98: ; preds = %for.body.i.i94 + %inc.i.i99 = add nuw nsw i64 %i.i.020.i95, 1 + %exitcond.not.i100 = icmp eq i64 %inc.i.i99, 20 + br i1 %exitcond.not.i100, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101, label %for.body.i.i94, !llvm.loop !29 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129: ; preds = %for.body.i.i94 + %add.i.i130 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i95, i64 1) + %cmp.i.i131 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i132 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i133 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i134 = sub i64 %sub.ptr.lhs.cast.i.i132, %sub.ptr.rhs.cast.i.i133 + %cmp1.i.i135 = icmp ult i64 %sub.ptr.sub.i.i134, %add.i.i130 + %or.cond.i136 = or i1 %cmp.i.i131, %cmp1.i.i135 + br i1 %or.cond.i136, label %return, label %while.cond.i.preheader.i137 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101: ; preds = %if.end.i11.i98 + %cmp.i27.i102 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i103 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i104 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i105 = sub i64 %sub.ptr.lhs.cast.i28.i103, %sub.ptr.rhs.cast.i29.i104 + %cmp1.i31.i106 = icmp ult i64 %sub.ptr.sub.i30.i105, 20 + %or.cond32.i107 = or i1 %cmp.i27.i102, %cmp1.i31.i106 + br i1 %or.cond32.i107, label %return, label %while.body.i.preheader.i108 + +while.cond.i.preheader.i137: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129 + %cmp.i1521.i138 = icmp samesign ugt i64 %i.i.020.i95, 2 + br i1 %cmp.i1521.i138, label %while.body.i.preheader.i108, label %while.end.i.i119 + +while.body.i.preheader.i108: ; preds = %while.cond.i.preheader.i137, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 + %retval.i7.03336.i109 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 ] + br label %while.body.i.i110 + +while.body.i.i110: ; preds = %while.body.i.i110, %while.body.i.preheader.i108 + %v.addr.i14.023.i111 = phi i64 [ %div.i.i114, %while.body.i.i110 ], [ %x.coerce0, %while.body.i.preheader.i108 ] + %pos.i.022.i112 = phi i64 [ %sub.i.i113, %while.body.i.i110 ], [ %retval.i7.03336.i109, %while.body.i.preheader.i108 ] + %sub.i.i113 = add i64 %pos.i.022.i112, -2 + %div.i.i114 = udiv i64 %v.addr.i14.023.i111, 100 + %rem.i.i115 = urem i64 %v.addr.i14.023.i111, 100 + %arrayidx.i19.i116 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i115 + %19 = load i16, ptr %arrayidx.i19.i116, align 2 + %add.ptr.i.i117 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i113 + store i16 %19, ptr %add.ptr.i.i117, align 1 + %cmp.i15.i118 = icmp ugt i64 %sub.i.i113, 2 + br i1 %cmp.i15.i118, label %while.body.i.i110, label %while.end.i.i119, !llvm.loop !30 + +while.end.i.i119: ; preds = %while.body.i.i110, %while.cond.i.preheader.i137 + %retval.i7.03337.i120 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ %retval.i7.03336.i109, %while.body.i.i110 ] + %pos.i.0.lcssa.i121 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ %sub.i.i113, %while.body.i.i110 ] + %v.addr.i14.0.lcssa.i122 = phi i64 [ %x.coerce0, %while.cond.i.preheader.i137 ], [ %div.i.i114, %while.body.i.i110 ] + %arrayidx2.i.i123 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i122 + %20 = load i16, ptr %arrayidx2.i.i123, align 2 + %cmp3.i.i124 = icmp eq i64 %pos.i.0.lcssa.i121, 2 + br i1 %cmp3.i.i124, label %if.then.i18.i128, label %if.else.i.i125 + +if.then.i18.i128: ; preds = %while.end.i.i119 store i16 %20, ptr %outb, align 1 br label %return -if.else.i.i126: ; preds = %while.end.i.i120 +if.else.i.i125: ; preds = %while.end.i.i119 %21 = lshr i16 %20, 8 - %conv4.i.i127 = trunc nuw i16 %21 to i8 - store i8 %conv4.i.i127, ptr %outb, align 1 + %conv4.i.i126 = trunc nuw i16 %21 to i8 + store i8 %conv4.i.i126, ptr %outb, align 1 br label %return -return: ; preds = %if.else.i.i126, %if.then.i18.i129, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33 - %p.0 = phi i64 [ %add.i93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94 ], [ %add.i32, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130 ], [ %retval.i7.03337.i121, %if.else.i.i126 ], [ %retval.i7.03337.i121, %if.then.i18.i129 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 ] +return: ; preds = %if.else.i.i125, %if.then.i18.i128, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 + %p.0 = phi i64 [ %add.i92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93 ], [ %add.i31, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129 ], [ %retval.i7.03337.i120, %if.else.i.i125 ], [ %retval.i7.03337.i120, %if.then.i18.i128 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 ] ret i64 %p.0 }