From 1d94fb0e0731f67c58d7a19279fb9cad6fb587e4 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Fri, 17 Oct 2025 21:43:25 +0800 Subject: [PATCH 1/3] pre-commit: PR163628 --- 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 c8d0fce0bf7..eac80f4bca3 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/163628 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME="" From f4ea41922a32a6794d4109d52384a16fc3035334 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:59:44 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/abseil-cpp/optimized/arg.ll | 16 +- bench/abseil-cpp/optimized/charconv.ll | 20 +- bench/abseil-cpp/optimized/duration.ll | 22 +- .../abseil-cpp/optimized/float_conversion.ll | 187 ++--- bench/arrow/optimized/value_parsing.ll | 444 ++++++------ bench/boost/optimized/approximately_equals.ll | 8 +- bench/boost/optimized/to_chars.ll | 4 +- .../coreutils-rs/optimized/yiho3rob7ld9k5q.ll | 6 +- bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll | 84 ++- bench/duckdb/optimized/yyjson.ll | 366 +++++----- bench/fmt/optimized/format-impl-test.ll | 27 +- bench/image-rs/optimized/30755d6iao7ojcvl.ll | 286 ++++---- bench/image-rs/optimized/5ez7udly19o3uj1p.ll | 60 +- bench/libigl/optimized/coplanar.ll | 2 +- bench/linux/optimized/i915_hwmon.ll | 36 +- bench/linux/optimized/memory.ll | 103 ++- bench/linux/optimized/pci.ll | 63 +- bench/mitsuba3/optimized/string.ll | 494 ++++++------- bench/nix/optimized/derivations.ll | 7 +- .../optimized/bvwglp2tpp41rgrf36efmuws6.ll | 133 ++-- .../optimized/3x7yowofiwoipixvfrx7sq0eo.ll | 647 +++++++++--------- bench/postgres/optimized/gindatapage.ll | 146 ++-- .../optimized/b7bzulfx0416fsx8nur737ayt.ll | 11 +- .../optimized/2mbx5ptcpq6fo7sc.ll | 424 ++++++------ .../sentencepiece/optimized/repeated_field.ll | 32 +- bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll | 316 +++++---- bench/typst-rs/optimized/2i78fvbm4wocuesi.ll | 522 +++++++------- bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll | 390 ++++++----- bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll | 376 +++++----- bench/wasmedge/optimized/wasmedge.ll | 10 +- bench/yyjson/optimized/yyjson.ll | 360 +++++----- 31 files changed, 2820 insertions(+), 2782 deletions(-) diff --git a/bench/abseil-cpp/optimized/arg.ll b/bench/abseil-cpp/optimized/arg.ll index 7a720b3e2e0..812de697c06 100644 --- a/bench/abseil-cpp/optimized/arg.ll +++ b/bench/abseil-cpp/optimized/arg.ll @@ -5479,8 +5479,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits15PrintAsHexUpperINS_7uint1 %.sroa.2.0.extract.shift.i.i.i56 = lshr i128 %67, 64 %.sroa.2.0.extract.trunc.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i56 to i64 %.not.i.i57 = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i55, 0 - %70 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i, 0 - %71 = select i1 %.not.i.i57, i1 true, i1 %70 + %70 = icmp ugt i64 %.sroa.5.0.i53, 99 + %71 = or i1 %70, %.not.i.i57 br i1 %71, label %65, label %_ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit, !llvm.loop !75 _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit: ; preds = %65 @@ -5528,8 +5528,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb. %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %84, 64 %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 %.not.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i, 0 - %87 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i.i, 0 - %88 = select i1 %.not.i.i.i, i1 true, i1 %87 + %87 = icmp ugt i64 %.sroa.5.0.i.i, 99 + %88 = or i1 %87, %.not.i.i.i br i1 %88, label %82, label %89, !llvm.loop !75 89: ; preds = %82 @@ -5797,8 +5797,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits15PrintAsHexUpperINS_7uint1 %.sroa.2.0.extract.shift.i.i.i56 = lshr i128 %67, 64 %.sroa.2.0.extract.trunc.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i56 to i64 %.not.i.i57 = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i55, 0 - %70 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i, 0 - %71 = select i1 %.not.i.i57, i1 true, i1 %70 + %70 = icmp ugt i64 %.sroa.5.0.i53, 99 + %71 = or i1 %70, %.not.i.i57 br i1 %71, label %65, label %_ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit, !llvm.loop !75 _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit: ; preds = %65 @@ -5837,8 +5837,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb. %.sroa.2.0.extract.shift.i.i.i67 = lshr i128 %83, 64 %.sroa.2.0.extract.trunc.i.i.i68 = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i67 to i64 %.not.i.i69 = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i66, 0 - %86 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i68, 0 - %87 = select i1 %.not.i.i69, i1 true, i1 %86 + %86 = icmp ugt i64 %.sroa.5.0.i60, 99 + %87 = or i1 %86, %.not.i.i69 br i1 %87, label %81, label %_ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit71, !llvm.loop !75 _ZN4absl19str_format_internal12_GLOBAL__N_19IntDigits10PrintAsDecENS_7uint128Eb.exit71: ; preds = %81 diff --git a/bench/abseil-cpp/optimized/charconv.ll b/bench/abseil-cpp/optimized/charconv.ll index 439ea039025..8ea975e9f4a 100644 --- a/bench/abseil-cpp/optimized/charconv.ll +++ b/bench/abseil-cpp/optimized/charconv.ll @@ -560,18 +560,18 @@ _ZN4absl12_GLOBAL__N_111EiselLemireIdEEbRKNS_16strings_internal11ParsedFloatEbPT %.sroa.03.0.insert.ext.i.i.i.i = zext i64 %194 to i128 %.sroa.01.0.insert.ext.i.i.i107.i = zext i64 %270 to i128 %271 = mul nuw i128 %.sroa.01.0.insert.ext.i.i.i107.i, %.sroa.03.0.insert.ext.i.i.i.i - %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %271, 64 - %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 %272 = add nsw i32 %.pre5, -63 - %273 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i, 0 + %273 = icmp ult i128 %271, 18446744073709551616 br i1 %273, label %274, label %276 274: ; preds = %266 - %.sroa.0.0.extract.trunc.i.i.i108.i = trunc i128 %271 to i64 + %.sroa.0.0.extract.trunc.i.i.i108.i = trunc nuw i128 %271 to i64 %275 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %.sroa.0.0.extract.trunc.i.i.i108.i, i1 false) br label %_ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i 276: ; preds = %266 + %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %271, 64 + %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 %277 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %.sroa.2.0.extract.trunc.i.i.i.i, i1 true) br label %_ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i @@ -602,7 +602,7 @@ _ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i: ; preds = %2 %.sroa.2.0.extract.trunc.i.i.i.i24 = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i23 to i64 %289 = add nsw i32 %215, -63 %290 = icmp ult i32 %.val70.i, 28 - %291 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i24, 0 + %291 = icmp ult i128 %288, 18446744073709551616 br i1 %290, label %302, label %292 292: ; preds = %283 @@ -1343,18 +1343,18 @@ _ZN4absl12_GLOBAL__N_111EiselLemireIfEEbRKNS_16strings_internal11ParsedFloatEbPT %.sroa.03.0.insert.ext.i.i.i.i = zext i64 %194 to i128 %.sroa.01.0.insert.ext.i.i.i107.i = zext i64 %273 to i128 %274 = mul nuw i128 %.sroa.01.0.insert.ext.i.i.i107.i, %.sroa.03.0.insert.ext.i.i.i.i - %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %274, 64 - %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 %275 = add nsw i32 %.pre5, -63 - %276 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i, 0 + %276 = icmp ult i128 %274, 18446744073709551616 br i1 %276, label %277, label %279 277: ; preds = %269 - %.sroa.0.0.extract.trunc.i.i.i108.i = trunc i128 %274 to i64 + %.sroa.0.0.extract.trunc.i.i.i108.i = trunc nuw i128 %274 to i64 %278 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %.sroa.0.0.extract.trunc.i.i.i108.i, i1 false) br label %_ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i 279: ; preds = %269 + %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %274, 64 + %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 %280 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %.sroa.2.0.extract.trunc.i.i.i.i, i1 true) br label %_ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i @@ -1385,7 +1385,7 @@ _ZN4absl12_GLOBAL__N_118TruncateToBitWidthEiPNS_7uint128E.exit.i.i: ; preds = %2 %.sroa.2.0.extract.trunc.i.i.i.i24 = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i23 to i64 %292 = add nsw i32 %215, -63 %293 = icmp ult i32 %.val70.i, 28 - %294 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i24, 0 + %294 = icmp ult i128 %291, 18446744073709551616 br i1 %293, label %305, label %295 295: ; preds = %286 diff --git a/bench/abseil-cpp/optimized/duration.ll b/bench/abseil-cpp/optimized/duration.ll index bc44d5583ac..96bf3fb27f1 100644 --- a/bench/abseil-cpp/optimized/duration.ll +++ b/bench/abseil-cpp/optimized/duration.ll @@ -339,11 +339,9 @@ _ZNK4absl12_GLOBAL__N_112SafeMultiplyINS_7uint128EEclES2_S2_.exit.i: ; preds = % %.sroa.01.0.insert.ext.i.i.sink.i = phi i128 [ %.sroa.01.0.insert.ext.i.i.i, %15 ], [ %.sroa.01.0.insert.ext.i46.i.i, %18 ] %22 = mul i128 %.sroa.01.0.insert.ext.i.i.sink.i, %.sroa.03.0.insert.insert.i.i27.i.i %.sroa.0.0.extract.trunc.i.i.i = trunc i128 %22 to i64 - %.sroa.2.0.extract.shift.i.i.i = lshr i128 %22, 64 - %.sroa.2.0.extract.trunc.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i to i64 %.unshifted.i = xor i64 %.sroa.025.0.copyload, %1 %23 = icmp slt i64 %.unshifted.i, 0 - %24 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i, 0 + %24 = icmp ult i128 %22, 18446744073709551616 br i1 %24, label %25, label %27 25: ; preds = %_ZNK4absl12_GLOBAL__N_112SafeMultiplyINS_7uint128EEclES2_S2_.exit.i @@ -354,6 +352,8 @@ _ZNK4absl12_GLOBAL__N_112SafeMultiplyINS_7uint128EEclES2_S2_.exit.i: ; preds = % br i1 %23, label %36, label %_ZN4absl12_GLOBAL__N_110ScaleFixedINS0_12SafeMultiplyEEENS_8DurationES3_l.exit 27: ; preds = %_ZNK4absl12_GLOBAL__N_112SafeMultiplyINS_7uint128EEclES2_S2_.exit.i + %.sroa.2.0.extract.shift.i.i.i = lshr i128 %22, 64 + %.sroa.2.0.extract.trunc.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i to i64 %28 = icmp ult i64 %.sroa.2.0.extract.trunc.i.i.i, 2000000000 br i1 %28, label %34, label %29 @@ -529,10 +529,9 @@ define dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl8Durat %10 = udiv i128 %.sroa.03.0.insert.insert.i.i27.i.i, %.sroa.01.0.insert.ext.i.i.i %.sroa.0.0.extract.trunc.i.i.i = trunc i128 %10 to i64 %.sroa.2.0.extract.shift.i.i.i = lshr i128 %10, 64 - %.sroa.2.0.extract.trunc.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i to i64 %.unshifted.i = xor i64 %.sroa.026.0.copyload, %1 %11 = icmp sgt i64 %.unshifted.i, -1 - %12 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i, 0 + %12 = icmp samesign ult i128 %10, 18446744073709551616 br i1 %12, label %13, label %15 13: ; preds = %6 @@ -540,11 +539,12 @@ define dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN4absl8Durat br label %22 15: ; preds = %6 + %.sroa.2.0.extract.trunc.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i to i64 %16 = icmp samesign ult i64 %.sroa.2.0.extract.trunc.i.i.i, 2000000000 br i1 %16, label %20, label %17 17: ; preds = %15 - %18 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i, 2000000000 + %18 = icmp ne i128 %.sroa.2.0.extract.shift.i.i.i, 2000000000 %19 = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i, 0 %.not39.i = or i1 %19, %18 %or.cond3.i.not.i = or i1 %11, %.not39.i @@ -2318,8 +2318,8 @@ _ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.th ] _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i: ; preds = %_ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.thread - %lhsc234 = load i8, ptr %.sroa.9.0156, align 1 - %10 = icmp eq i8 %lhsc234, 48 + %lhsc235 = load i8, ptr %.sroa.9.0156, align 1 + %10 = icmp eq i8 %lhsc235, 48 br i1 %10, label %.critedge.sink.split, label %.lr.ph.i.preheader.lr.ph _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i76: ; preds = %_ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.thread @@ -2583,10 +2583,9 @@ _ZN4absl8DurationpLES0_.exit: ; preds = %83, %81, %65, %_ZN4 %95 = udiv i128 %.sroa.03.0.insert.insert.i.i27.i.i.i.i, %.sroa.01.0.insert.ext.i.i.i.i.i %.sroa.0.0.extract.trunc.i.i.i.i.i = trunc i128 %95 to i64 %.sroa.2.0.extract.shift.i.i.i.i.i = lshr i128 %95, 64 - %.sroa.2.0.extract.trunc.i.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i.i.i to i64 %.unshifted.i.i.i = xor i64 %.sroa.03.0.copyload.i88, %.3176 %96 = icmp sgt i64 %.unshifted.i.i.i, -1 - %97 = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i.i, 0 + %97 = icmp samesign ult i128 %95, 18446744073709551616 br i1 %97, label %98, label %100 98: ; preds = %91 @@ -2594,11 +2593,12 @@ _ZN4absl8DurationpLES0_.exit: ; preds = %83, %81, %65, %_ZN4 br label %107 100: ; preds = %91 + %.sroa.2.0.extract.trunc.i.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i.i.i to i64 %101 = icmp samesign ult i64 %.sroa.2.0.extract.trunc.i.i.i.i.i, 2000000000 br i1 %101, label %105, label %102 102: ; preds = %100 - %103 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i.i.i, 2000000000 + %103 = icmp ne i128 %.sroa.2.0.extract.shift.i.i.i.i.i, 2000000000 %104 = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i.i, 0 %.not39.i.i.i = or i1 %104, %103 %or.cond3.i.not.i.i.i = or i1 %96, %.not39.i.i.i diff --git a/bench/abseil-cpp/optimized/float_conversion.ll b/bench/abseil-cpp/optimized/float_conversion.ll index 224c3acf248..1801db103ab 100644 --- a/bench/abseil-cpp/optimized/float_conversion.ll +++ b/bench/abseil-cpp/optimized/float_conversion.ll @@ -239,15 +239,18 @@ _ZN4absl19str_format_internal12_GLOBAL__N_112LeadingZerosENS_7uint128E.exit.i.i. %93 = zext nneg i32 %58 to i128 %94 = shl i128 %.sroa.01.0.insert.insert.i.i.i.i, %93 %.sroa.0.0.extract.trunc.i.i.i.i = trunc i128 %94 to i64 + %.not11.i.i.i.i = icmp ult i128 %94, 18446744073709551616 + br i1 %.not11.i.i.i.i, label %.preheader.i.i.i.i.preheader, label %.lr.ph.i.preheader.i.i.i + +.lr.ph.i.preheader.i.i.i: ; preds = %92 %.sroa.2.0.extract.shift.i.i.i.i = lshr i128 %94, 64 %.sroa.2.0.extract.trunc.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i to i64 - %.not11.i.i.i.i = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i.i, 0 - br i1 %.not11.i.i.i.i, label %.preheader.i.i.i.i.preheader, label %.lr.ph.i.i.i.i + br label %.lr.ph.i.i.i.i -.lr.ph.i.i.i.i: ; preds = %92, %.lr.ph.i.i.i.i - %.014.i.i.i.i = phi ptr [ %107, %.lr.ph.i.i.i.i ], [ %81, %92 ] - %.0913.i.i.i.i = phi i64 [ %104, %.lr.ph.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i, %92 ] - %.01012.i.i.i.i = phi i64 [ %96, %.lr.ph.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i, %92 ] +.lr.ph.i.i.i.i: ; preds = %.lr.ph.i.i.i.i, %.lr.ph.i.preheader.i.i.i + %.014.i.i.i.i = phi ptr [ %107, %.lr.ph.i.i.i.i ], [ %81, %.lr.ph.i.preheader.i.i.i ] + %.0913.i.i.i.i = phi i64 [ %104, %.lr.ph.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i, %.lr.ph.i.preheader.i.i.i ] + %.01012.i.i.i.i = phi i64 [ %96, %.lr.ph.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i, %.lr.ph.i.preheader.i.i.i ] %95 = urem i64 %.01012.i.i.i.i, 10 %96 = udiv i64 %.01012.i.i.i.i, 10 %97 = urem i64 %.0913.i.i.i.i, 10 @@ -301,15 +304,18 @@ _ZN4absl19str_format_internal12_GLOBAL__N_112LeadingZerosENS_7uint128E.exit.i.i. %117 = zext nneg i32 %115 to i128 %118 = lshr i128 %.sroa.01.0.insert.insert.i55.i.i.i, %117 %.sroa.0.0.extract.trunc.i56.i.i.i = trunc i128 %118 to i64 + %.not11.i61.i.i.i = icmp samesign ult i128 %118, 18446744073709551616 + br i1 %.not11.i61.i.i.i, label %.preheader.i69.i.i.i.preheader, label %.lr.ph.i62.preheader.i.i.i + +.lr.ph.i62.preheader.i.i.i: ; preds = %116 %.sroa.2.0.extract.shift.i57.i.i.i = lshr i128 %118, 64 %.sroa.2.0.extract.trunc.i58.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i57.i.i.i to i64 - %.not11.i61.i.i.i = icmp eq i64 %.sroa.2.0.extract.trunc.i58.i.i.i, 0 - br i1 %.not11.i61.i.i.i, label %.preheader.i69.i.i.i.preheader, label %.lr.ph.i62.i.i.i + br label %.lr.ph.i62.i.i.i -.lr.ph.i62.i.i.i: ; preds = %116, %.lr.ph.i62.i.i.i - %.014.i63.i.i.i = phi ptr [ %131, %.lr.ph.i62.i.i.i ], [ %113, %116 ] - %.0913.i64.i.i.i = phi i64 [ %128, %.lr.ph.i62.i.i.i ], [ %.sroa.0.0.extract.trunc.i56.i.i.i, %116 ] - %.01012.i65.i.i.i = phi i64 [ %120, %.lr.ph.i62.i.i.i ], [ %.sroa.2.0.extract.trunc.i58.i.i.i, %116 ] +.lr.ph.i62.i.i.i: ; preds = %.lr.ph.i62.i.i.i, %.lr.ph.i62.preheader.i.i.i + %.014.i63.i.i.i = phi ptr [ %131, %.lr.ph.i62.i.i.i ], [ %113, %.lr.ph.i62.preheader.i.i.i ] + %.0913.i64.i.i.i = phi i64 [ %128, %.lr.ph.i62.i.i.i ], [ %.sroa.0.0.extract.trunc.i56.i.i.i, %.lr.ph.i62.preheader.i.i.i ] + %.01012.i65.i.i.i = phi i64 [ %120, %.lr.ph.i62.i.i.i ], [ %.sroa.2.0.extract.trunc.i58.i.i.i, %.lr.ph.i62.preheader.i.i.i ] %119 = urem i64 %.01012.i65.i.i.i, 10 %120 = udiv i64 %.01012.i65.i.i.i, 10 %121 = urem i64 %.0913.i64.i.i.i, 10 @@ -414,11 +420,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %161 = getelementptr inbounds i8, ptr %.val.i, i64 -1 %162 = load i8, ptr %161, align 1, !tbaa !12 %163 = icmp eq i8 %162, 46 - %spec.select163.i = select i1 %163, ptr %161, ptr %.val.i + %spec.select165.i = select i1 %163, ptr %161, ptr %.val.i br label %._crit_edge136.i ._crit_edge136.i: ; preds = %160, %155 - %164 = phi ptr [ %.val.i, %155 ], [ %spec.select163.i, %160 ] + %164 = phi ptr [ %.val.i, %155 ], [ %spec.select165.i, %160 ] %165 = load i32, ptr %8, align 4, !tbaa !16 %166 = load i8, ptr %1, align 4, !tbaa !13 %167 = icmp eq i8 %166, 7 @@ -433,21 +439,21 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %173 = load ptr, ptr %159, align 8, !tbaa !37 %174 = getelementptr inbounds nuw i8, ptr %173, i64 1 store ptr %174, ptr %159, align 8, !tbaa !37 - %spec.select164.i = select i1 %172, i8 45, i8 43 - %spec.select165.i = call i32 @llvm.abs.i32(i32 %165, i1 true) - store i8 %spec.select164.i, ptr %173, align 1, !tbaa !12 - %175 = icmp samesign ugt i32 %spec.select165.i, 99 + %spec.select166.i = select i1 %172, i8 45, i8 43 + %spec.select167.i = call i32 @llvm.abs.i32(i32 %165, i1 true) + store i8 %spec.select166.i, ptr %173, align 1, !tbaa !12 + %175 = icmp samesign ugt i32 %spec.select167.i, 99 %176 = load ptr, ptr %159, align 8, !tbaa !37 %177 = getelementptr inbounds nuw i8, ptr %176, i64 1 store ptr %177, ptr %159, align 8, !tbaa !37 br i1 %175, label %178, label %190 178: ; preds = %._crit_edge136.i - %179 = udiv i32 %spec.select165.i, 100 + %179 = udiv i32 %spec.select167.i, 100 %180 = trunc i32 %179 to i8 %181 = add i8 %180, 48 store i8 %181, ptr %176, align 1, !tbaa !12 - %182 = udiv i32 %spec.select165.i, 10 + %182 = udiv i32 %spec.select167.i, 10 %183 = urem i32 %182, 10 %184 = trunc nuw nsw i32 %183 to i8 %185 = or disjoint i8 %184, 48 @@ -455,12 +461,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %187 = getelementptr inbounds nuw i8, ptr %186, i64 1 store ptr %187, ptr %159, align 8, !tbaa !37 store i8 %185, ptr %186, align 1, !tbaa !12 - %188 = urem i32 %spec.select165.i, 10 + %188 = urem i32 %spec.select167.i, 10 %189 = trunc nuw nsw i32 %188 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit.i 190: ; preds = %._crit_edge136.i - %.lhs.trunc.i.i = trunc nuw nsw i32 %spec.select165.i to i8 + %.lhs.trunc.i.i = trunc nuw nsw i32 %spec.select167.i to i8 %191 = udiv i8 %.lhs.trunc.i.i, 10 %192 = or disjoint i8 %191, 48 store i8 %192, ptr %176, align 1, !tbaa !12 @@ -507,8 +513,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %213 = load i8, ptr %212, align 1, !tbaa !12 %214 = getelementptr inbounds nuw i8, ptr %212, i64 1 store i8 %213, ptr %214, align 1, !tbaa !12 - %.not149.i = icmp eq i32 %204, -1 - br i1 %.not149.i, label %._crit_edge.i, label %.lr.ph.i + %.not151.i = icmp eq i32 %204, -1 + br i1 %.not151.i, label %._crit_edge.i, label %.lr.ph.i .lr.ph.i: ; preds = %210, %.lr.ph.i %215 = phi i32 [ %218, %.lr.ph.i ], [ %204, %210 ] @@ -594,20 +600,20 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %253 = getelementptr inbounds nuw i8, ptr %252, i64 1 store ptr %253, ptr %248, align 8, !tbaa !37 %spec.select = select i1 %251, i8 45, i8 43 - %spec.select49 = call i32 @llvm.abs.i32(i32 %232, i1 true) + %spec.select51 = call i32 @llvm.abs.i32(i32 %232, i1 true) store i8 %spec.select, ptr %252, align 1, !tbaa !12 - %254 = icmp samesign ugt i32 %spec.select49, 99 + %254 = icmp samesign ugt i32 %spec.select51, 99 %255 = load ptr, ptr %248, align 8, !tbaa !37 %256 = getelementptr inbounds nuw i8, ptr %255, i64 1 store ptr %256, ptr %248, align 8, !tbaa !37 br i1 %254, label %257, label %269 257: ; preds = %242 - %258 = udiv i32 %spec.select49, 100 + %258 = udiv i32 %spec.select51, 100 %259 = trunc i32 %258 to i8 %260 = add i8 %259, 48 store i8 %260, ptr %255, align 1, !tbaa !12 - %261 = udiv i32 %spec.select49, 10 + %261 = udiv i32 %spec.select51, 10 %262 = urem i32 %261, 10 %263 = trunc nuw nsw i32 %262 to i8 %264 = or disjoint i8 %263, 48 @@ -615,12 +621,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %266 = getelementptr inbounds nuw i8, ptr %265, i64 1 store ptr %266, ptr %248, align 8, !tbaa !37 store i8 %264, ptr %265, align 1, !tbaa !12 - %267 = urem i32 %spec.select49, 10 + %267 = urem i32 %spec.select51, 10 %268 = trunc nuw nsw i32 %267 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit 269: ; preds = %242 - %.lhs.trunc.i = trunc nuw nsw i32 %spec.select49 to i8 + %.lhs.trunc.i = trunc nuw nsw i32 %spec.select51 to i8 %270 = udiv i8 %.lhs.trunc.i, 10 %271 = or disjoint i8 %270, 48 store i8 %271, ptr %255, align 1, !tbaa !12 @@ -680,9 +686,9 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %289 = sub nuw nsw i32 -16382, %smin.i.i %290 = zext nneg i32 %289 to i128 %291 = lshr i128 %.sroa.03.0.insert.insert.i.i.i.i, %290 - %extract.t69 = trunc i128 %291 to i64 - %extract72 = lshr i128 %291, 64 - %extract.t73 = trunc nuw i128 %extract72 to i64 + %extract.t71 = trunc i128 %291 to i64 + %extract74 = lshr i128 %291, 64 + %extract.t75 = trunc nuw i128 %extract74 to i64 br label %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i 292: ; preds = %287 @@ -691,7 +697,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %.sroa.2.0.extract.trunc.i.i36.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i35.i.i.i to i64 %293 = add nsw i32 %.199.i.i, -1 %.not.i.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i34.i.i.i, 0 - %294 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i36.i.i.i, 0 + %294 = icmp ugt i128 %.sroa.03.0.insert.insert.i.i.i.i, 9223372036854775807 %295 = select i1 %.not.i.i.i.i, i1 true, i1 %294 br i1 %295, label %.lr.ph.i.i.i, label %.critedge.i.i.i, !llvm.loop !44 @@ -709,14 +715,14 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %298 = add i32 %.098.i.i, -4 %299 = select i1 %.not57.i.i.i, i32 0, i32 %298 %300 = shl i128 %.sroa.01.0.insert.insert.i.i.i72.i, 4 - %extract.t68 = trunc i128 %300 to i64 - %extract70 = lshr i128 %300, 64 - %extract.t71 = trunc nuw i128 %extract70 to i64 + %extract.t70 = trunc i128 %300 to i64 + %extract72 = lshr i128 %300, 64 + %extract.t73 = trunc nuw i128 %extract72 to i64 br label %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i: ; preds = %.critedge.i.i.i, %288 - %.sink67.off0 = phi i64 [ %extract.t68, %.critedge.i.i.i ], [ %extract.t69, %288 ] - %.sink67.off64 = phi i64 [ %extract.t71, %.critedge.i.i.i ], [ %extract.t73, %288 ] + %.sink69.off0 = phi i64 [ %extract.t70, %.critedge.i.i.i ], [ %extract.t71, %288 ] + %.sink69.off64 = phi i64 [ %extract.t73, %.critedge.i.i.i ], [ %extract.t75, %288 ] %.0100.i.i = phi i8 [ %297, %.critedge.i.i.i ], [ 0, %288 ] %.2.i.i = phi i32 [ %299, %.critedge.i.i.i ], [ -16382, %288 ] br i1 %282, label %_ZN4absl19str_format_internal12_GLOBAL__N_112FormatARoundINS_7uint128EEEvbRKNS1_11FormatStateEPhPT_Pi.exit.i.i, label %301 @@ -732,11 +738,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1 %307 = sub nuw nsw i32 128, %306 %308 = zext nneg i32 %307 to i128 %309 = lshr i128 -1, %308 - %.sroa.24.0.insert.ext.i.i.i.i.i = zext i64 %.sink67.off64 to i128 + %.sroa.24.0.insert.ext.i.i.i.i.i = zext i64 %.sink69.off64 to i128 %.sroa.24.0.insert.shift.i.i.i.i.i = shl nuw i128 %.sroa.24.0.insert.ext.i.i.i.i.i, 64 %310 = lshr i128 -18446744073709551616, %308 %311 = trunc i128 %309 to i64 - %.sroa.0.0.extract.trunc.i.i.i39.i.i = and i64 %.sink67.off0, %311 + %.sroa.0.0.extract.trunc.i.i.i39.i.i = and i64 %.sink69.off0, %311 %.sroa.2.0.extract.shift.i.i.i40.i.i = and i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %310 %312 = add nsw i32 %306, -4 %313 = zext nneg i32 %312 to i128 @@ -758,7 +764,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1 %320 = zext nneg i32 %306 to i128 %321 = shl i128 15, %320 %322 = trunc i128 %321 to i64 - %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = and i64 %.sink67.off0, %322 + %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = and i64 %.sink69.off0, %322 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i = and i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %321 %.sroa.01.0.insert.ext.i.i46.i.i.i.i = zext i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i to i128 %.sroa.01.0.insert.insert.i.i47.i.i.i.i = or disjoint i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i46.i.i.i.i @@ -781,7 +787,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE %.sroa.2.0.extract.trunc.i16.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i15.i.i.i.i to i64 %.sroa.028.0.i.i.i.i = select i1 %328, i64 0, i64 %.sroa.0.0.extract.trunc.i14.i.i.i.i %.sroa.3.0.i.i.i.i = select i1 %328, i64 0, i64 %.sroa.2.0.extract.trunc.i16.i.i.i.i - %.sroa.01.0.insert.ext.i.i.i.i.i = zext i64 %.sink67.off0 to i128 + %.sroa.01.0.insert.ext.i.i.i.i.i = zext i64 %.sink69.off0 to i128 %.sroa.01.0.insert.insert.i.i.i.i.i = or disjoint i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i.i.i.i %.sroa.01.0.insert.ext.i.i.i20.i.i.i = zext nneg i64 %.sroa.028.0.i.i.i.i to i128 %.sroa.03.0.insert.insert.i.i.i.i.i.i = add i128 %.sroa.01.0.insert.insert.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i.i20.i.i.i @@ -789,7 +795,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE %331 = lshr i128 %.sroa.03.0.insert.insert.i.i.i.i.i.i, 64 %.tr.i.i.i.i.i.i = trunc nuw i128 %331 to i64 %.narrow.i.i.i.i.i.i = add i64 %.sroa.3.0.i.i.i.i, %.tr.i.i.i.i.i.i - %.not.i.i.i.i77.i = icmp slt i64 %.sink67.off64, 0 + %.not.i.i.i.i77.i = icmp slt i64 %.sink69.off64, 0 %332 = icmp sgt i64 %.narrow.i.i.i.i.i.i, -1 %or.cond.i.i.i.i = select i1 %.not.i.i.i.i77.i, i1 %332, i1 false %spec.select.i.i.i.i = or i1 %328, %or.cond.i.i.i.i @@ -805,8 +811,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE ._crit_edge.i.i.i: ; preds = %336, %327, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i, %315 %.1101.i.i = phi i8 [ %.0100.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 1, %336 ], [ %.0100.i.i, %315 ], [ %334, %327 ] %.3.i.i = phi i32 [ %.2.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ %337, %336 ], [ %.2.i.i, %315 ], [ %.2.i.i, %327 ] - %.sroa.22.0.copyload.i.pre.i.i.i = phi i64 [ %.sink67.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink67.off64, %315 ], [ %.narrow.i.i.i.i.i.i, %327 ] - %.sroa.01.0.copyload.i.pre.i.i.i = phi i64 [ %.sink67.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink67.off0, %315 ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i, %327 ] + %.sroa.22.0.copyload.i.pre.i.i.i = phi i64 [ %.sink69.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink69.off64, %315 ], [ %.narrow.i.i.i.i.i.i, %327 ] + %.sroa.01.0.copyload.i.pre.i.i.i = phi i64 [ %.sink69.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink69.off0, %315 ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i, %327 ] %.sroa.2.0.extract.shift.i.i.i.i.i.i = lshr i128 18446744073709551615, %308 %.sroa.2.0.extract.trunc.i.i.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i to i64 %338 = xor i64 %311, -1 @@ -815,8 +821,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE _ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i: ; preds = %._crit_edge.i.i.i, %301 %.2102.i.i = phi i8 [ %.0100.i.i, %301 ], [ %.1101.i.i, %._crit_edge.i.i.i ] %.4.i.i = phi i32 [ %.2.i.i, %301 ], [ %.3.i.i, %._crit_edge.i.i.i ] - %.sroa.22.0.copyload.i.i.i.i = phi i64 [ %.sink67.off64, %301 ], [ %.sroa.22.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] - %.sroa.01.0.copyload.i.i.i.i = phi i64 [ %.sink67.off0, %301 ], [ %.sroa.01.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] + %.sroa.22.0.copyload.i.i.i.i = phi i64 [ %.sink69.off64, %301 ], [ %.sroa.22.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] + %.sroa.01.0.copyload.i.i.i.i = phi i64 [ %.sink69.off0, %301 ], [ %.sroa.01.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] %.sroa.3.0.i23.i.i.i = phi i64 [ 0, %301 ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i, %._crit_edge.i.i.i ] %.sroa.0.0.i.i.i.i = phi i64 [ -1, %301 ], [ %338, %._crit_edge.i.i.i ] %.sroa.22.0.insert.ext.i.i42.i.i = zext i64 %.sroa.3.0.i23.i.i.i to i128 @@ -837,8 +843,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128 _ZN4absl19str_format_internal12_GLOBAL__N_112FormatARoundINS_7uint128EEEvbRKNS1_11FormatStateEPhPT_Pi.exit.i.i: ; preds = %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i %.3103.i.i = phi i8 [ %.2102.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.0100.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] %.5.i.i = phi i32 [ %.4.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.2.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] - %.sroa.16.4.i.i = phi i64 [ %.sroa.2.0.extract.trunc.i.i.i43.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink67.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] - %.sroa.082.4.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i32.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink67.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] + %.sroa.16.4.i.i = phi i64 [ %.sroa.2.0.extract.trunc.i.i.i43.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink69.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] + %.sroa.082.4.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i32.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink69.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] call void @llvm.lifetime.start.p0(ptr nonnull %4) %341 = select i1 %277, i64 0, i64 16 %342 = getelementptr inbounds nuw i8, ptr @.str.27, i64 %341 @@ -1141,15 +1147,18 @@ _ZN4absl19str_format_internal12_GLOBAL__N_123ConvertNonNumericFloatsIdEEbcT_RKNS %89 = zext nneg i32 %57 to i128 %90 = shl i128 %.sroa.01.0.insert.ext.i.i.i, %89 %.sroa.0.0.extract.trunc.i.i.i = trunc i128 %90 to i64 + %.not11.i.i.i = icmp ult i128 %90, 18446744073709551616 + br i1 %.not11.i.i.i, label %.preheader.i.i.i.preheader, label %.lr.ph.i.preheader.i.i + +.lr.ph.i.preheader.i.i: ; preds = %88 %.sroa.2.0.extract.shift.i.i.i = lshr i128 %90, 64 %.sroa.2.0.extract.trunc.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i to i64 - %.not11.i.i.i = icmp eq i64 %.sroa.2.0.extract.trunc.i.i.i, 0 - br i1 %.not11.i.i.i, label %.preheader.i.i.i.preheader, label %.lr.ph.i.i.i + br label %.lr.ph.i.i.i -.lr.ph.i.i.i: ; preds = %88, %.lr.ph.i.i.i - %.014.i.i.i = phi ptr [ %103, %.lr.ph.i.i.i ], [ %77, %88 ] - %.0913.i.i.i = phi i64 [ %100, %.lr.ph.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i, %88 ] - %.01012.i.i.i = phi i64 [ %92, %.lr.ph.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i, %88 ] +.lr.ph.i.i.i: ; preds = %.lr.ph.i.i.i, %.lr.ph.i.preheader.i.i + %.014.i.i.i = phi ptr [ %103, %.lr.ph.i.i.i ], [ %77, %.lr.ph.i.preheader.i.i ] + %.0913.i.i.i = phi i64 [ %100, %.lr.ph.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i, %.lr.ph.i.preheader.i.i ] + %.01012.i.i.i = phi i64 [ %92, %.lr.ph.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i, %.lr.ph.i.preheader.i.i ] %91 = urem i64 %.01012.i.i.i, 10 %92 = udiv i64 %.01012.i.i.i, 10 %93 = urem i64 %.0913.i.i.i, 10 @@ -1194,11 +1203,11 @@ select.unfold.preheader.i.i: ; preds = %72 %110 = icmp samesign ugt i32 %57, -64 %111 = zext nneg i32 %109 to i64 %112 = lshr i64 %58, %111 - %spec.select190 = select i1 %110, i64 %112, i64 0 + %spec.select191 = select i1 %110, i64 %112, i64 0 br label %select.unfold.i.i select.unfold.i.i: ; preds = %select.unfold.preheader.i.i, %select.unfold.i.i - %.03.i47.i.i = phi i64 [ %114, %select.unfold.i.i ], [ %spec.select190, %select.unfold.preheader.i.i ] + %.03.i47.i.i = phi i64 [ %114, %select.unfold.i.i ], [ %spec.select191, %select.unfold.preheader.i.i ] %.0.i48.i.i = phi ptr [ %116, %select.unfold.i.i ], [ %108, %select.unfold.preheader.i.i ] %113 = urem i64 %.03.i47.i.i, 10 %114 = udiv i64 %.03.i47.i.i, 10 @@ -1373,11 +1382,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %171 = getelementptr inbounds i8, ptr %.val, i64 -1 %172 = load i8, ptr %171, align 1, !tbaa !12 %173 = icmp eq i8 %172, 46 - %spec.select191 = select i1 %173, ptr %171, ptr %.val + %spec.select192 = select i1 %173, ptr %171, ptr %.val br label %._crit_edge152 ._crit_edge152: ; preds = %170, %165 - %174 = phi ptr [ %.val, %165 ], [ %spec.select191, %170 ] + %174 = phi ptr [ %.val, %165 ], [ %spec.select192, %170 ] %175 = load i32, ptr %9, align 4, !tbaa !16 %176 = load i8, ptr %1, align 4, !tbaa !13 %177 = icmp eq i8 %176, 7 @@ -1393,21 +1402,21 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %184 = load ptr, ptr %181, align 8, !tbaa !37 %185 = getelementptr inbounds nuw i8, ptr %184, i64 1 store ptr %185, ptr %181, align 8, !tbaa !37 - %spec.select192 = select i1 %183, i8 45, i8 43 - %spec.select193 = call i32 @llvm.abs.i32(i32 %175, i1 true) - store i8 %spec.select192, ptr %184, align 1, !tbaa !12 - %186 = icmp samesign ugt i32 %spec.select193, 99 + %spec.select193 = select i1 %183, i8 45, i8 43 + %spec.select194 = call i32 @llvm.abs.i32(i32 %175, i1 true) + store i8 %spec.select193, ptr %184, align 1, !tbaa !12 + %186 = icmp samesign ugt i32 %spec.select194, 99 %187 = load ptr, ptr %181, align 8, !tbaa !37 %188 = getelementptr inbounds nuw i8, ptr %187, i64 1 store ptr %188, ptr %181, align 8, !tbaa !37 br i1 %186, label %189, label %201 189: ; preds = %._crit_edge152 - %190 = udiv i32 %spec.select193, 100 + %190 = udiv i32 %spec.select194, 100 %191 = trunc i32 %190 to i8 %192 = add i8 %191, 48 store i8 %192, ptr %187, align 1, !tbaa !12 - %193 = udiv i32 %spec.select193, 10 + %193 = udiv i32 %spec.select194, 10 %194 = urem i32 %193, 10 %195 = trunc nuw nsw i32 %194 to i8 %196 = or disjoint i8 %195, 48 @@ -1415,12 +1424,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %198 = getelementptr inbounds nuw i8, ptr %197, i64 1 store ptr %198, ptr %181, align 8, !tbaa !37 store i8 %196, ptr %197, align 1, !tbaa !12 - %199 = urem i32 %spec.select193, 10 + %199 = urem i32 %spec.select194, 10 %200 = trunc nuw nsw i32 %199 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit 201: ; preds = %._crit_edge152 - %.lhs.trunc.i = trunc nuw nsw i32 %spec.select193 to i8 + %.lhs.trunc.i = trunc nuw nsw i32 %spec.select194 to i8 %202 = udiv i8 %.lhs.trunc.i, 10 %203 = or disjoint i8 %202, 48 store i8 %203, ptr %187, align 1, !tbaa !12 @@ -1467,8 +1476,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %224 = load i8, ptr %223, align 1, !tbaa !12 %225 = getelementptr inbounds nuw i8, ptr %223, i64 1 store i8 %224, ptr %225, align 1, !tbaa !12 - %.not170 = icmp eq i32 %215, -1 - br i1 %.not170, label %._crit_edge, label %.lr.ph + %.not171 = icmp eq i32 %215, -1 + br i1 %.not171, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %221, %.lr.ph %226 = phi i32 [ %229, %.lr.ph ], [ %215, %221 ] @@ -3469,12 +3478,15 @@ define internal void @_ZN4absl19functional_internal12InvokeObjectIZNS_19str_form %28 = zext nneg i32 %27 to i128 %29 = lshr i128 %.sroa.01.0.insert.insert.i.i.i.i.i.i, %28 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = trunc i128 %29 to i64 + %.not.i47.i.i.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, 0 + %30 = icmp samesign ugt i128 %29, 18446744073709551615 + %31 = or i1 %30, %.not.i47.i.i.i.i.i + br i1 %31, label %.lr.ph.preheader.i.i.i.i.i, label %.preheader46.i.i.i.i.i + +.lr.ph.preheader.i.i.i.i.i: ; preds = %3 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i = lshr i128 %29, 64 %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i to i64 - %.not.i47.i.i.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, 0 - %30 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, 0 - %31 = select i1 %.not.i47.i.i.i.i.i, i1 true, i1 %30 - br i1 %31, label %.lr.ph.i.i.i.i.i, label %.preheader46.i.i.i.i.i + br label %.lr.ph.i.i.i.i.i .preheader46.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %3 %.022.lcssa.i.i.i.i.i = phi i64 [ %14, %3 ], [ %34, %.lr.ph.i.i.i.i.i ] @@ -3487,10 +3499,10 @@ define internal void @_ZN4absl19functional_internal12InvokeObjectIZNS_19str_form %32 = add nsw i64 %19, 1 br label %._crit_edge.i.i.i.i.i -.lr.ph.i.i.i.i.i: ; preds = %3, %.lr.ph.i.i.i.i.i - %.02250.i.i.i.i.i = phi i64 [ %34, %.lr.ph.i.i.i.i.i ], [ %14, %3 ] - %.sroa.8.049.i.i.i.i.i = phi i64 [ %.sroa.2.0.extract.shift.i.i35.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, %3 ] - %.sroa.037.048.i.i.i.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i34.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, %3 ] +.lr.ph.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i + %.02250.i.i.i.i.i = phi i64 [ %34, %.lr.ph.i.i.i.i.i ], [ %14, %.lr.ph.preheader.i.i.i.i.i ] + %.sroa.8.049.i.i.i.i.i = phi i64 [ %.sroa.2.0.extract.shift.i.i35.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ] + %.sroa.037.048.i.i.i.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i34.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ] %33 = trunc i64 %.sroa.037.048.i.i.i.i.i to i32 %34 = add i64 %.02250.i.i.i.i.i, 1 %35 = getelementptr inbounds nuw i32, ptr %1, i64 %.02250.i.i.i.i.i @@ -4089,12 +4101,15 @@ define internal void @_ZN4absl19functional_internal12InvokeObjectIZNS_19str_form %18 = zext nneg i32 %11 to i128 %19 = lshr i128 %.sroa.01.0.insert.insert.i.i.i.i.i.i, %18 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = trunc i128 %19 to i64 + %.not.i25.i.i.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, 0 + %20 = icmp ugt i128 %19, 18446744073709551615 + %21 = or i1 %20, %.not.i25.i.i.i.i.i + br i1 %21, label %.lr.ph.preheader.i.i.i.i.i, label %._crit_edge.i.i.i.i.i + +.lr.ph.preheader.i.i.i.i.i: ; preds = %3 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i = lshr i128 %19, 64 %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i to i64 - %.not.i25.i.i.i.i.i = icmp ne i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, 0 - %20 = icmp ne i64 %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, 0 - %21 = select i1 %.not.i25.i.i.i.i.i, i1 true, i1 %20 - br i1 %21, label %.lr.ph.i.i.i.i.i, label %._crit_edge.i.i.i.i.i + br label %.lr.ph.i.i.i.i.i ._crit_edge.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %3 %.not.i5.i.i.i.i.i = icmp eq i32 %9, 0 @@ -4122,10 +4137,10 @@ define internal void @_ZN4absl19functional_internal12InvokeObjectIZNS_19str_form %.not9.i.i.i.i.i.i = icmp eq i64 %26, 0 br i1 %.not9.i.i.i.i.i.i, label %22, label %.preheader.i.i.i.i.i.i, !llvm.loop !112 -.lr.ph.i.i.i.i.i: ; preds = %3, %.lr.ph.i.i.i.i.i - %.028.i.i.i.i.i = phi i64 [ %35, %.lr.ph.i.i.i.i.i ], [ %16, %3 ] - %.sroa.8.027.i.i.i.i.i = phi i64 [ %.sroa.2.0.extract.shift.i.i14.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, %3 ] - %.sroa.016.026.i.i.i.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i13.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, %3 ] +.lr.ph.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i + %.028.i.i.i.i.i = phi i64 [ %35, %.lr.ph.i.i.i.i.i ], [ %16, %.lr.ph.preheader.i.i.i.i.i ] + %.sroa.8.027.i.i.i.i.i = phi i64 [ %.sroa.2.0.extract.shift.i.i14.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ] + %.sroa.016.026.i.i.i.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i13.i.i.i.i.i, %.lr.ph.i.i.i.i.i ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, %.lr.ph.preheader.i.i.i.i.i ] %34 = trunc i64 %.sroa.016.026.i.i.i.i.i to i32 %35 = add i64 %.028.i.i.i.i.i, -1 %36 = getelementptr inbounds nuw i32, ptr %1, i64 %35 diff --git a/bench/arrow/optimized/value_parsing.ll b/bench/arrow/optimized/value_parsing.ll index 91e99c4a807..dfe8e523139 100644 --- a/bench/arrow/optimized/value_parsing.ll +++ b/bench/arrow/optimized/value_parsing.ll @@ -2100,63 +2100,63 @@ define linkonce_odr void @_ZN14arrow_vendored10fast_float14parse_mantissaERNS0_6 br i1 %11, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4, %12 - %.7298 = phi ptr [ %13, %12 ], [ %6, %4 ] - %.0.copyload.i = load i64, ptr %.7298, align 1 + %.7304 = phi ptr [ %13, %12 ], [ %6, %4 ] + %.0.copyload.i = load i64, ptr %.7304, align 1 %.not.i = icmp eq i64 %.0.copyload.i, 3472328296227680304 br i1 %.not.i, label %12, label %._crit_edge 12: ; preds = %.lr.ph - %13 = getelementptr inbounds nuw i8, ptr %.7298, i64 8 + %13 = getelementptr inbounds nuw i8, ptr %.7304, i64 8 %14 = ptrtoint ptr %13 to i64 %15 = sub i64 %10, %14 %16 = icmp sgt i64 %15, 7 br i1 %16, label %.lr.ph, label %._crit_edge, !llvm.loop !75 ._crit_edge: ; preds = %12, %.lr.ph, %4 - %.7.lcssa = phi ptr [ %6, %4 ], [ %.7298, %.lr.ph ], [ %13, %12 ] - %.not8.i303 = icmp eq ptr %.7.lcssa, %9 - br i1 %.not8.i303, label %._crit_edge335, label %.lr.ph306 + %.7.lcssa = phi ptr [ %6, %4 ], [ %.7304, %.lr.ph ], [ %13, %12 ] + %.not8.i309 = icmp eq ptr %.7.lcssa, %9 + br i1 %.not8.i309, label %._crit_edge341, label %.lr.ph312 -.lr.ph306: ; preds = %._crit_edge, %18 - %.8304 = phi ptr [ %19, %18 ], [ %.7.lcssa, %._crit_edge ] - %17 = load i8, ptr %.8304, align 1, !tbaa !6 +.lr.ph312: ; preds = %._crit_edge, %18 + %.8310 = phi ptr [ %19, %18 ], [ %.7.lcssa, %._crit_edge ] + %17 = load i8, ptr %.8310, align 1, !tbaa !6 %.not9.i = icmp eq i8 %17, 48 br i1 %.not9.i, label %18, label %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit -18: ; preds = %.lr.ph306 - %19 = getelementptr inbounds nuw i8, ptr %.8304, i64 1 +18: ; preds = %.lr.ph312 + %19 = getelementptr inbounds nuw i8, ptr %.8310, i64 1 %.not8.i = icmp eq ptr %19, %9 - br i1 %.not8.i, label %._crit_edge335, label %.lr.ph306, !llvm.loop !76 + br i1 %.not8.i, label %._crit_edge341, label %.lr.ph312, !llvm.loop !76 -_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph306 - %.not333 = icmp eq ptr %.8304, %9 - br i1 %.not333, label %._crit_edge335, label %.preheader281.lr.ph +_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph312 + %.not339 = icmp eq ptr %.8310, %9 + br i1 %.not339, label %._crit_edge341, label %.preheader281.lr.ph .preheader281.lr.ph: ; preds = %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit %20 = getelementptr inbounds nuw i8, ptr %0, i64 496 br label %.preheader281 .preheader281: ; preds = %.preheader281.lr.ph, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 - %.0334 = phi ptr [ %.8304, %.preheader281.lr.ph ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 ] + %.0340 = phi ptr [ %.8310, %.preheader281.lr.ph ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 ] %.promoted = load i64, ptr %3, align 8 - %21 = ptrtoint ptr %.0334 to i64 + %21 = ptrtoint ptr %.0340 to i64 %22 = sub i64 %10, %21 %23 = icmp sgt i64 %22, 7 - br i1 %23, label %.lr.ph313, label %.critedge + br i1 %23, label %.lr.ph319, label %.critedge -.lr.ph313: ; preds = %.preheader281, %28 - %.1312 = phi ptr [ %42, %28 ], [ %.0334, %.preheader281 ] - %.1245311 = phi i64 [ %41, %28 ], [ 0, %.preheader281 ] +.lr.ph319: ; preds = %.preheader281, %28 + %.1318 = phi ptr [ %42, %28 ], [ %.0340, %.preheader281 ] + %.1245317 = phi i64 [ %41, %28 ], [ 0, %.preheader281 ] %24 = phi i1 [ false, %28 ], [ true, %.preheader281 ] - %.1252310 = phi i64 [ 8, %28 ], [ 0, %.preheader281 ] + %.1252316 = phi i64 [ 8, %28 ], [ 0, %.preheader281 ] %25 = phi i64 [ %43, %28 ], [ %.promoted, %.preheader281 ] %26 = sub i64 %2, %25 %27 = icmp ugt i64 %26, 7 br i1 %27, label %28, label %.critedge -28: ; preds = %.lr.ph313 - %29 = mul i64 %.1245311, 100000000 - %.0.copyload.i.i = load i64, ptr %.1312, align 1 +28: ; preds = %.lr.ph319 + %29 = mul i64 %.1245317, 100000000 + %.0.copyload.i.i = load i64, ptr %.1318, align 1 %30 = add i64 %.0.copyload.i.i, -3472328296227680304 %31 = mul i64 %30, 10 %32 = lshr i64 %30, 8 @@ -2169,56 +2169,56 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph306 %39 = add i64 %38, %35 %40 = lshr i64 %39, 32 %41 = add i64 %40, %29 - %42 = getelementptr inbounds nuw i8, ptr %.1312, i64 8 + %42 = getelementptr inbounds nuw i8, ptr %.1318, i64 8 %43 = add i64 %25, 8 store i64 %43, ptr %3, align 8, !tbaa !17 %44 = ptrtoint ptr %42 to i64 %45 = sub i64 %10, %44 %46 = icmp sgt i64 %45, 7 %or.cond261 = and i1 %46, %24 - br i1 %or.cond261, label %.lr.ph313, label %.critedge.loopexit.split.loop.exit, !llvm.loop !77 + br i1 %or.cond261, label %.lr.ph319, label %.critedge.loopexit.split.loop.exit, !llvm.loop !77 .critedge.loopexit.split.loop.exit: ; preds = %28 - %47 = add nuw nsw i64 %.1252310, 8 + %47 = add nuw nsw i64 %.1252316, 8 br label %.critedge -.critedge: ; preds = %.lr.ph313, %.critedge.loopexit.split.loop.exit, %.preheader281 - %.promoted321 = phi i64 [ %.promoted, %.preheader281 ], [ %43, %.critedge.loopexit.split.loop.exit ], [ %25, %.lr.ph313 ] - %.1252.lcssa = phi i64 [ 0, %.preheader281 ], [ %47, %.critedge.loopexit.split.loop.exit ], [ %.1252310, %.lr.ph313 ] - %.1245.lcssa = phi i64 [ 0, %.preheader281 ], [ %41, %.critedge.loopexit.split.loop.exit ], [ %.1245311, %.lr.ph313 ] - %.1.lcssa = phi ptr [ %.0334, %.preheader281 ], [ %42, %.critedge.loopexit.split.loop.exit ], [ %.1312, %.lr.ph313 ] - %.not64322 = icmp ne ptr %.1.lcssa, %9 - %48 = icmp ult i64 %.promoted321, %2 - %or.cond67324 = select i1 %.not64322, i1 %48, i1 false - br i1 %or.cond67324, label %.lr.ph328, label %.critedge2 - -.lr.ph328: ; preds = %.critedge, %.lr.ph328 - %.2327 = phi ptr [ %55, %.lr.ph328 ], [ %.1.lcssa, %.critedge ] - %.2246326 = phi i64 [ %54, %.lr.ph328 ], [ %.1245.lcssa, %.critedge ] - %.2253325 = phi i64 [ %56, %.lr.ph328 ], [ %.1252.lcssa, %.critedge ] - %49 = phi i64 [ %57, %.lr.ph328 ], [ %.promoted321, %.critedge ] - %50 = mul i64 %.2246326, 10 - %51 = load i8, ptr %.2327, align 1, !tbaa !6 +.critedge: ; preds = %.lr.ph319, %.critedge.loopexit.split.loop.exit, %.preheader281 + %.promoted327 = phi i64 [ %.promoted, %.preheader281 ], [ %43, %.critedge.loopexit.split.loop.exit ], [ %25, %.lr.ph319 ] + %.1252.lcssa = phi i64 [ 0, %.preheader281 ], [ %47, %.critedge.loopexit.split.loop.exit ], [ %.1252316, %.lr.ph319 ] + %.1245.lcssa = phi i64 [ 0, %.preheader281 ], [ %41, %.critedge.loopexit.split.loop.exit ], [ %.1245317, %.lr.ph319 ] + %.1.lcssa = phi ptr [ %.0340, %.preheader281 ], [ %42, %.critedge.loopexit.split.loop.exit ], [ %.1318, %.lr.ph319 ] + %.not64328 = icmp ne ptr %.1.lcssa, %9 + %48 = icmp ult i64 %.promoted327, %2 + %or.cond67330 = select i1 %.not64328, i1 %48, i1 false + br i1 %or.cond67330, label %.lr.ph334, label %.critedge2 + +.lr.ph334: ; preds = %.critedge, %.lr.ph334 + %.2333 = phi ptr [ %55, %.lr.ph334 ], [ %.1.lcssa, %.critedge ] + %.2246332 = phi i64 [ %54, %.lr.ph334 ], [ %.1245.lcssa, %.critedge ] + %.2253331 = phi i64 [ %56, %.lr.ph334 ], [ %.1252.lcssa, %.critedge ] + %49 = phi i64 [ %57, %.lr.ph334 ], [ %.promoted327, %.critedge ] + %50 = mul i64 %.2246332, 10 + %51 = load i8, ptr %.2333, align 1, !tbaa !6 %52 = sext i8 %51 to i64 %53 = add i64 %50, -48 %54 = add i64 %53, %52 - %55 = getelementptr inbounds nuw i8, ptr %.2327, i64 1 - %56 = add nuw nsw i64 %.2253325, 1 + %55 = getelementptr inbounds nuw i8, ptr %.2333, i64 1 + %56 = add nuw nsw i64 %.2253331, 1 %57 = add nuw i64 %49, 1 store i64 %57, ptr %3, align 8, !tbaa !17 - %58 = icmp samesign ult i64 %.2253325, 18 + %58 = icmp samesign ult i64 %.2253331, 18 %.not64 = icmp ne ptr %55, %9 %or.cond.not270 = select i1 %58, i1 %.not64, i1 false %59 = icmp ult i64 %57, %2 %or.cond67 = select i1 %or.cond.not270, i1 %59, i1 false - br i1 %or.cond67, label %.lr.ph328, label %.critedge2, !llvm.loop !78 - -.critedge2: ; preds = %.lr.ph328, %.critedge - %.2253.lcssa = phi i64 [ %.1252.lcssa, %.critedge ], [ %56, %.lr.ph328 ] - %.2246.lcssa = phi i64 [ %.1245.lcssa, %.critedge ], [ %54, %.lr.ph328 ] - %.2.lcssa = phi ptr [ %.1.lcssa, %.critedge ], [ %55, %.lr.ph328 ] - %.lcssa294 = phi i64 [ %.promoted321, %.critedge ], [ %57, %.lr.ph328 ] - %60 = icmp eq i64 %.lcssa294, %2 + br i1 %or.cond67, label %.lr.ph334, label %.critedge2, !llvm.loop !78 + +.critedge2: ; preds = %.lr.ph334, %.critedge + %.2253.lcssa = phi i64 [ %.1252.lcssa, %.critedge ], [ %56, %.lr.ph334 ] + %.2246.lcssa = phi i64 [ %.1245.lcssa, %.critedge ], [ %54, %.lr.ph334 ] + %.2.lcssa = phi ptr [ %.1.lcssa, %.critedge ], [ %55, %.lr.ph334 ] + %.lcssa299 = phi i64 [ %.promoted327, %.critedge ], [ %57, %.lr.ph334 ] + %60 = icmp eq i64 %.lcssa299, %2 %61 = load i16, ptr %20, align 8, !tbaa !79 %62 = zext i16 %61 to i64 %.not19.i.i = icmp eq i16 %61, 0 @@ -2234,7 +2234,7 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph306 br label %68 ._crit_edge.i.i: ; preds = %68 - %.not.i.i88 = icmp ne i64 %76, 0 + %.not.i.i88 = icmp ugt i128 %74, 18446744073709551615 %67 = icmp ult i16 %61, 62 %or.cond262 = and i1 %67, %.not.i.i88 br i1 %or.cond262, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit @@ -2304,37 +2304,37 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit: ; preds = %84, %_ZN14arrow_ve %94 = ptrtoint ptr %.2.lcssa to i64 %95 = sub i64 %10, %94 %96 = icmp sgt i64 %95, 7 - br i1 %96, label %.lr.ph337, label %.preheader279 + br i1 %96, label %.lr.ph343, label %.preheader279 .preheader279: ; preds = %97, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit %.09.i.lcssa = phi ptr [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ], [ %98, %97 ] - %.not.i77339 = icmp eq ptr %.09.i.lcssa, %9 - br i1 %.not.i77339, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, label %.lr.ph341 + %.not.i77345 = icmp eq ptr %.09.i.lcssa, %9 + br i1 %.not.i77345, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, label %.lr.ph347 -.lr.ph337: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit, %97 - %.09.i336 = phi ptr [ %98, %97 ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ] - %.0.copyload.i78 = load i64, ptr %.09.i336, align 1 +.lr.ph343: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit, %97 + %.09.i342 = phi ptr [ %98, %97 ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ] + %.0.copyload.i78 = load i64, ptr %.09.i342, align 1 %.not11.i = icmp eq i64 %.0.copyload.i78, 3472328296227680304 br i1 %.not11.i, label %97, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit -97: ; preds = %.lr.ph337 - %98 = getelementptr inbounds nuw i8, ptr %.09.i336, i64 8 +97: ; preds = %.lr.ph343 + %98 = getelementptr inbounds nuw i8, ptr %.09.i342, i64 8 %99 = ptrtoint ptr %98 to i64 %100 = sub i64 %10, %99 %101 = icmp sgt i64 %100, 7 - br i1 %101, label %.lr.ph337, label %.preheader279, !llvm.loop !83 + br i1 %101, label %.lr.ph343, label %.preheader279, !llvm.loop !83 -.lr.ph341: ; preds = %.preheader279, %.lr.ph341 - %.1.i340 = phi ptr [ %103, %.lr.ph341 ], [ %.09.i.lcssa, %.preheader279 ] - %102 = load i8, ptr %.1.i340, align 1, !tbaa !6 +.lr.ph347: ; preds = %.preheader279, %.lr.ph347 + %.1.i346 = phi ptr [ %103, %.lr.ph347 ], [ %.09.i.lcssa, %.preheader279 ] + %102 = load i8, ptr %.1.i346, align 1, !tbaa !6 %.not10.i.not = icmp ne i8 %102, 48 - %103 = getelementptr inbounds nuw i8, ptr %.1.i340, i64 1 + %103 = getelementptr inbounds nuw i8, ptr %.1.i346, i64 1 %.not.i77 = icmp eq ptr %103, %9 %or.cond = select i1 %.not10.i.not, i1 true, i1 %.not.i77 - br i1 %or.cond, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit, label %.lr.ph341, !llvm.loop !84 + br i1 %or.cond, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit, label %.lr.ph347, !llvm.loop !84 -_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph337, %.lr.ph341 - %.0.i = phi i1 [ %.not10.i.not, %.lr.ph341 ], [ true, %.lr.ph337 ] +_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph343, %.lr.ph347 + %.0.i = phi i1 [ %.not10.i.not, %.lr.ph347 ], [ true, %.lr.ph343 ] %104 = getelementptr inbounds nuw i8, ptr %1, i64 48 %105 = load ptr, ptr %104, align 8, !tbaa !85 %.not65 = icmp eq ptr %105, null @@ -2343,61 +2343,61 @@ _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph337, _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread: ; preds = %.preheader279 %106 = getelementptr inbounds nuw i8, ptr %1, i64 48 %107 = load ptr, ptr %106, align 8, !tbaa !85 - %.not65479 = icmp eq ptr %107, null - br i1 %.not65479, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %108 + %.not65485 = icmp eq ptr %107, null + br i1 %.not65485, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %108 108: ; preds = %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit %109 = phi ptr [ %107, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %105, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] - %.0.i481 = phi i1 [ false, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %.0.i, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] + %.0.i487 = phi i1 [ false, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %.0.i, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 56 %.sroa.2.0.copyload = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !tbaa !17 %110 = getelementptr inbounds nuw i8, ptr %109, i64 %.sroa.2.0.copyload %111 = ptrtoint ptr %110 to i64 %112 = icmp sgt i64 %.sroa.2.0.copyload, 7 - br i1 %112, label %.lr.ph347, label %.preheader277 + br i1 %112, label %.lr.ph353, label %.preheader277 .preheader277: ; preds = %113, %108 %.09.i.i.lcssa = phi ptr [ %109, %108 ], [ %114, %113 ] - %.not.i.i349 = icmp eq ptr %.09.i.i.lcssa, %110 - br i1 %.not.i.i349, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph351 + %.not.i.i355 = icmp eq ptr %.09.i.i.lcssa, %110 + br i1 %.not.i.i355, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph357 -.lr.ph347: ; preds = %108, %113 - %.09.i.i345 = phi ptr [ %114, %113 ], [ %109, %108 ] - %.0.copyload.i.i87 = load i64, ptr %.09.i.i345, align 1 +.lr.ph353: ; preds = %108, %113 + %.09.i.i351 = phi ptr [ %114, %113 ], [ %109, %108 ] + %.0.copyload.i.i87 = load i64, ptr %.09.i.i351, align 1 %.not11.i.i = icmp eq i64 %.0.copyload.i.i87, 3472328296227680304 br i1 %.not11.i.i, label %113, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread -113: ; preds = %.lr.ph347 - %114 = getelementptr inbounds nuw i8, ptr %.09.i.i345, i64 8 +113: ; preds = %.lr.ph353 + %114 = getelementptr inbounds nuw i8, ptr %.09.i.i351, i64 8 %115 = ptrtoint ptr %114 to i64 %116 = sub i64 %111, %115 %117 = icmp sgt i64 %116, 7 - br i1 %117, label %.lr.ph347, label %.preheader277, !llvm.loop !83 + br i1 %117, label %.lr.ph353, label %.preheader277, !llvm.loop !83 -118: ; preds = %.lr.ph351 - %119 = getelementptr inbounds nuw i8, ptr %.1.i.i350, i64 1 +118: ; preds = %.lr.ph357 + %119 = getelementptr inbounds nuw i8, ptr %.1.i.i356, i64 1 %.not.i.i = icmp eq ptr %119, %110 - br i1 %.not.i.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph351, !llvm.loop !84 + br i1 %.not.i.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph357, !llvm.loop !84 -.lr.ph351: ; preds = %.preheader277, %118 - %.1.i.i350 = phi ptr [ %119, %118 ], [ %.09.i.i.lcssa, %.preheader277 ] - %120 = load i8, ptr %.1.i.i350, align 1, !tbaa !6 +.lr.ph357: ; preds = %.preheader277, %118 + %.1.i.i356 = phi ptr [ %119, %118 ], [ %.09.i.i.lcssa, %.preheader277 ] + %120 = load i8, ptr %.1.i.i356, align 1, !tbaa !6 %.not10.i.i = icmp eq i8 %120, 48 br i1 %.not10.i.i, label %118, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread _ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit: ; preds = %118, %.preheader277 - br i1 %.0.i481, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 + br i1 %.0.i487, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 121: ; preds = %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit br i1 %.0.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 -_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread: ; preds = %.lr.ph347, %.lr.ph351, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 +_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread: ; preds = %.lr.ph353, %.lr.ph357, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 %122 = zext i16 %.pr to i64 %.not19.i.i92 = icmp eq i16 %.pr, 0 br i1 %.not19.i.i92, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit101, label %.lr.ph.i.i93 ._crit_edge.i.i97: ; preds = %.lr.ph.i.i93 - %.not.i.i98 = icmp ne i64 %131, 0 + %.not.i.i98 = icmp samesign ugt i128 %129, 18446744073709551615 %123 = icmp ult i16 %.pr, 62 %or.cond263 = and i1 %123, %.not.i.i98 br i1 %or.cond263, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i100, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit101 @@ -2467,7 +2467,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i108: ; br label %154 ._crit_edge.i.i115: ; preds = %154 - %.not.i.i116 = icmp ne i64 %162, 0 + %.not.i.i116 = icmp ugt i128 %160, 18446744073709551615 %153 = icmp ult i16 %61, 62 %or.cond264 = and i1 %153, %.not.i.i116 br i1 %or.cond264, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i118, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit119 @@ -2534,15 +2534,15 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i127: ; _ZN14arrow_vendored10fast_float6bigint3addEm.exit128: ; preds = %170, %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit119, %.critedge.i.i126, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i127 %.not = icmp eq ptr %.2.lcssa, %9 - br i1 %.not, label %._crit_edge335, label %.preheader281, !llvm.loop !86 + br i1 %.not, label %._crit_edge341, label %.preheader281, !llvm.loop !86 -._crit_edge335: ; preds = %18, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128, %._crit_edge, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit +._crit_edge341: ; preds = %18, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128, %._crit_edge, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit %180 = getelementptr inbounds nuw i8, ptr %1, i64 48 %181 = load ptr, ptr %180, align 8, !tbaa !85 %.not59 = icmp eq ptr %181, null br i1 %.not59, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %182 -182: ; preds = %._crit_edge335 +182: ; preds = %._crit_edge341 %183 = getelementptr inbounds nuw i8, ptr %1, i64 56 %184 = load i64, ptr %183, align 8, !tbaa !74 %185 = getelementptr inbounds nuw i8, ptr %181, i64 %184 @@ -2553,41 +2553,41 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit128: ; preds = %170, %_ZN14arro .preheader276: ; preds = %182 %188 = ptrtoint ptr %185 to i64 %189 = icmp sgt i64 %184, 7 - br i1 %189, label %.lr.ph353, label %._crit_edge354 + br i1 %189, label %.lr.ph359, label %._crit_edge360 -.lr.ph353: ; preds = %.preheader276, %190 - %.9352 = phi ptr [ %191, %190 ], [ %181, %.preheader276 ] - %.0.copyload.i73 = load i64, ptr %.9352, align 1 +.lr.ph359: ; preds = %.preheader276, %190 + %.9358 = phi ptr [ %191, %190 ], [ %181, %.preheader276 ] + %.0.copyload.i73 = load i64, ptr %.9358, align 1 %.not.i74 = icmp eq i64 %.0.copyload.i73, 3472328296227680304 - br i1 %.not.i74, label %190, label %._crit_edge354 + br i1 %.not.i74, label %190, label %._crit_edge360 -190: ; preds = %.lr.ph353 - %191 = getelementptr inbounds nuw i8, ptr %.9352, i64 8 +190: ; preds = %.lr.ph359 + %191 = getelementptr inbounds nuw i8, ptr %.9358, i64 8 %192 = ptrtoint ptr %191 to i64 %193 = sub i64 %188, %192 %194 = icmp sgt i64 %193, 7 - br i1 %194, label %.lr.ph353, label %._crit_edge354, !llvm.loop !75 + br i1 %194, label %.lr.ph359, label %._crit_edge360, !llvm.loop !75 -._crit_edge354: ; preds = %190, %.lr.ph353, %.preheader276 - %.9.lcssa = phi ptr [ %181, %.preheader276 ], [ %.9352, %.lr.ph353 ], [ %191, %190 ] - %.not8.i71358 = icmp eq ptr %.9.lcssa, %185 - br i1 %.not8.i71358, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph361 +._crit_edge360: ; preds = %190, %.lr.ph359, %.preheader276 + %.9.lcssa = phi ptr [ %181, %.preheader276 ], [ %.9358, %.lr.ph359 ], [ %191, %190 ] + %.not8.i71364 = icmp eq ptr %.9.lcssa, %185 + br i1 %.not8.i71364, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph367 -.lr.ph361: ; preds = %._crit_edge354, %196 - %.10359 = phi ptr [ %197, %196 ], [ %.9.lcssa, %._crit_edge354 ] - %195 = load i8, ptr %.10359, align 1, !tbaa !6 +.lr.ph367: ; preds = %._crit_edge360, %196 + %.10365 = phi ptr [ %197, %196 ], [ %.9.lcssa, %._crit_edge360 ] + %195 = load i8, ptr %.10365, align 1, !tbaa !6 %.not9.i72 = icmp eq i8 %195, 48 br i1 %.not9.i72, label %196, label %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75 -196: ; preds = %.lr.ph361 - %197 = getelementptr inbounds nuw i8, ptr %.10359, i64 1 +196: ; preds = %.lr.ph367 + %197 = getelementptr inbounds nuw i8, ptr %.10365, i64 1 %.not8.i71 = icmp eq ptr %197, %185 - br i1 %.not8.i71, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph361, !llvm.loop !76 + br i1 %.not8.i71, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph367, !llvm.loop !76 -_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph361, %182 - %.3 = phi ptr [ %181, %182 ], [ %.10359, %.lr.ph361 ] - %.not60391 = icmp eq ptr %.3, %185 - br i1 %.not60391, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.preheader274.lr.ph +_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph367, %182 + %.3 = phi ptr [ %181, %182 ], [ %.10365, %.lr.ph367 ] + %.not60397 = icmp eq ptr %.3, %185 + br i1 %.not60397, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.preheader274.lr.ph .preheader274.lr.ph: ; preds = %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75 %198 = ptrtoint ptr %185 to i64 @@ -2595,26 +2595,26 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph361 br label %.preheader274 .preheader274: ; preds = %.preheader274.lr.ph, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 - %.4392 = phi ptr [ %.3, %.preheader274.lr.ph ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 ] - %.promoted365 = load i64, ptr %3, align 8 - %200 = ptrtoint ptr %.4392 to i64 + %.4398 = phi ptr [ %.3, %.preheader274.lr.ph ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 ] + %.promoted371 = load i64, ptr %3, align 8 + %200 = ptrtoint ptr %.4398 to i64 %201 = sub i64 %198, %200 %202 = icmp sgt i64 %201, 7 - br i1 %202, label %.lr.ph369, label %.critedge4 + br i1 %202, label %.lr.ph375, label %.critedge4 -.lr.ph369: ; preds = %.preheader274, %207 - %.5368 = phi ptr [ %221, %207 ], [ %.4392, %.preheader274 ] - %.5249367 = phi i64 [ %220, %207 ], [ 0, %.preheader274 ] +.lr.ph375: ; preds = %.preheader274, %207 + %.5374 = phi ptr [ %221, %207 ], [ %.4398, %.preheader274 ] + %.5249373 = phi i64 [ %220, %207 ], [ 0, %.preheader274 ] %203 = phi i1 [ false, %207 ], [ true, %.preheader274 ] - %.5256366 = phi i64 [ 8, %207 ], [ 0, %.preheader274 ] - %204 = phi i64 [ %222, %207 ], [ %.promoted365, %.preheader274 ] + %.5256372 = phi i64 [ 8, %207 ], [ 0, %.preheader274 ] + %204 = phi i64 [ %222, %207 ], [ %.promoted371, %.preheader274 ] %205 = sub i64 %2, %204 %206 = icmp ugt i64 %205, 7 br i1 %206, label %207, label %.critedge4 -207: ; preds = %.lr.ph369 - %208 = mul i64 %.5249367, 100000000 - %.0.copyload.i.i76 = load i64, ptr %.5368, align 1 +207: ; preds = %.lr.ph375 + %208 = mul i64 %.5249373, 100000000 + %.0.copyload.i.i76 = load i64, ptr %.5374, align 1 %209 = add i64 %.0.copyload.i.i76, -3472328296227680304 %210 = mul i64 %209, 10 %211 = lshr i64 %209, 8 @@ -2627,56 +2627,56 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph361 %218 = add i64 %217, %214 %219 = lshr i64 %218, 32 %220 = add i64 %219, %208 - %221 = getelementptr inbounds nuw i8, ptr %.5368, i64 8 + %221 = getelementptr inbounds nuw i8, ptr %.5374, i64 8 %222 = add i64 %204, 8 store i64 %222, ptr %3, align 8, !tbaa !17 %223 = ptrtoint ptr %221 to i64 %224 = sub i64 %198, %223 %225 = icmp sgt i64 %224, 7 %or.cond265 = and i1 %225, %203 - br i1 %or.cond265, label %.lr.ph369, label %.critedge4.loopexit.split.loop.exit, !llvm.loop !87 + br i1 %or.cond265, label %.lr.ph375, label %.critedge4.loopexit.split.loop.exit, !llvm.loop !87 .critedge4.loopexit.split.loop.exit: ; preds = %207 - %226 = add nuw nsw i64 %.5256366, 8 + %226 = add nuw nsw i64 %.5256372, 8 br label %.critedge4 -.critedge4: ; preds = %.lr.ph369, %.critedge4.loopexit.split.loop.exit, %.preheader274 - %.promoted379 = phi i64 [ %.promoted365, %.preheader274 ], [ %222, %.critedge4.loopexit.split.loop.exit ], [ %204, %.lr.ph369 ] - %.5256.lcssa = phi i64 [ 0, %.preheader274 ], [ %226, %.critedge4.loopexit.split.loop.exit ], [ %.5256366, %.lr.ph369 ] - %.5249.lcssa = phi i64 [ 0, %.preheader274 ], [ %220, %.critedge4.loopexit.split.loop.exit ], [ %.5249367, %.lr.ph369 ] - %.5.lcssa = phi ptr [ %.4392, %.preheader274 ], [ %221, %.critedge4.loopexit.split.loop.exit ], [ %.5368, %.lr.ph369 ] - %.not62380 = icmp ne ptr %.5.lcssa, %185 - %227 = icmp ult i64 %.promoted379, %2 - %or.cond70382 = select i1 %.not62380, i1 %227, i1 false - br i1 %or.cond70382, label %.lr.ph386, label %.critedge6 - -.lr.ph386: ; preds = %.critedge4, %.lr.ph386 - %.6385 = phi ptr [ %234, %.lr.ph386 ], [ %.5.lcssa, %.critedge4 ] - %.6250384 = phi i64 [ %233, %.lr.ph386 ], [ %.5249.lcssa, %.critedge4 ] - %.6257383 = phi i64 [ %235, %.lr.ph386 ], [ %.5256.lcssa, %.critedge4 ] - %228 = phi i64 [ %236, %.lr.ph386 ], [ %.promoted379, %.critedge4 ] - %229 = mul i64 %.6250384, 10 - %230 = load i8, ptr %.6385, align 1, !tbaa !6 +.critedge4: ; preds = %.lr.ph375, %.critedge4.loopexit.split.loop.exit, %.preheader274 + %.promoted385 = phi i64 [ %.promoted371, %.preheader274 ], [ %222, %.critedge4.loopexit.split.loop.exit ], [ %204, %.lr.ph375 ] + %.5256.lcssa = phi i64 [ 0, %.preheader274 ], [ %226, %.critedge4.loopexit.split.loop.exit ], [ %.5256372, %.lr.ph375 ] + %.5249.lcssa = phi i64 [ 0, %.preheader274 ], [ %220, %.critedge4.loopexit.split.loop.exit ], [ %.5249373, %.lr.ph375 ] + %.5.lcssa = phi ptr [ %.4398, %.preheader274 ], [ %221, %.critedge4.loopexit.split.loop.exit ], [ %.5374, %.lr.ph375 ] + %.not62386 = icmp ne ptr %.5.lcssa, %185 + %227 = icmp ult i64 %.promoted385, %2 + %or.cond70388 = select i1 %.not62386, i1 %227, i1 false + br i1 %or.cond70388, label %.lr.ph392, label %.critedge6 + +.lr.ph392: ; preds = %.critedge4, %.lr.ph392 + %.6391 = phi ptr [ %234, %.lr.ph392 ], [ %.5.lcssa, %.critedge4 ] + %.6250390 = phi i64 [ %233, %.lr.ph392 ], [ %.5249.lcssa, %.critedge4 ] + %.6257389 = phi i64 [ %235, %.lr.ph392 ], [ %.5256.lcssa, %.critedge4 ] + %228 = phi i64 [ %236, %.lr.ph392 ], [ %.promoted385, %.critedge4 ] + %229 = mul i64 %.6250390, 10 + %230 = load i8, ptr %.6391, align 1, !tbaa !6 %231 = sext i8 %230 to i64 %232 = add i64 %229, -48 %233 = add i64 %232, %231 - %234 = getelementptr inbounds nuw i8, ptr %.6385, i64 1 - %235 = add nuw nsw i64 %.6257383, 1 + %234 = getelementptr inbounds nuw i8, ptr %.6391, i64 1 + %235 = add nuw nsw i64 %.6257389, 1 %236 = add nuw i64 %228, 1 store i64 %236, ptr %3, align 8, !tbaa !17 - %237 = icmp samesign ult i64 %.6257383, 18 + %237 = icmp samesign ult i64 %.6257389, 18 %.not62 = icmp ne ptr %234, %185 %or.cond68.not272 = select i1 %237, i1 %.not62, i1 false %238 = icmp ult i64 %236, %2 %or.cond70 = select i1 %or.cond68.not272, i1 %238, i1 false - br i1 %or.cond70, label %.lr.ph386, label %.critedge6, !llvm.loop !88 - -.critedge6: ; preds = %.lr.ph386, %.critedge4 - %.6257.lcssa = phi i64 [ %.5256.lcssa, %.critedge4 ], [ %235, %.lr.ph386 ] - %.6250.lcssa = phi i64 [ %.5249.lcssa, %.critedge4 ], [ %233, %.lr.ph386 ] - %.6.lcssa = phi ptr [ %.5.lcssa, %.critedge4 ], [ %234, %.lr.ph386 ] - %.lcssa286 = phi i64 [ %.promoted379, %.critedge4 ], [ %236, %.lr.ph386 ] - %239 = icmp eq i64 %.lcssa286, %2 + br i1 %or.cond70, label %.lr.ph392, label %.critedge6, !llvm.loop !88 + +.critedge6: ; preds = %.lr.ph392, %.critedge4 + %.6257.lcssa = phi i64 [ %.5256.lcssa, %.critedge4 ], [ %235, %.lr.ph392 ] + %.6250.lcssa = phi i64 [ %.5249.lcssa, %.critedge4 ], [ %233, %.lr.ph392 ] + %.6.lcssa = phi ptr [ %.5.lcssa, %.critedge4 ], [ %234, %.lr.ph392 ] + %.lcssa288 = phi i64 [ %.promoted385, %.critedge4 ], [ %236, %.lr.ph392 ] + %239 = icmp eq i64 %.lcssa288, %2 %240 = load i16, ptr %199, align 8, !tbaa !79 %241 = zext i16 %240 to i64 %.not19.i.i129 = icmp eq i16 %240, 0 @@ -2692,7 +2692,7 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph361 br label %247 ._crit_edge.i.i134: ; preds = %247 - %.not.i.i135 = icmp ne i64 %255, 0 + %.not.i.i135 = icmp ugt i128 %253, 18446744073709551615 %246 = icmp ult i16 %240, 62 %or.cond266 = and i1 %246, %.not.i.i135 br i1 %or.cond266, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i137, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit138 @@ -2762,44 +2762,44 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit147: ; preds = %263, %_ZN14arro %273 = ptrtoint ptr %.6.lcssa to i64 %274 = sub i64 %198, %273 %275 = icmp sgt i64 %274, 7 - br i1 %275, label %.lr.ph394, label %.preheader + br i1 %275, label %.lr.ph400, label %.preheader .preheader: ; preds = %276, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 %.09.i79.lcssa = phi ptr [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ], [ %277, %276 ] - %.not.i81396 = icmp eq ptr %.09.i79.lcssa, %185 - br i1 %.not.i81396, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph398 + %.not.i81402 = icmp eq ptr %.09.i79.lcssa, %185 + br i1 %.not.i81402, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph404 -.lr.ph394: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147, %276 - %.09.i79393 = phi ptr [ %277, %276 ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ] - %.0.copyload.i84 = load i64, ptr %.09.i79393, align 1 +.lr.ph400: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147, %276 + %.09.i79399 = phi ptr [ %277, %276 ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ] + %.0.copyload.i84 = load i64, ptr %.09.i79399, align 1 %.not11.i85 = icmp eq i64 %.0.copyload.i84, 3472328296227680304 br i1 %.not11.i85, label %276, label %.loopexit -276: ; preds = %.lr.ph394 - %277 = getelementptr inbounds nuw i8, ptr %.09.i79393, i64 8 +276: ; preds = %.lr.ph400 + %277 = getelementptr inbounds nuw i8, ptr %.09.i79399, i64 8 %278 = ptrtoint ptr %277 to i64 %279 = sub i64 %198, %278 %280 = icmp sgt i64 %279, 7 - br i1 %280, label %.lr.ph394, label %.preheader, !llvm.loop !83 + br i1 %280, label %.lr.ph400, label %.preheader, !llvm.loop !83 -281: ; preds = %.lr.ph398 - %282 = getelementptr inbounds nuw i8, ptr %.1.i80397, i64 1 +281: ; preds = %.lr.ph404 + %282 = getelementptr inbounds nuw i8, ptr %.1.i80403, i64 1 %.not.i81 = icmp eq ptr %282, %185 - br i1 %.not.i81, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph398, !llvm.loop !84 + br i1 %.not.i81, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph404, !llvm.loop !84 -.lr.ph398: ; preds = %.preheader, %281 - %.1.i80397 = phi ptr [ %282, %281 ], [ %.09.i79.lcssa, %.preheader ] - %283 = load i8, ptr %.1.i80397, align 1, !tbaa !6 +.lr.ph404: ; preds = %.preheader, %281 + %.1.i80403 = phi ptr [ %282, %281 ], [ %.09.i79.lcssa, %.preheader ] + %283 = load i8, ptr %.1.i80403, align 1, !tbaa !6 %.not10.i82 = icmp eq i8 %283, 48 br i1 %.not10.i82, label %281, label %.loopexit -.loopexit: ; preds = %.lr.ph394, %.lr.ph398 +.loopexit: ; preds = %.lr.ph400, %.lr.ph404 %284 = zext i16 %.pr259 to i64 %.not19.i.i148 = icmp eq i16 %.pr259, 0 br i1 %.not19.i.i148, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit157, label %.lr.ph.i.i149 ._crit_edge.i.i153: ; preds = %.lr.ph.i.i149 - %.not.i.i154 = icmp ne i64 %293, 0 + %.not.i.i154 = icmp samesign ugt i128 %291, 18446744073709551615 %285 = icmp ult i16 %.pr259, 62 %or.cond267 = and i1 %285, %.not.i.i154 br i1 %or.cond267, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i156, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit157 @@ -2869,7 +2869,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i164: ; br label %316 ._crit_edge.i.i171: ; preds = %316 - %.not.i.i172 = icmp ne i64 %324, 0 + %.not.i.i172 = icmp ugt i128 %322, 18446744073709551615 %315 = icmp ult i16 %240, 62 %or.cond268 = and i1 %315, %.not.i.i172 br i1 %or.cond268, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i174, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit175 @@ -2944,7 +2944,7 @@ _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split: ; preds store i64 %343, ptr %3, align 8, !tbaa !17 br label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 -_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86: ; preds = %196, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184, %281, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split, %._crit_edge354, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75, %.preheader, %._crit_edge335, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 +_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86: ; preds = %196, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184, %281, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split, %._crit_edge360, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75, %.preheader, %._crit_edge341, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 ret void } @@ -3428,32 +3428,32 @@ define linkonce_odr noundef zeroext i1 @_ZN14arrow_vendored10fast_float6bigint4p .preheader: ; preds = %7, %2 %.011.lcssa = phi i32 [ %1, %2 ], [ %8, %7 ] %4 = icmp samesign ugt i32 %.011.lcssa, 26 - br i1 %4, label %.lr.ph32, label %._crit_edge + br i1 %4, label %.lr.ph34, label %._crit_edge -.lr.ph32: ; preds = %.preheader +.lr.ph34: ; preds = %.preheader %5 = getelementptr inbounds nuw i8, ptr %0, i64 496 %.promoted = load i16, ptr %5, align 8, !tbaa !79 br label %10 .lr.ph: ; preds = %2, %7 - %.01130 = phi i32 [ %8, %7 ], [ %1, %2 ] + %.01132 = phi i32 [ %8, %7 ], [ %1, %2 ] %6 = tail call noundef zeroext i1 @_ZN14arrow_vendored10fast_float8long_mulILt62EEEbRNS0_8stackvecIXT_EEENS0_4spanImEE(ptr noundef nonnull align 8 dereferenceable(498) %0, ptr nonnull @_ZN14arrow_vendored10fast_float11pow5_tablesIvE16large_power_of_5E, i64 5) #21 br i1 %6, label %7, label %_ZN14arrow_vendored10fast_float9large_mulILt62EEEbRNS0_8stackvecIXT_EEENS0_4spanImEE.exit 7: ; preds = %.lr.ph - %8 = add i32 %.01130, -135 + %8 = add i32 %.01132, -135 %9 = icmp ugt i32 %8, 134 br i1 %9, label %.lr.ph, label %.preheader, !llvm.loop !93 -10: ; preds = %.lr.ph32, %27 - %11 = phi i16 [ %.promoted, %.lr.ph32 ], [ %28, %27 ] - %.11231 = phi i32 [ %.011.lcssa, %.lr.ph32 ], [ %29, %27 ] +10: ; preds = %.lr.ph34, %27 + %11 = phi i16 [ %.promoted, %.lr.ph34 ], [ %28, %27 ] + %.11233 = phi i32 [ %.011.lcssa, %.lr.ph34 ], [ %29, %27 ] %12 = zext i16 %11 to i64 %.not19.i = icmp eq i16 %11, 0 br i1 %.not19.i, label %27, label %.lr.ph.i ._crit_edge.i: ; preds = %.lr.ph.i - %.not.i = icmp eq i64 %20, 0 + %.not.i = icmp samesign ult i128 %18, 18446744073709551616 br i1 %.not.i, label %27, label %23 .lr.ph.i: ; preds = %10, %.lr.ph.i @@ -3486,7 +3486,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; pred 27: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %._crit_edge.i, %10 %28 = phi i16 [ %26, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ %11, %._crit_edge.i ], [ 0, %10 ] - %29 = add nsw i32 %.11231, -27 + %29 = add nsw i32 %.11233, -27 %30 = icmp ugt i32 %29, 26 br i1 %30, label %10, label %._crit_edge, !llvm.loop !94 @@ -3510,7 +3510,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; pred br label %39 ._crit_edge.i18: ; preds = %39 - %.not.i19 = icmp eq i64 %47, 0 + %.not.i19 = icmp ult i128 %45, 18446744073709551616 br i1 %.not.i19, label %_ZN14arrow_vendored10fast_float9large_mulILt62EEEbRNS0_8stackvecIXT_EEENS0_4spanImEE.exit, label %50 39: ; preds = %39, %.lr.ph.i14 @@ -3552,31 +3552,31 @@ define linkonce_odr noundef zeroext i1 @_ZN14arrow_vendored10fast_float8long_mul %5 = alloca %"struct.arrow_vendored::fast_float::stackvec", align 8 %6 = getelementptr inbounds nuw i8, ptr %0, i64 496 %7 = load i16, ptr %6, align 8, !tbaa !79 - %.fr94 = freeze i16 %7 - %8 = zext i16 %.fr94 to i64 + %.fr96 = freeze i16 %7 + %8 = zext i16 %.fr96 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %4) %.496..496..496..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 496 store i16 0, ptr %.496..496..496..sroa_idx, align 8, !tbaa !79 - %.not.i.i = icmp ult i16 %.fr94, 63 + %.not.i.i = icmp ult i16 %.fr96, 63 br i1 %.not.i.i, label %9, label %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit 9: ; preds = %3 - %10 = icmp eq i16 %.fr94, 0 + %10 = icmp eq i16 %.fr96, 0 br i1 %10, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i, label %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i _ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i: ; preds = %9 %.idx.i.i.i.i.i = shl nuw nsw i64 %8, 3 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 dereferenceable(498) %4, ptr nonnull align 8 %0, i64 %.idx.i.i.i.i.i, i1 false) - %.496..496..496..sroa_idx106 = getelementptr inbounds nuw i8, ptr %4, i64 496 - %.496..496..496..pre.i.i = load i16, ptr %.496..496..496..sroa_idx106, align 8, !tbaa !79 + %.496..496..496..sroa_idx114 = getelementptr inbounds nuw i8, ptr %4, i64 496 + %.496..496..496..pre.i.i = load i16, ptr %.496..496..496..sroa_idx114, align 8, !tbaa !79 %11 = freeze i16 %.496..496..496..pre.i.i br label %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i _ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i: ; preds = %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i, %9 %.fr = phi i16 [ 0, %9 ], [ %11, %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i ] - %12 = add i16 %.fr, %.fr94 - %.496..496..496..sroa_idx107 = getelementptr inbounds nuw i8, ptr %4, i64 496 - store i16 %12, ptr %.496..496..496..sroa_idx107, align 8, !tbaa !79 + %12 = add i16 %.fr, %.fr96 + %.496..496..496..sroa_idx115 = getelementptr inbounds nuw i8, ptr %4, i64 496 + store i16 %12, ptr %.496..496..496..sroa_idx115, align 8, !tbaa !79 br label %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = %3, %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i @@ -3585,7 +3585,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = br i1 %.not, label %.critedge34, label %13 13: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit - %.not19.i = icmp eq i16 %.fr94, 0 + %.not19.i = icmp eq i16 %.fr96, 0 br i1 %.not19.i, label %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit, label %.lr.ph.i .lr.ph.i: ; preds = %13 @@ -3594,7 +3594,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = br label %16 ._crit_edge.i: ; preds = %16 - %.not.i = icmp eq i64 %24, 0 + %.not.i = icmp ult i128 %22, 18446744073709551616 br i1 %.not.i, label %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit, label %27 16: ; preds = %16, %.lr.ph.i @@ -3615,19 +3615,19 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = br i1 %exitcond.not.i, label %._crit_edge.i, label %16, !llvm.loop !81 27: ; preds = %._crit_edge.i - %28 = icmp ult i16 %.fr94, 62 + %28 = icmp ult i16 %.fr96, 62 br i1 %28, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, label %.critedge32 _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; preds = %27 %29 = getelementptr inbounds nuw i64, ptr %0, i64 %8 store i64 %24, ptr %29, align 8, !tbaa !17 - %30 = add nuw nsw i16 %.fr94, 1 + %30 = add nuw nsw i16 %.fr96, 1 store i16 %30, ptr %6, align 8, !tbaa !79 br label %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit _ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit: ; preds = %13, %._crit_edge.i, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i - %.not30.not67.not = icmp eq i64 %2, 1 - br i1 %.not30.not67.not, label %.critedge34, label %.lr.ph + %.not30.not69.not = icmp eq i64 %2, 1 + br i1 %.not30.not69.not, label %.critedge34, label %.lr.ph .lr.ph: ; preds = %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit %31 = getelementptr inbounds nuw i8, ptr %5, i64 496 @@ -3642,9 +3642,9 @@ _ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit: ; br label %.lr.ph.split.us .lr.ph.split.us: ; preds = %.lr.ph.split.us.preheader, %.critedge.us - %.02768.us = phi i64 [ %107, %.critedge.us ], [ 1, %.lr.ph.split.us.preheader ] + %.02770.us = phi i64 [ %107, %.critedge.us ], [ 1, %.lr.ph.split.us.preheader ] %34 = phi i16 [ %106, %.critedge.us ], [ %.promoted, %.lr.ph.split.us.preheader ] - %35 = getelementptr inbounds nuw i64, ptr %1, i64 %.02768.us + %35 = getelementptr inbounds nuw i64, ptr %1, i64 %.02770.us %36 = load i64, ptr %35, align 8, !tbaa !17 call void @llvm.lifetime.start.p0(ptr nonnull %5) %.not29.us = icmp eq i64 %36, 0 @@ -3688,7 +3688,7 @@ _ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.us: ; br i1 %exitcond.not.i40.us, label %._crit_edge.i41.us, label %43, !llvm.loop !81 ._crit_edge.i41.us: ; preds = %43 - %.not.i42.us = icmp eq i64 %51, 0 + %.not.i42.us = icmp ult i128 %49, 18446744073709551616 br i1 %.not.i42.us, label %58, label %54 54: ; preds = %._crit_edge.i41.us @@ -3705,14 +3705,14 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i44.us: ; %59 = phi i16 [ %57, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i44.us ], [ %40, %._crit_edge.i41.us ], [ 0, %38 ] %60 = zext i16 %59 to i64 %61 = zext i16 %34 to i64 - %62 = icmp ugt i64 %.02768.us, %61 - %63 = sub nsw i64 %61, %.02768.us + %62 = icmp ugt i64 %.02770.us, %61 + %63 = sub nsw i64 %61, %.02770.us %64 = icmp ult i64 %63, %60 %or.cond.i.us = select i1 %62, i1 true, i1 %64 br i1 %or.cond.i.us, label %65, label %73 65: ; preds = %58 - %66 = add i64 %.02768.us, %60 + %66 = add i64 %.02770.us, %60 %67 = icmp ult i64 %66, 63 br i1 %67, label %68, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_extendENS0_4spanImEE.exit @@ -3734,7 +3734,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: 73: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us, %58 %74 = phi i16 [ %34, %58 ], [ %storemerge.i.i.i.us, %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us ] - %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.02768.us + %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.02770.us %.not.i46.us = icmp eq i16 %59, 0 br i1 %.not.i46.us, label %.critedge.us, label %.lr.ph.i47.us @@ -3772,7 +3772,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: br i1 %89, label %91, label %.critedge.us 91: ; preds = %._crit_edge.i49.us - %92 = add i64 %.02768.us, %60 + %92 = add i64 %.02770.us, %60 %93 = zext i16 %74 to i64 br label %94 @@ -3805,13 +3805,13 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; .critedge.us: ; preds = %99, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us, %._crit_edge.i49.us, %73, %.lr.ph.split.us %106 = phi i16 [ %74, %73 ], [ %98, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us ], [ %74, %._crit_edge.i49.us ], [ %34, %.lr.ph.split.us ], [ %74, %99 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) - %107 = add nuw i64 %.02768.us, 1 - %exitcond73.not = icmp eq i64 %107, %2 - br i1 %exitcond73.not, label %.critedge34, label %.lr.ph.split.us, !llvm.loop !96 + %107 = add nuw i64 %.02770.us, 1 + %exitcond77.not = icmp eq i64 %107, %2 + br i1 %exitcond77.not, label %.critedge34, label %.lr.ph.split.us, !llvm.loop !96 .lr.ph.split: ; preds = %.lr.ph, %.critedge - %.02768 = phi i64 [ %110, %.critedge ], [ 1, %.lr.ph ] - %108 = getelementptr inbounds nuw i64, ptr %1, i64 %.02768 + %.02770 = phi i64 [ %110, %.critedge ], [ 1, %.lr.ph ] + %108 = getelementptr inbounds nuw i64, ptr %1, i64 %.02770 %109 = load i64, ptr %108, align 8, !tbaa !17 call void @llvm.lifetime.start.p0(ptr nonnull %5) %.not29 = icmp eq i64 %109, 0 @@ -3819,7 +3819,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; .critedge: ; preds = %.lr.ph.split call void @llvm.lifetime.end.p0(ptr nonnull %5) - %110 = add nuw i64 %.02768, 1 + %110 = add nuw i64 %.02770, 1 %exitcond.not = icmp eq i64 %110, %2 br i1 %exitcond.not, label %.critedge34, label %.lr.ph.split, !llvm.loop !96 diff --git a/bench/boost/optimized/approximately_equals.ll b/bench/boost/optimized/approximately_equals.ll index 24f8e7f2f88..071eedfee2a 100644 --- a/bench/boost/optimized/approximately_equals.ll +++ b/bench/boost/optimized/approximately_equals.ll @@ -149244,7 +149244,7 @@ define linkonce_odr hidden void @_ZN5boost14multiprecision8backends13eval_multip store i64 %.sroa.0.0.extract.trunc, ptr %43, align 8, !tbaa !1539 %44 = getelementptr inbounds nuw i8, ptr %43, i64 8 store i64 %.sroa.2.0.extract.trunc, ptr %44, align 8, !tbaa !1539 - %.not.i111 = icmp eq i64 %.sroa.2.0.extract.trunc, 0 + %.not.i111 = icmp ult i128 %37, 18446744073709551616 %45 = select i1 %.not.i111, i64 1, i64 2 %46 = load i64, ptr %0, align 16 %spec.select.i.i114 = select i1 %40, i64 2, i64 %46 @@ -154513,7 +154513,7 @@ _ZN5boost14multiprecision8backends15cpp_int_backendILm0ELm0ELNS0_16cpp_integer_t store i64 %.sroa.083.0.extract.trunc, ptr %372, align 8, !tbaa !1539 %373 = getelementptr inbounds nuw i8, ptr %372, i64 8 store i64 %.sroa.284.0.extract.trunc, ptr %373, align 8, !tbaa !1539 - %.not.i313 = icmp eq i64 %.sroa.284.0.extract.trunc, 0 + %.not.i313 = icmp ult i128 %366, 18446744073709551616 %374 = select i1 %.not.i313, i64 1, i64 2 invoke void @_ZN5boost14multiprecision8backends12cpp_int_baseILm0ELm18446744073709551615ELNS0_16cpp_integer_typeE1ELNS0_18cpp_int_check_typeE0ESaIyELb0EE6resizeEmm(ptr noundef nonnull align 16 dereferenceable(27) %0, i64 noundef %374, i64 noundef %374) to label %_ZN5boost14multiprecision8backends15cpp_int_backendILm0ELm0ELNS0_16cpp_integer_typeE1ELNS0_18cpp_int_check_typeE0ESaIyEEaSIoEENSt9enable_ifIXaasr3std7is_sameIT_oEE5valuentL_ZNSt17integral_constantIbLb0EE5valueEEERS6_E4typeES9_.exit314 unwind label %375 @@ -154543,7 +154543,7 @@ _ZN5boost14multiprecision8backends15cpp_int_backendILm0ELm0ELNS0_16cpp_integer_t store i64 %.sroa.0.0.extract.trunc, ptr %385, align 8, !tbaa !1539 %386 = getelementptr inbounds nuw i8, ptr %385, i64 8 store i64 %.sroa.2.0.extract.trunc, ptr %386, align 8, !tbaa !1539 - %.not.i312 = icmp eq i64 %.sroa.2.0.extract.trunc, 0 + %.not.i312 = icmp ult i128 %380, 18446744073709551616 %387 = select i1 %.not.i312, i64 1, i64 2 invoke void @_ZN5boost14multiprecision8backends12cpp_int_baseILm0ELm18446744073709551615ELNS0_16cpp_integer_typeE1ELNS0_18cpp_int_check_typeE0ESaIyELb0EE6resizeEmm(ptr noundef nonnull align 16 dereferenceable(27) %3, i64 noundef %387, i64 noundef %387) to label %_ZN5boost14multiprecision8backends13eval_subtractILm0ELm0ELNS0_16cpp_integer_typeE1ELNS0_18cpp_int_check_typeE0ESaIyELm0ELm0ELS3_1ELS4_0ES5_EENSt9enable_ifIXaantsr18is_trivial_cpp_intINS1_15cpp_int_backendIXT_EXT0_EXT1_EXT2_ET3_EEEE5valuentsr18is_trivial_cpp_intINS7_IXT4_EXT5_EXT6_EXT7_ET8_EEEE5valueEvE4typeERS9_RKSB_.exit330.sink.split unwind label %388 @@ -156101,7 +156101,7 @@ _ZN5boost14multiprecision8backends12cpp_int_baseILm0ELm18446744073709551615ELNS0 store i64 %.sroa.08.0.extract.trunc, ptr %256, align 8, !tbaa !1539 %257 = getelementptr inbounds nuw i8, ptr %256, i64 8 store i64 %.sroa.29.0.extract.trunc, ptr %257, align 8, !tbaa !1539 - %.not.i160 = icmp eq i64 %.sroa.29.0.extract.trunc, 0 + %.not.i160 = icmp ult i128 %250, 18446744073709551616 %258 = select i1 %.not.i160, i64 1, i64 2 %259 = load i64, ptr %0, align 16 %spec.select.i.i195 = select i1 %253, i64 2, i64 %259 diff --git a/bench/boost/optimized/to_chars.ll b/bench/boost/optimized/to_chars.ll index c6769cd95cf..7a240a63994 100644 --- a/bench/boost/optimized/to_chars.ll +++ b/bench/boost/optimized/to_chars.ll @@ -6543,7 +6543,7 @@ _ZN5boost8charconv6detail18has_further_digitsILj1ELj16ENS1_24extended_cache_long br i1 %1306, label %.thread1990.sink.split, label %_ZN5boost8charconv6detailL65check_rounding_condition_subsegment_boundary_with_next_subsegmentINS1_32uint_with_known_number_of_digitsILj6ELb1EEEbJETnNSt9enable_ifIXsr3std7is_sameIT0_bEE5valueEbE4typeELb1EEEbjT_S6_DpT1_.exit _ZN5boost8charconv6detailL65check_rounding_condition_subsegment_boundary_with_next_subsegmentINS1_32uint_with_known_number_of_digitsILj6ELb1EEEbJETnNSt9enable_ifIXsr3std7is_sameIT0_bEE5valueEbE4typeELb1EEEbjT_S6_DpT1_.exit: ; preds = %_ZN5boost8charconv6detail18has_further_digitsILj1ELj16ENS1_24extended_cache_long_implILb1EEEEEbmiRiNS1_6uconstIXT_EEENS6_IXT0_EEE.exit - %1307 = icmp eq i32 %1224, 500000 + %1307 = icmp eq i128 %1222, 500000 %1308 = and i32 %.08722044, 1 %1309 = or i32 %.0.i.i1405, %1308 %1310 = icmp ne i32 %1309, 0 @@ -10415,7 +10415,7 @@ define linkonce_odr hidden { i64, i64 } @_ZN5boost8charconv6detail4implIdNS1_22d 68: ; preds = %49, %40 %69 = add nsw i32 %5, 1 - %70 = icmp eq i64 %36, 0 + %70 = icmp ult i64 %33, 1000 br i1 %70, label %_ZN5boost8charconv6detail4implIdNS1_22dragonbox_float_traitsIdEEE21remove_trailing_zerosERm.exit, label %71 71: ; preds = %68 diff --git a/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll b/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll index b47be4dbc26..8bec2fbc0c3 100644 --- a/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll +++ b/bench/coreutils-rs/optimized/yiho3rob7ld9k5q.ll @@ -5339,8 +5339,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h1df44266d04bfe42E.exit.i68 %1070 = load i64, ptr %1069, align 8, !noundef !4 %1071 = call fastcc i24 @_ZN5uu_ls24match_quoting_style_name17h5004c6194d20203eE(ptr noalias noundef nonnull readonly align 1 %1068, i64 noundef %1070, i1 noundef zeroext %1038) %.2.extract.shift.i = lshr i24 %1071, 16 - %.2.extract.trunc.i = trunc nuw nsw i24 %.2.extract.shift.i to i8 - %1072 = icmp eq i8 %.2.extract.trunc.i, 4 + %1072 = icmp eq i24 %.2.extract.shift.i, 4 br i1 %1072, label %1073, label %1074 1073: ; preds = %_ZN12clap_builder6parser5error12MatchesError6unwrap17h1df44266d04bfe42E.exit.i687 @@ -5349,6 +5348,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h1df44266d04bfe42E.exit.i68 br label %.invoke 1074: ; preds = %_ZN12clap_builder6parser5error12MatchesError6unwrap17h1df44266d04bfe42E.exit.i687 + %.2.extract.trunc.i = trunc nuw nsw i24 %.2.extract.shift.i to i8 %.1.extract.shift.i = lshr i24 %1071, 8 %.1.extract.trunc.i = trunc i24 %.1.extract.shift.i to i8 %.0.extract.trunc.i = trunc i24 %1071 to i8 @@ -5399,7 +5399,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h1df44266d04bfe42E.exit.i68 %.1.extract.trunc40.i = trunc i24 %.1.extract.shift39.i to i8 %.2.extract.shift42.i = lshr i24 %1089, 16 %.2.extract.trunc43.i = trunc nuw nsw i24 %.2.extract.shift42.i to i8 - %1090 = icmp eq i8 %.2.extract.trunc43.i, 4 + %1090 = icmp eq i24 %.2.extract.shift42.i, 4 br i1 %1090, label %1095, label %1096 1091: ; preds = %"_ZN4core3ptr35drop_in_place$LT$std..env..Args$GT$17h8b03744aad145c95E.exit56.i" diff --git a/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll b/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll index e63a00484f4..582de60c0a1 100644 --- a/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll +++ b/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll @@ -88106,50 +88106,66 @@ default.unreachable: ; preds = %8 86: ; preds = %80 switch i64 %82, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" [ - i64 0, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i" - i64 2, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i" + i64 0, label %87 + i64 2, label %89 ] -"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i": ; preds = %86, %86 - %87 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %88 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %89 = tail call noundef zeroext i1 @"_ZN79_$LT$datafusion_common..scalar..ScalarValue$u20$as$u20$core..cmp..PartialEq$GT$2eq17h41bc8ae7977a51eeE"(ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %87, ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %88) - br i1 %89, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i", label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" +87: ; preds = %86 + %88 = icmp eq i128 %83, 0 + br i1 %88, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" -"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i": ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", %86 - %90 = getelementptr inbounds nuw i8, ptr %0, i64 80 - %91 = getelementptr inbounds nuw i8, ptr %1, i64 80 +89: ; preds = %86 + %90 = icmp eq i128 %83, 2 + br i1 %90, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" + +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i": ; preds = %89, %87 + %91 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %92 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %93 = tail call noundef zeroext i1 @"_ZN79_$LT$datafusion_common..scalar..ScalarValue$u20$as$u20$core..cmp..PartialEq$GT$2eq17h41bc8ae7977a51eeE"(ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %91, ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %92) + br i1 %93, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i", label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" + +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i": ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", %89, %87, %86 + %94 = getelementptr inbounds nuw i8, ptr %0, i64 80 + %95 = getelementptr inbounds nuw i8, ptr %1, i64 80 tail call void @llvm.experimental.noalias.scope.decl(metadata !12856) tail call void @llvm.experimental.noalias.scope.decl(metadata !12859) - %92 = load i128, ptr %90, align 16, !range !1886, !alias.scope !12861, !noalias !12862, !noundef !4 - %93 = trunc nuw nsw i128 %92 to i64 - %94 = load i128, ptr %91, align 16, !range !1886, !alias.scope !12862, !noalias !12861, !noundef !4 - %95 = trunc nuw nsw i128 %94 to i64 - %96 = icmp eq i64 %93, %95 - br i1 %96, label %97, label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" - -97: ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" - switch i64 %93, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" [ - i64 0, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i" - i64 2, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i" + %96 = load i128, ptr %94, align 16, !range !1886, !alias.scope !12861, !noalias !12862, !noundef !4 + %97 = trunc nuw nsw i128 %96 to i64 + %98 = load i128, ptr %95, align 16, !range !1886, !alias.scope !12862, !noalias !12861, !noundef !4 + %99 = trunc nuw nsw i128 %98 to i64 + %100 = icmp eq i64 %97, %99 + br i1 %100, label %101, label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" + +101: ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" + switch i64 %97, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" [ + i64 0, label %102 + i64 2, label %104 ] -"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i": ; preds = %97, %97 - %98 = getelementptr inbounds nuw i8, ptr %0, i64 96 - %99 = getelementptr inbounds nuw i8, ptr %1, i64 96 - %100 = tail call noundef zeroext i1 @"_ZN79_$LT$datafusion_common..scalar..ScalarValue$u20$as$u20$core..cmp..PartialEq$GT$2eq17h41bc8ae7977a51eeE"(ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %98, ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %99) - br i1 %100, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i", label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" - -"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i": ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", %97 - %101 = getelementptr inbounds nuw i8, ptr %0, i64 160 - %102 = load i8, ptr %101, align 16, !range !1281, !alias.scope !12844, !noalias !12847, !noundef !4 - %103 = getelementptr inbounds nuw i8, ptr %1, i64 160 - %104 = load i8, ptr %103, align 16, !range !1281, !alias.scope !12847, !noalias !12844, !noundef !4 - %105 = icmp eq i8 %102, %104 +102: ; preds = %101 + %103 = icmp eq i128 %98, 0 + br i1 %103, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" + +104: ; preds = %101 + %105 = icmp eq i128 %98, 2 + br i1 %105, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" + +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i": ; preds = %104, %102 + %106 = getelementptr inbounds nuw i8, ptr %0, i64 96 + %107 = getelementptr inbounds nuw i8, ptr %1, i64 96 + %108 = tail call noundef zeroext i1 @"_ZN79_$LT$datafusion_common..scalar..ScalarValue$u20$as$u20$core..cmp..PartialEq$GT$2eq17h41bc8ae7977a51eeE"(ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %106, ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %107) + br i1 %108, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i", label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" + +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i": ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", %104, %102, %101 + %109 = getelementptr inbounds nuw i8, ptr %0, i64 160 + %110 = load i8, ptr %109, align 16, !range !1281, !alias.scope !12844, !noalias !12847, !noundef !4 + %111 = getelementptr inbounds nuw i8, ptr %1, i64 160 + %112 = load i8, ptr %111, align 16, !range !1281, !alias.scope !12847, !noalias !12844, !noundef !4 + %113 = icmp eq i8 %110, %112 br label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" "_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit": ; preds = %44, %57, %70, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit6", %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit", %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit.thread", %2, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i", %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i", %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", %80, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit11", %25, %15, %9, %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit" - %.0 = phi i1 [ false, %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit" ], [ false, %9 ], [ false, %15 ], [ false, %25 ], [ %105, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i" ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit11" ], [ false, %80 ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" ], [ false, %2 ], [ false, %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit.thread" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit6" ], [ false, %70 ], [ false, %57 ], [ false, %44 ] + %.0 = phi i1 [ false, %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit" ], [ false, %9 ], [ false, %15 ], [ false, %25 ], [ %113, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i" ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit11" ], [ false, %80 ], [ false, %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" ], [ false, %2 ], [ false, %"_ZN88_$LT$datafusion_expr..expr..WindowFunctionDefinition$u20$as$u20$core..cmp..PartialEq$GT$2eq17h31a1de744d3c66a1E.exit.thread" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit" ], [ false, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17ha51d1685b90d102cE.exit6" ], [ false, %70 ], [ false, %57 ], [ false, %44 ] ret i1 %.0 } diff --git a/bench/duckdb/optimized/yyjson.ll b/bench/duckdb/optimized/yyjson.ll index f62fbdc8d48..eef33f7c071 100644 --- a/bench/duckdb/optimized/yyjson.ll +++ b/bench/duckdb/optimized/yyjson.ll @@ -7896,18 +7896,18 @@ define noundef ptr @_ZN13duckdb_yyjson16yyjson_read_optsEPcmjPKNS_10yyjson_alcEP br label %.preheader4149.sink.split .preheader4149.sink.split: ; preds = %115, %2256, %._crit_edge4931, %147 - %.sink10196 = phi ptr [ %148, %147 ], [ %2253, %._crit_edge4931 ], [ %2257, %2256 ], [ %86, %115 ] + %.sink10212 = phi ptr [ %148, %147 ], [ %2253, %._crit_edge4931 ], [ %2257, %2256 ], [ %86, %115 ] %.1529.i.ph.ph = phi ptr [ %.4496.i, %147 ], [ %.8536.i.ph, %._crit_edge4931 ], [ %.8536.i.ph, %2256 ], [ %105, %115 ] %.1493.i.ph.ph = phi ptr [ %.4496.i, %147 ], [ %.8500.i.ph, %._crit_edge4931 ], [ %.8500.i.ph, %2256 ], [ %105, %115 ] %.1467.i.ph.ph = phi ptr [ %.4470.i, %147 ], [ %.8474.i.ph, %._crit_edge4931 ], [ %.8474.i.ph, %2256 ], [ %104, %115 ] %.1450.i.ph.ph = phi ptr [ %.4453.i, %147 ], [ %.8457.i.ph, %._crit_edge4931 ], [ %.8457.i.ph, %2256 ], [ %102, %115 ] %.1442.i.ph.ph = phi i64 [ 0, %147 ], [ %.4445.i.ph, %._crit_edge4931 ], [ %.4445.i.ph, %2256 ], [ 0, %115 ] %.1.i.ph.ph = phi i64 [ %.3.i, %147 ], [ %.6.i.ph, %._crit_edge4931 ], [ %.6.i.ph, %2256 ], [ %100, %115 ] - store ptr %.sink10196, ptr %21, align 8, !tbaa !86 + store ptr %.sink10212, ptr %21, align 8, !tbaa !86 br label %.preheader4149 .preheader4149: ; preds = %.preheader4149.sink.split, %139, %115 - %.promoted49336694 = phi ptr [ %79, %115 ], [ %140, %139 ], [ %.sink10196, %.preheader4149.sink.split ] + %.promoted49336694 = phi ptr [ %79, %115 ], [ %140, %139 ], [ %.sink10212, %.preheader4149.sink.split ] %.1529.i.ph = phi ptr [ %105, %115 ], [ %.4496.i, %139 ], [ %.1529.i.ph.ph, %.preheader4149.sink.split ] %.1493.i.ph = phi ptr [ %105, %115 ], [ %.4496.i, %139 ], [ %.1493.i.ph.ph, %.preheader4149.sink.split ] %.1467.i.ph = phi ptr [ %104, %115 ], [ %.4470.i, %139 ], [ %.1467.i.ph.ph, %.preheader4149.sink.split ] @@ -8388,8 +8388,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463.thread .preheader4146thread-pre-split: ; preds = %.preheader4146thread-pre-split.lr.ph, %.preheader4146thread-pre-split - %.4314610138 = phi ptr [ %324, %.preheader4146thread-pre-split.lr.ph ], [ %329, %.preheader4146thread-pre-split ] - %329 = getelementptr inbounds nuw i8, ptr %.4314610138, i64 1 + %.4314610154 = phi ptr [ %324, %.preheader4146thread-pre-split.lr.ph ], [ %329, %.preheader4146thread-pre-split ] + %329 = getelementptr inbounds nuw i8, ptr %.4314610154, i64 1 %.pr = load i8, ptr %329, align 1, !tbaa !75 %330 = icmp eq i8 %.pr, 48 br i1 %330, label %.preheader4146thread-pre-split, label %.preheader4146._crit_edge, !prof !156, !llvm.loop !155 @@ -8398,14 +8398,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %331, !llvm.loop !155 331: ; preds = %.preheader4146._crit_edge, %.preheader4146.preheader - %.lcssa9410 = phi i8 [ %.pr, %.preheader4146._crit_edge ], [ %325, %.preheader4146.preheader ] + %.lcssa9422 = phi i8 [ %.pr, %.preheader4146._crit_edge ], [ %325, %.preheader4146.preheader ] %.43146.lcssa = phi ptr [ %329, %.preheader4146._crit_edge ], [ %324, %.preheader4146.preheader ] - %332 = add i8 %.lcssa9410, -58 + %332 = add i8 %.lcssa9422, -58 %.not3948 = icmp ult i8 %332, -10 br i1 %.not3948, label %.thread7312, label %333, !prof !3 333: ; preds = %331 - %334 = zext nneg i8 %.lcssa9410 to i64 + %334 = zext nneg i8 %.lcssa9422 to i64 %335 = add nsw i64 %334, -48 %336 = getelementptr inbounds i8, ptr %.43146.lcssa, i64 -1 br label %724 @@ -8422,7 +8422,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = .thread7312: ; preds = %331, %337 %.131437315 = phi ptr [ %312, %337 ], [ %.43146.lcssa, %331 ] - %340 = phi i8 [ %313, %337 ], [ %.lcssa9410, %331 ] + %340 = phi i8 [ %313, %337 ], [ %.lcssa9422, %331 ] %341 = and i8 %340, -33 %.not3950.not = icmp eq i8 %341, 69 br i1 %.not3950.not, label %342, label %.loopexit4134, !prof !3 @@ -9605,8 +9605,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463.thread .preheader4143thread-pre-split: ; preds = %.preheader4143thread-pre-split.lr.ph, %.preheader4143thread-pre-split - %.9315110141 = phi ptr [ %997, %.preheader4143thread-pre-split.lr.ph ], [ %1002, %.preheader4143thread-pre-split ] - %1002 = getelementptr inbounds nuw i8, ptr %.9315110141, i64 1 + %.9315110157 = phi ptr [ %997, %.preheader4143thread-pre-split.lr.ph ], [ %1002, %.preheader4143thread-pre-split ] + %1002 = getelementptr inbounds nuw i8, ptr %.9315110157, i64 1 %.pr7316 = load i8, ptr %1002, align 1, !tbaa !75 %1003 = icmp eq i8 %.pr7316, 48 br i1 %1003, label %.preheader4143thread-pre-split, label %.preheader4143..preheader4142_crit_edge, !llvm.loop !161 @@ -9615,14 +9615,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %.preheader4142, !llvm.loop !161 .preheader4142: ; preds = %.preheader4143..preheader4142_crit_edge, %.preheader4143.preheader - %.lcssa9406 = phi i8 [ %.pr7316, %.preheader4143..preheader4142_crit_edge ], [ %998, %.preheader4143.preheader ] + %.lcssa9418 = phi i8 [ %.pr7316, %.preheader4143..preheader4142_crit_edge ], [ %998, %.preheader4143.preheader ] %.93151.lcssa = phi ptr [ %1002, %.preheader4143..preheader4142_crit_edge ], [ %997, %.preheader4143.preheader ] - %1004 = add i8 %.lcssa9406, -58 + %1004 = add i8 %.lcssa9418, -58 %.not39864957 = icmp ult i8 %1004, -10 br i1 %.not39864957, label %._crit_edge4961, label %.lr.ph4960 .lr.ph4960: ; preds = %.preheader4142, %.lr.ph4960 - %1005 = phi i8 [ %1011, %.lr.ph4960 ], [ %.lcssa9406, %.preheader4142 ] + %1005 = phi i8 [ %1011, %.lr.ph4960 ], [ %.lcssa9418, %.preheader4142 ] %.0599.i4074959 = phi i64 [ %1010, %.lr.ph4960 ], [ 0, %.preheader4142 ] %.1031524958 = phi ptr [ %1006, %.lr.ph4960 ], [ %.93151.lcssa, %.preheader4142 ] %1006 = getelementptr inbounds nuw i8, ptr %.1031524958, i64 1 @@ -10143,7 +10143,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit1213: ; preds = %1194 br i1 %exitcond6369.not, label %._crit_edge5009, label %.lr.ph5008, !llvm.loop !166 ._crit_edge5009: ; preds = %.lr.ph5008 - %.not19.i1399 = icmp eq i64 %1265, 0 + %.not19.i1399 = icmp ult i128 %1263, 18446744073709551616 br i1 %.not19.i1399, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1401, label %1267 1267: ; preds = %._crit_edge5009 @@ -10223,7 +10223,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1401: ; preds = %1254, %._ br i1 %exitcond6379.not, label %._crit_edge5029, label %1287, !llvm.loop !166 ._crit_edge5029: ; preds = %1287 - %.not19.i1405 = icmp eq i64 %1295, 0 + %.not19.i1405 = icmp ult i128 %1293, 18446744073709551616 br i1 %.not19.i1405, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1225, label %1297 1297: ; preds = %._crit_edge5029 @@ -10297,7 +10297,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1401: ; preds = %1254, %._ br i1 %exitcond6349.not, label %._crit_edge4975, label %.lr.ph4974, !llvm.loop !166 ._crit_edge4975: ; preds = %.lr.ph4974 - %.not19.i1387 = icmp eq i64 %1319, 0 + %.not19.i1387 = icmp ult i128 %1317, 18446744073709551616 br i1 %.not19.i1387, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1389, label %1321 1321: ; preds = %._crit_edge4975 @@ -10378,7 +10378,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1389: ; preds = %1308, %._ br i1 %exitcond6359.not, label %._crit_edge4996, label %1343, !llvm.loop !166 ._crit_edge4996: ; preds = %1343 - %.not19.i1393 = icmp eq i64 %1351, 0 + %.not19.i1393 = icmp ult i128 %1349, 18446744073709551616 br i1 %.not19.i1393, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1225, label %1353 1353: ; preds = %._crit_edge4996 @@ -11734,7 +11734,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %2040 = and i32 %.sroa.212780.2.in.lcssa, 12291 %2041 = icmp eq i32 %2040, 0 %2042 = or i1 %2039, %2041 - br i1 %2042, label %.lr.ph10147, label %.critedge6.i756 + br i1 %2042, label %.lr.ph10163, label %.critedge6.i756 .lr.ph5162: ; preds = %.preheader4122, %.lr.ph5162 %.sroa.02732.25161.in = phi i32 [ %.sroa.0.0.copyload.i941, %.lr.ph5162 ], [ %storemerge.i746.lcssa, %.preheader4122 ] @@ -11752,21 +11752,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %2049 = and i1 %2046, %2048 br i1 %2049, label %.lr.ph5162, label %.preheader4121.loopexit, !llvm.loop !178 -.lr.ph5176: ; preds = %.lr.ph10147 +.lr.ph5176: ; preds = %.lr.ph10163 %2050 = and i32 %.sroa.0.0.copyload.i942, 4 %2051 = icmp eq i32 %2050, 0 %2052 = and i32 %.sroa.0.0.copyload.i942, 12291 %2053 = icmp eq i32 %2052, 0 %2054 = or i1 %2051, %2053 - br i1 %2054, label %.lr.ph10147, label %.critedge6.i756.loopexit, !llvm.loop !179 - -.lr.ph10147: ; preds = %.lr.ph5176.preheader, %.lr.ph5176 - %.14.i752517210146 = phi ptr [ %2056, %.lr.ph5176 ], [ %.13.i750.lcssa, %.lr.ph5176.preheader ] - %.7.i753517310145 = phi ptr [ %2055, %.lr.ph5176 ], [ %.6.i751.lcssa, %.lr.ph5176.preheader ] - %.sroa.02732.0.insert.insert2756517510144 = phi i32 [ %.sroa.0.0.copyload.i942, %.lr.ph5176 ], [ %.sroa.212780.2.in.lcssa, %.lr.ph5176.preheader ] - store i32 %.sroa.02732.0.insert.insert2756517510144, ptr %.7.i753517310145, align 1 - %2055 = getelementptr inbounds nuw i8, ptr %.7.i753517310145, i64 4 - %2056 = getelementptr inbounds nuw i8, ptr %.14.i752517210146, i64 4 + br i1 %2054, label %.lr.ph10163, label %.critedge6.i756.loopexit, !llvm.loop !179 + +.lr.ph10163: ; preds = %.lr.ph5176.preheader, %.lr.ph5176 + %.14.i752517210162 = phi ptr [ %2056, %.lr.ph5176 ], [ %.13.i750.lcssa, %.lr.ph5176.preheader ] + %.7.i753517310161 = phi ptr [ %2055, %.lr.ph5176 ], [ %.6.i751.lcssa, %.lr.ph5176.preheader ] + %.sroa.02732.0.insert.insert2756517510160 = phi i32 [ %.sroa.0.0.copyload.i942, %.lr.ph5176 ], [ %.sroa.212780.2.in.lcssa, %.lr.ph5176.preheader ] + store i32 %.sroa.02732.0.insert.insert2756517510160, ptr %.7.i753517310161, align 1 + %2055 = getelementptr inbounds nuw i8, ptr %.7.i753517310161, i64 4 + %2056 = getelementptr inbounds nuw i8, ptr %.14.i752517210162, i64 4 %.sroa.0.0.copyload.i942 = load i32, ptr %2056, align 1 %2057 = and i32 %.sroa.0.0.copyload.i942, -1061109512 %2058 = icmp ne i32 %2057, -2139062032 @@ -11775,7 +11775,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %or.cond292.i755 = or i1 %.not289.i754, %2058 br i1 %or.cond292.i755, label %..critedge6.i756.loopexit_crit_edge, label %.lr.ph5176, !llvm.loop !179 -..critedge6.i756.loopexit_crit_edge: ; preds = %.lr.ph10147 +..critedge6.i756.loopexit_crit_edge: ; preds = %.lr.ph10163 %2060 = trunc i32 %.sroa.0.0.copyload.i942 to i16 br label %.critedge6.i756, !llvm.loop !179 @@ -12419,18 +12419,18 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 br label %.preheader4212.sink.split .preheader4212.sink.split: ; preds = %112, %4953, %._crit_edge4926, %2330 - %.sink10197 = phi ptr [ %2331, %2330 ], [ %4950, %._crit_edge4926 ], [ %4954, %4953 ], [ %86, %112 ] + %.sink10213 = phi ptr [ %2331, %2330 ], [ %4950, %._crit_edge4926 ], [ %4954, %4953 ], [ %86, %112 ] %.0528.i.ph.ph = phi ptr [ %.23515.i, %2330 ], [ %.20548.i.ph, %._crit_edge4926 ], [ %.20548.i.ph, %4953 ], [ %105, %112 ] %.0492.i.ph.ph = phi ptr [ %.23515.i, %2330 ], [ %.21513.i.ph, %._crit_edge4926 ], [ %.21513.i.ph, %4953 ], [ %105, %112 ] %.0466.i.ph.ph = phi ptr [ %.22488.i, %2330 ], [ %.20486.i.ph, %._crit_edge4926 ], [ %.20486.i.ph, %4953 ], [ %104, %112 ] %.0449.i.ph.ph = phi ptr [ %.23.i, %2330 ], [ %.21.i.ph, %._crit_edge4926 ], [ %.21.i.ph, %4953 ], [ %102, %112 ] %.0441.i.ph.ph = phi i64 [ 0, %2330 ], [ %.6447.i.ph, %._crit_edge4926 ], [ %.6447.i.ph, %4953 ], [ 0, %112 ] %.0440.i.ph.ph = phi i64 [ %.14.i, %2330 ], [ %.13.i.ph, %._crit_edge4926 ], [ %.13.i.ph, %4953 ], [ %100, %112 ] - store ptr %.sink10197, ptr %21, align 8, !tbaa !86 + store ptr %.sink10213, ptr %21, align 8, !tbaa !86 br label %.preheader4212 .preheader4212: ; preds = %.preheader4212.sink.split, %2322, %112 - %.promoted45546667 = phi ptr [ %79, %112 ], [ %2323, %2322 ], [ %.sink10197, %.preheader4212.sink.split ] + %.promoted45546667 = phi ptr [ %79, %112 ], [ %2323, %2322 ], [ %.sink10213, %.preheader4212.sink.split ] %.0528.i.ph = phi ptr [ %105, %112 ], [ %.23515.i, %2322 ], [ %.0528.i.ph.ph, %.preheader4212.sink.split ] %.0492.i.ph = phi ptr [ %105, %112 ], [ %.23515.i, %2322 ], [ %.0492.i.ph.ph, %.preheader4212.sink.split ] %.0466.i.ph = phi ptr [ %104, %112 ], [ %.22488.i, %2322 ], [ %.0466.i.ph.ph, %.preheader4212.sink.split ] @@ -13643,7 +13643,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %2938 = and i32 %.sroa.213014.2.in.lcssa, 12291 %2939 = icmp eq i32 %2938, 0 %2940 = or i1 %2937, %2939 - br i1 %2940, label %.lr.ph10116, label %.critedge6.i840 + br i1 %2940, label %.lr.ph10132, label %.critedge6.i840 .lr.ph4667: ; preds = %.preheader4199, %.lr.ph4667 %.sroa.02966.24666.in = phi i32 [ %.sroa.0.0.copyload.i925, %.lr.ph4667 ], [ %storemerge.i830.lcssa, %.preheader4199 ] @@ -13661,21 +13661,21 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %2947 = and i1 %2944, %2946 br i1 %2947, label %.lr.ph4667, label %.preheader4198.loopexit, !llvm.loop !178 -.lr.ph4681: ; preds = %.lr.ph10116 +.lr.ph4681: ; preds = %.lr.ph10132 %2948 = and i32 %.sroa.0.0.copyload.i926, 4 %2949 = icmp eq i32 %2948, 0 %2950 = and i32 %.sroa.0.0.copyload.i926, 12291 %2951 = icmp eq i32 %2950, 0 %2952 = or i1 %2949, %2951 - br i1 %2952, label %.lr.ph10116, label %.critedge6.i840.loopexit, !llvm.loop !179 - -.lr.ph10116: ; preds = %.lr.ph4681.preheader, %.lr.ph4681 - %.14.i836467710115 = phi ptr [ %2954, %.lr.ph4681 ], [ %.13.i834.lcssa, %.lr.ph4681.preheader ] - %.7.i837467810114 = phi ptr [ %2953, %.lr.ph4681 ], [ %.6.i835.lcssa, %.lr.ph4681.preheader ] - %.sroa.02966.0.insert.insert2990468010113 = phi i32 [ %.sroa.0.0.copyload.i926, %.lr.ph4681 ], [ %.sroa.213014.2.in.lcssa, %.lr.ph4681.preheader ] - store i32 %.sroa.02966.0.insert.insert2990468010113, ptr %.7.i837467810114, align 1 - %2953 = getelementptr inbounds nuw i8, ptr %.7.i837467810114, i64 4 - %2954 = getelementptr inbounds nuw i8, ptr %.14.i836467710115, i64 4 + br i1 %2952, label %.lr.ph10132, label %.critedge6.i840.loopexit, !llvm.loop !179 + +.lr.ph10132: ; preds = %.lr.ph4681.preheader, %.lr.ph4681 + %.14.i836467710131 = phi ptr [ %2954, %.lr.ph4681 ], [ %.13.i834.lcssa, %.lr.ph4681.preheader ] + %.7.i837467810130 = phi ptr [ %2953, %.lr.ph4681 ], [ %.6.i835.lcssa, %.lr.ph4681.preheader ] + %.sroa.02966.0.insert.insert2990468010129 = phi i32 [ %.sroa.0.0.copyload.i926, %.lr.ph4681 ], [ %.sroa.213014.2.in.lcssa, %.lr.ph4681.preheader ] + store i32 %.sroa.02966.0.insert.insert2990468010129, ptr %.7.i837467810130, align 1 + %2953 = getelementptr inbounds nuw i8, ptr %.7.i837467810130, i64 4 + %2954 = getelementptr inbounds nuw i8, ptr %.14.i836467710131, i64 4 %.sroa.0.0.copyload.i926 = load i32, ptr %2954, align 1 %2955 = and i32 %.sroa.0.0.copyload.i926, -1061109512 %2956 = icmp ne i32 %2955, -2139062032 @@ -13684,7 +13684,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %or.cond292.i839 = or i1 %.not289.i838, %2956 br i1 %or.cond292.i839, label %..critedge6.i840.loopexit_crit_edge, label %.lr.ph4681, !llvm.loop !179 -..critedge6.i840.loopexit_crit_edge: ; preds = %.lr.ph10116 +..critedge6.i840.loopexit_crit_edge: ; preds = %.lr.ph10132 %2958 = trunc i32 %.sroa.0.0.copyload.i926 to i16 br label %.critedge6.i840, !llvm.loop !179 @@ -14834,7 +14834,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %3544 = and i32 %.sroa.212897.2.in.lcssa, 12291 %3545 = icmp eq i32 %3544, 0 %3546 = or i1 %3543, %3545 - br i1 %3546, label %.lr.ph10131, label %.critedge6.i798 + br i1 %3546, label %.lr.ph10147, label %.critedge6.i798 .lr.ph4902: ; preds = %.preheader4164, %.lr.ph4902 %.sroa.02849.24901.in = phi i32 [ %.sroa.0.0.copyload.i933, %.lr.ph4902 ], [ %storemerge.i788.lcssa, %.preheader4164 ] @@ -14852,21 +14852,21 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %3553 = and i1 %3550, %3552 br i1 %3553, label %.lr.ph4902, label %.preheader4163.loopexit, !llvm.loop !178 -.lr.ph4916: ; preds = %.lr.ph10131 +.lr.ph4916: ; preds = %.lr.ph10147 %3554 = and i32 %.sroa.0.0.copyload.i934, 4 %3555 = icmp eq i32 %3554, 0 %3556 = and i32 %.sroa.0.0.copyload.i934, 12291 %3557 = icmp eq i32 %3556, 0 %3558 = or i1 %3555, %3557 - br i1 %3558, label %.lr.ph10131, label %.critedge6.i798.loopexit, !llvm.loop !179 - -.lr.ph10131: ; preds = %.lr.ph4916.preheader, %.lr.ph4916 - %.14.i794491210130 = phi ptr [ %3560, %.lr.ph4916 ], [ %.13.i792.lcssa, %.lr.ph4916.preheader ] - %.7.i795491310129 = phi ptr [ %3559, %.lr.ph4916 ], [ %.6.i793.lcssa, %.lr.ph4916.preheader ] - %.sroa.02849.0.insert.insert2873491510128 = phi i32 [ %.sroa.0.0.copyload.i934, %.lr.ph4916 ], [ %.sroa.212897.2.in.lcssa, %.lr.ph4916.preheader ] - store i32 %.sroa.02849.0.insert.insert2873491510128, ptr %.7.i795491310129, align 1 - %3559 = getelementptr inbounds nuw i8, ptr %.7.i795491310129, i64 4 - %3560 = getelementptr inbounds nuw i8, ptr %.14.i794491210130, i64 4 + br i1 %3558, label %.lr.ph10147, label %.critedge6.i798.loopexit, !llvm.loop !179 + +.lr.ph10147: ; preds = %.lr.ph4916.preheader, %.lr.ph4916 + %.14.i794491210146 = phi ptr [ %3560, %.lr.ph4916 ], [ %.13.i792.lcssa, %.lr.ph4916.preheader ] + %.7.i795491310145 = phi ptr [ %3559, %.lr.ph4916 ], [ %.6.i793.lcssa, %.lr.ph4916.preheader ] + %.sroa.02849.0.insert.insert2873491510144 = phi i32 [ %.sroa.0.0.copyload.i934, %.lr.ph4916 ], [ %.sroa.212897.2.in.lcssa, %.lr.ph4916.preheader ] + store i32 %.sroa.02849.0.insert.insert2873491510144, ptr %.7.i795491310145, align 1 + %3559 = getelementptr inbounds nuw i8, ptr %.7.i795491310145, i64 4 + %3560 = getelementptr inbounds nuw i8, ptr %.14.i794491210146, i64 4 %.sroa.0.0.copyload.i934 = load i32, ptr %3560, align 1 %3561 = and i32 %.sroa.0.0.copyload.i934, -1061109512 %3562 = icmp ne i32 %3561, -2139062032 @@ -14875,7 +14875,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %or.cond292.i797 = or i1 %.not289.i796, %3562 br i1 %or.cond292.i797, label %..critedge6.i798.loopexit_crit_edge, label %.lr.ph4916, !llvm.loop !179 -..critedge6.i798.loopexit_crit_edge: ; preds = %.lr.ph10131 +..critedge6.i798.loopexit_crit_edge: ; preds = %.lr.ph10147 %3564 = trunc i32 %.sroa.0.0.copyload.i934 to i16 br label %.critedge6.i798, !llvm.loop !179 @@ -15158,8 +15158,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit570.thread .preheader4186thread-pre-split: ; preds = %.preheader4186thread-pre-split.lr.ph, %.preheader4186thread-pre-split - %.410122 = phi ptr [ %3666, %.preheader4186thread-pre-split.lr.ph ], [ %3671, %.preheader4186thread-pre-split ] - %3671 = getelementptr inbounds nuw i8, ptr %.410122, i64 1 + %.410138 = phi ptr [ %3666, %.preheader4186thread-pre-split.lr.ph ], [ %3671, %.preheader4186thread-pre-split ] + %3671 = getelementptr inbounds nuw i8, ptr %.410138, i64 1 %.pr7335 = load i8, ptr %3671, align 1, !tbaa !75 %3672 = icmp eq i8 %.pr7335, 48 br i1 %3672, label %.preheader4186thread-pre-split, label %.preheader4186._crit_edge, !prof !156, !llvm.loop !155 @@ -15168,14 +15168,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %3673, !llvm.loop !155 3673: ; preds = %.preheader4186._crit_edge, %.preheader4186.preheader - %.lcssa9771 = phi i8 [ %.pr7335, %.preheader4186._crit_edge ], [ %3667, %.preheader4186.preheader ] + %.lcssa9787 = phi i8 [ %.pr7335, %.preheader4186._crit_edge ], [ %3667, %.preheader4186.preheader ] %.4.lcssa = phi ptr [ %3671, %.preheader4186._crit_edge ], [ %3666, %.preheader4186.preheader ] - %3674 = add i8 %.lcssa9771, -58 + %3674 = add i8 %.lcssa9787, -58 %.not3817 = icmp ult i8 %3674, -10 br i1 %.not3817, label %.thread7336, label %3675, !prof !3 3675: ; preds = %3673 - %3676 = zext nneg i8 %.lcssa9771 to i64 + %3676 = zext nneg i8 %.lcssa9787 to i64 %3677 = add nsw i64 %3676, -48 %3678 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %4066 @@ -15192,7 +15192,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 .thread7336: ; preds = %3673, %3679 %.17339 = phi ptr [ %3654, %3679 ], [ %.4.lcssa, %3673 ] - %3682 = phi i8 [ %3655, %3679 ], [ %.lcssa9771, %3673 ] + %3682 = phi i8 [ %3655, %3679 ], [ %.lcssa9787, %3673 ] %3683 = and i8 %3682, -33 %.not3819.not = icmp eq i8 %3683, 69 br i1 %.not3819.not, label %3684, label %.loopexit4174, !prof !3 @@ -16375,8 +16375,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit570.thread .preheader4183thread-pre-split: ; preds = %.preheader4183thread-pre-split.lr.ph, %.preheader4183thread-pre-split - %.910125 = phi ptr [ %4339, %.preheader4183thread-pre-split.lr.ph ], [ %4344, %.preheader4183thread-pre-split ] - %4344 = getelementptr inbounds nuw i8, ptr %.910125, i64 1 + %.910141 = phi ptr [ %4339, %.preheader4183thread-pre-split.lr.ph ], [ %4344, %.preheader4183thread-pre-split ] + %4344 = getelementptr inbounds nuw i8, ptr %.910141, i64 1 %.pr7340 = load i8, ptr %4344, align 1, !tbaa !75 %4345 = icmp eq i8 %.pr7340, 48 br i1 %4345, label %.preheader4183thread-pre-split, label %.preheader4183..preheader4182_crit_edge, !llvm.loop !161 @@ -16385,14 +16385,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %.preheader4182, !llvm.loop !161 .preheader4182: ; preds = %.preheader4183..preheader4182_crit_edge, %.preheader4183.preheader - %.lcssa9767 = phi i8 [ %.pr7340, %.preheader4183..preheader4182_crit_edge ], [ %4340, %.preheader4183.preheader ] + %.lcssa9783 = phi i8 [ %.pr7340, %.preheader4183..preheader4182_crit_edge ], [ %4340, %.preheader4183.preheader ] %.9.lcssa = phi ptr [ %4344, %.preheader4183..preheader4182_crit_edge ], [ %4339, %.preheader4183.preheader ] - %4346 = add i8 %.lcssa9767, -58 + %4346 = add i8 %.lcssa9783, -58 %.not38554700 = icmp ult i8 %4346, -10 br i1 %.not38554700, label %._crit_edge4704, label %.lr.ph4703 .lr.ph4703: ; preds = %.preheader4182, %.lr.ph4703 - %4347 = phi i8 [ %4353, %.lr.ph4703 ], [ %.lcssa9767, %.preheader4182 ] + %4347 = phi i8 [ %4353, %.lr.ph4703 ], [ %.lcssa9783, %.preheader4182 ] %.0599.i5144702 = phi i64 [ %4352, %.lr.ph4703 ], [ 0, %.preheader4182 ] %.104701 = phi ptr [ %4348, %.lr.ph4703 ], [ %.9.lcssa, %.preheader4182 ] %4348 = getelementptr inbounds nuw i8, ptr %.104701, i64 1 @@ -16913,7 +16913,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit: ; preds = %4536 br i1 %exitcond6314.not, label %._crit_edge4752, label %.lr.ph4751, !llvm.loop !166 ._crit_edge4752: ; preds = %.lr.ph4751 - %.not19.i1423 = icmp eq i64 %4607, 0 + %.not19.i1423 = icmp ult i128 %4605, 18446744073709551616 br i1 %.not19.i1423, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1425, label %4609 4609: ; preds = %._crit_edge4752 @@ -16993,7 +16993,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1425: ; preds = %4596, %._ br i1 %exitcond6324.not, label %._crit_edge4772, label %4629, !llvm.loop !166 ._crit_edge4772: ; preds = %4629 - %.not19.i1429 = icmp eq i64 %4637, 0 + %.not19.i1429 = icmp ult i128 %4635, 18446744073709551616 br i1 %.not19.i1429, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %4639 4639: ; preds = %._crit_edge4772 @@ -17067,7 +17067,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1425: ; preds = %4596, %._ br i1 %exitcond6294.not, label %._crit_edge4718, label %.lr.ph4717, !llvm.loop !166 ._crit_edge4718: ; preds = %.lr.ph4717 - %.not19.i1411 = icmp eq i64 %4661, 0 + %.not19.i1411 = icmp ult i128 %4659, 18446744073709551616 br i1 %.not19.i1411, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1413, label %4663 4663: ; preds = %._crit_edge4718 @@ -17148,7 +17148,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1413: ; preds = %4650, %._ br i1 %exitcond6304.not, label %._crit_edge4739, label %4685, !llvm.loop !166 ._crit_edge4739: ; preds = %4685 - %.not19.i1417 = icmp eq i64 %4693, 0 + %.not19.i1417 = icmp ult i128 %4691, 18446744073709551616 br i1 %.not19.i1417, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %4695 4695: ; preds = %._crit_edge4739 @@ -18561,8 +18561,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit.thread .preheader4051thread-pre-split: ; preds = %.preheader4051thread-pre-split.lr.ph, %.preheader4051thread-pre-split - %.4318410180 = phi ptr [ %5250, %.preheader4051thread-pre-split.lr.ph ], [ %5255, %.preheader4051thread-pre-split ] - %5255 = getelementptr inbounds nuw i8, ptr %.4318410180, i64 1 + %.4318410196 = phi ptr [ %5250, %.preheader4051thread-pre-split.lr.ph ], [ %5255, %.preheader4051thread-pre-split ] + %5255 = getelementptr inbounds nuw i8, ptr %.4318410196, i64 1 %.pr7360 = load i8, ptr %5255, align 1, !tbaa !75 %5256 = icmp eq i8 %.pr7360, 48 br i1 %5256, label %.preheader4051thread-pre-split, label %.preheader4051._crit_edge, !prof !156, !llvm.loop !155 @@ -18571,14 +18571,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %5257, !llvm.loop !155 5257: ; preds = %.preheader4051._crit_edge, %.preheader4051.preheader - %.lcssa8795 = phi i8 [ %.pr7360, %.preheader4051._crit_edge ], [ %5251, %.preheader4051.preheader ] + %.lcssa8799 = phi i8 [ %.pr7360, %.preheader4051._crit_edge ], [ %5251, %.preheader4051.preheader ] %.43184.lcssa = phi ptr [ %5255, %.preheader4051._crit_edge ], [ %5250, %.preheader4051.preheader ] - %5258 = add i8 %.lcssa8795, -58 + %5258 = add i8 %.lcssa8799, -58 %.not3705 = icmp ult i8 %5258, -10 br i1 %.not3705, label %.thread7361, label %5259, !prof !3 5259: ; preds = %5257 - %5260 = zext nneg i8 %.lcssa8795 to i64 + %5260 = zext nneg i8 %.lcssa8799 to i64 %5261 = add nsw i64 %5260, -48 %5262 = getelementptr inbounds i8, ptr %.43184.lcssa, i64 -1 br label %5650 @@ -18595,7 +18595,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = .thread7361: ; preds = %5257, %5263 %.131817364 = phi ptr [ %5238, %5263 ], [ %.43184.lcssa, %5257 ] - %5266 = phi i8 [ %5239, %5263 ], [ %.lcssa8795, %5257 ] + %5266 = phi i8 [ %5239, %5263 ], [ %.lcssa8799, %5257 ] %5267 = and i8 %5266, -33 %.not3707.not = icmp eq i8 %5267, 69 br i1 %.not3707.not, label %5268, label %.loopexit4039, !prof !3 @@ -19778,8 +19778,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit.thread .preheader4048thread-pre-split: ; preds = %.preheader4048thread-pre-split.lr.ph, %.preheader4048thread-pre-split - %.9318910183 = phi ptr [ %5923, %.preheader4048thread-pre-split.lr.ph ], [ %5928, %.preheader4048thread-pre-split ] - %5928 = getelementptr inbounds nuw i8, ptr %.9318910183, i64 1 + %.9318910199 = phi ptr [ %5923, %.preheader4048thread-pre-split.lr.ph ], [ %5928, %.preheader4048thread-pre-split ] + %5928 = getelementptr inbounds nuw i8, ptr %.9318910199, i64 1 %.pr7365 = load i8, ptr %5928, align 1, !tbaa !75 %5929 = icmp eq i8 %.pr7365, 48 br i1 %5929, label %.preheader4048thread-pre-split, label %.preheader4048..preheader4047_crit_edge, !llvm.loop !161 @@ -19788,14 +19788,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %.preheader4047, !llvm.loop !161 .preheader4047: ; preds = %.preheader4048..preheader4047_crit_edge, %.preheader4048.preheader - %.lcssa8791 = phi i8 [ %.pr7365, %.preheader4048..preheader4047_crit_edge ], [ %5924, %.preheader4048.preheader ] + %.lcssa8795 = phi i8 [ %.pr7365, %.preheader4048..preheader4047_crit_edge ], [ %5924, %.preheader4048.preheader ] %.93189.lcssa = phi ptr [ %5928, %.preheader4048..preheader4047_crit_edge ], [ %5923, %.preheader4048.preheader ] - %5930 = add i8 %.lcssa8791, -58 + %5930 = add i8 %.lcssa8795, -58 %.not37435546 = icmp ult i8 %5930, -10 br i1 %.not37435546, label %._crit_edge5550, label %.lr.ph5549 .lr.ph5549: ; preds = %.preheader4047, %.lr.ph5549 - %5931 = phi i8 [ %5937, %.lr.ph5549 ], [ %.lcssa8791, %.preheader4047 ] + %5931 = phi i8 [ %5937, %.lr.ph5549 ], [ %.lcssa8795, %.preheader4047 ] %.0599.i5548 = phi i64 [ %5936, %.lr.ph5549 ], [ 0, %.preheader4047 ] %.1031905547 = phi ptr [ %5932, %.lr.ph5549 ], [ %.93189.lcssa, %.preheader4047 ] %5932 = getelementptr inbounds nuw i8, ptr %.1031905547, i64 1 @@ -20316,7 +20316,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit1217: ; preds = %6120 br i1 %exitcond6479.not, label %._crit_edge5598, label %.lr.ph5597, !llvm.loop !166 ._crit_edge5598: ; preds = %.lr.ph5597 - %.not19.i1351 = icmp eq i64 %6191, 0 + %.not19.i1351 = icmp ult i128 %6189, 18446744073709551616 br i1 %.not19.i1351, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1353, label %6193 6193: ; preds = %._crit_edge5598 @@ -20396,7 +20396,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1353: ; preds = %6180, %._ br i1 %exitcond6489.not, label %._crit_edge5618, label %6213, !llvm.loop !166 ._crit_edge5618: ; preds = %6213 - %.not19.i1357 = icmp eq i64 %6221, 0 + %.not19.i1357 = icmp ult i128 %6219, 18446744073709551616 br i1 %.not19.i1357, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1237, label %6223 6223: ; preds = %._crit_edge5618 @@ -20470,7 +20470,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1353: ; preds = %6180, %._ br i1 %exitcond6459.not, label %._crit_edge5564, label %.lr.ph5563, !llvm.loop !166 ._crit_edge5564: ; preds = %.lr.ph5563 - %.not19.i = icmp eq i64 %6245, 0 + %.not19.i = icmp ult i128 %6243, 18446744073709551616 br i1 %.not19.i, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit, label %6247 6247: ; preds = %._crit_edge5564 @@ -20551,7 +20551,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit: ; preds = %6234, %._crit br i1 %exitcond6469.not, label %._crit_edge5585, label %6269, !llvm.loop !166 ._crit_edge5585: ; preds = %6269 - %.not19.i1345 = icmp eq i64 %6277, 0 + %.not19.i1345 = icmp ult i128 %6275, 18446744073709551616 br i1 %.not19.i1345, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1237, label %6279 6279: ; preds = %._crit_edge5585 @@ -21901,7 +21901,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %6964 = and i32 %.sroa.21.2.in.lcssa, 12291 %6965 = icmp eq i32 %6964, 0 %6966 = or i1 %6963, %6965 - br i1 %6966, label %.lr.ph10189, label %.critedge6.i + br i1 %6966, label %.lr.ph10205, label %.critedge6.i .lr.ph5751: ; preds = %.preheader4028, %.lr.ph5751 %.sroa.02382.25750.in = phi i32 [ %.sroa.0.0.copyload.i965, %.lr.ph5751 ], [ %storemerge.i629.lcssa, %.preheader4028 ] @@ -21919,21 +21919,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %6973 = and i1 %6970, %6972 br i1 %6973, label %.lr.ph5751, label %.preheader4027.loopexit, !llvm.loop !178 -.lr.ph5765: ; preds = %.lr.ph10189 +.lr.ph5765: ; preds = %.lr.ph10205 %6974 = and i32 %.sroa.0.0.copyload.i966, 4 %6975 = icmp eq i32 %6974, 0 %6976 = and i32 %.sroa.0.0.copyload.i966, 12291 %6977 = icmp eq i32 %6976, 0 %6978 = or i1 %6975, %6977 - br i1 %6978, label %.lr.ph10189, label %.critedge6.i.loopexit, !llvm.loop !179 - -.lr.ph10189: ; preds = %.lr.ph5765.preheader, %.lr.ph5765 - %.14.i634576110188 = phi ptr [ %6980, %.lr.ph5765 ], [ %.13.i632.lcssa, %.lr.ph5765.preheader ] - %.7.i635576210187 = phi ptr [ %6979, %.lr.ph5765 ], [ %.6.i633.lcssa, %.lr.ph5765.preheader ] - %.sroa.02382.0.insert.insert2406576410186 = phi i32 [ %.sroa.0.0.copyload.i966, %.lr.ph5765 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5765.preheader ] - store i32 %.sroa.02382.0.insert.insert2406576410186, ptr %.7.i635576210187, align 1 - %6979 = getelementptr inbounds nuw i8, ptr %.7.i635576210187, i64 4 - %6980 = getelementptr inbounds nuw i8, ptr %.14.i634576110188, i64 4 + br i1 %6978, label %.lr.ph10205, label %.critedge6.i.loopexit, !llvm.loop !179 + +.lr.ph10205: ; preds = %.lr.ph5765.preheader, %.lr.ph5765 + %.14.i634576110204 = phi ptr [ %6980, %.lr.ph5765 ], [ %.13.i632.lcssa, %.lr.ph5765.preheader ] + %.7.i635576210203 = phi ptr [ %6979, %.lr.ph5765 ], [ %.6.i633.lcssa, %.lr.ph5765.preheader ] + %.sroa.02382.0.insert.insert2406576410202 = phi i32 [ %.sroa.0.0.copyload.i966, %.lr.ph5765 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5765.preheader ] + store i32 %.sroa.02382.0.insert.insert2406576410202, ptr %.7.i635576210203, align 1 + %6979 = getelementptr inbounds nuw i8, ptr %.7.i635576210203, i64 4 + %6980 = getelementptr inbounds nuw i8, ptr %.14.i634576110204, i64 4 %.sroa.0.0.copyload.i966 = load i32, ptr %6980, align 1 %6981 = and i32 %.sroa.0.0.copyload.i966, -1061109512 %6982 = icmp ne i32 %6981, -2139062032 @@ -21942,7 +21942,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %or.cond292.i = or i1 %.not289.i, %6982 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph5765, !llvm.loop !179 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10189 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10205 %6984 = trunc i32 %.sroa.0.0.copyload.i966 to i16 br label %.critedge6.i, !llvm.loop !179 @@ -23590,7 +23590,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %7788 = and i32 %.sroa.212663.2.in.lcssa, 12291 %7789 = icmp eq i32 %7788, 0 %7790 = or i1 %7787, %7789 - br i1 %7790, label %.lr.ph10157, label %.critedge6.i714 + br i1 %7790, label %.lr.ph10173, label %.critedge6.i714 .lr.ph5284: ; preds = %.preheader4103, %.lr.ph5284 %.sroa.02615.25283.in = phi i32 [ %.sroa.0.0.copyload.i949, %.lr.ph5284 ], [ %storemerge.i704.lcssa, %.preheader4103 ] @@ -23608,21 +23608,21 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %7797 = and i1 %7794, %7796 br i1 %7797, label %.lr.ph5284, label %.preheader4102.loopexit, !llvm.loop !178 -.lr.ph5298: ; preds = %.lr.ph10157 +.lr.ph5298: ; preds = %.lr.ph10173 %7798 = and i32 %.sroa.0.0.copyload.i950, 4 %7799 = icmp eq i32 %7798, 0 %7800 = and i32 %.sroa.0.0.copyload.i950, 12291 %7801 = icmp eq i32 %7800, 0 %7802 = or i1 %7799, %7801 - br i1 %7802, label %.lr.ph10157, label %.critedge6.i714.loopexit, !llvm.loop !179 - -.lr.ph10157: ; preds = %.lr.ph5298.preheader, %.lr.ph5298 - %.14.i710529410156 = phi ptr [ %7804, %.lr.ph5298 ], [ %.13.i708.lcssa, %.lr.ph5298.preheader ] - %.7.i711529510155 = phi ptr [ %7803, %.lr.ph5298 ], [ %.6.i709.lcssa, %.lr.ph5298.preheader ] - %.sroa.02615.0.insert.insert2639529710154 = phi i32 [ %.sroa.0.0.copyload.i950, %.lr.ph5298 ], [ %.sroa.212663.2.in.lcssa, %.lr.ph5298.preheader ] - store i32 %.sroa.02615.0.insert.insert2639529710154, ptr %.7.i711529510155, align 1 - %7803 = getelementptr inbounds nuw i8, ptr %.7.i711529510155, i64 4 - %7804 = getelementptr inbounds nuw i8, ptr %.14.i710529410156, i64 4 + br i1 %7802, label %.lr.ph10173, label %.critedge6.i714.loopexit, !llvm.loop !179 + +.lr.ph10173: ; preds = %.lr.ph5298.preheader, %.lr.ph5298 + %.14.i710529410172 = phi ptr [ %7804, %.lr.ph5298 ], [ %.13.i708.lcssa, %.lr.ph5298.preheader ] + %.7.i711529510171 = phi ptr [ %7803, %.lr.ph5298 ], [ %.6.i709.lcssa, %.lr.ph5298.preheader ] + %.sroa.02615.0.insert.insert2639529710170 = phi i32 [ %.sroa.0.0.copyload.i950, %.lr.ph5298 ], [ %.sroa.212663.2.in.lcssa, %.lr.ph5298.preheader ] + store i32 %.sroa.02615.0.insert.insert2639529710170, ptr %.7.i711529510171, align 1 + %7803 = getelementptr inbounds nuw i8, ptr %.7.i711529510171, i64 4 + %7804 = getelementptr inbounds nuw i8, ptr %.14.i710529410172, i64 4 %.sroa.0.0.copyload.i950 = load i32, ptr %7804, align 1 %7805 = and i32 %.sroa.0.0.copyload.i950, -1061109512 %7806 = icmp ne i32 %7805, -2139062032 @@ -23631,7 +23631,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %or.cond292.i713 = or i1 %.not289.i712, %7806 br i1 %or.cond292.i713, label %..critedge6.i714.loopexit_crit_edge, label %.lr.ph5298, !llvm.loop !179 -..critedge6.i714.loopexit_crit_edge: ; preds = %.lr.ph10157 +..critedge6.i714.loopexit_crit_edge: ; preds = %.lr.ph10173 %7808 = trunc i32 %.sroa.0.0.copyload.i950 to i16 br label %.critedge6.i714, !llvm.loop !179 @@ -24769,7 +24769,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %8393 = and i32 %.sroa.212546.2.in.lcssa, 12291 %8394 = icmp eq i32 %8393, 0 %8395 = or i1 %8392, %8394 - br i1 %8395, label %.lr.ph10173, label %.critedge6.i672 + br i1 %8395, label %.lr.ph10189, label %.critedge6.i672 .lr.ph5519: ; preds = %.preheader4069, %.lr.ph5519 %.sroa.02498.25518.in = phi i32 [ %.sroa.0.0.copyload.i957, %.lr.ph5519 ], [ %storemerge.i662.lcssa, %.preheader4069 ] @@ -24787,21 +24787,21 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %8402 = and i1 %8399, %8401 br i1 %8402, label %.lr.ph5519, label %.preheader4068.loopexit, !llvm.loop !178 -.lr.ph5533: ; preds = %.lr.ph10173 +.lr.ph5533: ; preds = %.lr.ph10189 %8403 = and i32 %.sroa.0.0.copyload.i958, 4 %8404 = icmp eq i32 %8403, 0 %8405 = and i32 %.sroa.0.0.copyload.i958, 12291 %8406 = icmp eq i32 %8405, 0 %8407 = or i1 %8404, %8406 - br i1 %8407, label %.lr.ph10173, label %.critedge6.i672.loopexit, !llvm.loop !179 - -.lr.ph10173: ; preds = %.lr.ph5533.preheader, %.lr.ph5533 - %.14.i668552910172 = phi ptr [ %8409, %.lr.ph5533 ], [ %.13.i666.lcssa, %.lr.ph5533.preheader ] - %.7.i669553010171 = phi ptr [ %8408, %.lr.ph5533 ], [ %.6.i667.lcssa, %.lr.ph5533.preheader ] - %.sroa.02498.0.insert.insert2522553210170 = phi i32 [ %.sroa.0.0.copyload.i958, %.lr.ph5533 ], [ %.sroa.212546.2.in.lcssa, %.lr.ph5533.preheader ] - store i32 %.sroa.02498.0.insert.insert2522553210170, ptr %.7.i669553010171, align 1 - %8408 = getelementptr inbounds nuw i8, ptr %.7.i669553010171, i64 4 - %8409 = getelementptr inbounds nuw i8, ptr %.14.i668552910172, i64 4 + br i1 %8407, label %.lr.ph10189, label %.critedge6.i672.loopexit, !llvm.loop !179 + +.lr.ph10189: ; preds = %.lr.ph5533.preheader, %.lr.ph5533 + %.14.i668552910188 = phi ptr [ %8409, %.lr.ph5533 ], [ %.13.i666.lcssa, %.lr.ph5533.preheader ] + %.7.i669553010187 = phi ptr [ %8408, %.lr.ph5533 ], [ %.6.i667.lcssa, %.lr.ph5533.preheader ] + %.sroa.02498.0.insert.insert2522553210186 = phi i32 [ %.sroa.0.0.copyload.i958, %.lr.ph5533 ], [ %.sroa.212546.2.in.lcssa, %.lr.ph5533.preheader ] + store i32 %.sroa.02498.0.insert.insert2522553210186, ptr %.7.i669553010187, align 1 + %8408 = getelementptr inbounds nuw i8, ptr %.7.i669553010187, i64 4 + %8409 = getelementptr inbounds nuw i8, ptr %.14.i668552910188, i64 4 %.sroa.0.0.copyload.i958 = load i32, ptr %8409, align 1 %8410 = and i32 %.sroa.0.0.copyload.i958, -1061109512 %8411 = icmp ne i32 %8410, -2139062032 @@ -24810,7 +24810,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %or.cond292.i671 = or i1 %.not289.i670, %8411 br i1 %or.cond292.i671, label %..critedge6.i672.loopexit_crit_edge, label %.lr.ph5533, !llvm.loop !179 -..critedge6.i672.loopexit_crit_edge: ; preds = %.lr.ph10173 +..critedge6.i672.loopexit_crit_edge: ; preds = %.lr.ph10189 %8413 = trunc i32 %.sroa.0.0.copyload.i958 to i16 br label %.critedge6.i672, !llvm.loop !179 @@ -25093,8 +25093,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit356.thread .preheader4091thread-pre-split: ; preds = %.preheader4091thread-pre-split.lr.ph, %.preheader4091thread-pre-split - %.4322210164 = phi ptr [ %8515, %.preheader4091thread-pre-split.lr.ph ], [ %8520, %.preheader4091thread-pre-split ] - %8520 = getelementptr inbounds nuw i8, ptr %.4322210164, i64 1 + %.4322210180 = phi ptr [ %8515, %.preheader4091thread-pre-split.lr.ph ], [ %8520, %.preheader4091thread-pre-split ] + %8520 = getelementptr inbounds nuw i8, ptr %.4322210180, i64 1 %.pr7385 = load i8, ptr %8520, align 1, !tbaa !75 %8521 = icmp eq i8 %.pr7385, 48 br i1 %8521, label %.preheader4091thread-pre-split, label %.preheader4091._crit_edge, !prof !156, !llvm.loop !155 @@ -25103,14 +25103,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %8522, !llvm.loop !155 8522: ; preds = %.preheader4091._crit_edge, %.preheader4091.preheader - %.lcssa9015 = phi i8 [ %.pr7385, %.preheader4091._crit_edge ], [ %8516, %.preheader4091.preheader ] + %.lcssa9023 = phi i8 [ %.pr7385, %.preheader4091._crit_edge ], [ %8516, %.preheader4091.preheader ] %.43222.lcssa = phi ptr [ %8520, %.preheader4091._crit_edge ], [ %8515, %.preheader4091.preheader ] - %8523 = add i8 %.lcssa9015, -58 + %8523 = add i8 %.lcssa9023, -58 %.not3577 = icmp ult i8 %8523, -10 br i1 %.not3577, label %.thread7386, label %8524, !prof !3 8524: ; preds = %8522 - %8525 = zext nneg i8 %.lcssa9015 to i64 + %8525 = zext nneg i8 %.lcssa9023 to i64 %8526 = add nsw i64 %8525, -48 %8527 = getelementptr inbounds i8, ptr %.43222.lcssa, i64 -1 br label %8915 @@ -25127,7 +25127,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = .thread7386: ; preds = %8522, %8528 %.132197389 = phi ptr [ %8503, %8528 ], [ %.43222.lcssa, %8522 ] - %8531 = phi i8 [ %8504, %8528 ], [ %.lcssa9015, %8522 ] + %8531 = phi i8 [ %8504, %8528 ], [ %.lcssa9023, %8522 ] %8532 = and i8 %8531, -33 %.not3579.not = icmp eq i8 %8532, 69 br i1 %.not3579.not, label %8533, label %.loopexit4079, !prof !3 @@ -26310,8 +26310,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit356.thread .preheader4088thread-pre-split: ; preds = %.preheader4088thread-pre-split.lr.ph, %.preheader4088thread-pre-split - %.9322710167 = phi ptr [ %9188, %.preheader4088thread-pre-split.lr.ph ], [ %9193, %.preheader4088thread-pre-split ] - %9193 = getelementptr inbounds nuw i8, ptr %.9322710167, i64 1 + %.9322710183 = phi ptr [ %9188, %.preheader4088thread-pre-split.lr.ph ], [ %9193, %.preheader4088thread-pre-split ] + %9193 = getelementptr inbounds nuw i8, ptr %.9322710183, i64 1 %.pr7390 = load i8, ptr %9193, align 1, !tbaa !75 %9194 = icmp eq i8 %.pr7390, 48 br i1 %9194, label %.preheader4088thread-pre-split, label %.preheader4088..preheader4087_crit_edge, !llvm.loop !161 @@ -26320,14 +26320,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %.preheader4087, !llvm.loop !161 .preheader4087: ; preds = %.preheader4088..preheader4087_crit_edge, %.preheader4088.preheader - %.lcssa9011 = phi i8 [ %.pr7390, %.preheader4088..preheader4087_crit_edge ], [ %9189, %.preheader4088.preheader ] + %.lcssa9019 = phi i8 [ %.pr7390, %.preheader4088..preheader4087_crit_edge ], [ %9189, %.preheader4088.preheader ] %.93227.lcssa = phi ptr [ %9193, %.preheader4088..preheader4087_crit_edge ], [ %9188, %.preheader4088.preheader ] - %9195 = add i8 %.lcssa9011, -58 + %9195 = add i8 %.lcssa9019, -58 %.not36155317 = icmp ult i8 %9195, -10 br i1 %.not36155317, label %._crit_edge5321, label %.lr.ph5320 .lr.ph5320: ; preds = %.preheader4087, %.lr.ph5320 - %9196 = phi i8 [ %9202, %.lr.ph5320 ], [ %.lcssa9011, %.preheader4087 ] + %9196 = phi i8 [ %9202, %.lr.ph5320 ], [ %.lcssa9019, %.preheader4087 ] %.0599.i3005319 = phi i64 [ %9201, %.lr.ph5320 ], [ 0, %.preheader4087 ] %.1032285318 = phi ptr [ %9197, %.lr.ph5320 ], [ %.93227.lcssa, %.preheader4087 ] %9197 = getelementptr inbounds nuw i8, ptr %.1032285318, i64 1 @@ -26848,7 +26848,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit1215: ; preds = %9385 br i1 %exitcond6424.not, label %._crit_edge5369, label %.lr.ph5368, !llvm.loop !166 ._crit_edge5369: ; preds = %.lr.ph5368 - %.not19.i1375 = icmp eq i64 %9456, 0 + %.not19.i1375 = icmp ult i128 %9454, 18446744073709551616 br i1 %.not19.i1375, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1377, label %9458 9458: ; preds = %._crit_edge5369 @@ -26928,7 +26928,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1377: ; preds = %9445, %._ br i1 %exitcond6434.not, label %._crit_edge5389, label %9478, !llvm.loop !166 ._crit_edge5389: ; preds = %9478 - %.not19.i1381 = icmp eq i64 %9486, 0 + %.not19.i1381 = icmp ult i128 %9484, 18446744073709551616 br i1 %.not19.i1381, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1231, label %9488 9488: ; preds = %._crit_edge5389 @@ -27002,7 +27002,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1377: ; preds = %9445, %._ br i1 %exitcond6404.not, label %._crit_edge5335, label %.lr.ph5334, !llvm.loop !166 ._crit_edge5335: ; preds = %.lr.ph5334 - %.not19.i1363 = icmp eq i64 %9510, 0 + %.not19.i1363 = icmp ult i128 %9508, 18446744073709551616 br i1 %.not19.i1363, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1365, label %9512 9512: ; preds = %._crit_edge5335 @@ -27083,7 +27083,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit1365: ; preds = %9499, %._ br i1 %exitcond6414.not, label %._crit_edge5356, label %9534, !llvm.loop !166 ._crit_edge5356: ; preds = %9534 - %.not19.i1369 = icmp eq i64 %9542, 0 + %.not19.i1369 = icmp ult i128 %9540, 18446744073709551616 br i1 %.not19.i1369, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit1231, label %9544 9544: ; preds = %._crit_edge5356 @@ -28573,8 +28573,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %._crit_edge1111.sink.split .preheader709thread-pre-split: ; preds = %.preheader709thread-pre-split.lr.ph, %.preheader709thread-pre-split - %.41616 = phi ptr [ %109, %.preheader709thread-pre-split.lr.ph ], [ %114, %.preheader709thread-pre-split ] - %114 = getelementptr inbounds nuw i8, ptr %.41616, i64 1 + %.41620 = phi ptr [ %109, %.preheader709thread-pre-split.lr.ph ], [ %114, %.preheader709thread-pre-split ] + %114 = getelementptr inbounds nuw i8, ptr %.41620, i64 1 %.pr = load i8, ptr %114, align 1, !tbaa !75 %115 = icmp eq i8 %.pr, 48 br i1 %115, label %.preheader709thread-pre-split, label %.preheader709._crit_edge, !prof !156, !llvm.loop !155 @@ -28583,14 +28583,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %116, !llvm.loop !155 116: ; preds = %.preheader709._crit_edge, %.preheader709.preheader - %.lcssa1615 = phi i8 [ %.pr, %.preheader709._crit_edge ], [ %110, %.preheader709.preheader ] + %.lcssa1619 = phi i8 [ %.pr, %.preheader709._crit_edge ], [ %110, %.preheader709.preheader ] %.4.lcssa = phi ptr [ %114, %.preheader709._crit_edge ], [ %109, %.preheader709.preheader ] - %117 = add i8 %.lcssa1615, -58 + %117 = add i8 %.lcssa1619, -58 %.not631 = icmp ult i8 %117, -10 br i1 %.not631, label %.thread1240, label %118, !prof !3 118: ; preds = %116 - %119 = zext nneg i8 %.lcssa1615 to i64 + %119 = zext nneg i8 %.lcssa1619 to i64 %120 = add nsw i64 %119, -48 %121 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %509 @@ -28607,7 +28607,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 .thread1240: ; preds = %116, %122 %.15511243 = phi ptr [ %97, %122 ], [ %.4.lcssa, %116 ] - %125 = phi i8 [ %98, %122 ], [ %.lcssa1615, %116 ] + %125 = phi i8 [ %98, %122 ], [ %.lcssa1619, %116 ] %126 = and i8 %125, -33 %.not633.not = icmp eq i8 %126, 69 br i1 %.not633.not, label %127, label %.loopexit697, !prof !3 @@ -29790,8 +29790,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %._crit_edge1111.sink.split .preheader706thread-pre-split: ; preds = %.preheader706thread-pre-split.lr.ph, %.preheader706thread-pre-split - %.91618 = phi ptr [ %782, %.preheader706thread-pre-split.lr.ph ], [ %787, %.preheader706thread-pre-split ] - %787 = getelementptr inbounds nuw i8, ptr %.91618, i64 1 + %.91622 = phi ptr [ %782, %.preheader706thread-pre-split.lr.ph ], [ %787, %.preheader706thread-pre-split ] + %787 = getelementptr inbounds nuw i8, ptr %.91622, i64 1 %.pr1244 = load i8, ptr %787, align 1, !tbaa !75 %788 = icmp eq i8 %.pr1244, 48 br i1 %788, label %.preheader706thread-pre-split, label %.preheader706..preheader705_crit_edge, !llvm.loop !161 @@ -29800,14 +29800,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %.preheader705, !llvm.loop !161 .preheader705: ; preds = %.preheader706..preheader705_crit_edge, %.preheader706.preheader - %.lcssa1611 = phi i8 [ %.pr1244, %.preheader706..preheader705_crit_edge ], [ %783, %.preheader706.preheader ] + %.lcssa1615 = phi i8 [ %.pr1244, %.preheader706..preheader705_crit_edge ], [ %783, %.preheader706.preheader ] %.9.lcssa = phi ptr [ %787, %.preheader706..preheader705_crit_edge ], [ %782, %.preheader706.preheader ] - %789 = add i8 %.lcssa1611, -58 + %789 = add i8 %.lcssa1615, -58 %.not669754 = icmp ult i8 %789, -10 br i1 %.not669754, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader705, %.lr.ph - %790 = phi i8 [ %796, %.lr.ph ], [ %.lcssa1611, %.preheader705 ] + %790 = phi i8 [ %796, %.lr.ph ], [ %.lcssa1615, %.preheader705 ] %.0599.i756 = phi i64 [ %795, %.lr.ph ], [ 0, %.preheader705 ] %.10755 = phi ptr [ %791, %.lr.ph ], [ %.9.lcssa, %.preheader705 ] %791 = getelementptr inbounds nuw i8, ptr %.10755, i64 1 @@ -30322,7 +30322,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit: ; preds = %981 br i1 %exitcond1072.not, label %._crit_edge802, label %.lr.ph801, !llvm.loop !166 ._crit_edge802: ; preds = %.lr.ph801 - %.not19.i254 = icmp eq i64 %1053, 0 + %.not19.i254 = icmp ult i128 %1051, 18446744073709551616 br i1 %.not19.i254, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit256, label %1055 1055: ; preds = %._crit_edge802 @@ -30402,7 +30402,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit256: ; preds = %1042, %._c br i1 %exitcond1082.not, label %._crit_edge822, label %1075, !llvm.loop !166 ._crit_edge822: ; preds = %1075 - %.not19.i260 = icmp eq i64 %1083, 0 + %.not19.i260 = icmp ult i128 %1081, 18446744073709551616 br i1 %.not19.i260, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %1085 1085: ; preds = %._crit_edge822 @@ -30476,7 +30476,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit256: ; preds = %1042, %._c br i1 %exitcond1052.not, label %._crit_edge769, label %.lr.ph768, !llvm.loop !166 ._crit_edge769: ; preds = %.lr.ph768 - %.not19.i = icmp eq i64 %1107, 0 + %.not19.i = icmp ult i128 %1105, 18446744073709551616 br i1 %.not19.i, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit, label %1109 1109: ; preds = %._crit_edge769 @@ -30557,7 +30557,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit: ; preds = %1096, %._crit br i1 %exitcond1062.not, label %._crit_edge789, label %1131, !llvm.loop !166 ._crit_edge789: ; preds = %1131 - %.not19.i248 = icmp eq i64 %1139, 0 + %.not19.i248 = icmp ult i128 %1137, 18446744073709551616 br i1 %.not19.i248, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %1141 1141: ; preds = %._crit_edge789 @@ -31886,7 +31886,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %1822 = and i32 %.sroa.21.2.in.lcssa, 12291 %1823 = icmp eq i32 %1822, 0 %1824 = or i1 %1821, %1823 - br i1 %1824, label %.lr.ph1624, label %.critedge6.i + br i1 %1824, label %.lr.ph1628, label %.critedge6.i .lr.ph951: ; preds = %.preheader688, %.lr.ph951 %.sroa.0.2950.in = phi i32 [ %.sroa.0.0.copyload.i174, %.lr.ph951 ], [ %storemerge.i156.lcssa, %.preheader688 ] @@ -31904,21 +31904,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %1831 = and i1 %1828, %1830 br i1 %1831, label %.lr.ph951, label %.preheader687.loopexit, !llvm.loop !178 -.lr.ph965: ; preds = %.lr.ph1624 +.lr.ph965: ; preds = %.lr.ph1628 %1832 = and i32 %.sroa.0.0.copyload.i175, 4 %1833 = icmp eq i32 %1832, 0 %1834 = and i32 %.sroa.0.0.copyload.i175, 12291 %1835 = icmp eq i32 %1834, 0 %1836 = or i1 %1833, %1835 - br i1 %1836, label %.lr.ph1624, label %.critedge6.i.loopexit, !llvm.loop !179 - -.lr.ph1624: ; preds = %.lr.ph965.preheader, %.lr.ph965 - %.14.i1619611623 = phi ptr [ %1838, %.lr.ph965 ], [ %.13.i159.lcssa, %.lr.ph965.preheader ] - %.7.i1629621622 = phi ptr [ %1837, %.lr.ph965 ], [ %.6.i160.lcssa, %.lr.ph965.preheader ] - %.sroa.0.0.insert.insert4449641621 = phi i32 [ %.sroa.0.0.copyload.i175, %.lr.ph965 ], [ %.sroa.21.2.in.lcssa, %.lr.ph965.preheader ] - store i32 %.sroa.0.0.insert.insert4449641621, ptr %.7.i1629621622, align 1 - %1837 = getelementptr inbounds nuw i8, ptr %.7.i1629621622, i64 4 - %1838 = getelementptr inbounds nuw i8, ptr %.14.i1619611623, i64 4 + br i1 %1836, label %.lr.ph1628, label %.critedge6.i.loopexit, !llvm.loop !179 + +.lr.ph1628: ; preds = %.lr.ph965.preheader, %.lr.ph965 + %.14.i1619611627 = phi ptr [ %1838, %.lr.ph965 ], [ %.13.i159.lcssa, %.lr.ph965.preheader ] + %.7.i1629621626 = phi ptr [ %1837, %.lr.ph965 ], [ %.6.i160.lcssa, %.lr.ph965.preheader ] + %.sroa.0.0.insert.insert4449641625 = phi i32 [ %.sroa.0.0.copyload.i175, %.lr.ph965 ], [ %.sroa.21.2.in.lcssa, %.lr.ph965.preheader ] + store i32 %.sroa.0.0.insert.insert4449641625, ptr %.7.i1629621626, align 1 + %1837 = getelementptr inbounds nuw i8, ptr %.7.i1629621626, i64 4 + %1838 = getelementptr inbounds nuw i8, ptr %.14.i1619611627, i64 4 %.sroa.0.0.copyload.i175 = load i32, ptr %1838, align 1 %1839 = and i32 %.sroa.0.0.copyload.i175, -1061109512 %1840 = icmp ne i32 %1839, -2139062032 @@ -31927,7 +31927,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %or.cond292.i = or i1 %.not289.i, %1840 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph965, !llvm.loop !179 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1624 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1628 %1842 = trunc i32 %.sroa.0.0.copyload.i175 to i16 br label %.critedge6.i, !llvm.loop !179 @@ -32917,8 +32917,8 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader371thread-pre-split, !llvm.loop !155 .preheader371thread-pre-split: ; preds = %.preheader371thread-pre-split.lr.ph, %.preheader371thread-pre-split - %.4729 = phi ptr [ %94, %.preheader371thread-pre-split.lr.ph ], [ %98, %.preheader371thread-pre-split ] - %98 = getelementptr inbounds nuw i8, ptr %.4729, i64 1 + %.4733 = phi ptr [ %94, %.preheader371thread-pre-split.lr.ph ], [ %98, %.preheader371thread-pre-split ] + %98 = getelementptr inbounds nuw i8, ptr %.4733, i64 1 %.pr = load i8, ptr %98, align 1, !tbaa !75 %99 = icmp eq i8 %.pr, 48 br i1 %99, label %.preheader371thread-pre-split, label %.preheader371._crit_edge, !prof !156, !llvm.loop !155 @@ -32927,14 +32927,14 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %100, !llvm.loop !155 100: ; preds = %.preheader371._crit_edge, %.preheader371.preheader - %.lcssa728 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %95, %.preheader371.preheader ] + %.lcssa732 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %95, %.preheader371.preheader ] %.4.lcssa = phi ptr [ %98, %.preheader371._crit_edge ], [ %94, %.preheader371.preheader ] - %101 = add i8 %.lcssa728, -58 + %101 = add i8 %.lcssa732, -58 %.not308 = icmp ult i8 %101, -10 br i1 %.not308, label %.thread652, label %102, !prof !3 102: ; preds = %100 - %103 = zext nneg i8 %.lcssa728 to i64 + %103 = zext nneg i8 %.lcssa732 to i64 %104 = add nsw i64 %103, -48 %105 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %488 @@ -32946,7 +32946,7 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj .thread652: ; preds = %100, %106 %.1655 = phi ptr [ %82, %106 ], [ %.4.lcssa, %100 ] - %108 = phi i8 [ %83, %106 ], [ %.lcssa728, %100 ] + %108 = phi i8 [ %83, %106 ], [ %.lcssa732, %100 ] %109 = and i8 %108, -33 %.not310.not = icmp eq i8 %109, 69 br i1 %.not310.not, label %110, label %.loopexit, !prof !3 @@ -34073,8 +34073,8 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader368thread-pre-split, !llvm.loop !161 .preheader368thread-pre-split: ; preds = %.preheader368thread-pre-split.lr.ph, %.preheader368thread-pre-split - %.9731 = phi ptr [ %751, %.preheader368thread-pre-split.lr.ph ], [ %755, %.preheader368thread-pre-split ] - %755 = getelementptr inbounds nuw i8, ptr %.9731, i64 1 + %.9735 = phi ptr [ %751, %.preheader368thread-pre-split.lr.ph ], [ %755, %.preheader368thread-pre-split ] + %755 = getelementptr inbounds nuw i8, ptr %.9735, i64 1 %.pr656 = load i8, ptr %755, align 1, !tbaa !75 %756 = icmp eq i8 %.pr656, 48 br i1 %756, label %.preheader368thread-pre-split, label %.preheader368..preheader367_crit_edge, !llvm.loop !161 @@ -34083,14 +34083,14 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader367, !llvm.loop !161 .preheader367: ; preds = %.preheader368..preheader367_crit_edge, %.preheader368.preheader - %.lcssa724 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %752, %.preheader368.preheader ] + %.lcssa728 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %752, %.preheader368.preheader ] %.9.lcssa = phi ptr [ %755, %.preheader368..preheader367_crit_edge ], [ %751, %.preheader368.preheader ] - %757 = add i8 %.lcssa724, -58 + %757 = add i8 %.lcssa728, -58 %.not346379 = icmp ult i8 %757, -10 br i1 %.not346379, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader367, %.lr.ph - %758 = phi i8 [ %764, %.lr.ph ], [ %.lcssa724, %.preheader367 ] + %758 = phi i8 [ %764, %.lr.ph ], [ %.lcssa728, %.preheader367 ] %.0599.i381 = phi i64 [ %763, %.lr.ph ], [ 0, %.preheader367 ] %.10380 = phi ptr [ %759, %.lr.ph ], [ %.9.lcssa, %.preheader367 ] %759 = getelementptr inbounds nuw i8, ptr %.10380, i64 1 @@ -34560,7 +34560,7 @@ _ZN13duckdb_yyjsonL18diy_fp_to_ieee_rawENS_6diy_fpE.exit: ; preds = %939 br i1 %exitcond530.not, label %._crit_edge427, label %.lr.ph426, !llvm.loop !166 ._crit_edge427: ; preds = %.lr.ph426 - %.not19.i64 = icmp eq i64 %1006, 0 + %.not19.i64 = icmp ult i128 %1004, 18446744073709551616 br i1 %.not19.i64, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit66, label %1008 1008: ; preds = %._crit_edge427 @@ -34640,7 +34640,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit66: ; preds = %995, %._cri br i1 %exitcond540.not, label %._crit_edge447, label %1028, !llvm.loop !166 ._crit_edge447: ; preds = %1028 - %.not19.i70 = icmp eq i64 %1036, 0 + %.not19.i70 = icmp ult i128 %1034, 18446744073709551616 br i1 %.not19.i70, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %1038 1038: ; preds = %._crit_edge447 @@ -34714,7 +34714,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit66: ; preds = %995, %._cri br i1 %exitcond510.not, label %._crit_edge394, label %.lr.ph393, !llvm.loop !166 ._crit_edge394: ; preds = %.lr.ph393 - %.not19.i = icmp eq i64 %1060, 0 + %.not19.i = icmp ult i128 %1058, 18446744073709551616 br i1 %.not19.i, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit, label %1062 1062: ; preds = %._crit_edge394 @@ -34795,7 +34795,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit: ; preds = %1049, %._crit br i1 %exitcond520.not, label %._crit_edge414, label %1084, !llvm.loop !166 ._crit_edge414: ; preds = %1084 - %.not19.i58 = icmp eq i64 %1092, 0 + %.not19.i58 = icmp ult i128 %1090, 18446744073709551616 br i1 %.not19.i58, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit, label %1094 1094: ; preds = %._crit_edge414 @@ -61134,7 +61134,7 @@ define internal fastcc void @_ZN13duckdb_yyjsonL14bigint_set_bufEPNS_6bigintEmPi br i1 %exitcond193.not, label %._crit_edge129, label %.lr.ph128, !llvm.loop !166 ._crit_edge129: ; preds = %.lr.ph128 - %.not19.i = icmp eq i64 %65, 0 + %.not19.i = icmp ult i128 %63, 18446744073709551616 br i1 %.not19.i, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit61, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit61.sink.split 67: ; preds = %50 @@ -61202,7 +61202,7 @@ define internal fastcc void @_ZN13duckdb_yyjsonL14bigint_set_bufEPNS_6bigintEmPi br i1 %exitcond173.not, label %._crit_edge100, label %.lr.ph99, !llvm.loop !166 ._crit_edge100: ; preds = %.lr.ph99 - %.not19.i75 = icmp eq i64 %85, 0 + %.not19.i75 = icmp ult i128 %83, 18446744073709551616 br i1 %.not19.i75, label %_ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit77, label %87 87: ; preds = %._crit_edge100 @@ -61288,7 +61288,7 @@ _ZN13duckdb_yyjsonL14bigint_mul_u64EPNS_6bigintEm.exit77: ; preds = %74, %._crit br i1 %exitcond183.not, label %._crit_edge116, label %109, !llvm.loop !166 ._crit_edge116: ; preds = %109 - %.not19.i81 = icmp eq i64 %117, 0 + %.not19.i81 = icmp ult i128 %115, 18446744073709551616 br i1 %.not19.i81, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit61, label %_ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit61.sink.split _ZN13duckdb_yyjsonL16bigint_mul_pow10EPNS_6bigintEi.exit61.sink.split: ; preds = %._crit_edge116, %._crit_edge129 diff --git a/bench/fmt/optimized/format-impl-test.ll b/bench/fmt/optimized/format-impl-test.ll index a714ea4082a..3f44f425431 100644 --- a/bench/fmt/optimized/format-impl-test.ll +++ b/bench/fmt/optimized/format-impl-test.ll @@ -34113,18 +34113,18 @@ _ZN3fmt3v116detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei.exit: ; pr %48 = lshr i128 %42, 90 %49 = trunc i128 %48 to i32 %.not.i.i = icmp eq i32 %49, 0 - br i1 %.not.i.i, label %50, label %.preheader192 + br i1 %.not.i.i, label %50, label %.preheader191 50: ; preds = %47 invoke void @_Z23throw_assertion_failurePKc(ptr noundef nonnull @.str.6) - to label %.preheader192 unwind label %60 + to label %.preheader191 unwind label %60 -.preheader192: ; preds = %50, %47 +.preheader191: ; preds = %50, %47 br label %51 -51: ; preds = %.preheader192, %51 - %.0140 = phi i32 [ %53, %51 ], [ %49, %.preheader192 ] - %.0.i.i = phi i32 [ %55, %51 ], [ 8, %.preheader192 ] +51: ; preds = %.preheader191, %51 + %.0140 = phi i32 [ %53, %51 ], [ %49, %.preheader191 ] + %.0.i.i = phi i32 [ %55, %51 ], [ 8, %.preheader191 ] %52 = mul i32 %.0140, -1030792151 %53 = tail call i32 @llvm.fshl.i32(i32 %52, i32 %52, i32 30) %54 = icmp ugt i32 %53, 42949672 @@ -34295,7 +34295,7 @@ _ZN3fmt3v116detail9dragonbox16floor_log10_pow2Ei.exit: ; preds = %86, %88 149: ; preds = %138, %130, %132 %150 = add nsw i32 %91, 1 - %.not.i54 = icmp eq i64 %126, 0 + %.not.i54 = icmp ult i64 %122, 1000 br i1 %.not.i54, label %151, label %156 151: ; preds = %149 @@ -34327,10 +34327,13 @@ _ZN3fmt3v116detail9dragonbox16floor_log10_pow2Ei.exit: ; preds = %86, %88 br i1 %or.cond176, label %162, label %.preheader183 162: ; preds = %156 + %.not.i.i60 = icmp ult i64 %122, 100000000000 + br i1 %.not.i.i60, label %165, label %.preheader.preheader + +.preheader.preheader: ; preds = %162 %163 = lshr i128 %157, 90 %164 = trunc nuw nsw i128 %163 to i32 - %.not.i.i60 = icmp eq i32 %164, 0 - br i1 %.not.i.i60, label %165, label %.preheader + br label %.preheader 165: ; preds = %162 %166 = call ptr @__cxa_allocate_exception(i64 16) #32 @@ -34351,9 +34354,9 @@ _ZN3fmt3v116detail9dragonbox16floor_log10_pow2Ei.exit: ; preds = %86, %88 call void @__cxa_free_exception(ptr nonnull %166) #32 br label %.body93 -.preheader: ; preds = %162, %.preheader - %.0139 = phi i32 [ %171, %.preheader ], [ %164, %162 ] - %.0.i.i61 = phi i32 [ %173, %.preheader ], [ 8, %162 ] +.preheader: ; preds = %.preheader.preheader, %.preheader + %.0139 = phi i32 [ %171, %.preheader ], [ %164, %.preheader.preheader ] + %.0.i.i61 = phi i32 [ %173, %.preheader ], [ 8, %.preheader.preheader ] %170 = mul i32 %.0139, -1030792151 %171 = call i32 @llvm.fshl.i32(i32 %170, i32 %170, i32 30) %172 = icmp ugt i32 %171, 42949672 diff --git a/bench/image-rs/optimized/30755d6iao7ojcvl.ll b/bench/image-rs/optimized/30755d6iao7ojcvl.ll index 4c4dca69f0e..ec254026e9a 100644 --- a/bench/image-rs/optimized/30755d6iao7ojcvl.ll +++ b/bench/image-rs/optimized/30755d6iao7ojcvl.ll @@ -1098,214 +1098,212 @@ define hidden void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension17hb6c705 %.sroa.4.sroa.0.0.extract.trunc = trunc i48 %.2.extract.shift to i8 %.4.extract.shift = lshr i48 %2, 32 %.4.extract.trunc = trunc nuw i48 %.4.extract.shift to i16 - %9 = trunc i48 %2 to i1 - %10 = and i48 %2, 4294901761 - %or.cond = icmp eq i48 %10, 1 - %11 = icmp eq i16 %.4.extract.trunc, 0 - %or.cond7 = select i1 %or.cond, i1 %11, i1 false - br i1 %or.cond7, label %21, label %12 + %9 = and i48 %2, -65535 + %or.cond7 = icmp eq i48 %9, 1 + br i1 %or.cond7, label %19, label %10 -12: ; preds = %3 +10: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !176) - %13 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %14 = load ptr, ptr %13, align 8, !alias.scope !176, !noundef !13 - %15 = icmp eq ptr %14, null - br i1 %15, label %35, label %16 + %11 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %12 = load ptr, ptr %11, align 8, !alias.scope !176, !noundef !13 + %13 = icmp eq ptr %12, null + br i1 %13, label %33, label %14 -16: ; preds = %12 +14: ; preds = %10 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !179 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hd96ac60c1dd9bdefE.llvm.9832446184049035033(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull inttoptr (i64 154618822659 to ptr)), !noalias !179 - %17 = load i8, ptr %4, align 8, !range !159, !alias.scope !186, !noalias !179, !noundef !13 - %18 = icmp eq i8 %17, 3 - br i1 %18, label %19, label %23 + %15 = load i8, ptr %4, align 8, !range !159, !alias.scope !186, !noalias !179, !noundef !13 + %16 = icmp eq i8 %15, 3 + br i1 %16, label %17, label %21 -19: ; preds = %16 - %20 = getelementptr inbounds nuw i8, ptr %4, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h9f2566cd0eaf386dE.llvm.9832446184049035033"(ptr noalias noundef nonnull align 8 dereferenceable(8) %20), !noalias !179 - br label %23 +17: ; preds = %14 + %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h9f2566cd0eaf386dE.llvm.9832446184049035033"(ptr noalias noundef nonnull align 8 dereferenceable(8) %18), !noalias !179 + br label %21 -21: ; preds = %3 +19: ; preds = %3 store i8 2, ptr %0, align 8 - br label %22 + br label %20 -22: ; preds = %87, %67, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", %37, %35, %21 +20: ; preds = %85, %65, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", %35, %33, %19 ret void -23: ; preds = %16, %19 +21: ; preds = %14, %17 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !179 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !189 store i8 33, ptr %6, align 1, !noalias !189 call void @llvm.experimental.noalias.scope.decl(metadata !192) - %24 = load i64, ptr %14, align 8, !alias.scope !192, !noalias !195, !noundef !13 - %25 = getelementptr inbounds nuw i8, ptr %14, i64 16 - %26 = load i64, ptr %25, align 8, !alias.scope !192, !noalias !195, !noundef !13 - %27 = sub i64 %24, %26 - %28 = icmp ugt i64 %27, 1 - br i1 %28, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread": ; preds = %23 - %29 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %30 = load ptr, ptr %29, align 8, !alias.scope !192, !noalias !195, !nonnull !13, !noundef !13 - %31 = getelementptr inbounds i8, ptr %30, i64 %26 - store i8 33, ptr %31, align 1, !noalias !200 - %32 = add i64 %26, 1 - store i64 %32, ptr %25, align 8, !alias.scope !192, !noalias !195 + %22 = load i64, ptr %12, align 8, !alias.scope !192, !noalias !195, !noundef !13 + %23 = getelementptr inbounds nuw i8, ptr %12, i64 16 + %24 = load i64, ptr %23, align 8, !alias.scope !192, !noalias !195, !noundef !13 + %25 = sub i64 %22, %24 + %26 = icmp ugt i64 %25, 1 + br i1 %26, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread": ; preds = %21 + %27 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %28 = load ptr, ptr %27, align 8, !alias.scope !192, !noalias !195, !nonnull !13, !noundef !13 + %29 = getelementptr inbounds i8, ptr %28, i64 %24 + store i8 33, ptr %29, align 1, !noalias !200 + %30 = add i64 %24, 1 + store i64 %30, ptr %23, align 8, !alias.scope !192, !noalias !195 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !189 - br label %36 + br label %34 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit": ; preds = %23 - %33 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef 1), !noalias !201 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit": ; preds = %21 + %31 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef 1), !noalias !201 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !189 - %34 = icmp eq ptr %33, null - br i1 %34, label %36, label %37 + %32 = icmp eq ptr %31, null + br i1 %32, label %34, label %35 -35: ; preds = %12 +33: ; preds = %10 store i8 1, ptr %0, align 8 %.sroa.4178.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr inttoptr (i64 154618822659 to ptr), ptr %.sroa.4178.0..sroa_idx, align 8 - br label %22 + br label %20 -36: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" - br i1 %9, label %68, label %38 +34: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" + %trunc = trunc i48 %2 to i1 + br i1 %trunc, label %66, label %36 -37: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" +35: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" store i8 1, ptr %0, align 8 %.sroa.4181.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %33, ptr %.sroa.4181.0..sroa_idx, align 8 - br label %22 + store ptr %31, ptr %.sroa.4181.0..sroa_idx, align 8 + br label %20 -38: ; preds = %36 +36: ; preds = %34 call void @llvm.lifetime.start.p0(ptr nonnull %8) - %39 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i8 -7, ptr %39, align 8, !alias.scope !202, !noalias !209 - %40 = getelementptr inbounds nuw i8, ptr %8, i64 9 - store i8 4, ptr %40, align 1, !alias.scope !213, !noalias !220 - %41 = getelementptr inbounds nuw i8, ptr %8, i64 10 - store i8 %.1.extract.trunc, ptr %41, align 2, !alias.scope !224, !noalias !231 - %42 = getelementptr inbounds nuw i8, ptr %8, i64 11 - store i16 %.4.extract.trunc, ptr %42, align 1, !alias.scope !235, !noalias !242 + %37 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i8 -7, ptr %37, align 8, !alias.scope !202, !noalias !209 + %38 = getelementptr inbounds nuw i8, ptr %8, i64 9 + store i8 4, ptr %38, align 1, !alias.scope !213, !noalias !220 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 10 + store i8 %.1.extract.trunc, ptr %39, align 2, !alias.scope !224, !noalias !231 + %40 = getelementptr inbounds nuw i8, ptr %8, i64 11 + store i16 %.4.extract.trunc, ptr %40, align 1, !alias.scope !235, !noalias !242 call void @llvm.experimental.noalias.scope.decl(metadata !246) - %43 = getelementptr inbounds nuw i8, ptr %8, i64 13 - store i8 %.sroa.4.sroa.0.0.extract.trunc, ptr %43, align 1, !alias.scope !249, !noalias !254 + %41 = getelementptr inbounds nuw i8, ptr %8, i64 13 + store i8 %.sroa.4.sroa.0.0.extract.trunc, ptr %41, align 1, !alias.scope !249, !noalias !254 store i64 6, ptr %8, align 8, !alias.scope !258, !noalias !260 call void @llvm.experimental.noalias.scope.decl(metadata !262) - %44 = load i64, ptr %14, align 8, !alias.scope !262, !noalias !265, !noundef !13 - %45 = load i64, ptr %25, align 8, !alias.scope !262, !noalias !265, !noundef !13 - %46 = sub i64 %44, %45 - %47 = icmp ugt i64 %46, 6 - br i1 %47, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread": ; preds = %38 - %48 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %49 = load ptr, ptr %48, align 8, !alias.scope !262, !noalias !265, !nonnull !13, !noundef !13 - %50 = getelementptr inbounds i8, ptr %49, i64 %45 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %50, ptr noundef nonnull readonly align 8 dereferenceable(6) %39, i64 6, i1 false), !noalias !272 - %51 = add i64 %45, 6 - store i64 %51, ptr %25, align 8, !alias.scope !262, !noalias !265 - br label %54 + %42 = load i64, ptr %12, align 8, !alias.scope !262, !noalias !265, !noundef !13 + %43 = load i64, ptr %23, align 8, !alias.scope !262, !noalias !265, !noundef !13 + %44 = sub i64 %42, %43 + %45 = icmp ugt i64 %44, 6 + br i1 %45, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread": ; preds = %36 + %46 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %47 = load ptr, ptr %46, align 8, !alias.scope !262, !noalias !265, !nonnull !13, !noundef !13 + %48 = getelementptr inbounds i8, ptr %47, i64 %43 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %48, ptr noundef nonnull readonly align 8 dereferenceable(6) %37, i64 6, i1 false), !noalias !272 + %49 = add i64 %43, 6 + store i64 %49, ptr %23, align 8, !alias.scope !262, !noalias !265 + br label %52 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit": ; preds = %38 - %52 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %39, i64 noundef 6), !noalias !273 - %53 = icmp eq ptr %52, null - br i1 %53, label %54, label %67 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit": ; preds = %36 + %50 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %37, i64 noundef 6), !noalias !273 + %51 = icmp eq ptr %50, null + br i1 %51, label %52, label %65 -54: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" +52: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %55 + br label %53 -55: ; preds = %86, %54 +53: ; preds = %84, %52 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !274 store i8 0, ptr %5, align 1, !noalias !274 call void @llvm.experimental.noalias.scope.decl(metadata !277) - %56 = load i64, ptr %14, align 8, !alias.scope !277, !noalias !280, !noundef !13 - %57 = load i64, ptr %25, align 8, !alias.scope !277, !noalias !280, !noundef !13 - %58 = sub i64 %56, %57 - %59 = icmp ugt i64 %58, 1 - br i1 %59, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread": ; preds = %55 - %60 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %61 = load ptr, ptr %60, align 8, !alias.scope !277, !noalias !280, !nonnull !13, !noundef !13 - %62 = getelementptr inbounds i8, ptr %61, i64 %57 - store i8 0, ptr %62, align 1, !noalias !285 - %63 = add i64 %57, 1 - store i64 %63, ptr %25, align 8, !alias.scope !277, !noalias !280 + %54 = load i64, ptr %12, align 8, !alias.scope !277, !noalias !280, !noundef !13 + %55 = load i64, ptr %23, align 8, !alias.scope !277, !noalias !280, !noundef !13 + %56 = sub i64 %54, %55 + %57 = icmp ugt i64 %56, 1 + br i1 %57, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread": ; preds = %53 + %58 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %59 = load ptr, ptr %58, align 8, !alias.scope !277, !noalias !280, !nonnull !13, !noundef !13 + %60 = getelementptr inbounds i8, ptr %59, i64 %55 + store i8 0, ptr %60, align 1, !noalias !285 + %61 = add i64 %55, 1 + store i64 %61, ptr %23, align 8, !alias.scope !277, !noalias !280 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !274 br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit" -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160": ; preds = %55 - %64 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef 1), !noalias !286 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160": ; preds = %53 + %62 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef 1), !noalias !286 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !274 - %65 = icmp eq ptr %64, null - br i1 %65, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", label %66 + %63 = icmp eq ptr %62, null + br i1 %63, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", label %64 -66: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" +64: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" %.sroa.43.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %64, ptr %.sroa.43.0..sroa_idx.i, align 8, !alias.scope !287 + store ptr %62, ptr %.sroa.43.0..sroa_idx.i, align 8, !alias.scope !287 br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit" -"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit": ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160", %66 - %.sink.i = phi i8 [ 1, %66 ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread" ] +"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit": ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160", %64 + %.sink.i = phi i8 [ 1, %64 ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread" ] store i8 %.sink.i, ptr %0, align 8, !alias.scope !287 - br label %22 + br label %20 -67: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" +65: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" store i8 1, ptr %0, align 8 %.sroa.4205.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %52, ptr %.sroa.4205.0..sroa_idx, align 8 + store ptr %50, ptr %.sroa.4205.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %22 + br label %20 -68: ; preds = %36 +66: ; preds = %34 call void @llvm.lifetime.start.p0(ptr nonnull %7) - %69 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i8 -1, ptr %69, align 8, !alias.scope !290, !noalias !297 - %70 = getelementptr inbounds nuw i8, ptr %7, i64 9 - store i8 11, ptr %70, align 1, !alias.scope !301, !noalias !308 - %71 = getelementptr inbounds nuw i8, ptr %7, i64 10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(11) %71, ptr noundef nonnull readonly align 1 dereferenceable(11) @anon.f6d9434fcf4bddc9e50dec3b041c07d1.1, i64 11, i1 false), !alias.scope !312, !noalias !319 - %72 = getelementptr inbounds nuw i8, ptr %7, i64 21 - store i8 3, ptr %72, align 1, !alias.scope !323, !noalias !330 - %73 = getelementptr inbounds nuw i8, ptr %7, i64 22 - store i8 1, ptr %73, align 2, !alias.scope !334, !noalias !341 + %67 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i8 -1, ptr %67, align 8, !alias.scope !290, !noalias !297 + %68 = getelementptr inbounds nuw i8, ptr %7, i64 9 + store i8 11, ptr %68, align 1, !alias.scope !301, !noalias !308 + %69 = getelementptr inbounds nuw i8, ptr %7, i64 10 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(11) %69, ptr noundef nonnull readonly align 1 dereferenceable(11) @anon.f6d9434fcf4bddc9e50dec3b041c07d1.1, i64 11, i1 false), !alias.scope !312, !noalias !319 + %70 = getelementptr inbounds nuw i8, ptr %7, i64 21 + store i8 3, ptr %70, align 1, !alias.scope !323, !noalias !330 + %71 = getelementptr inbounds nuw i8, ptr %7, i64 22 + store i8 1, ptr %71, align 2, !alias.scope !334, !noalias !341 %trunc129 = trunc i48 %.2.extract.shift to i16 - %74 = icmp eq i16 %trunc129, 0 - %.4.extract.trunc. = select i1 %74, i16 %.4.extract.trunc, i16 0 + %72 = icmp eq i16 %trunc129, 0 + %.4.extract.trunc. = select i1 %72, i16 %.4.extract.trunc, i16 0 call void @llvm.experimental.noalias.scope.decl(metadata !345) - %75 = getelementptr inbounds nuw i8, ptr %7, i64 23 - store i16 %.4.extract.trunc., ptr %75, align 1, !alias.scope !348, !noalias !353 + %73 = getelementptr inbounds nuw i8, ptr %7, i64 23 + store i16 %.4.extract.trunc., ptr %73, align 1, !alias.scope !348, !noalias !353 store i64 17, ptr %7, align 8, !alias.scope !357, !noalias !359 call void @llvm.experimental.noalias.scope.decl(metadata !361) - %76 = load i64, ptr %14, align 8, !alias.scope !361, !noalias !364, !noundef !13 - %77 = load i64, ptr %25, align 8, !alias.scope !361, !noalias !364, !noundef !13 - %78 = sub i64 %76, %77 - %79 = icmp ugt i64 %78, 17 - br i1 %79, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread": ; preds = %68 - %80 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %81 = load ptr, ptr %80, align 8, !alias.scope !361, !noalias !364, !nonnull !13, !noundef !13 - %82 = getelementptr inbounds i8, ptr %81, i64 %77 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %82, ptr noundef nonnull readonly align 8 dereferenceable(17) %69, i64 17, i1 false), !noalias !371 - %83 = add i64 %77, 17 - store i64 %83, ptr %25, align 8, !alias.scope !361, !noalias !364 - br label %86 + %74 = load i64, ptr %12, align 8, !alias.scope !361, !noalias !364, !noundef !13 + %75 = load i64, ptr %23, align 8, !alias.scope !361, !noalias !364, !noundef !13 + %76 = sub i64 %74, %75 + %77 = icmp ugt i64 %76, 17 + br i1 %77, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread": ; preds = %66 + %78 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %79 = load ptr, ptr %78, align 8, !alias.scope !361, !noalias !364, !nonnull !13, !noundef !13 + %80 = getelementptr inbounds i8, ptr %79, i64 %75 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %80, ptr noundef nonnull readonly align 8 dereferenceable(17) %67, i64 17, i1 false), !noalias !371 + %81 = add i64 %75, 17 + store i64 %81, ptr %23, align 8, !alias.scope !361, !noalias !364 + br label %84 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177": ; preds = %68 - %84 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %69, i64 noundef 17), !noalias !372 - %85 = icmp eq ptr %84, null - br i1 %85, label %86, label %87 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177": ; preds = %66 + %82 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %67, i64 noundef 17), !noalias !372 + %83 = icmp eq ptr %82, null + br i1 %83, label %84, label %85 -86: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" +84: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %55 + br label %53 -87: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" +85: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" store i8 1, ptr %0, align 8 %.sroa.4232.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %84, ptr %.sroa.4232.0..sroa_idx, align 8 + store ptr %82, ptr %.sroa.4232.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %22 + br label %20 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll index 99ebea09320..10635a9ad04 100644 --- a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll +++ b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll @@ -30493,7 +30493,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd %10 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr106drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..cursor..Cursor$LT$$RF$$u5b$u8$u5d$$GT$$GT$$GT$17hd4b148b124532403E"(ptr noalias noundef nonnull align 8 dereferenceable(320) %8) #22 - to label %53 unwind label %51 + to label %52 unwind label %50 11: ; preds = %2 call void @llvm.experimental.noalias.scope.decl(metadata !3985) @@ -30566,7 +30566,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd %26 = getelementptr inbounds nuw i8, ptr %8, i64 96 %27 = load i64, ptr %26, align 8, !range !101, !alias.scope !4008, !noundef !19 %28 = icmp eq i64 %27, -9223372036854775808 - br i1 %28, label %47, label %29 + br i1 %28, label %.thread99, label %29 29: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %8, i64 112 @@ -30610,9 +30610,9 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 %.sroa.0.0.copyload, ptr %41, align 8 %.sroa.244.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244, i64 63, i1 false) - br label %50 + br label %49 -42: ; preds = %29, %37, %33, %29 +42: ; preds = %29, %29, %33, %37 %spec.select = phi i8 [ 2, %29 ], [ 0, %33 ], [ 1, %37 ], [ 2, %29 ] %43 = getelementptr inbounds nuw i8, ptr %8, i64 124 %44 = load i32, ptr %43, align 4, !alias.scope !4008 @@ -30625,11 +30625,11 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 %spec.select, ptr %.sroa.536.0..sroa_idx, align 4 %.sroa.637.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 325 store i8 %46, ptr %.sroa.637.0..sroa_idx, align 1 - br label %49 + br label %48 -47: ; preds = %25 - %48 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 4, ptr %48, align 8 +.thread99: ; preds = %25 + %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 4, ptr %47, align 8 %.sroa.576.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 15 store i8 3, ptr %.sroa.576.0..sroa_idx, align 1 %.sroa.677.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -30638,24 +30638,24 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 1, ptr %.sroa.677.sroa.2.0..sroa.677.0..sroa_idx.sroa_idx, align 1 %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr null, ptr %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx, align 8 - br label %50 + br label %49 -49: ; preds = %50, %42 +48: ; preds = %49, %42 call void @llvm.lifetime.end.p0(ptr nonnull %8) ret void -50: ; preds = %47, %40 +49: ; preds = %.thread99, %40 store i64 -9223372036854775808, ptr %0, align 8 call void @"_ZN4core3ptr106drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..cursor..Cursor$LT$$RF$$u5b$u8$u5d$$GT$$GT$$GT$17hd4b148b124532403E"(ptr noalias noundef nonnull align 8 dereferenceable(320) %8) - br label %49 + br label %48 -51: ; preds = %9 - %52 = landingpad { ptr, i32 } +50: ; preds = %9 + %51 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #23 unreachable -53: ; preds = %9 +52: ; preds = %9 resume { ptr, i32 } %10 } @@ -30682,7 +30682,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he %10 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr119drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h7aa6f68c4f809ca0E"(ptr noalias noundef nonnull align 8 dereferenceable(344) %8) #22 - to label %53 unwind label %51 + to label %52 unwind label %50 11: ; preds = %2 call void @llvm.experimental.noalias.scope.decl(metadata !4011) @@ -30755,7 +30755,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he %26 = getelementptr inbounds nuw i8, ptr %8, i64 96 %27 = load i64, ptr %26, align 8, !range !101, !alias.scope !4034, !noundef !19 %28 = icmp eq i64 %27, -9223372036854775808 - br i1 %28, label %47, label %29 + br i1 %28, label %.thread99, label %29 29: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %8, i64 112 @@ -30799,9 +30799,9 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 %.sroa.0.0.copyload, ptr %41, align 8 %.sroa.244.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244, i64 63, i1 false) - br label %50 + br label %49 -42: ; preds = %29, %37, %33, %29 +42: ; preds = %29, %29, %33, %37 %spec.select = phi i8 [ 2, %29 ], [ 0, %33 ], [ 1, %37 ], [ 2, %29 ] %43 = getelementptr inbounds nuw i8, ptr %8, i64 124 %44 = load i32, ptr %43, align 4, !alias.scope !4034 @@ -30814,11 +30814,11 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 %spec.select, ptr %.sroa.536.0..sroa_idx, align 4 %.sroa.637.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 349 store i8 %46, ptr %.sroa.637.0..sroa_idx, align 1 - br label %49 + br label %48 -47: ; preds = %25 - %48 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 4, ptr %48, align 8 +.thread99: ; preds = %25 + %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 4, ptr %47, align 8 %.sroa.576.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 15 store i8 3, ptr %.sroa.576.0..sroa_idx, align 1 %.sroa.677.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -30827,24 +30827,24 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 1, ptr %.sroa.677.sroa.2.0..sroa.677.0..sroa_idx.sroa_idx, align 1 %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr null, ptr %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx, align 8 - br label %50 + br label %49 -49: ; preds = %50, %42 +48: ; preds = %49, %42 call void @llvm.lifetime.end.p0(ptr nonnull %8) ret void -50: ; preds = %47, %40 +49: ; preds = %.thread99, %40 store i64 -9223372036854775808, ptr %0, align 8 call void @"_ZN4core3ptr119drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h7aa6f68c4f809ca0E"(ptr noalias noundef nonnull align 8 dereferenceable(344) %8) - br label %49 + br label %48 -51: ; preds = %9 - %52 = landingpad { ptr, i32 } +50: ; preds = %9 + %51 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #23 unreachable -53: ; preds = %9 +52: ; preds = %9 resume { ptr, i32 } %10 } diff --git a/bench/libigl/optimized/coplanar.ll b/bench/libigl/optimized/coplanar.ll index cec4361255d..f2361698e81 100644 --- a/bench/libigl/optimized/coplanar.ll +++ b/bench/libigl/optimized/coplanar.ll @@ -5691,7 +5691,7 @@ define linkonce_odr dso_local void @_ZN5boost14multiprecision8backends13eval_mul store i64 %.sroa.0.0.extract.trunc, ptr %43, align 8, !tbaa !73 %44 = getelementptr inbounds nuw i8, ptr %43, i64 8 store i64 %.sroa.2.0.extract.trunc, ptr %44, align 8, !tbaa !73 - %.not.i111 = icmp eq i64 %.sroa.2.0.extract.trunc, 0 + %.not.i111 = icmp ult i128 %37, 18446744073709551616 %45 = select i1 %.not.i111, i64 1, i64 2 %46 = load i64, ptr %0, align 16 %spec.select.i.i = select i1 %40, i64 8, i64 %46 diff --git a/bench/linux/optimized/i915_hwmon.ll b/bench/linux/optimized/i915_hwmon.ll index 0840e16d547..79355aaabae 100644 --- a/bench/linux/optimized/i915_hwmon.ll +++ b/bench/linux/optimized/i915_hwmon.ll @@ -843,23 +843,23 @@ define internal i32 @hwm_read(ptr noundef readonly captures(none) %0, i32 nounde %102 = zext nneg i64 %101 to i128 %103 = zext nneg i32 %100 to i128 %104 = lshr i128 %102, %103 - %105 = trunc nuw nsw i128 %104 to i64 - %106 = lshr i64 %97, 32 - %107 = and i64 %106, 32767 - %108 = mul nuw nsw i64 %107, 1000000 - %109 = zext nneg i64 %108 to i128 - %110 = lshr i128 %109, %103 - %111 = trunc nuw nsw i128 %110 to i64 - %112 = icmp ne i64 %105, 0 - %113 = icmp ne i64 %111, 0 - %114 = select i1 %112, i1 %113, i1 false - br i1 %114, label %115, label %.thread6 - -115: ; preds = %96 + %105 = lshr i64 %97, 32 + %106 = and i64 %105, 32767 + %107 = mul nuw nsw i64 %106, 1000000 + %108 = zext nneg i64 %107 to i128 + %109 = lshr i128 %108, %103 + %110 = icmp ne i128 %104, 0 + %111 = icmp ne i128 %109, 0 + %112 = select i1 %110, i1 %111, i1 false + br i1 %112, label %113, label %.thread6 + +113: ; preds = %96 + %114 = trunc nuw nsw i128 %109 to i64 + %115 = trunc nuw nsw i128 %104 to i64 %116 = load i64, ptr %4, align 8 - %117 = icmp ult i64 %116, %111 - %118 = tail call i64 @llvm.umax.i64(i64 %116, i64 %105) - %119 = select i1 %117, i64 %118, i64 %111 + %117 = icmp ult i64 %116, %114 + %118 = tail call i64 @llvm.umax.i64(i64 %116, i64 %115) + %119 = select i1 %117, i64 %118, i64 %114 br label %.thread 120: ; preds = %37 @@ -921,8 +921,8 @@ define internal i32 @hwm_read(ptr noundef readonly captures(none) %0, i32 nounde %163 = zext nneg i32 %162 to i64 br label %.thread -.thread: ; preds = %39, %160, %137, %115, %46 - %164 = phi i64 [ %119, %115 ], [ %143, %137 ], [ %163, %160 ], [ 0, %46 ], [ 0, %39 ] +.thread: ; preds = %39, %160, %137, %113, %46 + %164 = phi i64 [ %119, %113 ], [ %143, %137 ], [ %163, %160 ], [ 0, %46 ], [ 0, %39 ] store i64 %164, ptr %4, align 8 br label %.thread6 diff --git a/bench/linux/optimized/memory.ll b/bench/linux/optimized/memory.ll index cfd270a92de..754ce4fc0f8 100644 --- a/bench/linux/optimized/memory.ll +++ b/bench/linux/optimized/memory.ll @@ -1987,7 +1987,7 @@ define dso_local i32 @copy_page_range(ptr noundef %0, ptr noundef %1) local_unna 343: ; preds = %309 %344 = and i32 %319, 30 %345 = icmp ne i32 %344, 28 - %346 = icmp ne i32 %319, 30 + %346 = icmp ne i64 %318, 30 %347 = and i1 %346, %345 br i1 %347, label %363, label %348 @@ -3382,7 +3382,7 @@ vm_normal_page.exit: ; preds = %192, %194, %203, %2 466: ; preds = %446 %467 = and i32 %454, 30 %468 = icmp ne i32 %467, 28 - %469 = icmp ne i32 %454, 30 + %469 = icmp ne i64 %453, 30 %470 = and i1 %469, %468 br i1 %470, label %611, label %471 @@ -6802,7 +6802,7 @@ define dso_local i32 @do_swap_page(ptr noundef initializes((88, 96)) %0) local_u 18: ; preds = %1 %19 = and i32 %16, 30 %20 = icmp ne i32 %19, 28 - %21 = icmp ne i32 %16, 30 + %21 = icmp ne i64 %15, 30 %22 = and i1 %21, %20 br i1 %22, label %30, label %23 @@ -7608,67 +7608,66 @@ define internal fastcc ptr @pfn_swap_entry_to_page(i64 range(i64 0, 893626756060 %6 = phi i64 [ 17179869183, %4 ], [ 1099511627775, %1 ], [ 1099511627775, %1 ] %7 = and i64 %6, %0 %8 = getelementptr %struct.page, ptr %3, i64 %7 - %9 = lshr i64 %0, 58 - %10 = trunc nuw nsw i64 %9 to i32 - %11 = and i32 %10, 30 - %12 = icmp ne i32 %11, 28 - %13 = icmp ne i32 %10, 30 - %14 = and i1 %13, %12 - br i1 %14, label %46, label %15 - -15: ; preds = %5 - %16 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %17 = load volatile i64, ptr %16, align 8 - %18 = and i64 %17, 1 - %19 = icmp eq i64 %18, 0 - br i1 %19, label %23, label %20, !prof !13 + %9 = and i64 %0, 8646911284551352320 + %10 = icmp ne i64 %9, 8070450532247928832 + %.mask = and i64 %0, 8935141660703064064 + %11 = icmp ne i64 %.mask, 8646911284551352320 + %12 = and i1 %11, %10 + br i1 %12, label %44, label %13 -20: ; preds = %15 - %21 = add nsw i64 %17, -1 - %22 = inttoptr i64 %21 to ptr - br label %40 +13: ; preds = %5 + %14 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %15 = load volatile i64, ptr %14, align 8 + %16 = and i64 %15, 1 + %17 = icmp eq i64 %16, 0 + br i1 %17, label %21, label %18, !prof !13 -23: ; preds = %15 +18: ; preds = %13 + %19 = add nsw i64 %15, -1 + %20 = inttoptr i64 %19 to ptr + br label %38 + +21: ; preds = %13 callbr void asm sideeffect "1:jmp ${2:l} # objtool NOPs this \0A\09.pushsection __jump_table, \22aw\22 \0A\09 .balign 8 \0A\09.long 1b - . \0A\09.long ${2:l} - . \0A\09 .quad ${0:c} + ${1:c} - .\0A\09.popsection \0A\09", "i,i,!i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @hugetlb_optimize_vmemmap_key, i32 2) #18 - to label %40 [label %24], !srcloc !6 + to label %38 [label %22], !srcloc !6 -24: ; preds = %23 - %25 = ptrtoint ptr %8 to i64 - %26 = and i64 %25, 4095 - %27 = icmp eq i64 %26, 0 - br i1 %27, label %28, label %39 +22: ; preds = %21 + %23 = ptrtoint ptr %8 to i64 + %24 = and i64 %23, 4095 + %25 = icmp eq i64 %24, 0 + br i1 %25, label %26, label %37 -28: ; preds = %24 - %29 = load volatile i64, ptr %8, align 8 - %30 = and i64 %29, 64 - %31 = icmp eq i64 %30, 0 - br i1 %31, label %39, label %32 +26: ; preds = %22 + %27 = load volatile i64, ptr %8, align 8 + %28 = and i64 %27, 64 + %29 = icmp eq i64 %28, 0 + br i1 %29, label %37, label %30 -32: ; preds = %28 - %33 = getelementptr i8, ptr %8, i64 72 - %34 = load volatile i64, ptr %33, align 8 - %35 = and i64 %34, 1 - %36 = icmp eq i64 %35, 0 - %37 = add nsw i64 %34, -1 - %38 = inttoptr i64 %37 to ptr - br i1 %36, label %39, label %40 +30: ; preds = %26 + %31 = getelementptr i8, ptr %8, i64 72 + %32 = load volatile i64, ptr %31, align 8 + %33 = and i64 %32, 1 + %34 = icmp eq i64 %33, 0 + %35 = add nsw i64 %32, -1 + %36 = inttoptr i64 %35 to ptr + br i1 %34, label %37, label %38 -39: ; preds = %32, %28, %24 - br label %40 +37: ; preds = %30, %26, %22 + br label %38 -40: ; preds = %39, %32, %23, %20 - %41 = phi ptr [ %22, %20 ], [ %38, %32 ], [ %8, %39 ], [ %8, %23 ] - %42 = load volatile i64, ptr %41, align 8 - %43 = and i64 %42, 1 - %44 = icmp eq i64 %43, 0 - br i1 %44, label %45, label %46, !prof !23 +38: ; preds = %37, %30, %21, %18 + %39 = phi ptr [ %20, %18 ], [ %36, %30 ], [ %8, %37 ], [ %8, %21 ] + %40 = load volatile i64, ptr %39, align 8 + %41 = and i64 %40, 1 + %42 = icmp eq i64 %41, 0 + br i1 %42, label %43, label %44, !prof !23 -45: ; preds = %40 +43: ; preds = %38 tail call void asm sideeffect "405: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 405b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 405) #18, !srcloc !59 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.10, i32 466, i32 0, i64 12) #18, !srcloc !60 unreachable -46: ; preds = %40, %5 +44: ; preds = %38, %5 ret ptr %8 } @@ -10200,7 +10199,7 @@ define dso_local i32 @handle_mm_fault(ptr noundef %0, i64 noundef %1, i32 nounde br i1 %350, label %409, label %351 351: ; preds = %345 - %352 = icmp eq i32 %302, 1 + %352 = icmp eq i64 %301, 1 br i1 %352, label %353, label %365 353: ; preds = %351 diff --git a/bench/linux/optimized/pci.ll b/bench/linux/optimized/pci.ll index a2a17e7efbe..71b70bf9935 100644 --- a/bench/linux/optimized/pci.ll +++ b/bench/linux/optimized/pci.ll @@ -5610,9 +5610,9 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %30 = getelementptr inbounds nuw i8, ptr %0, i64 264 br label %31 -31: ; preds = %146, %22 - %32 = phi i32 [ 0, %22 ], [ %148, %146 ] - %33 = phi i32 [ %26, %22 ], [ %147, %146 ] +31: ; preds = %145, %22 + %32 = phi i32 [ 0, %22 ], [ %147, %145 ] + %33 = phi i32 [ %26, %22 ], [ %146, %145 ] call void @llvm.lifetime.start.p0(ptr nonnull %2) store i32 0, ptr %2, align 4, !annotation !8 call void @llvm.lifetime.start.p0(ptr nonnull %3) @@ -5626,7 +5626,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %38 = and i32 %37, 28 %39 = add nuw nsw i32 %38, 4 %40 = icmp sgt i32 %36, -1 - br i1 %40, label %146, label %41 + br i1 %40, label %145, label %41 41: ; preds = %31 %42 = lshr i32 %36, 4 @@ -5640,7 +5640,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %50 = trunc i32 %49 to i8 %51 = and i32 %49, 255 %52 = icmp samesign ugt i32 %51, 7 - br i1 %52, label %146, label %53 + br i1 %52, label %145, label %53 53: ; preds = %41 %54 = trunc nuw nsw i32 %43 to i8 @@ -5649,7 +5649,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %57 = and i1 %55, %56 %58 = zext nneg i32 %43 to i64 %59 = getelementptr %struct.resource, ptr %27, i64 %58 - %60 = icmp eq i8 %54, 8 + %60 = icmp eq i32 %43, 8 %61 = select i1 %60, ptr %28, ptr null %62 = select i1 %57, ptr %59, ptr %61 %63 = icmp samesign ult i32 %43, 10 @@ -5670,7 +5670,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 73: ; preds = %70 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.75, i32 noundef %43) #28 - br label %146 + br label %145 74: ; preds = %70 switch i8 %50, label %.critedge [ @@ -5689,7 +5689,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 .critedge: ; preds = %74 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.76, i32 noundef %51) #28 - br label %146 + br label %145 77: ; preds = %74, %74, %75, %76 %78 = phi i64 [ 304, %75 ], [ 560, %76 ], [ 8752, %74 ], [ 8752, %74 ] @@ -5752,7 +5752,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 120: ; preds = %115 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.77) #28 - br label %146 + br label %145 121: ; preds = %115 %122 = sub i32 %116, %33 @@ -5761,7 +5761,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 124: ; preds = %121 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.78, i32 noundef %39, i32 noundef %122) #28 - br label %146 + br label %145 125: ; preds = %121 %126 = load ptr, ptr %30, align 8 @@ -5786,42 +5786,41 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 136: ; preds = %130 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %146 + br label %145 137: ; preds = %130 - %138 = icmp eq i32 %43, 8 - br i1 %138, label %139, label %140 + br i1 %60, label %138, label %139 -139: ; preds = %137 +138: ; preds = %137 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %146 + br label %145 -140: ; preds = %137 - %141 = icmp samesign ugt i32 %43, 8 - %142 = icmp ne i32 %43, 15 - %143 = and i1 %141, %142 - br i1 %143, label %144, label %145 +139: ; preds = %137 + %140 = icmp samesign ugt i32 %43, 8 + %141 = icmp ne i32 %43, 15 + %142 = and i1 %140, %141 + br i1 %142, label %143, label %144 -144: ; preds = %140 +143: ; preds = %139 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %146 + br label %145 -145: ; preds = %140 +144: ; preds = %139 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.80, i32 noundef %43, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %146 + br label %145 -146: ; preds = %145, %144, %139, %136, %124, %120, %.critedge, %73, %41, %31 - %147 = add i32 %39, %33 +145: ; preds = %144, %143, %138, %136, %124, %120, %.critedge, %73, %41, %31 + %146 = add i32 %39, %33 call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %3) call void @llvm.lifetime.end.p0(ptr nonnull %2) - %148 = add nuw nsw i32 %32, 1 - %149 = load i8, ptr %7, align 1 - %150 = zext i8 %149 to i32 - %151 = icmp samesign ult i32 %148, %150 - br i1 %151, label %31, label %.loopexit, !llvm.loop !53 + %147 = add nuw nsw i32 %32, 1 + %148 = load i8, ptr %7, align 1 + %149 = zext i8 %148 to i32 + %150 = icmp samesign ult i32 %147, %149 + br i1 %150, label %31, label %.loopexit, !llvm.loop !53 -.loopexit: ; preds = %146, %10, %1 +.loopexit: ; preds = %145, %10, %1 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void } diff --git a/bench/mitsuba3/optimized/string.ll b/bench/mitsuba3/optimized/string.ll index 5581754450f..952655e7ecb 100644 --- a/bench/mitsuba3/optimized/string.ll +++ b/bench/mitsuba3/optimized/string.ll @@ -3770,74 +3770,74 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS br i1 %12, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4, %13 - %.0252442 = phi ptr [ %14, %13 ], [ %6, %4 ] - %.0.copyload65 = load i64, ptr %.0252442, align 1 + %.0252448 = phi ptr [ %14, %13 ], [ %6, %4 ] + %.0.copyload65 = load i64, ptr %.0252448, align 1 %.not = icmp eq i64 %.0.copyload65, 3472328296227680304 br i1 %.not, label %13, label %.lr.ph.._crit_edge.loopexit_crit_edge .lr.ph.._crit_edge.loopexit_crit_edge: ; preds = %.lr.ph - %.pre619 = ptrtoint ptr %.0252442 to i64 + %.pre631 = ptrtoint ptr %.0252448 to i64 br label %._crit_edge 13: ; preds = %.lr.ph - %14 = getelementptr inbounds nuw i8, ptr %.0252442, i64 8 + %14 = getelementptr inbounds nuw i8, ptr %.0252448, i64 8 %15 = ptrtoint ptr %14 to i64 %16 = sub i64 %11, %15 %17 = icmp sgt i64 %16, 7 br i1 %17, label %.lr.ph, label %._crit_edge, !llvm.loop !45 ._crit_edge: ; preds = %13, %.lr.ph.._crit_edge.loopexit_crit_edge, %4 - %.0252.lcssa609.pre-phi = phi i64 [ %7, %4 ], [ %.pre619, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %15, %13 ] - %.0252.lcssa = phi ptr [ %6, %4 ], [ %.0252442, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %14, %13 ] - %.not263447 = icmp eq ptr %.0252.lcssa, %10 - br i1 %.not263447, label %._crit_edge482, label %.lr.ph450.preheader + %.0252.lcssa621.pre-phi = phi i64 [ %7, %4 ], [ %.pre631, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %15, %13 ] + %.0252.lcssa = phi ptr [ %6, %4 ], [ %.0252448, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %14, %13 ] + %.not263453 = icmp eq ptr %.0252.lcssa, %10 + br i1 %.not263453, label %._crit_edge488, label %.lr.ph456.preheader -.lr.ph450.preheader: ; preds = %._crit_edge +.lr.ph456.preheader: ; preds = %._crit_edge %18 = add i64 %9, %7 - %19 = sub i64 %18, %.0252.lcssa609.pre-phi + %19 = sub i64 %18, %.0252.lcssa621.pre-phi %scevgep = getelementptr i8, ptr %.0252.lcssa, i64 %19 - br label %.lr.ph450 + br label %.lr.ph456 -.lr.ph450: ; preds = %.lr.ph450.preheader, %21 - %.1253448 = phi ptr [ %22, %21 ], [ %.0252.lcssa, %.lr.ph450.preheader ] - %20 = load i8, ptr %.1253448, align 1 +.lr.ph456: ; preds = %.lr.ph456.preheader, %21 + %.1253454 = phi ptr [ %22, %21 ], [ %.0252.lcssa, %.lr.ph456.preheader ] + %20 = load i8, ptr %.1253454, align 1 %.not264 = icmp eq i8 %20, 48 - br i1 %.not264, label %21, label %._crit_edge451 + br i1 %.not264, label %21, label %._crit_edge457 -21: ; preds = %.lr.ph450 - %22 = getelementptr inbounds nuw i8, ptr %.1253448, i64 1 +21: ; preds = %.lr.ph456 + %22 = getelementptr inbounds nuw i8, ptr %.1253454, i64 1 %.not263 = icmp eq ptr %22, %10 - br i1 %.not263, label %._crit_edge451, label %.lr.ph450, !llvm.loop !46 + br i1 %.not263, label %._crit_edge457, label %.lr.ph456, !llvm.loop !46 -._crit_edge451: ; preds = %21, %.lr.ph450 - %.1253.lcssa = phi ptr [ %scevgep, %21 ], [ %.1253448, %.lr.ph450 ] - %.not265480 = icmp eq ptr %.1253.lcssa, %10 - br i1 %.not265480, label %._crit_edge482, label %.preheader391.lr.ph +._crit_edge457: ; preds = %21, %.lr.ph456 + %.1253.lcssa = phi ptr [ %scevgep, %21 ], [ %.1253454, %.lr.ph456 ] + %.not265486 = icmp eq ptr %.1253.lcssa, %10 + br i1 %.not265486, label %._crit_edge488, label %.preheader391.lr.ph -.preheader391.lr.ph: ; preds = %._crit_edge451 +.preheader391.lr.ph: ; preds = %._crit_edge457 %23 = getelementptr inbounds nuw i8, ptr %0, i64 496 br label %.preheader391 .preheader391: ; preds = %.preheader391.lr.ph, %_ZN10fast_float6bigint3addEm.exit326 - %.2254481 = phi ptr [ %.1253.lcssa, %.preheader391.lr.ph ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit326 ] + %.2254487 = phi ptr [ %.1253.lcssa, %.preheader391.lr.ph ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit326 ] %.promoted = load i64, ptr %3, align 8 - %24 = ptrtoint ptr %.2254481 to i64 + %24 = ptrtoint ptr %.2254487 to i64 %25 = sub i64 %11, %24 %26 = icmp slt i64 %25, 8 - br i1 %26, label %.critedge, label %.lr.ph458 + br i1 %26, label %.critedge, label %.lr.ph464 -.lr.ph458: ; preds = %.preheader391, %30 - %.1244457 = phi i64 [ %43, %30 ], [ 0, %.preheader391 ] - %.1246456 = phi i64 [ %45, %30 ], [ 0, %.preheader391 ] - %.3255455 = phi ptr [ %44, %30 ], [ %.2254481, %.preheader391 ] +.lr.ph464: ; preds = %.preheader391, %30 + %.1244463 = phi i64 [ %43, %30 ], [ 0, %.preheader391 ] + %.1246462 = phi i64 [ %45, %30 ], [ 0, %.preheader391 ] + %.3255461 = phi ptr [ %44, %30 ], [ %.2254487, %.preheader391 ] %27 = phi i64 [ %46, %30 ], [ %.promoted, %.preheader391 ] %28 = sub i64 %2, %27 %29 = icmp ugt i64 %28, 7 br i1 %29, label %30, label %.critedge -30: ; preds = %.lr.ph458 - %31 = mul i64 %.1244457, 100000000 - %.0.copyload98 = load i64, ptr %.3255455, align 1 +30: ; preds = %.lr.ph464 + %31 = mul i64 %.1244463, 100000000 + %.0.copyload98 = load i64, ptr %.3255461, align 1 %32 = add i64 %.0.copyload98, -3472328296227680304 %33 = mul i64 %32, 10 %34 = lshr i64 %32, 8 @@ -3850,8 +3850,8 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS %41 = add i64 %40, %37 %42 = lshr i64 %41, 32 %43 = add i64 %42, %31 - %44 = getelementptr inbounds nuw i8, ptr %.3255455, i64 8 - %45 = add nuw nsw i64 %.1246456, 8 + %44 = getelementptr inbounds nuw i8, ptr %.3255461, i64 8 + %45 = add nuw nsw i64 %.1246462, 8 %46 = add i64 %27, 8 store i64 %46, ptr %3, align 8 %47 = ptrtoint ptr %44 to i64 @@ -3859,52 +3859,52 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS %49 = icmp slt i64 %48, 8 %.not276 = icmp eq i64 %45, 16 %or.cond = select i1 %49, i1 true, i1 %.not276 - br i1 %or.cond, label %.critedge, label %.lr.ph458, !llvm.loop !47 + br i1 %or.cond, label %.critedge, label %.lr.ph464, !llvm.loop !47 -.critedge: ; preds = %.lr.ph458, %30, %.preheader391 - %.promoted466 = phi i64 [ %.promoted, %.preheader391 ], [ %46, %30 ], [ %27, %.lr.ph458 ] - %.3255.lcssa = phi ptr [ %.2254481, %.preheader391 ], [ %44, %30 ], [ %.3255455, %.lr.ph458 ] - %.1246.lcssa = phi i64 [ 0, %.preheader391 ], [ %45, %30 ], [ %.1246456, %.lr.ph458 ] - %.1244.lcssa = phi i64 [ 0, %.preheader391 ], [ %43, %30 ], [ %.1244457, %.lr.ph458 ] +.critedge: ; preds = %.lr.ph464, %30, %.preheader391 + %.promoted472 = phi i64 [ %.promoted, %.preheader391 ], [ %46, %30 ], [ %27, %.lr.ph464 ] + %.3255.lcssa = phi ptr [ %.2254487, %.preheader391 ], [ %44, %30 ], [ %.3255461, %.lr.ph464 ] + %.1246.lcssa = phi i64 [ 0, %.preheader391 ], [ %45, %30 ], [ %.1246462, %.lr.ph464 ] + %.1244.lcssa = phi i64 [ 0, %.preheader391 ], [ %43, %30 ], [ %.1244463, %.lr.ph464 ] %50 = icmp ugt i64 %.1246.lcssa, 18 - %.not277467 = icmp eq ptr %.3255.lcssa, %10 - %or.cond285468 = select i1 %50, i1 true, i1 %.not277467 - br i1 %or.cond285468, label %.critedge2, label %.lr.ph472.preheader + %.not277473 = icmp eq ptr %.3255.lcssa, %10 + %or.cond285474 = select i1 %50, i1 true, i1 %.not277473 + br i1 %or.cond285474, label %.critedge2, label %.lr.ph478.preheader -.lr.ph472.preheader: ; preds = %.critedge - %umax = tail call i64 @llvm.umax.i64(i64 %.promoted466, i64 %2) +.lr.ph478.preheader: ; preds = %.critedge + %umax = tail call i64 @llvm.umax.i64(i64 %.promoted472, i64 %2) %51 = add i64 %.1246.lcssa, %umax - %52 = sub i64 %51, %.promoted466 - br label %.lr.ph472 - -.lr.ph472: ; preds = %.lr.ph472.preheader, %54 - %.2471 = phi i64 [ %59, %54 ], [ %.1244.lcssa, %.lr.ph472.preheader ] - %.2247470 = phi i64 [ %61, %54 ], [ %.1246.lcssa, %.lr.ph472.preheader ] - %.4256469 = phi ptr [ %60, %54 ], [ %.3255.lcssa, %.lr.ph472.preheader ] - %53 = phi i64 [ %62, %54 ], [ %.promoted466, %.lr.ph472.preheader ] - %exitcond.not = icmp eq i64 %.2247470, %52 + %52 = sub i64 %51, %.promoted472 + br label %.lr.ph478 + +.lr.ph478: ; preds = %.lr.ph478.preheader, %54 + %.2477 = phi i64 [ %59, %54 ], [ %.1244.lcssa, %.lr.ph478.preheader ] + %.2247476 = phi i64 [ %61, %54 ], [ %.1246.lcssa, %.lr.ph478.preheader ] + %.4256475 = phi ptr [ %60, %54 ], [ %.3255.lcssa, %.lr.ph478.preheader ] + %53 = phi i64 [ %62, %54 ], [ %.promoted472, %.lr.ph478.preheader ] + %exitcond.not = icmp eq i64 %.2247476, %52 br i1 %exitcond.not, label %.critedge2, label %54 -54: ; preds = %.lr.ph472 - %55 = mul i64 %.2471, 10 - %56 = load i8, ptr %.4256469, align 1 +54: ; preds = %.lr.ph478 + %55 = mul i64 %.2477, 10 + %56 = load i8, ptr %.4256475, align 1 %57 = sext i8 %56 to i64 %58 = add i64 %55, -48 %59 = add i64 %58, %57 - %60 = getelementptr inbounds nuw i8, ptr %.4256469, i64 1 - %61 = add i64 %.2247470, 1 + %60 = getelementptr inbounds nuw i8, ptr %.4256475, i64 1 + %61 = add i64 %.2247476, 1 %62 = add nuw i64 %53, 1 store i64 %62, ptr %3, align 8 - %63 = icmp ugt i64 %.2247470, 17 + %63 = icmp ugt i64 %.2247476, 17 %.not277 = icmp eq ptr %60, %10 %or.cond285 = select i1 %63, i1 true, i1 %.not277 - br i1 %or.cond285, label %.critedge2, label %.lr.ph472, !llvm.loop !48 + br i1 %or.cond285, label %.critedge2, label %.lr.ph478, !llvm.loop !48 -.critedge2: ; preds = %.lr.ph472, %54, %.critedge - %64 = phi i64 [ %.promoted466, %.critedge ], [ %62, %54 ], [ %53, %.lr.ph472 ] - %.4256.lcssa = phi ptr [ %.3255.lcssa, %.critedge ], [ %60, %54 ], [ %.4256469, %.lr.ph472 ] - %.2247.lcssa = phi i64 [ %.1246.lcssa, %.critedge ], [ %61, %54 ], [ %52, %.lr.ph472 ] - %.2.lcssa = phi i64 [ %.1244.lcssa, %.critedge ], [ %59, %54 ], [ %.2471, %.lr.ph472 ] +.critedge2: ; preds = %.lr.ph478, %54, %.critedge + %64 = phi i64 [ %.promoted472, %.critedge ], [ %62, %54 ], [ %53, %.lr.ph478 ] + %.4256.lcssa = phi ptr [ %.3255.lcssa, %.critedge ], [ %60, %54 ], [ %.4256475, %.lr.ph478 ] + %.2247.lcssa = phi i64 [ %.1246.lcssa, %.critedge ], [ %61, %54 ], [ %52, %.lr.ph478 ] + %.2.lcssa = phi i64 [ %.1244.lcssa, %.critedge ], [ %59, %54 ], [ %.2477, %.lr.ph478 ] %65 = icmp eq i64 %64, %2 %66 = load i16, ptr %23, align 8 %.not25.i.i = icmp eq i16 %66, 0 @@ -3940,7 +3940,7 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS ._crit_edge.i.i: ; preds = %71 %85 = icmp ugt i16 %82, 61 - %.not.i.i = icmp eq i64 %79, 0 + %.not.i.i = icmp ult i128 %77, 18446744073709551616 %brmerge.i.i = or i1 %85, %.not.i.i br i1 %brmerge.i.i, label %_ZN10fast_float6bigint3mulEm.exit, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i @@ -3990,37 +3990,37 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa %103 = ptrtoint ptr %.4256.lcssa to i64 %104 = sub i64 %11, %103 %105 = icmp sgt i64 %104, 7 - br i1 %105, label %.lr.ph484, label %.preheader388 + br i1 %105, label %.lr.ph490, label %.preheader388 .preheader388: ; preds = %106, %_ZN10fast_float6bigint3addEm.exit %.0187.lcssa = phi ptr [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ], [ %107, %106 ] - %.not278486 = icmp eq ptr %.0187.lcssa, %10 - br i1 %.not278486, label %.loopexit389, label %.lr.ph488 + %.not278492 = icmp eq ptr %.0187.lcssa, %10 + br i1 %.not278492, label %.loopexit389, label %.lr.ph494 -.lr.ph484: ; preds = %_ZN10fast_float6bigint3addEm.exit, %106 - %.0187483 = phi ptr [ %107, %106 ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ] - %.0.copyload150 = load i64, ptr %.0187483, align 1 +.lr.ph490: ; preds = %_ZN10fast_float6bigint3addEm.exit, %106 + %.0187489 = phi ptr [ %107, %106 ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ] + %.0.copyload150 = load i64, ptr %.0187489, align 1 %.not280 = icmp eq i64 %.0.copyload150, 3472328296227680304 br i1 %.not280, label %106, label %.loopexit389 -106: ; preds = %.lr.ph484 - %107 = getelementptr inbounds nuw i8, ptr %.0187483, i64 8 +106: ; preds = %.lr.ph490 + %107 = getelementptr inbounds nuw i8, ptr %.0187489, i64 8 %108 = ptrtoint ptr %107 to i64 %109 = sub i64 %11, %108 %110 = icmp sgt i64 %109, 7 - br i1 %110, label %.lr.ph484, label %.preheader388, !llvm.loop !51 + br i1 %110, label %.lr.ph490, label %.preheader388, !llvm.loop !51 -.lr.ph488: ; preds = %.preheader388, %.lr.ph488 - %.1188487 = phi ptr [ %112, %.lr.ph488 ], [ %.0187.lcssa, %.preheader388 ] - %111 = load i8, ptr %.1188487, align 1 +.lr.ph494: ; preds = %.preheader388, %.lr.ph494 + %.1188493 = phi ptr [ %112, %.lr.ph494 ], [ %.0187.lcssa, %.preheader388 ] + %111 = load i8, ptr %.1188493, align 1 %.not279.not = icmp ne i8 %111, 48 - %112 = getelementptr inbounds nuw i8, ptr %.1188487, i64 1 + %112 = getelementptr inbounds nuw i8, ptr %.1188493, i64 1 %.not278 = icmp eq ptr %112, %10 - %or.cond792 = select i1 %.not279.not, i1 true, i1 %.not278 - br i1 %or.cond792, label %.loopexit389, label %.lr.ph488, !llvm.loop !52 + %or.cond810 = select i1 %.not279.not, i1 true, i1 %.not278 + br i1 %or.cond810, label %.loopexit389, label %.lr.ph494, !llvm.loop !52 -.loopexit389: ; preds = %.lr.ph484, %.lr.ph488, %.preheader388 - %.0185 = phi i1 [ false, %.preheader388 ], [ %.not279.not, %.lr.ph488 ], [ true, %.lr.ph484 ] +.loopexit389: ; preds = %.lr.ph490, %.lr.ph494, %.preheader388 + %.0185 = phi i1 [ false, %.preheader388 ], [ %.not279.not, %.lr.ph494 ], [ true, %.lr.ph490 ] %113 = getelementptr inbounds nuw i8, ptr %1, i64 48 %114 = load ptr, ptr %113, align 8 %.not281 = icmp eq ptr %114, null @@ -4032,34 +4032,34 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa %116 = getelementptr inbounds i8, ptr %114, i64 %.sroa.2.0.copyload %117 = ptrtoint ptr %116 to i64 %118 = icmp sgt i64 %.sroa.2.0.copyload, 7 - br i1 %118, label %.lr.ph494, label %.preheader385 + br i1 %118, label %.lr.ph500, label %.preheader385 .preheader385: ; preds = %119, %115 %.0184.lcssa = phi ptr [ %114, %115 ], [ %120, %119 ] - %.not282496 = icmp eq ptr %.0184.lcssa, %116 - br i1 %.not282496, label %.loopexit386, label %.lr.ph498 + %.not282502 = icmp eq ptr %.0184.lcssa, %116 + br i1 %.not282502, label %.loopexit386, label %.lr.ph504 -.lr.ph494: ; preds = %115, %119 - %.0184492 = phi ptr [ %120, %119 ], [ %114, %115 ] - %.0.copyload161 = load i64, ptr %.0184492, align 1 +.lr.ph500: ; preds = %115, %119 + %.0184498 = phi ptr [ %120, %119 ], [ %114, %115 ] + %.0.copyload161 = load i64, ptr %.0184498, align 1 %.not284 = icmp eq i64 %.0.copyload161, 3472328296227680304 br i1 %.not284, label %119, label %.loopexit386.thread -119: ; preds = %.lr.ph494 - %120 = getelementptr inbounds nuw i8, ptr %.0184492, i64 8 +119: ; preds = %.lr.ph500 + %120 = getelementptr inbounds nuw i8, ptr %.0184498, i64 8 %121 = ptrtoint ptr %120 to i64 %122 = sub i64 %117, %121 %123 = icmp sgt i64 %122, 7 - br i1 %123, label %.lr.ph494, label %.preheader385, !llvm.loop !51 + br i1 %123, label %.lr.ph500, label %.preheader385, !llvm.loop !51 -124: ; preds = %.lr.ph498 - %125 = getelementptr inbounds nuw i8, ptr %.1497, i64 1 +124: ; preds = %.lr.ph504 + %125 = getelementptr inbounds nuw i8, ptr %.1503, i64 1 %.not282 = icmp eq ptr %125, %116 - br i1 %.not282, label %.loopexit386, label %.lr.ph498, !llvm.loop !52 + br i1 %.not282, label %.loopexit386, label %.lr.ph504, !llvm.loop !52 -.lr.ph498: ; preds = %.preheader385, %124 - %.1497 = phi ptr [ %125, %124 ], [ %.0184.lcssa, %.preheader385 ] - %126 = load i8, ptr %.1497, align 1 +.lr.ph504: ; preds = %.preheader385, %124 + %.1503 = phi ptr [ %125, %124 ], [ %.0184.lcssa, %.preheader385 ] + %126 = load i8, ptr %.1503, align 1 %.not283.not = icmp eq i8 %126, 48 br i1 %.not283.not, label %124, label %.loopexit386.thread @@ -4069,7 +4069,7 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa 127: ; preds = %.loopexit389 br i1 %.0185, label %.loopexit386.thread, label %.loopexit -.loopexit386.thread: ; preds = %.lr.ph494, %.lr.ph498, %.loopexit386, %127 +.loopexit386.thread: ; preds = %.lr.ph500, %.lr.ph504, %.loopexit386, %127 %128 = load i16, ptr %23, align 8 %.not25.i.i292 = icmp eq i16 %128, 0 br i1 %.not25.i.i292, label %_ZN10fast_float6bigint3mulEm.exit301.preheader, label %.lr.ph.i.i293 @@ -4095,7 +4095,7 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa ._crit_edge.i.i296: ; preds = %.lr.ph.i.i293 %142 = icmp ugt i16 %139, 61 - %.not.i.i297 = icmp eq i64 %136, 0 + %.not.i.i297 = icmp samesign ult i128 %134, 18446744073709551616 %brmerge.i.i298 = or i1 %142, %.not.i.i297 br i1 %brmerge.i.i298, label %_ZN10fast_float6bigint3mulEm.exit301.preheader, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i299 @@ -4169,7 +4169,7 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i307: ; preds = %.crite ._crit_edge.i.i313: ; preds = %164 %178 = icmp ugt i16 %175, 61 - %.not.i.i314 = icmp eq i64 %172, 0 + %.not.i.i314 = icmp ult i128 %170, 18446744073709551616 %brmerge.i.i315 = or i1 %178, %.not.i.i314 br i1 %brmerge.i.i315, label %_ZN10fast_float6bigint3mulEm.exit318, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i316 @@ -4217,16 +4217,16 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i325: ; preds = %.crite _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_float6bigint3mulEm.exit318, %.critedge.i.i323, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i325 %.not265 = icmp eq ptr %.4256.lcssa, %10 - br i1 %.not265, label %._crit_edge482, label %.preheader391, !llvm.loop !53 + br i1 %.not265, label %._crit_edge488, label %.preheader391, !llvm.loop !53 -._crit_edge482: ; preds = %_ZN10fast_float6bigint3addEm.exit326, %._crit_edge, %._crit_edge451 +._crit_edge488: ; preds = %_ZN10fast_float6bigint3addEm.exit326, %._crit_edge, %._crit_edge457 %196 = getelementptr inbounds nuw i8, ptr %1, i64 48 %197 = load ptr, ptr %196, align 8 %198 = ptrtoint ptr %197 to i64 %.not266 = icmp eq ptr %197, null br i1 %.not266, label %.loopexit, label %199 -199: ; preds = %._crit_edge482 +199: ; preds = %._crit_edge488 %200 = getelementptr inbounds nuw i8, ptr %1, i64 56 %201 = load i64, ptr %200, align 8 %202 = getelementptr inbounds i8, ptr %197, i64 %201 @@ -4237,52 +4237,52 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo .preheader384: ; preds = %199 %205 = ptrtoint ptr %202 to i64 %206 = icmp sgt i64 %201, 7 - br i1 %206, label %.lr.ph503, label %._crit_edge504 + br i1 %206, label %.lr.ph509, label %._crit_edge510 -.lr.ph503: ; preds = %.preheader384, %207 - %.6258502 = phi ptr [ %208, %207 ], [ %197, %.preheader384 ] - %.0.copyload = load i64, ptr %.6258502, align 1 +.lr.ph509: ; preds = %.preheader384, %207 + %.6258508 = phi ptr [ %208, %207 ], [ %197, %.preheader384 ] + %.0.copyload = load i64, ptr %.6258508, align 1 %.not267 = icmp eq i64 %.0.copyload, 3472328296227680304 - br i1 %.not267, label %207, label %.lr.ph503.._crit_edge504.loopexit_crit_edge + br i1 %.not267, label %207, label %.lr.ph509.._crit_edge510.loopexit_crit_edge -.lr.ph503.._crit_edge504.loopexit_crit_edge: ; preds = %.lr.ph503 - %.pre = ptrtoint ptr %.6258502 to i64 - br label %._crit_edge504 +.lr.ph509.._crit_edge510.loopexit_crit_edge: ; preds = %.lr.ph509 + %.pre = ptrtoint ptr %.6258508 to i64 + br label %._crit_edge510 -207: ; preds = %.lr.ph503 - %208 = getelementptr inbounds nuw i8, ptr %.6258502, i64 8 +207: ; preds = %.lr.ph509 + %208 = getelementptr inbounds nuw i8, ptr %.6258508, i64 8 %209 = ptrtoint ptr %208 to i64 %210 = sub i64 %205, %209 %211 = icmp sgt i64 %210, 7 - br i1 %211, label %.lr.ph503, label %._crit_edge504, !llvm.loop !45 + br i1 %211, label %.lr.ph509, label %._crit_edge510, !llvm.loop !45 -._crit_edge504: ; preds = %207, %.lr.ph503.._crit_edge504.loopexit_crit_edge, %.preheader384 - %.6258.lcssa610.pre-phi = phi i64 [ %198, %.preheader384 ], [ %.pre, %.lr.ph503.._crit_edge504.loopexit_crit_edge ], [ %209, %207 ] - %.6258.lcssa = phi ptr [ %197, %.preheader384 ], [ %.6258502, %.lr.ph503.._crit_edge504.loopexit_crit_edge ], [ %208, %207 ] - %.not268508 = icmp eq ptr %.6258.lcssa, %202 - br i1 %.not268508, label %.loopexit, label %.lr.ph511.preheader +._crit_edge510: ; preds = %207, %.lr.ph509.._crit_edge510.loopexit_crit_edge, %.preheader384 + %.6258.lcssa622.pre-phi = phi i64 [ %198, %.preheader384 ], [ %.pre, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %209, %207 ] + %.6258.lcssa = phi ptr [ %197, %.preheader384 ], [ %.6258508, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %208, %207 ] + %.not268514 = icmp eq ptr %.6258.lcssa, %202 + br i1 %.not268514, label %.loopexit, label %.lr.ph517.preheader -.lr.ph511.preheader: ; preds = %._crit_edge504 +.lr.ph517.preheader: ; preds = %._crit_edge510 %212 = add i64 %201, %198 - %213 = sub i64 %212, %.6258.lcssa610.pre-phi - %scevgep611 = getelementptr i8, ptr %.6258.lcssa, i64 %213 - br label %.lr.ph511 + %213 = sub i64 %212, %.6258.lcssa622.pre-phi + %scevgep623 = getelementptr i8, ptr %.6258.lcssa, i64 %213 + br label %.lr.ph517 -.lr.ph511: ; preds = %.lr.ph511.preheader, %215 - %.7509 = phi ptr [ %216, %215 ], [ %.6258.lcssa, %.lr.ph511.preheader ] - %214 = load i8, ptr %.7509, align 1 +.lr.ph517: ; preds = %.lr.ph517.preheader, %215 + %.7515 = phi ptr [ %216, %215 ], [ %.6258.lcssa, %.lr.ph517.preheader ] + %214 = load i8, ptr %.7515, align 1 %.not269 = icmp eq i8 %214, 48 br i1 %.not269, label %215, label %.loopexit383 -215: ; preds = %.lr.ph511 - %216 = getelementptr inbounds nuw i8, ptr %.7509, i64 1 +215: ; preds = %.lr.ph517 + %216 = getelementptr inbounds nuw i8, ptr %.7515, i64 1 %.not268 = icmp eq ptr %216, %202 - br i1 %.not268, label %.loopexit383, label %.lr.ph511, !llvm.loop !46 + br i1 %.not268, label %.loopexit383, label %.lr.ph517, !llvm.loop !46 -.loopexit383: ; preds = %.lr.ph511, %215, %199 - %.5257 = phi ptr [ %197, %199 ], [ %.7509, %.lr.ph511 ], [ %scevgep611, %215 ] - %.not270543 = icmp eq ptr %.5257, %202 - br i1 %.not270543, label %.loopexit, label %.preheader381.lr.ph +.loopexit383: ; preds = %.lr.ph517, %215, %199 + %.5257 = phi ptr [ %197, %199 ], [ %.7515, %.lr.ph517 ], [ %scevgep623, %215 ] + %.not270549 = icmp eq ptr %.5257, %202 + br i1 %.not270549, label %.loopexit, label %.preheader381.lr.ph .preheader381.lr.ph: ; preds = %.loopexit383 %217 = ptrtoint ptr %202 to i64 @@ -4290,25 +4290,25 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo br label %.preheader381 .preheader381: ; preds = %.preheader381.lr.ph, %_ZN10fast_float6bigint3addEm.exit379 - %.8544 = phi ptr [ %.5257, %.preheader381.lr.ph ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit379 ] - %.promoted515 = load i64, ptr %3, align 8 - %219 = ptrtoint ptr %.8544 to i64 + %.8550 = phi ptr [ %.5257, %.preheader381.lr.ph ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit379 ] + %.promoted521 = load i64, ptr %3, align 8 + %219 = ptrtoint ptr %.8550 to i64 %220 = sub i64 %217, %219 %221 = icmp slt i64 %220, 8 - br i1 %221, label %.critedge4, label %.lr.ph519 + br i1 %221, label %.critedge4, label %.lr.ph525 -.lr.ph519: ; preds = %.preheader381, %225 - %.5518 = phi i64 [ %238, %225 ], [ 0, %.preheader381 ] - %.5250517 = phi i64 [ %240, %225 ], [ 0, %.preheader381 ] - %.9516 = phi ptr [ %239, %225 ], [ %.8544, %.preheader381 ] - %222 = phi i64 [ %241, %225 ], [ %.promoted515, %.preheader381 ] +.lr.ph525: ; preds = %.preheader381, %225 + %.5524 = phi i64 [ %238, %225 ], [ 0, %.preheader381 ] + %.5250523 = phi i64 [ %240, %225 ], [ 0, %.preheader381 ] + %.9522 = phi ptr [ %239, %225 ], [ %.8550, %.preheader381 ] + %222 = phi i64 [ %241, %225 ], [ %.promoted521, %.preheader381 ] %223 = sub i64 %2, %222 %224 = icmp ugt i64 %223, 7 br i1 %224, label %225, label %.critedge4 -225: ; preds = %.lr.ph519 - %226 = mul i64 %.5518, 100000000 - %.0.copyload82 = load i64, ptr %.9516, align 1 +225: ; preds = %.lr.ph525 + %226 = mul i64 %.5524, 100000000 + %.0.copyload82 = load i64, ptr %.9522, align 1 %227 = add i64 %.0.copyload82, -3472328296227680304 %228 = mul i64 %227, 10 %229 = lshr i64 %227, 8 @@ -4321,8 +4321,8 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo %236 = add i64 %235, %232 %237 = lshr i64 %236, 32 %238 = add i64 %237, %226 - %239 = getelementptr inbounds nuw i8, ptr %.9516, i64 8 - %240 = add nuw nsw i64 %.5250517, 8 + %239 = getelementptr inbounds nuw i8, ptr %.9522, i64 8 + %240 = add nuw nsw i64 %.5250523, 8 %241 = add i64 %222, 8 store i64 %241, ptr %3, align 8 %242 = ptrtoint ptr %239 to i64 @@ -4330,52 +4330,52 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo %244 = icmp slt i64 %243, 8 %.not271 = icmp eq i64 %240, 16 %or.cond286 = select i1 %244, i1 true, i1 %.not271 - br i1 %or.cond286, label %.critedge4, label %.lr.ph519, !llvm.loop !54 + br i1 %or.cond286, label %.critedge4, label %.lr.ph525, !llvm.loop !54 -.critedge4: ; preds = %.lr.ph519, %225, %.preheader381 - %.promoted529 = phi i64 [ %.promoted515, %.preheader381 ], [ %241, %225 ], [ %222, %.lr.ph519 ] - %.9.lcssa = phi ptr [ %.8544, %.preheader381 ], [ %239, %225 ], [ %.9516, %.lr.ph519 ] - %.5250.lcssa = phi i64 [ 0, %.preheader381 ], [ %240, %225 ], [ %.5250517, %.lr.ph519 ] - %.5.lcssa = phi i64 [ 0, %.preheader381 ], [ %238, %225 ], [ %.5518, %.lr.ph519 ] +.critedge4: ; preds = %.lr.ph525, %225, %.preheader381 + %.promoted535 = phi i64 [ %.promoted521, %.preheader381 ], [ %241, %225 ], [ %222, %.lr.ph525 ] + %.9.lcssa = phi ptr [ %.8550, %.preheader381 ], [ %239, %225 ], [ %.9522, %.lr.ph525 ] + %.5250.lcssa = phi i64 [ 0, %.preheader381 ], [ %240, %225 ], [ %.5250523, %.lr.ph525 ] + %.5.lcssa = phi i64 [ 0, %.preheader381 ], [ %238, %225 ], [ %.5524, %.lr.ph525 ] %245 = icmp ugt i64 %.5250.lcssa, 18 - %.not272530 = icmp eq ptr %.9.lcssa, %202 - %or.cond287531 = select i1 %245, i1 true, i1 %.not272530 - br i1 %or.cond287531, label %.critedge6, label %.lr.ph535.preheader - -.lr.ph535.preheader: ; preds = %.critedge4 - %umax612 = tail call i64 @llvm.umax.i64(i64 %.promoted529, i64 %2) - %246 = add i64 %.5250.lcssa, %umax612 - %247 = sub i64 %246, %.promoted529 - br label %.lr.ph535 - -.lr.ph535: ; preds = %.lr.ph535.preheader, %249 - %.6534 = phi i64 [ %254, %249 ], [ %.5.lcssa, %.lr.ph535.preheader ] - %.6251533 = phi i64 [ %256, %249 ], [ %.5250.lcssa, %.lr.ph535.preheader ] - %.10532 = phi ptr [ %255, %249 ], [ %.9.lcssa, %.lr.ph535.preheader ] - %248 = phi i64 [ %257, %249 ], [ %.promoted529, %.lr.ph535.preheader ] - %exitcond613.not = icmp eq i64 %.6251533, %247 - br i1 %exitcond613.not, label %.critedge6, label %249 - -249: ; preds = %.lr.ph535 - %250 = mul i64 %.6534, 10 - %251 = load i8, ptr %.10532, align 1 + %.not272536 = icmp eq ptr %.9.lcssa, %202 + %or.cond287537 = select i1 %245, i1 true, i1 %.not272536 + br i1 %or.cond287537, label %.critedge6, label %.lr.ph541.preheader + +.lr.ph541.preheader: ; preds = %.critedge4 + %umax624 = tail call i64 @llvm.umax.i64(i64 %.promoted535, i64 %2) + %246 = add i64 %.5250.lcssa, %umax624 + %247 = sub i64 %246, %.promoted535 + br label %.lr.ph541 + +.lr.ph541: ; preds = %.lr.ph541.preheader, %249 + %.6540 = phi i64 [ %254, %249 ], [ %.5.lcssa, %.lr.ph541.preheader ] + %.6251539 = phi i64 [ %256, %249 ], [ %.5250.lcssa, %.lr.ph541.preheader ] + %.10538 = phi ptr [ %255, %249 ], [ %.9.lcssa, %.lr.ph541.preheader ] + %248 = phi i64 [ %257, %249 ], [ %.promoted535, %.lr.ph541.preheader ] + %exitcond625.not = icmp eq i64 %.6251539, %247 + br i1 %exitcond625.not, label %.critedge6, label %249 + +249: ; preds = %.lr.ph541 + %250 = mul i64 %.6540, 10 + %251 = load i8, ptr %.10538, align 1 %252 = sext i8 %251 to i64 %253 = add i64 %250, -48 %254 = add i64 %253, %252 - %255 = getelementptr inbounds nuw i8, ptr %.10532, i64 1 - %256 = add i64 %.6251533, 1 + %255 = getelementptr inbounds nuw i8, ptr %.10538, i64 1 + %256 = add i64 %.6251539, 1 %257 = add nuw i64 %248, 1 store i64 %257, ptr %3, align 8 - %258 = icmp ugt i64 %.6251533, 17 + %258 = icmp ugt i64 %.6251539, 17 %.not272 = icmp eq ptr %255, %202 %or.cond287 = select i1 %258, i1 true, i1 %.not272 - br i1 %or.cond287, label %.critedge6, label %.lr.ph535, !llvm.loop !55 + br i1 %or.cond287, label %.critedge6, label %.lr.ph541, !llvm.loop !55 -.critedge6: ; preds = %.lr.ph535, %249, %.critedge4 - %259 = phi i64 [ %.promoted529, %.critedge4 ], [ %257, %249 ], [ %248, %.lr.ph535 ] - %.10.lcssa = phi ptr [ %.9.lcssa, %.critedge4 ], [ %255, %249 ], [ %.10532, %.lr.ph535 ] - %.6251.lcssa = phi i64 [ %.5250.lcssa, %.critedge4 ], [ %256, %249 ], [ %247, %.lr.ph535 ] - %.6.lcssa = phi i64 [ %.5.lcssa, %.critedge4 ], [ %254, %249 ], [ %.6534, %.lr.ph535 ] +.critedge6: ; preds = %.lr.ph541, %249, %.critedge4 + %259 = phi i64 [ %.promoted535, %.critedge4 ], [ %257, %249 ], [ %248, %.lr.ph541 ] + %.10.lcssa = phi ptr [ %.9.lcssa, %.critedge4 ], [ %255, %249 ], [ %.10538, %.lr.ph541 ] + %.6251.lcssa = phi i64 [ %.5250.lcssa, %.critedge4 ], [ %256, %249 ], [ %247, %.lr.ph541 ] + %.6.lcssa = phi i64 [ %.5.lcssa, %.critedge4 ], [ %254, %249 ], [ %.6540, %.lr.ph541 ] %260 = icmp eq i64 %259, %2 %261 = load i16, ptr %218, align 8 %.not25.i.i327 = icmp eq i16 %261, 0 @@ -4411,7 +4411,7 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo ._crit_edge.i.i331: ; preds = %266 %280 = icmp ugt i16 %277, 61 - %.not.i.i332 = icmp eq i64 %274, 0 + %.not.i.i332 = icmp ult i128 %272, 18446744073709551616 %brmerge.i.i333 = or i1 %280, %.not.i.i332 br i1 %brmerge.i.i333, label %_ZN10fast_float6bigint3mulEm.exit336, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i334 @@ -4461,38 +4461,38 @@ _ZN10fast_float6bigint3addEm.exit344: ; preds = %287, %_ZN10fast_flo %298 = ptrtoint ptr %.10.lcssa to i64 %299 = sub i64 %217, %298 %300 = icmp sgt i64 %299, 7 - br i1 %300, label %.lr.ph546, label %.preheader + br i1 %300, label %.lr.ph552, label %.preheader .preheader: ; preds = %301, %_ZN10fast_float6bigint3addEm.exit344 %.0190.lcssa = phi ptr [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ], [ %302, %301 ] - %.not273548 = icmp eq ptr %.0190.lcssa, %202 - br i1 %.not273548, label %.loopexit, label %.lr.ph550 + %.not273554 = icmp eq ptr %.0190.lcssa, %202 + br i1 %.not273554, label %.loopexit, label %.lr.ph556 -.lr.ph546: ; preds = %_ZN10fast_float6bigint3addEm.exit344, %301 - %.0190545 = phi ptr [ %302, %301 ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ] - %.0.copyload139 = load i64, ptr %.0190545, align 1 +.lr.ph552: ; preds = %_ZN10fast_float6bigint3addEm.exit344, %301 + %.0190551 = phi ptr [ %302, %301 ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ] + %.0.copyload139 = load i64, ptr %.0190551, align 1 %.not275 = icmp eq i64 %.0.copyload139, 3472328296227680304 br i1 %.not275, label %301, label %.critedge289 -301: ; preds = %.lr.ph546 - %302 = getelementptr inbounds nuw i8, ptr %.0190545, i64 8 +301: ; preds = %.lr.ph552 + %302 = getelementptr inbounds nuw i8, ptr %.0190551, i64 8 %303 = ptrtoint ptr %302 to i64 %304 = sub i64 %217, %303 %305 = icmp sgt i64 %304, 7 - br i1 %305, label %.lr.ph546, label %.preheader, !llvm.loop !51 + br i1 %305, label %.lr.ph552, label %.preheader, !llvm.loop !51 -306: ; preds = %.lr.ph550 - %307 = getelementptr inbounds nuw i8, ptr %.1191549, i64 1 +306: ; preds = %.lr.ph556 + %307 = getelementptr inbounds nuw i8, ptr %.1191555, i64 1 %.not273 = icmp eq ptr %307, %202 - br i1 %.not273, label %.loopexit, label %.lr.ph550, !llvm.loop !52 + br i1 %.not273, label %.loopexit, label %.lr.ph556, !llvm.loop !52 -.lr.ph550: ; preds = %.preheader, %306 - %.1191549 = phi ptr [ %307, %306 ], [ %.0190.lcssa, %.preheader ] - %308 = load i8, ptr %.1191549, align 1 +.lr.ph556: ; preds = %.preheader, %306 + %.1191555 = phi ptr [ %307, %306 ], [ %.0190.lcssa, %.preheader ] + %308 = load i8, ptr %.1191555, align 1 %.not274 = icmp eq i8 %308, 48 br i1 %.not274, label %306, label %.critedge289 -.critedge289: ; preds = %.lr.ph546, %.lr.ph550 +.critedge289: ; preds = %.lr.ph552, %.lr.ph556 %309 = load i16, ptr %218, align 8 %.not25.i.i345 = icmp eq i16 %309, 0 br i1 %.not25.i.i345, label %_ZN10fast_float6bigint3mulEm.exit354.preheader, label %.lr.ph.i.i346 @@ -4518,7 +4518,7 @@ _ZN10fast_float6bigint3addEm.exit344: ; preds = %287, %_ZN10fast_flo ._crit_edge.i.i349: ; preds = %.lr.ph.i.i346 %323 = icmp ugt i16 %320, 61 - %.not.i.i350 = icmp eq i64 %317, 0 + %.not.i.i350 = icmp samesign ult i128 %315, 18446744073709551616 %brmerge.i.i351 = or i1 %323, %.not.i.i350 br i1 %brmerge.i.i351, label %_ZN10fast_float6bigint3mulEm.exit354.preheader, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i352 @@ -4592,7 +4592,7 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i360: ; preds = %.crite ._crit_edge.i.i366: ; preds = %345 %359 = icmp ugt i16 %356, 61 - %.not.i.i367 = icmp eq i64 %353, 0 + %.not.i.i367 = icmp ult i128 %351, 18446744073709551616 %brmerge.i.i368 = or i1 %359, %.not.i.i367 br i1 %brmerge.i.i368, label %_ZN10fast_float6bigint3mulEm.exit371, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i369 @@ -4648,7 +4648,7 @@ _ZN10fast_float6bigint3addEm.exit379: ; preds = %366, %_ZN10fast_flo store i64 %378, ptr %3, align 8 br label %.loopexit -.loopexit: ; preds = %_ZN10fast_float6bigint3addEm.exit379, %306, %.loopexit.sink.split, %._crit_edge504, %.loopexit386, %.loopexit383, %.preheader, %._crit_edge482, %127 +.loopexit: ; preds = %_ZN10fast_float6bigint3addEm.exit379, %306, %.loopexit.sink.split, %._crit_edge510, %.loopexit386, %.loopexit383, %.preheader, %._crit_edge488, %127 ret void } @@ -5165,15 +5165,15 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN10fast_float6bigint4pow5Ej(ptr .preheader: ; preds = %11, %2 %.011.lcssa = phi i32 [ %1, %2 ], [ %12, %11 ] %4 = icmp samesign ugt i32 %.011.lcssa, 26 - br i1 %4, label %.lr.ph35, label %._crit_edge + br i1 %4, label %.lr.ph37, label %._crit_edge -.lr.ph35: ; preds = %.preheader +.lr.ph37: ; preds = %.preheader %5 = getelementptr inbounds nuw i8, ptr %0, i64 496 %6 = load i16, ptr %5, align 8 %7 = icmp eq i16 %6, 0 - br i1 %7, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, label %.lr.ph35.split + br i1 %7, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, label %.lr.ph37.split -_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader: ; preds = %.lr.ph35 +_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader: ; preds = %.lr.ph37 %8 = trunc nuw i32 %.011.lcssa to i8 %.lhs.trunc = add i8 %8, -27 %9 = urem i8 %.lhs.trunc, 27 @@ -5181,24 +5181,24 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader br label %._crit_edge .lr.ph: ; preds = %2, %11 - %.01133 = phi i32 [ %12, %11 ], [ %1, %2 ] + %.01135 = phi i32 [ %12, %11 ], [ %1, %2 ] %10 = tail call noundef zeroext i1 @_ZN10fast_float8long_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE(ptr noundef nonnull align 8 dereferenceable(498) %0, ptr nonnull @_ZZN10fast_float6bigint4pow5EjE16large_power_of_5, i64 5) #21 br i1 %10, label %11, label %_ZN10fast_float9large_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE.exit 11: ; preds = %.lr.ph - %12 = add i32 %.01133, -135 + %12 = add i32 %.01135, -135 %13 = icmp ugt i32 %12, 134 br i1 %13, label %.lr.ph, label %.preheader, !llvm.loop !60 -.lr.ph35.split: ; preds = %.lr.ph35, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread - %14 = phi i16 [ %32, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ 1, %.lr.ph35 ] - %.134 = phi i32 [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ %.011.lcssa, %.lr.ph35 ] +.lr.ph37.split: ; preds = %.lr.ph37, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread + %14 = phi i16 [ %32, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ 1, %.lr.ph37 ] + %.136 = phi i32 [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ %.011.lcssa, %.lr.ph37 ] %.not25.i = icmp eq i16 %14, 0 br i1 %.not25.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph35.split, %.lr.ph.i - %.022.i = phi i64 [ %24, %.lr.ph.i ], [ 0, %.lr.ph35.split ] - %.01821.i = phi i64 [ %22, %.lr.ph.i ], [ 0, %.lr.ph35.split ] +.lr.ph.i: ; preds = %.lr.ph37.split, %.lr.ph.i + %.022.i = phi i64 [ %24, %.lr.ph.i ], [ 0, %.lr.ph37.split ] + %.01821.i = phi i64 [ %22, %.lr.ph.i ], [ 0, %.lr.ph37.split ] %15 = getelementptr inbounds nuw i64, ptr %0, i64 %.022.i %16 = load i64, ptr %15, align 8 %17 = zext i64 %16 to i128 @@ -5217,7 +5217,7 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader ._crit_edge.i: ; preds = %.lr.ph.i %28 = icmp ugt i16 %25, 61 - %.not.i = icmp eq i64 %22, 0 + %.not.i = icmp samesign ult i128 %20, 18446744073709551616 %brmerge.i = or i1 %28, %.not.i br i1 %brmerge.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i @@ -5232,11 +5232,11 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; preds = %._crit_edge _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_edge.i br i1 %.not.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, label %_ZN10fast_float9large_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE.exit -_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread: ; preds = %.lr.ph35.split, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit - %32 = phi i16 [ 0, %.lr.ph35.split ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ] - %33 = add nsw i32 %.134, -27 +_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread: ; preds = %.lr.ph37.split, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit + %32 = phi i16 [ 0, %.lr.ph37.split ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ] + %33 = add nsw i32 %.136, -27 %34 = icmp ugt i32 %33, 26 - br i1 %34, label %.lr.ph35.split, label %._crit_edge, !llvm.loop !61 + br i1 %34, label %.lr.ph37.split, label %._crit_edge, !llvm.loop !61 ._crit_edge: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, %.preheader %.1.lcssa = phi i32 [ %.011.lcssa, %.preheader ], [ %.zext, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader ], [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ] @@ -5277,7 +5277,7 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread: ; preds = % ._crit_edge.i16: ; preds = %42 %56 = icmp ugt i16 %53, 61 - %.not.i17 = icmp eq i64 %50, 0 + %.not.i17 = icmp ult i128 %48, 18446744073709551616 %brmerge.i18 = or i1 %56, %.not.i17 br i1 %brmerge.i18, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit21, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i19 @@ -5320,12 +5320,12 @@ _ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit: ; preds = %3 %8 = shl nuw nsw i16 %.fr, 3 %9 = zext nneg i16 %8 to i64 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 dereferenceable(498) %4, ptr nonnull align 8 %0, i64 %9, i1 false) - %.496..496..496..sroa_idx130 = getelementptr inbounds nuw i8, ptr %4, i64 496 - %.496..496..496. = load i16, ptr %.496..496..496..sroa_idx130, align 8 + %.496..496..496..sroa_idx138 = getelementptr inbounds nuw i8, ptr %4, i64 496 + %.496..496..496. = load i16, ptr %.496..496..496..sroa_idx138, align 8 %.496..fr = freeze i16 %.496..496..496. %10 = add i16 %.496..fr, %.fr - %.496..496..496..sroa_idx131 = getelementptr inbounds nuw i8, ptr %4, i64 496 - store i16 %10, ptr %.496..496..496..sroa_idx131, align 8 + %.496..496..496..sroa_idx139 = getelementptr inbounds nuw i8, ptr %4, i64 496 + store i16 %10, ptr %.496..496..496..sroa_idx139, align 8 %.not = icmp eq i64 %2, 0 br i1 %.not, label %.loopexit, label %11 @@ -5359,7 +5359,7 @@ _ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit: ; preds = %3 ._crit_edge.i: ; preds = %14 %28 = icmp ugt i16 %25, 61 - %.not.i = icmp eq i64 %22, 0 + %.not.i = icmp ult i128 %20, 18446744073709551616 %brmerge.i = or i1 %28, %.not.i br i1 %brmerge.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i @@ -5375,9 +5375,9 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_ br i1 %.not.i, label %.critedge.preheader, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit .critedge.preheader: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %11 - %.promoted.i77 = phi i16 [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ 0, %11 ] - %.not60 = icmp eq i64 %2, 1 - br i1 %.not60, label %.loopexit, label %.lr.ph + %.promoted.i81 = phi i16 [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ 0, %11 ] + %.not62 = icmp eq i64 %2, 1 + br i1 %.not62, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.critedge.preheader %32 = getelementptr inbounds nuw i8, ptr %5, i64 496 @@ -5387,8 +5387,8 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_ br i1 %.not.i19, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us - %.01659.us = phi i64 [ %108, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us ], [ 1, %.lr.ph ] - %35 = getelementptr inbounds i64, ptr %1, i64 %.01659.us + %.01661.us = phi i64 [ %108, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us ], [ 1, %.lr.ph ] + %35 = getelementptr inbounds i64, ptr %1, i64 %.01661.us %36 = load i64, ptr %35, align 8 %.not18.us = icmp eq i64 %36, 0 br i1 %.not18.us, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, label %37 @@ -5427,7 +5427,7 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_ ._crit_edge.i24.us: ; preds = %41 %55 = icmp ugt i16 %52, 61 - %.not.i25.us = icmp eq i64 %49, 0 + %.not.i25.us = icmp ult i128 %47, 18446744073709551616 %brmerge.i26.us = or i1 %55, %.not.i25.us br i1 %brmerge.i26.us, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.us, label %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i27.us @@ -5447,14 +5447,14 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us: ; pred %60 = zext i16 %59 to i64 %61 = load i16, ptr %6, align 8 %62 = zext i16 %61 to i64 - %63 = icmp ugt i64 %.01659.us, %62 - %64 = sub nsw i64 %62, %.01659.us + %63 = icmp ugt i64 %.01661.us, %62 + %64 = sub nsw i64 %62, %.01661.us %65 = icmp ult i64 %64, %60 %or.cond.i.us = select i1 %63, i1 true, i1 %65 br i1 %or.cond.i.us, label %66, label %74 66: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us - %67 = add i64 %.01659.us, %60 + %67 = add i64 %.01661.us, %60 %68 = icmp ult i64 %67, 63 br i1 %68, label %69, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit @@ -5476,7 +5476,7 @@ _ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: ; preds = %.lr. br label %74 74: ; preds = %_ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us - %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.01659.us + %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.01661.us %.not.i30.us = icmp eq i16 %59, 0 br i1 %.not.i30.us, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, label %.lr.ph.i31.us @@ -5514,7 +5514,7 @@ _ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: ; preds = %.lr. br i1 %89, label %91, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us 91: ; preds = %._crit_edge.i32.us - %92 = add i64 %.01659.us, %60 + %92 = add i64 %.01661.us, %60 br label %93 93: ; preds = %101, %91 @@ -5547,19 +5547,19 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; preds = %.crite br i1 %105, label %93, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, !llvm.loop !50 _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us: ; preds = %101, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us, %._crit_edge.i32.us, %74, %.lr.ph.split.us - %108 = add nuw i64 %.01659.us, 1 - %exitcond73.not = icmp eq i64 %108, %2 - br i1 %exitcond73.not, label %.loopexit.loopexit, label %.lr.ph.split.us, !llvm.loop !64 + %108 = add nuw i64 %.01661.us, 1 + %exitcond77.not = icmp eq i64 %108, %2 + br i1 %exitcond77.not, label %.loopexit.loopexit, label %.lr.ph.split.us, !llvm.loop !64 .lr.ph.split: ; preds = %.lr.ph, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread - %.01659 = phi i64 [ %111, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ], [ 1, %.lr.ph ] - %109 = getelementptr inbounds i64, ptr %1, i64 %.01659 + %.01661 = phi i64 [ %111, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ], [ 1, %.lr.ph ] + %109 = getelementptr inbounds i64, ptr %1, i64 %.01661 %110 = load i64, ptr %109, align 8 %.not18 = icmp eq i64 %110, 0 br i1 %.not18, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread: ; preds = %.lr.ph.split - %111 = add nuw i64 %.01659, 1 + %111 = add nuw i64 %.01661, 1 %exitcond.not = icmp eq i64 %111, %2 br i1 %exitcond.not, label %.loopexit, label %.lr.ph.split, !llvm.loop !64 @@ -5568,7 +5568,7 @@ _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.t br label %.loopexit .loopexit: ; preds = %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread, %.loopexit.loopexit, %.critedge.preheader, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit - %.promoted.i = phi i16 [ %.promoted.i.pre, %.loopexit.loopexit ], [ %.promoted.i77, %.critedge.preheader ], [ %.fr, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit ], [ %.promoted.i77, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ] + %.promoted.i = phi i16 [ %.promoted.i.pre, %.loopexit.loopexit ], [ %.promoted.i81, %.critedge.preheader ], [ %.fr, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit ], [ %.promoted.i81, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ] %.not1.i = icmp eq i16 %.promoted.i, 0 br i1 %.not1.i, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit, label %.lr.ph.i33 diff --git a/bench/nix/optimized/derivations.ll b/bench/nix/optimized/derivations.ll index 682b9a2996f..9096caf12b0 100644 --- a/bench/nix/optimized/derivations.ll +++ b/bench/nix/optimized/derivations.ll @@ -9905,11 +9905,10 @@ define void @_ZN3nix20hashDerivationModuloERNS_5StoreERKNS_10DerivationEb(ptr de %30 = alloca %"class.std::map.330", align 8 %31 = tail call i24 @_ZNK3nix15BasicDerivation4typeEv(ptr noundef nonnull align 8 dereferenceable(272) %2) %.sroa.2267.0.extract.shift = lshr i24 %31, 16 - %.sroa.2267.0.extract.trunc = trunc nuw nsw i24 %.sroa.2267.0.extract.shift to i8 - %32 = icmp eq i8 %.sroa.2267.0.extract.trunc, 1 + %32 = icmp eq i24 %.sroa.2267.0.extract.shift, 1 %33 = and i24 %31, 256 %34 = icmp ne i24 %33, 0 - %spec.select.i.i.i = and i1 %34, %32 + %spec.select.i.i.i = and i1 %32, %34 br i1 %spec.select.i.i.i, label %35, label %173 35: ; preds = %4 @@ -10329,7 +10328,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3nix4HashESt4less br label %544 173: ; preds = %4 - %174 = icmp eq i8 %.sroa.2267.0.extract.trunc, 2 + %174 = icmp eq i24 %.sroa.2267.0.extract.shift, 2 br i1 %174, label %175, label %215 175: ; preds = %173 diff --git a/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll b/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll index 8dcfb95fe5d..721a413729d 100644 --- a/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll +++ b/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll @@ -11220,116 +11220,119 @@ define noalias noundef align 8 ptr @_ZN12pingora_core10connectors2l46BindTo14set %7 = load i16, ptr %6, align 4, !range !1077 %.not13 = icmp eq i16 %7, 0 %or.cond16 = select i1 %.not, i1 %.not13, i1 false - br i1 %or.cond16, label %39, label %8 + br i1 %or.cond16, label %41, label %8 8: ; preds = %2 %9 = trunc i48 %1 to i1 - %10 = or i16 %.sroa.06.2.extract.trunc, %.sroa.06.4.extract.trunc - %or.cond = icmp ne i16 %10, 0 - %or.cond18.not = select i1 %9, i1 %or.cond, i1 false - br i1 %or.cond18.not, label %12, label %11 + br i1 %9, label %10, label %13 -11: ; preds = %8 +10: ; preds = %8 + %11 = icmp eq i16 %.sroa.06.2.extract.trunc, 0 + %12 = icmp ult i48 %1, 4294967296 + %or.cond = and i1 %12, %11 + br i1 %or.cond, label %13, label %14 + +13: ; preds = %10, %8 store i16 1, ptr %6, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 34 store i16 0, ptr %.sroa.4.0..sroa_idx, align 2 %.sroa.59.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 36 store i16 0, ptr %.sroa.59.0..sroa_idx, align 4 - br label %39 + br label %41 -12: ; preds = %8 +14: ; preds = %10 %.not14 = icmp ne i16 %.sroa.06.2.extract.trunc, 0 - %13 = icmp ult i16 %.sroa.06.2.extract.trunc, %.sroa.06.4.extract.trunc - %or.cond19 = select i1 %.not14, i1 %13, i1 false - br i1 %or.cond19, label %37, label %14 + %15 = icmp ult i16 %.sroa.06.2.extract.trunc, %.sroa.06.4.extract.trunc + %or.cond17 = select i1 %.not14, i1 %15, i1 false + br i1 %or.cond17, label %39, label %16 -14: ; preds = %12 +16: ; preds = %14 call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @"_ZN89_$LT$pingora_error..immut_str..ImmutStr$u20$as$u20$core..convert..From$LT$$RF$str$GT$$GT$4from17h3dd15727f5debf00E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 @anon.6faecb1efa1c25b07169dfca49265c5b.175, i64 noundef 27) - %.sroa.021.0.copyload = load i64, ptr %4, align 8 + %.sroa.019.0.copyload = load i64, ptr %4, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %15 = invoke noundef i8 @"_ZN76_$LT$pingora_error..RetryType$u20$as$u20$core..convert..From$LT$bool$GT$$GT$4from17h714a125d92dedb15E"(i1 noundef zeroext false) - to label %16 unwind label %29, !noalias !1078 + %17 = invoke noundef i8 @"_ZN76_$LT$pingora_error..RetryType$u20$as$u20$core..convert..From$LT$bool$GT$$GT$4from17h714a125d92dedb15E"(i1 noundef zeroext false) + to label %18 unwind label %31, !noalias !1078 -16: ; preds = %14 +18: ; preds = %16 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !1078 - %17 = getelementptr inbounds nuw i8, ptr %3, i64 24 - store i16 11, ptr %17, align 8, !noalias !1082 - %18 = getelementptr inbounds nuw i8, ptr %3, i64 65 - store i8 3, ptr %18, align 1, !noalias !1078 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 64 - store i8 %15, ptr %19, align 8, !noalias !1078 - %20 = getelementptr inbounds nuw i8, ptr %3, i64 48 - store ptr null, ptr %20, align 8, !noalias !1078 - store i64 %.sroa.021.0.copyload, ptr %3, align 8, !noalias !1083 - %.sroa.5.0..sroa_idx23 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx23, align 8, !noalias !1083 - %.sroa.6.0..sroa_idx25 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx25, align 8, !noalias !1083 - %21 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1084 - %22 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCshjvJWTf7CV5_7___rustc12___rust_alloc(i64 noundef range(i64 64, 641) 72, i64 noundef range(i64 8, 129) 8) #31, !noalias !1084 - %23 = icmp eq ptr %22, null - br i1 %23, label %24, label %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit, !prof !20 - -24: ; preds = %16 + %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 + store i16 11, ptr %19, align 8, !noalias !1082 + %20 = getelementptr inbounds nuw i8, ptr %3, i64 65 + store i8 3, ptr %20, align 1, !noalias !1078 + %21 = getelementptr inbounds nuw i8, ptr %3, i64 64 + store i8 %17, ptr %21, align 8, !noalias !1078 + %22 = getelementptr inbounds nuw i8, ptr %3, i64 48 + store ptr null, ptr %22, align 8, !noalias !1078 + store i64 %.sroa.019.0.copyload, ptr %3, align 8, !noalias !1083 + %.sroa.5.0..sroa_idx21 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx21, align 8, !noalias !1083 + %.sroa.6.0..sroa_idx23 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx23, align 8, !noalias !1083 + %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1084 + %24 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCshjvJWTf7CV5_7___rustc12___rust_alloc(i64 noundef range(i64 64, 641) 72, i64 noundef range(i64 8, 129) 8) #31, !noalias !1084 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit, !prof !20 + +26: ; preds = %18 invoke void @_ZN5alloc5alloc18handle_alloc_error17haa66aaa8cfcf3614E(i64 noundef 8, i64 noundef 72) #30 - to label %.noexc.i unwind label %25, !noalias !1078 + to label %.noexc.i unwind label %27, !noalias !1078 -.noexc.i: ; preds = %24 +.noexc.i: ; preds = %26 unreachable -25: ; preds = %24 - %26 = landingpad { ptr, i32 } +27: ; preds = %26 + %28 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr41drop_in_place$LT$pingora_error..Error$GT$17h5bd55f7e9a73bfeeE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %3) #28 - to label %.critedge.i unwind label %27, !noalias !1078 + to label %.critedge.i unwind label %29, !noalias !1078 -27: ; preds = %25 - %28 = landingpad { ptr, i32 } +29: ; preds = %27 + %30 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hccd47ddd364deb23E() #29, !noalias !1078 unreachable -.critedge.i: ; preds = %35, %32, %29, %25 - %eh.lpad-body11.i = phi { ptr, i32 } [ %26, %25 ], [ %30, %29 ], [ %30, %32 ], [ %30, %35 ] +.critedge.i: ; preds = %37, %34, %31, %27 + %eh.lpad-body11.i = phi { ptr, i32 } [ %28, %27 ], [ %32, %31 ], [ %32, %34 ], [ %32, %37 ] resume { ptr, i32 } %eh.lpad-body11.i -29: ; preds = %14 - %30 = landingpad { ptr, i32 } +31: ; preds = %16 + %32 = landingpad { ptr, i32 } cleanup - %31 = icmp eq i64 %.sroa.021.0.copyload, 2 - br i1 %31, label %.critedge.i, label %32 + %33 = icmp eq i64 %.sroa.019.0.copyload, 2 + br i1 %33, label %.critedge.i, label %34 -32: ; preds = %29 - %33 = icmp eq i64 %.sroa.021.0.copyload, 0 - %34 = icmp eq i64 %.sroa.6.0.copyload, 0 - %or.cond27 = select i1 %33, i1 true, i1 %34 - br i1 %or.cond27, label %.critedge.i, label %35 +34: ; preds = %31 + %35 = icmp eq i64 %.sroa.019.0.copyload, 0 + %36 = icmp eq i64 %.sroa.6.0.copyload, 0 + %or.cond25 = select i1 %35, i1 true, i1 %36 + br i1 %or.cond25, label %.critedge.i, label %37 -35: ; preds = %32 - %36 = icmp ne ptr %.sroa.5.0.copyload, null - tail call void @llvm.assume(i1 %36) +37: ; preds = %34 + %38 = icmp ne ptr %.sroa.5.0.copyload, null + tail call void @llvm.assume(i1 %38) tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %.sroa.5.0.copyload, i64 noundef range(i64 1, 0) %.sroa.6.0.copyload, i64 noundef 1) #31, !noalias !1087 br label %.critedge.i -_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit: ; preds = %16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %22, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false), !noalias !1078 +_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit: ; preds = %18 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %24, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false), !noalias !1078 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1078 - br label %39 + br label %41 -37: ; preds = %12 +39: ; preds = %14 store i16 1, ptr %6, align 4 %.sroa.411.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 34 - %38 = trunc nuw i48 %.sroa.06.2.extract.shift to i32 - store i32 %38, ptr %.sroa.411.0..sroa_idx, align 2 - br label %39 + %40 = trunc nuw i48 %.sroa.06.2.extract.shift to i32 + store i32 %40, ptr %.sroa.411.0..sroa_idx, align 2 + br label %41 -39: ; preds = %11, %37, %2, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit - %.sroa.07.0 = phi ptr [ %22, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit ], [ null, %2 ], [ null, %37 ], [ null, %11 ] +41: ; preds = %13, %39, %2, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit + %.sroa.07.0 = phi ptr [ %24, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit ], [ null, %2 ], [ null, %39 ], [ null, %13 ] ret ptr %.sroa.07.0 } diff --git a/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll b/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll index 5a8c5f5d0b3..8b83557c221 100644 --- a/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll +++ b/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll @@ -34877,7 +34877,7 @@ define void @"_ZN101_$LT$polars_expr..expressions..apply..ApplyExpr$u20$as$u20$p call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4215.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4215, i64 24, i1 false) store i128 4, ptr %0, align 16 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.4215) - br label %925 + br label %924 124: ; preds = %117 call void @llvm.lifetime.start.p0(ptr nonnull %101) @@ -35333,7 +35333,7 @@ _ZN11polars_expr11expressions5apply9ApplyExpr23prepare_multiple_inputs17h9ba6c0b i8 2, label %274 ] -default.unreachable331: ; preds = %.lr.ph, %884, %855, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit143.i", %350, %330, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" +default.unreachable331: ; preds = %.lr.ph, %883, %854, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit143.i", %350, %330, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" unreachable 267: ; preds = %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" @@ -36691,7 +36691,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E 648: ; preds = %655, %654, %647 call void @llvm.lifetime.end.p0(ptr nonnull %111) - br label %925 + br label %924 649: ; preds = %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit", %645 call void @llvm.lifetime.end.p0(ptr nonnull %109) @@ -36704,7 +36704,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E invoke fastcc void @"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E"(ptr noalias noundef align 16 dereferenceable(160) %109) #25 to label %.thread223 unwind label %651 -651: ; preds = %.thread260, %923, %742, %730, %707, %.thread223, %650, %619 +651: ; preds = %.thread260, %922, %742, %730, %707, %.thread223, %650, %619 %652 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24 @@ -36717,7 +36717,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E 653: ; preds = %649, %159 call void @llvm.lifetime.end.p0(ptr nonnull %111) - br label %925 + br label %924 654: ; preds = %591, %589, %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i131" call void @llvm.lifetime.end.p0(ptr nonnull %43) @@ -36733,8 +36733,8 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E call void @llvm.lifetime.end.p0(ptr nonnull %102) br label %648 -.thread227: ; preds = %.body.i191, %923, %593, %322, %.body.i, %.thread260, %.thread223 - %.pn121.pn = phi { ptr, i32 } [ %.pn121226, %.thread223 ], [ %.pn115263, %.thread260 ], [ %.pn.i, %.body.i ], [ %.pn95171.i, %593 ], [ %.pn93.i, %322 ], [ %924, %923 ], [ %.pn100.i, %.body.i191 ] +.thread227: ; preds = %.body.i191, %922, %593, %322, %.body.i, %.thread260, %.thread223 + %.pn121.pn = phi { ptr, i32 } [ %.pn121226, %.thread223 ], [ %.pn115263, %.thread260 ], [ %.pn.i, %.body.i ], [ %.pn95171.i, %593 ], [ %.pn93.i, %322 ], [ %923, %922 ], [ %.pn100.i, %.body.i191 ] resume { ptr, i32 } %.pn121.pn .thread223: ; preds = %642, %619, %650, %.thread234 @@ -37018,9 +37018,9 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds call void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %101) br label %739 -739: ; preds = %749, %919, %678, %738 +739: ; preds = %749, %918, %678, %738 call void @llvm.lifetime.end.p0(ptr nonnull %101) - br label %925 + br label %924 740: ; preds = %735 call void @llvm.lifetime.end.p0(ptr nonnull %96) @@ -37043,24 +37043,24 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds 744: ; preds = %743, %656 call void @llvm.lifetime.end.p0(ptr nonnull %101) - br label %925 - -.lr.ph: ; preds = %.lr.ph.preheader, %929 - %.sroa.0105.1300 = phi ptr [ %.sroa.0105.1, %929 ], [ %.sroa.0105.1295, %.lr.ph.preheader ] - %.sroa.0105.0299 = phi ptr [ %.sroa.0105.1300, %929 ], [ %667, %.lr.ph.preheader ] - %.sroa.058.0298 = phi i1 [ %.sroa.058.1, %929 ], [ false, %.lr.ph.preheader ] - %.sroa.057.0297 = phi i1 [ %.sroa.057.1, %929 ], [ false, %.lr.ph.preheader ] - %.sroa.056.0296 = phi i1 [ %.sroa.056.1, %929 ], [ false, %.lr.ph.preheader ] + br label %924 + +.lr.ph: ; preds = %.lr.ph.preheader, %928 + %.sroa.0105.1300 = phi ptr [ %.sroa.0105.1, %928 ], [ %.sroa.0105.1295, %.lr.ph.preheader ] + %.sroa.0105.0299 = phi ptr [ %.sroa.0105.1300, %928 ], [ %667, %.lr.ph.preheader ] + %.sroa.058.0298 = phi i1 [ %.sroa.058.1, %928 ], [ false, %.lr.ph.preheader ] + %.sroa.057.0297 = phi i1 [ %.sroa.057.1, %928 ], [ false, %.lr.ph.preheader ] + %.sroa.056.0296 = phi i1 [ %.sroa.056.1, %928 ], [ false, %.lr.ph.preheader ] %745 = load i128, ptr %.sroa.0105.0299, align 16, !range !2623, !noundef !3 %746 = trunc nuw nsw i128 %745 to i64 switch i64 %746, label %default.unreachable331 [ - i64 0, label %926 - i64 1, label %927 - i64 2, label %928 - i64 3, label %929 + i64 0, label %925 + i64 1, label %926 + i64 2, label %927 + i64 3, label %928 ] -._crit_edge: ; preds = %929 +._crit_edge: ; preds = %928 %747 = select i1 %.sroa.057.1, i1 %.sroa.058.1, i1 false %748 = select i1 %.sroa.056.1, i1 true, i1 %747 br i1 %748, label %749, label %._crit_edge.thread @@ -37083,7 +37083,7 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds %755 = load i8, ptr %754, align 4, !range !2932, !noundef !3 %756 = load i16, ptr %114, align 16, !noundef !3 %757 = invoke noundef zeroext i1 @_ZN11polars_plan5plans7options13FunctionFlags14returns_scalar17he0e1e2dbfb8bcc62E(i16 noundef %756) - to label %.noexc188 unwind label %923 + to label %.noexc188 unwind label %922 .noexc188: ; preds = %._crit_edge.thread br i1 %757, label %"_ZN101_$LT$polars_expr..expressions..apply..ApplyExpr$u20$as$u20$polars_expr..expressions..PhysicalExpr$GT$9is_scalar17hc564b4eea8180f53E.exit", label %758 @@ -37123,273 +37123,272 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds invoke void @_ZN4core6option13unwrap_failed17h4c7f35545a6d0c7eE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.263) #23 to label %776 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -.body.i191: ; preds = %.thread146.i, %.thread135.i, %797, %.loopexit.split-lp.loopexit.split-lp.i, %.loopexit.split-lp.loopexit.i, %.loopexit.i - %.pn100.i = phi { ptr, i32 } [ %.pn97.pn.i, %.thread135.i ], [ %.pn91.i195, %.thread146.i ], [ %798, %797 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit160.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp161.i, %.loopexit.split-lp.loopexit.split-lp.i ] +.body.i191: ; preds = %.thread146.i, %.thread135.i, %796, %.loopexit.split-lp.loopexit.split-lp.i, %.loopexit.split-lp.loopexit.i, %.loopexit.i + %.pn100.i = phi { ptr, i32 } [ %.pn97.pn.i, %.thread135.i ], [ %.pn91.i195, %.thread146.i ], [ %797, %796 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit160.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp161.i, %.loopexit.split-lp.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) #25 - to label %.thread227 unwind label %844, !noalias !4623 + to label %.thread227 unwind label %843, !noalias !4623 -.loopexit.i: ; preds = %848 +.loopexit.i: ; preds = %847 %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -.loopexit.split-lp.loopexit.i: ; preds = %.noexc.i192, %789 +.loopexit.split-lp.loopexit.i: ; preds = %.noexc.i192, %788 %lpad.loopexit160.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -.loopexit.split-lp.loopexit.split-lp.i: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200", %917, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", %843, %840, %802, %781, %775, %771 +.loopexit.split-lp.loopexit.split-lp.i: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200", %916, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", %842, %839, %801, %780, %775, %771 %lpad.loopexit.split-lp161.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -776: ; preds = %883, %868, %775 +776: ; preds = %882, %867, %775 unreachable 777: ; preds = %771 %778 = load i128, ptr %774, align 16, !range !2623, !noalias !4631, !noundef !3 - %779 = trunc nuw nsw i128 %778 to i64 - %780 = icmp eq i64 %779, 0 - br i1 %780, label %781, label %783 + %779 = icmp eq i128 %778, 0 + br i1 %779, label %780, label %782 -781: ; preds = %777 - %782 = getelementptr inbounds nuw i8, ptr %774, i64 16 +780: ; preds = %777 + %781 = getelementptr inbounds nuw i8, ptr %774, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %22), !noalias !4631 - invoke void @_ZN11polars_core5frame6column6Column4list17h6aedea38cb34faf9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %22, ptr noundef nonnull align 16 %782) - to label %794 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 - -783: ; preds = %777 - %784 = icmp ne i64 %779, 3 - %.sroa.024.0.i = and i1 %784, %762 - %785 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 - br label %786 - -786: ; preds = %.noexc104.i, %783 - %787 = phi ptr [ %790, %.noexc104.i ], [ %773, %783 ] - %788 = icmp eq ptr %787, %785 - br i1 %788, label %.preheader, label %789 - -789: ; preds = %786 - %790 = getelementptr inbounds nuw i8, ptr %787, i64 272 - %791 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %787) + invoke void @_ZN11polars_core5frame6column6Column4list17h6aedea38cb34faf9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %22, ptr noundef nonnull align 16 %781) + to label %793 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 + +782: ; preds = %777 + %783 = icmp ne i128 %778, 3 + %.sroa.024.0.i = and i1 %783, %762 + %784 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 + br label %785 + +785: ; preds = %.noexc104.i, %782 + %786 = phi ptr [ %789, %.noexc104.i ], [ %773, %782 ] + %787 = icmp eq ptr %786, %784 + br i1 %787, label %.preheader, label %788 + +788: ; preds = %785 + %789 = getelementptr inbounds nuw i8, ptr %786, i64 272 + %790 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %786) to label %.noexc.i192 unwind label %.loopexit.split-lp.loopexit.i, !noalias !4631 -.noexc.i192: ; preds = %789 - %792 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext10is_literal17ha2dbb65b86e73078E(ptr noundef nonnull align 16 %787) +.noexc.i192: ; preds = %788 + %791 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext10is_literal17ha2dbb65b86e73078E(ptr noundef nonnull align 16 %786) to label %.noexc104.i unwind label %.loopexit.split-lp.loopexit.i, !noalias !4631 .noexc104.i: ; preds = %.noexc.i192 - %793 = or i1 %791, %792 - br i1 %793, label %786, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" + %792 = or i1 %790, %791 + br i1 %792, label %785, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" -794: ; preds = %781 +793: ; preds = %780 call void @llvm.experimental.noalias.scope.decl(metadata !4632) - %795 = load i64, ptr %22, align 8, !range !424, !alias.scope !4632, !noalias !4635, !noundef !3 - %.not.i.i206 = icmp eq i64 %795, 17 - br i1 %.not.i.i206, label %802, label %796, !prof !366 + %794 = load i64, ptr %22, align 8, !range !424, !alias.scope !4632, !noalias !4635, !noundef !3 + %.not.i.i206 = icmp eq i64 %794, 17 + br i1 %.not.i.i206, label %801, label %795, !prof !366 -796: ; preds = %794 +795: ; preds = %793 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !4637 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, ptr noundef nonnull align 8 dereferenceable(64) %22, i64 64, i1 false), !noalias !4635 invoke void @_ZN4core6result13unwrap_failed17h730db56f15e0885aE(ptr noalias noundef nonnull readonly align 1 @anon.fb4689afb8eeaa4e0f4173e76b75b56e.116, i64 noundef 43, ptr noundef nonnull align 1 %7, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.115, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.264) #23 - to label %799 unwind label %797, !noalias !4638 + to label %798 unwind label %796, !noalias !4638 -797: ; preds = %796 - %798 = landingpad { ptr, i32 } +796: ; preds = %795 + %797 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$polars_error..PolarsError$GT$17h579ac14c865032a6E"(ptr noalias noundef nonnull align 8 dereferenceable(64) %7) #25 - to label %.body.i191 unwind label %800, !noalias !4638 + to label %.body.i191 unwind label %799, !noalias !4638 -799: ; preds = %796 +798: ; preds = %795 unreachable -800: ; preds = %797 - %801 = landingpad { ptr, i32 } +799: ; preds = %796 + %800 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4638 unreachable -802: ; preds = %794 - %803 = getelementptr inbounds nuw i8, ptr %22, i64 8 - %804 = load ptr, ptr %803, align 8, !alias.scope !4632, !noalias !4635, !nonnull !3, !align !4, !noundef !3 +801: ; preds = %793 + %802 = getelementptr inbounds nuw i8, ptr %22, i64 8 + %803 = load ptr, ptr %802, align 8, !alias.scope !4632, !noalias !4635, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.end.p0(ptr nonnull %22), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %21), !noalias !4631 - %805 = getelementptr inbounds nuw i8, ptr %773, i64 272 - %806 = getelementptr { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 - invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h435b5e9b8e937b9aE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %21, ptr noundef nonnull %805, ptr noundef nonnull %806, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) + %804 = getelementptr inbounds nuw i8, ptr %773, i64 272 + %805 = getelementptr { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 + invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h435b5e9b8e937b9aE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %21, ptr noundef nonnull %804, ptr noundef nonnull %805, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) to label %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; preds = %802 +_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; preds = %801 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7.i189) call void @llvm.lifetime.start.p0(ptr nonnull %20), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %19), !noalias !4631 store ptr %21, ptr %19, align 8, !noalias !4631 - %807 = getelementptr inbounds nuw i8, ptr %19, i64 8 - store ptr %768, ptr %807, align 8, !noalias !4631 - %808 = getelementptr inbounds nuw i8, ptr %19, i64 16 - store ptr %753, ptr %808, align 8, !noalias !4631 - invoke void @"_ZN11polars_core13chunked_array4list98_$LT$impl$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$14apply_to_inner17hd7aa65ec4717e7fbE"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %20, ptr noundef nonnull align 8 %804, ptr noundef nonnull align 1 %19, ptr noalias noundef readonly align 8 dereferenceable(48) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.265) - to label %811 unwind label %809, !noalias !4639 - -.thread135.i: ; preds = %.body102.i, %816, %809 - %.pn97.pn.i = phi { ptr, i32 } [ %817, %816 ], [ %810, %809 ], [ %eh.lpad-body103.i, %.body102.i ] + %806 = getelementptr inbounds nuw i8, ptr %19, i64 8 + store ptr %768, ptr %806, align 8, !noalias !4631 + %807 = getelementptr inbounds nuw i8, ptr %19, i64 16 + store ptr %753, ptr %807, align 8, !noalias !4631 + invoke void @"_ZN11polars_core13chunked_array4list98_$LT$impl$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$14apply_to_inner17hd7aa65ec4717e7fbE"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %20, ptr noundef nonnull align 8 %803, ptr noundef nonnull align 1 %19, ptr noalias noundef readonly align 8 dereferenceable(48) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.265) + to label %810 unwind label %808, !noalias !4639 + +.thread135.i: ; preds = %.body102.i, %815, %808 + %.pn97.pn.i = phi { ptr, i32 } [ %816, %815 ], [ %809, %808 ], [ %eh.lpad-body103.i, %.body102.i ] invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) #25 - to label %.body.i191 unwind label %844, !noalias !4639 + to label %.body.i191 unwind label %843, !noalias !4639 -809: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i - %810 = landingpad { ptr, i32 } +808: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i + %809 = landingpad { ptr, i32 } cleanup br label %.thread135.i -811: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i - %812 = load i64, ptr %20, align 8, !range !424, !noalias !4631, !noundef !3 - %.not93.i = icmp eq i64 %812, 17 - %813 = getelementptr inbounds nuw i8, ptr %20, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, ptr noundef nonnull align 8 dereferenceable(56) %813, i64 56, i1 false), !noalias !4631 +810: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i + %811 = load i64, ptr %20, align 8, !range !424, !noalias !4631, !noundef !3 + %.not93.i = icmp eq i64 %811, 17 + %812 = getelementptr inbounds nuw i8, ptr %20, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, ptr noundef nonnull align 8 dereferenceable(56) %812, i64 56, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !4631 - br i1 %.not93.i, label %818, label %814 + br i1 %.not93.i, label %817, label %813 -814: ; preds = %811 +813: ; preds = %810 %.sroa.250.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.250.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4640 - %815 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %812, ptr %815, align 16, !alias.scope !4623, !noalias !4640 + %814 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %811, ptr %814, align 16, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i189) - br label %843 + br label %842 -816: ; preds = %838 - %817 = landingpad { ptr, i32 } +815: ; preds = %837 + %816 = landingpad { ptr, i32 } cleanup br label %.thread135.i -818: ; preds = %811 - %819 = getelementptr inbounds nuw i8, ptr %8, i64 16 +817: ; preds = %810 + %818 = getelementptr inbounds nuw i8, ptr %8, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !4631 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %819, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4631 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %818, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i189) call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !4631 call void @llvm.experimental.noalias.scope.decl(metadata !4641) - %820 = icmp ult i64 %770, 33909456017848441 - call void @llvm.assume(i1 %820) + %819 = icmp ult i64 %770, 33909456017848441 + call void @llvm.assume(i1 %819) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %18, ptr noundef nonnull align 16 dereferenceable(272) %773, i64 272, i1 false), !noalias !4644 - %821 = add nsw i64 %770, -1 - %822 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %821 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %822, i64 272, i1 false), !noalias !4645 - store i64 %821, ptr %769, align 8, !alias.scope !4647, !noalias !4648 + %820 = add nsw i64 %770, -1 + %821 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %820 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %821, i64 272, i1 false), !noalias !4645 + store i64 %820, ptr %769, align 8, !alias.scope !4647, !noalias !4648 call void @llvm.lifetime.start.p0(ptr nonnull %17), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !4631 store i64 1, ptr %8, align 8, !noalias !4631 - %823 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 1, ptr %823, align 8, !noalias !4631 - %824 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !4649 - %825 = call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 8, 361) 72, i64 noundef range(i64 8, 17) 8) #26, !noalias !4652 - %826 = icmp eq ptr %825, null - br i1 %826, label %827, label %834, !prof !833 - -827: ; preds = %818 + %822 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 1, ptr %822, align 8, !noalias !4631 + %823 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !4649 + %824 = call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 8, 361) 72, i64 noundef range(i64 8, 17) 8) #26, !noalias !4652 + %825 = icmp eq ptr %824, null + br i1 %825, label %826, label %833, !prof !833 + +826: ; preds = %817 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 72) #23 - to label %.noexc107.i unwind label %828, !noalias !4639 + to label %.noexc107.i unwind label %827, !noalias !4639 -.noexc107.i: ; preds = %827 +.noexc107.i: ; preds = %826 unreachable -828: ; preds = %827 - %829 = landingpad { ptr, i32 } +827: ; preds = %826 + %828 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr186drop_in_place$LT$alloc..sync..ArcInner$LT$polars_core..series..implementations..SeriesWrap$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$$GT$$GT$17hc5c18a769574821cE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %8) #25 - to label %.body102.i unwind label %830, !noalias !4639 + to label %.body102.i unwind label %829, !noalias !4639 -830: ; preds = %828 - %831 = landingpad { ptr, i32 } +829: ; preds = %827 + %830 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4639 unreachable -832: ; preds = %835, %834 - %833 = landingpad { ptr, i32 } +831: ; preds = %834, %833 + %832 = landingpad { ptr, i32 } cleanup br label %.body102.i -.body102.i: ; preds = %832, %828 - %eh.lpad-body103.i = phi { ptr, i32 } [ %833, %832 ], [ %829, %828 ] +.body102.i: ; preds = %831, %827 + %eh.lpad-body103.i = phi { ptr, i32 } [ %832, %831 ], [ %828, %827 ] invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %18) #25 - to label %.thread135.i unwind label %844, !noalias !4639 + to label %.thread135.i unwind label %843, !noalias !4639 -834: ; preds = %818 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %825, ptr noundef nonnull align 8 dereferenceable(72) %8, i64 72, i1 false), !noalias !4639 +833: ; preds = %817 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %824, ptr noundef nonnull align 8 dereferenceable(72) %8, i64 72, i1 false), !noalias !4639 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !4631 - invoke fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %16, ptr noundef nonnull %825, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.234) - to label %835 unwind label %832, !noalias !4639 + invoke fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %16, ptr noundef nonnull %824, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.234) + to label %834 unwind label %831, !noalias !4639 -835: ; preds = %834 +834: ; preds = %833 invoke void @_ZN11polars_expr11expressions18AggregationContext11with_values17h32f8edd81a82401bE(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %17, ptr noalias noundef nonnull align 16 dereferenceable(272) %18, ptr noalias noundef nonnull align 16 captures(none) dereferenceable(160) %16, i1 noundef zeroext true, ptr noundef align 16 null) - to label %836 unwind label %832, !noalias !4639 + to label %835 unwind label %831, !noalias !4639 -836: ; preds = %835 +835: ; preds = %834 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !4631 - %837 = load i64, ptr %17, align 8, !range !424, !noalias !4631, !noundef !3 - %.not95.i = icmp eq i64 %837, 17 - br i1 %.not95.i, label %840, label %838 + %836 = load i64, ptr %17, align 8, !range !424, !noalias !4631, !noundef !3 + %.not95.i = icmp eq i64 %836, 17 + br i1 %.not95.i, label %839, label %837 -838: ; preds = %836 +837: ; preds = %835 %.sroa.457.0..sroa_idx.i207 = getelementptr inbounds nuw i8, ptr %17, i64 8 %.sroa.457.0.copyload.i = load ptr, ptr %.sroa.457.0..sroa_idx.i207, align 8, !noalias !4631 %.sroa.558.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %17, i64 16 %.sroa.361.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %.sroa.361.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.558.0..sroa_idx.i, i64 48, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !4631 - %839 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %837, ptr %839, align 16, !alias.scope !4623, !noalias !4640 + %838 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %836, ptr %838, align 16, !alias.scope !4623, !noalias !4640 %.sroa.260.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %.sroa.457.0.copyload.i, ptr %.sroa.260.0..sroa_idx.i, align 8, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %18) - to label %842 unwind label %816, !noalias !4639 + to label %841 unwind label %815, !noalias !4639 -840: ; preds = %836 +839: ; preds = %835 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %0, ptr noundef nonnull align 16 dereferenceable(272) %18, i64 272, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !4631 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %841 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 + to label %840 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 -841: ; preds = %840 +840: ; preds = %839 call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !4631 - br label %919 + br label %918 -842: ; preds = %838 +841: ; preds = %837 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !4631 - br label %843 + br label %842 -843: ; preds = %842, %814 +842: ; preds = %841, %813 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) - to label %846 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 + to label %845 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 -844: ; preds = %921, %911, %.thread146.i, %.body102.i, %.thread135.i, %.body.i191 - %845 = landingpad { ptr, i32 } +843: ; preds = %920, %910, %.thread146.i, %.body102.i, %.thread135.i, %.body.i191 + %844 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4623 unreachable -846: ; preds = %843 +845: ; preds = %842 call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !4631 - br label %919 + br label %918 -.preheader: ; preds = %786, %.noexc109.i - %847 = phi ptr [ %850, %.noexc109.i ], [ %773, %786 ] - %.not.not.not.i.not.not.i.not.not = icmp ne ptr %847, %785 - br i1 %.not.not.not.i.not.not.i.not.not, label %848, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" +.preheader: ; preds = %785, %.noexc109.i + %846 = phi ptr [ %849, %.noexc109.i ], [ %773, %785 ] + %.not.not.not.i.not.not.i.not.not = icmp ne ptr %846, %784 + br i1 %.not.not.not.i.not.not.i.not.not, label %847, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" -848: ; preds = %.preheader - %849 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %847) +847: ; preds = %.preheader + %848 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %846) to label %.noexc109.i unwind label %.loopexit.i, !noalias !4631 -.noexc109.i: ; preds = %848 - %850 = getelementptr inbounds nuw i8, ptr %847, i64 272 - br i1 %849, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", label %.preheader +.noexc109.i: ; preds = %847 + %849 = getelementptr inbounds nuw i8, ptr %846, i64 272 + br i1 %848, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i": ; preds = %.noexc104.i, %.noexc109.i, %.preheader %.sroa.038.0.i = phi i1 [ %.not.not.not.i.not.not.i.not.not, %.preheader ], [ %.not.not.not.i.not.not.i.not.not, %.noexc109.i ], [ false, %.noexc104.i ] @@ -37397,294 +37396,294 @@ _ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; pre call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !4653 store ptr %773, ptr %6, align 8, !alias.scope !4660, !noalias !4664 %.sroa.4.0..sroa_idx131.i = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr %785, ptr %.sroa.4.0..sroa_idx131.i, align 8, !alias.scope !4660, !noalias !4664 + store ptr %784, ptr %.sroa.4.0..sroa_idx131.i, align 8, !alias.scope !4660, !noalias !4664 %.sroa.5132.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %6, i64 16 store i64 0, ptr %.sroa.5132.0..sroa_idx.i, align 8, !alias.scope !4660, !noalias !4664 invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h0a7aeb1a4889ce87E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) - to label %851 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 + to label %850 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -851: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" +850: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !4653 - %852 = getelementptr inbounds nuw i8, ptr %15, i64 8 - %853 = getelementptr inbounds nuw i8, ptr %15, i64 16 - %854 = load i64, ptr %853, align 8, !noalias !4631, !noundef !3 - %.not84.i193 = icmp eq i64 %854, 0 - br i1 %.not84.i193, label %868, label %855 - -855: ; preds = %851 - %856 = load ptr, ptr %852, align 8, !noalias !4631, !nonnull !3, !noundef !3 - %857 = load i8, ptr %856, align 16, !range !846, !noalias !4631, !noundef !3 - %858 = add nsw i8 %857, -28 - %narrow.i.i194 = call i8 @llvm.umin.i8(i8 %858, i8 2) + %851 = getelementptr inbounds nuw i8, ptr %15, i64 8 + %852 = getelementptr inbounds nuw i8, ptr %15, i64 16 + %853 = load i64, ptr %852, align 8, !noalias !4631, !noundef !3 + %.not84.i193 = icmp eq i64 %853, 0 + br i1 %.not84.i193, label %867, label %854 + +854: ; preds = %850 + %855 = load ptr, ptr %851, align 8, !noalias !4631, !nonnull !3, !noundef !3 + %856 = load i8, ptr %855, align 16, !range !846, !noalias !4631, !noundef !3 + %857 = add nsw i8 %856, -28 + %narrow.i.i194 = call i8 @llvm.umin.i8(i8 %857, i8 2) switch i8 %narrow.i.i194, label %default.unreachable331 [ - i8 0, label %859 - i8 1, label %863 - i8 2, label %866 + i8 0, label %858 + i8 1, label %862 + i8 2, label %865 ] -859: ; preds = %855 - %860 = getelementptr inbounds nuw i8, ptr %856, i64 8 - %861 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %860) - to label %.noexc111.i unwind label %869, !noalias !4631 +858: ; preds = %854 + %859 = getelementptr inbounds nuw i8, ptr %855, i64 8 + %860 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %859) + to label %.noexc111.i unwind label %868, !noalias !4631 -.noexc111.i: ; preds = %859 - %862 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %861) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 +.noexc111.i: ; preds = %858 + %861 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %860) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 -863: ; preds = %855 - %864 = getelementptr inbounds nuw i8, ptr %856, i64 8 - %865 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %864) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 +862: ; preds = %854 + %863 = getelementptr inbounds nuw i8, ptr %855, i64 8 + %864 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %863) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 -866: ; preds = %855 - %867 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %856) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 +865: ; preds = %854 + %866 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %855) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 -868: ; preds = %851 +867: ; preds = %850 invoke void @_ZN4core9panicking18panic_bounds_check17h0cc3ae16a8cc728fE(i64 noundef 0, i64 noundef 0, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.267) #23 - to label %776 unwind label %869, !noalias !4631 + to label %776 unwind label %868, !noalias !4631 -.thread146.i: ; preds = %921, %911, %895, %869 - %.pn91.i195 = phi { ptr, i32 } [ %870, %869 ], [ %lpad.thr_comm.i201, %921 ], [ %lpad.thr_comm.split-lp.i199, %895 ], [ %912, %911 ] +.thread146.i: ; preds = %920, %910, %894, %868 + %.pn91.i195 = phi { ptr, i32 } [ %869, %868 ], [ %lpad.thr_comm.i201, %920 ], [ %lpad.thr_comm.split-lp.i199, %894 ], [ %911, %910 ] invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #25 - to label %.body.i191 unwind label %844, !noalias !4631 + to label %.body.i191 unwind label %843, !noalias !4631 -869: ; preds = %904, %902, %901, %883, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196, %868, %866, %863, %.noexc111.i, %859 - %870 = landingpad { ptr, i32 } +868: ; preds = %903, %901, %900, %882, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196, %867, %865, %862, %.noexc111.i, %858 + %869 = landingpad { ptr, i32 } cleanup br label %.thread146.i -_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196: ; preds = %866, %863, %.noexc111.i - %.sroa.0.0.i.i197 = phi i64 [ %862, %.noexc111.i ], [ %865, %863 ], [ %867, %866 ] +_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196: ; preds = %865, %862, %.noexc111.i + %.sroa.0.0.i.i197 = phi i64 [ %861, %.noexc111.i ], [ %864, %862 ], [ %866, %865 ] call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !4631 - %871 = load ptr, ptr %852, align 8, !noalias !4631, !nonnull !3, !noundef !3 - %872 = load i64, ptr %853, align 8, !noalias !4631, !noundef !3 - %873 = getelementptr inbounds nuw i8, ptr %753, i64 32 - %874 = load ptr, ptr %873, align 8, !invariant.load !3, !alias.scope !4628, !noalias !4639, !nonnull !3 - invoke void %874(ptr noalias noundef nonnull sret([160 x i8]) align 16 captures(none) dereferenceable(160) %13, ptr noundef nonnull align 1 %768, ptr noalias noundef nonnull align 16 %871, i64 noundef %872) - to label %875 unwind label %869, !noalias !4631 - -875: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 - %876 = load i8, ptr %13, align 16, !range !2248, !noalias !4631, !noundef !3 - %877 = icmp eq i8 %876, 31 - br i1 %877, label %878, label %881 - -878: ; preds = %875 - %879 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %870 = load ptr, ptr %851, align 8, !noalias !4631, !nonnull !3, !noundef !3 + %871 = load i64, ptr %852, align 8, !noalias !4631, !noundef !3 + %872 = getelementptr inbounds nuw i8, ptr %753, i64 32 + %873 = load ptr, ptr %872, align 8, !invariant.load !3, !alias.scope !4628, !noalias !4639, !nonnull !3 + invoke void %873(ptr noalias noundef nonnull sret([160 x i8]) align 16 captures(none) dereferenceable(160) %13, ptr noundef nonnull align 1 %768, ptr noalias noundef nonnull align 16 %870, i64 noundef %871) + to label %874 unwind label %868, !noalias !4631 + +874: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 + %875 = load i8, ptr %13, align 16, !range !2248, !noalias !4631, !noundef !3 + %876 = icmp eq i8 %875, 31 + br i1 %876, label %877, label %880 + +877: ; preds = %874 + %878 = getelementptr inbounds nuw i8, ptr %13, i64 8 %.sroa.717.8..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.717.i, i64 7 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(64) %879, i64 64, i1 false), !noalias !4631 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(64) %878, i64 64, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4631 - %880 = getelementptr inbounds nuw i8, ptr %0, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %880, ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, i64 64, i1 false), !noalias !4640 + %879 = getelementptr inbounds nuw i8, ptr %0, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %879, ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, i64 64, i1 false), !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 br label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" -881: ; preds = %875 +880: ; preds = %874 %.sroa.463.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %13, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(71) %.sroa.717.i, ptr noundef nonnull align 1 dereferenceable(71) %.sroa.463.0..sroa_idx.i, i64 71, i1 false), !noalias !4631 %.sroa.564.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %13, i64 72 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.i, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.564.0..sroa_idx.i, i64 88, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4631 - %.not85.i = icmp eq i8 %876, 30 - br i1 %.not85.i, label %883, label %882, !prof !833 + %.not85.i = icmp eq i8 %875, 30 + br i1 %.not85.i, label %882, label %881, !prof !833 -882: ; preds = %881 - store i8 %876, ptr %14, align 16, !noalias !4631 +881: ; preds = %880 + store i8 %875, ptr %14, align 16, !noalias !4631 %.sroa.322.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(71) %.sroa.322.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(71) %.sroa.717.i, i64 71, i1 false), !noalias !4631 %.sroa.423.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 72 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.i, i64 88, i1 false), !noalias !4631 - br i1 %.sroa.024.0.i, label %884, label %907 + br i1 %.sroa.024.0.i, label %883, label %906 -883: ; preds = %881 +882: ; preds = %880 invoke void @_ZN4core6option13unwrap_failed17h4c7f35545a6d0c7eE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.268) #23 - to label %776 unwind label %869, !noalias !4631 + to label %776 unwind label %868, !noalias !4631 -884: ; preds = %882 +883: ; preds = %881 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !4631 - %885 = add nsw i8 %876, -28 - %narrow.i117.i = call i8 @llvm.umin.i8(i8 %885, i8 2) + %884 = add nsw i8 %875, -28 + %narrow.i117.i = call i8 @llvm.umin.i8(i8 %884, i8 2) switch i8 %narrow.i117.i, label %default.unreachable331 [ - i8 0, label %886 - i8 1, label %890 - i8 2, label %893 + i8 0, label %885 + i8 1, label %889 + i8 2, label %892 ] -886: ; preds = %884 - %887 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %888 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %887) - to label %.noexc120.i204 unwind label %921, !noalias !4631 +885: ; preds = %883 + %886 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %887 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %886) + to label %.noexc120.i204 unwind label %920, !noalias !4631 -.noexc120.i204: ; preds = %886 - %889 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %888) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 +.noexc120.i204: ; preds = %885 + %888 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %887) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 -890: ; preds = %884 - %891 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %892 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %891) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 +889: ; preds = %883 + %890 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %891 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %890) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 -893: ; preds = %884 - %894 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %14) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 +892: ; preds = %883 + %893 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %14) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 -895: ; preds = %915 +894: ; preds = %914 %lpad.thr_comm.split-lp.i199 = landingpad { ptr, i32 } cleanup br label %.thread146.i -_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i: ; preds = %893, %890, %.noexc120.i204 - %.sroa.0.0.i118.i = phi i64 [ %889, %.noexc120.i204 ], [ %892, %890 ], [ %894, %893 ] +_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i: ; preds = %892, %889, %.noexc120.i204 + %.sroa.0.0.i118.i = phi i64 [ %888, %.noexc120.i204 ], [ %891, %889 ], [ %893, %892 ] invoke fastcc void @_ZN11polars_expr11expressions5apply20check_map_output_len17h8cf048a4265b48f6E(ptr noalias noundef align 8 captures(none) dereferenceable(64) %12, i64 noundef %.sroa.0.0.i.i197, i64 noundef %.sroa.0.0.i118.i, ptr noundef nonnull align 16 %1) - to label %896 unwind label %921, !noalias !4631 + to label %895 unwind label %920, !noalias !4631 -896: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i - %897 = load i64, ptr %12, align 8, !range !424, !noalias !4631, !noundef !3 - %.not86.i = icmp eq i64 %897, 17 - br i1 %.not86.i, label %906, label %.critedge.i203 +895: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i + %896 = load i64, ptr %12, align 8, !range !424, !noalias !4631, !noundef !3 + %.not86.i = icmp eq i64 %896, 17 + br i1 %.not86.i, label %905, label %.critedge.i203 -.critedge.i203: ; preds = %896 +.critedge.i203: ; preds = %895 %.sroa.468.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %12, i64 8 %.sroa.270.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.270.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.468.0..sroa_idx.i, i64 56, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !4631 - %898 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %897, ptr %898, align 16, !alias.scope !4623, !noalias !4640 + %897 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %896, ptr %897, align 16, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 - %899 = load i8, ptr %14, align 16, !range !846, !alias.scope !4665, !noalias !4631, !noundef !3 - %900 = add nsw i8 %899, -28 - %narrow.i125.i = call i8 @llvm.umin.i8(i8 %900, i8 2) - switch i8 %narrow.i125.i, label %901 [ - i8 0, label %902 - i8 1, label %904 + %898 = load i8, ptr %14, align 16, !range !846, !alias.scope !4665, !noalias !4631, !noundef !3 + %899 = add nsw i8 %898, -28 + %narrow.i125.i = call i8 @llvm.umin.i8(i8 %899, i8 2) + switch i8 %narrow.i125.i, label %900 [ + i8 0, label %901 + i8 1, label %903 ] -901: ; preds = %.critedge.i203 +900: ; preds = %.critedge.i203 invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..scalar..ScalarColumn$GT$17he83dffb4bae0b442E"(ptr noalias noundef nonnull align 16 dereferenceable(160) %14) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 -902: ; preds = %.critedge.i203 - %903 = getelementptr inbounds nuw i8, ptr %14, i64 8 - invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..series..SeriesColumn$GT$17hf6b5133ebcc0e8e2E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %903) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 +901: ; preds = %.critedge.i203 + %902 = getelementptr inbounds nuw i8, ptr %14, i64 8 + invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..series..SeriesColumn$GT$17hf6b5133ebcc0e8e2E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %902) + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 -904: ; preds = %.critedge.i203 - %905 = getelementptr inbounds nuw i8, ptr %14, i64 8 - invoke void @"_ZN4core3ptr79drop_in_place$LT$polars_core..frame..column..partitioned..PartitionedColumn$GT$17h3ffe55cf616b1175E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %905) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 +903: ; preds = %.critedge.i203 + %904 = getelementptr inbounds nuw i8, ptr %14, i64 8 + invoke void @"_ZN4core3ptr79drop_in_place$LT$polars_core..frame..column..partitioned..PartitionedColumn$GT$17h3ffe55cf616b1175E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %904) + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 -906: ; preds = %896 +905: ; preds = %895 call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !4631 - br label %907 + br label %906 -907: ; preds = %882, %906 +906: ; preds = %881, %905 call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !4631 call void @llvm.experimental.noalias.scope.decl(metadata !4668) - %908 = icmp ult i64 %770, 33909456017848441 - call void @llvm.assume(i1 %908) + %907 = icmp ult i64 %770, 33909456017848441 + call void @llvm.assume(i1 %907) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %11, ptr noundef nonnull align 16 dereferenceable(272) %773, i64 272, i1 false), !noalias !4671 - %909 = add nsw i64 %770, -1 - %910 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %909 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %910, i64 272, i1 false), !noalias !4672 - store i64 %909, ptr %769, align 8, !alias.scope !4674, !noalias !4675 + %908 = add nsw i64 %770, -1 + %909 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %908 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %909, i64 272, i1 false), !noalias !4672 + store i64 %908, ptr %769, align 8, !alias.scope !4674, !noalias !4675 call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(160) %9, ptr noundef nonnull align 16 dereferenceable(160) %14, i64 160, i1 false), !noalias !4631 invoke void @_ZN11polars_expr11expressions18AggregationContext20with_values_and_args17he7a46079064dae17E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %10, ptr noalias noundef nonnull align 16 dereferenceable(272) %11, ptr noalias noundef nonnull align 16 captures(none) dereferenceable(160) %9, i1 noundef zeroext %.sroa.038.0.i, ptr noundef align 16 null, i1 noundef zeroext true, i1 noundef zeroext %.sroa.0.0.i) - to label %913 unwind label %911, !noalias !4631 + to label %912 unwind label %910, !noalias !4631 -911: ; preds = %907 - %912 = landingpad { ptr, i32 } +910: ; preds = %906 + %911 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %11) #25 - to label %.thread146.i unwind label %844, !noalias !4631 + to label %.thread146.i unwind label %843, !noalias !4631 -913: ; preds = %907 +912: ; preds = %906 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !4631 - %914 = load i64, ptr %10, align 8, !range !424, !noalias !4631, !noundef !3 - %.not88.i = icmp eq i64 %914, 17 - br i1 %.not88.i, label %917, label %915 + %913 = load i64, ptr %10, align 8, !range !424, !noalias !4631, !noundef !3 + %.not88.i = icmp eq i64 %913, 17 + br i1 %.not88.i, label %916, label %914 -915: ; preds = %913 +914: ; preds = %912 %.sroa.475.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 8 %.sroa.475.0.copyload.i = load ptr, ptr %.sroa.475.0..sroa_idx.i, align 8, !noalias !4631 %.sroa.576.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 %.sroa.379.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %.sroa.379.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.576.0..sroa_idx.i, i64 48, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4631 - %916 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %914, ptr %916, align 16, !alias.scope !4623, !noalias !4640 + %915 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %913, ptr %915, align 16, !alias.scope !4623, !noalias !4640 %.sroa.278.0..sroa_idx.i198 = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %.sroa.475.0.copyload.i, ptr %.sroa.278.0..sroa_idx.i198, align 8, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %11) - to label %920 unwind label %895, !noalias !4631 + to label %919 unwind label %894, !noalias !4631 -917: ; preds = %913 +916: ; preds = %912 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %0, ptr noundef nonnull align 16 dereferenceable(272) %11, i64 272, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !4631 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) - to label %918 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 + to label %917 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -918: ; preds = %917 +917: ; preds = %916 call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !4631 - br label %919 + br label %918 -919: ; preds = %922, %918, %846, %841 +918: ; preds = %921, %917, %845, %840 call void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.423.i) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.717.i) call void @llvm.lifetime.end.p0(ptr nonnull %91) br label %739 -920: ; preds = %915 +919: ; preds = %914 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4631 br label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" -"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200": ; preds = %920, %904, %902, %901, %878 +"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200": ; preds = %919, %903, %901, %900, %877 call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !4631 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) - to label %922 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 + to label %921 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -921: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i, %893, %890, %.noexc120.i204, %886 +920: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i, %892, %889, %.noexc120.i204, %885 %lpad.thr_comm.i201 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E"(ptr noalias noundef align 16 dereferenceable(160) %14) #25 - to label %.thread146.i unwind label %844, !noalias !4631 + to label %.thread146.i unwind label %843, !noalias !4631 -922: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" +921: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !4631 - br label %919 + br label %918 -923: ; preds = %._crit_edge.thread - %924 = landingpad { ptr, i32 } +922: ; preds = %._crit_edge.thread + %923 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) #25 to label %.thread227 unwind label %651 -925: ; preds = %653, %744, %648, %739, %122 +924: ; preds = %653, %744, %648, %739, %122 ret void +925: ; preds = %.lr.ph + br label %928 + 926: ; preds = %.lr.ph - br label %929 + br label %928 927: ; preds = %.lr.ph - br label %929 - -928: ; preds = %.lr.ph - br label %929 - -929: ; preds = %928, %927, %926, %.lr.ph - %.sroa.056.1 = phi i1 [ true, %926 ], [ %.sroa.056.0296, %927 ], [ %.sroa.056.0296, %928 ], [ %.sroa.056.0296, %.lr.ph ] - %.sroa.057.1 = phi i1 [ %.sroa.057.0297, %926 ], [ true, %927 ], [ %.sroa.057.0297, %928 ], [ %.sroa.057.0297, %.lr.ph ] - %.sroa.058.1 = phi i1 [ %.sroa.058.0298, %926 ], [ %.sroa.058.0298, %927 ], [ true, %928 ], [ %.sroa.058.0298, %.lr.ph ] - %930 = icmp eq ptr %.sroa.0105.1300, %670 - %.sroa.0105.1.idx = select i1 %930, i64 0, i64 272 + br label %928 + +928: ; preds = %927, %926, %925, %.lr.ph + %.sroa.056.1 = phi i1 [ true, %925 ], [ %.sroa.056.0296, %926 ], [ %.sroa.056.0296, %927 ], [ %.sroa.056.0296, %.lr.ph ] + %.sroa.057.1 = phi i1 [ %.sroa.057.0297, %925 ], [ true, %926 ], [ %.sroa.057.0297, %927 ], [ %.sroa.057.0297, %.lr.ph ] + %.sroa.058.1 = phi i1 [ %.sroa.058.0298, %925 ], [ %.sroa.058.0298, %926 ], [ true, %927 ], [ %.sroa.058.0298, %.lr.ph ] + %929 = icmp eq ptr %.sroa.0105.1300, %670 + %.sroa.0105.1.idx = select i1 %929, i64 0, i64 272 %.sroa.0105.1 = getelementptr inbounds nuw i8, ptr %.sroa.0105.1300, i64 %.sroa.0105.1.idx - br i1 %930, label %._crit_edge, label %.lr.ph + br i1 %929, label %._crit_edge, label %.lr.ph .thread260: ; preds = %707, %.thread268 %.pn115263 = phi { ptr, i32 } [ %lpad.thr_comm266, %.thread268 ], [ %.pn.pn, %707 ] diff --git a/bench/postgres/optimized/gindatapage.ll b/bench/postgres/optimized/gindatapage.ll index 7639d18da4a..bddd398d65d 100644 --- a/bench/postgres/optimized/gindatapage.ll +++ b/bench/postgres/optimized/gindatapage.ll @@ -34,6 +34,7 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i48 %2) local_unnamed_addr #0 { %.sroa.3.0.extract.shift = lshr i48 %2, 32 + %.sroa.3.0.extract.trunc = zext nneg i48 %.sroa.3.0.extract.shift to i64 %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 %5 = load i16, ptr %4, align 4 %6 = zext i16 %5 to i64 @@ -43,7 +44,7 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %10 = and i16 %9, 128 %.not = icmp eq i16 %10, 0 %11 = getelementptr inbounds nuw i8, ptr %0, i64 32 - br i1 %.not, label %69, label %12 + br i1 %.not, label %68, label %12 12: ; preds = %3 %13 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -52,7 +53,7 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %16 = add nsw i64 %15, -32 %17 = getelementptr i8, ptr %0, i64 %15 %.not33 = icmp ult i48 %2, 4294967296 - br i1 %.not33, label %64, label %18 + br i1 %.not33, label %63, label %18 18: ; preds = %12 %19 = getelementptr inbounds nuw i8, ptr %0, i64 38 @@ -73,93 +74,92 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %30 = and i48 %29, -4294967296 %31 = zext i48 %30 to i64 %32 = or disjoint i64 %28, %31 - %33 = zext nneg i48 %.sroa.3.0.extract.shift to i64 - %34 = or disjoint i64 %32, %33 + %33 = or disjoint i64 %32, %.sroa.3.0.extract.trunc %.val.i42 = load i16, ptr %.02835, align 2 - %35 = getelementptr i8, ptr %24, i64 10 - %.val5.i43 = load i16, ptr %35, align 2 - %36 = zext i16 %.val.i42 to i64 - %37 = zext i16 %.val5.i43 to i64 - %38 = shl nuw i64 %36, 48 - %39 = shl nuw nsw i64 %37, 32 - %40 = or disjoint i64 %39, %38 - %41 = getelementptr i8, ptr %24, i64 12 - %.val8.i44 = load i16, ptr %41, align 2 - %42 = zext i16 %.val8.i44 to i64 - %43 = or disjoint i64 %40, %42 - %.not3445 = icmp ugt i64 %43, %34 + %34 = getelementptr i8, ptr %24, i64 10 + %.val5.i43 = load i16, ptr %34, align 2 + %35 = zext i16 %.val.i42 to i64 + %36 = zext i16 %.val5.i43 to i64 + %37 = shl nuw i64 %35, 48 + %38 = shl nuw nsw i64 %36, 32 + %39 = or disjoint i64 %38, %37 + %40 = getelementptr i8, ptr %24, i64 12 + %.val8.i44 = load i16, ptr %40, align 2 + %41 = zext i16 %.val8.i44 to i64 + %42 = or disjoint i64 %39, %41 + %.not3445 = icmp ugt i64 %42, %33 br i1 %.not3445, label %.critedge, label %.lr.ph48 -44: ; preds = %.lr.ph48 +43: ; preds = %.lr.ph48 %.val.i = load i16, ptr %.028, align 2 - %45 = getelementptr i8, ptr %59, i64 10 - %.val5.i = load i16, ptr %45, align 2 - %46 = zext i16 %.val.i to i64 - %47 = zext i16 %.val5.i to i64 - %48 = shl nuw i64 %46, 48 - %49 = shl nuw nsw i64 %47, 32 - %50 = or disjoint i64 %49, %48 - %51 = getelementptr i8, ptr %59, i64 12 - %.val8.i = load i16, ptr %51, align 2 - %52 = zext i16 %.val8.i to i64 - %53 = or disjoint i64 %50, %52 - %.not34 = icmp ugt i64 %53, %34 + %44 = getelementptr i8, ptr %58, i64 10 + %.val5.i = load i16, ptr %44, align 2 + %45 = zext i16 %.val.i to i64 + %46 = zext i16 %.val5.i to i64 + %47 = shl nuw i64 %45, 48 + %48 = shl nuw nsw i64 %46, 32 + %49 = or disjoint i64 %48, %47 + %50 = getelementptr i8, ptr %58, i64 12 + %.val8.i = load i16, ptr %50, align 2 + %51 = zext i16 %.val8.i to i64 + %52 = or disjoint i64 %49, %51 + %.not34 = icmp ugt i64 %52, %33 br i1 %.not34, label %.critedge, label %.lr.ph48, !llvm.loop !4 -.lr.ph48: ; preds = %.lr.ph, %44 - %.pn3747 = phi ptr [ %59, %44 ], [ %24, %.lr.ph ] - %.0283846 = phi ptr [ %.028, %44 ], [ %.02835, %.lr.ph ] - %54 = getelementptr inbounds nuw i8, ptr %.pn3747, i64 14 - %55 = load i16, ptr %54, align 2 - %56 = zext i16 %55 to i64 - %57 = add nuw nsw i64 %56, 1 - %58 = and i64 %57, 131070 - %59 = getelementptr inbounds nuw i8, ptr %.0283846, i64 %58 - %.028 = getelementptr inbounds nuw i8, ptr %59, i64 8 - %60 = icmp ult ptr %.028, %17 - br i1 %60, label %44, label %..critedge.loopexit_crit_edge, !llvm.loop !4 +.lr.ph48: ; preds = %.lr.ph, %43 + %.pn3747 = phi ptr [ %58, %43 ], [ %24, %.lr.ph ] + %.0283846 = phi ptr [ %.028, %43 ], [ %.02835, %.lr.ph ] + %53 = getelementptr inbounds nuw i8, ptr %.pn3747, i64 14 + %54 = load i16, ptr %53, align 2 + %55 = zext i16 %54 to i64 + %56 = add nuw nsw i64 %55, 1 + %57 = and i64 %56, 131070 + %58 = getelementptr inbounds nuw i8, ptr %.0283846, i64 %57 + %.028 = getelementptr inbounds nuw i8, ptr %58, i64 8 + %59 = icmp ult ptr %.028, %17 + br i1 %59, label %43, label %..critedge.loopexit_crit_edge, !llvm.loop !4 ..critedge.loopexit_crit_edge: ; preds = %.lr.ph48 br label %.critedge, !llvm.loop !4 -.critedge: ; preds = %44, %.lr.ph, %..critedge.loopexit_crit_edge, %18 - %.130.lcssa = phi ptr [ %11, %18 ], [ %.0283846, %..critedge.loopexit_crit_edge ], [ %11, %.lr.ph ], [ %.0283846, %44 ] - %61 = ptrtoint ptr %17 to i64 - %62 = ptrtoint ptr %.130.lcssa to i64 - %63 = sub i64 %61, %62 - br label %64 +.critedge: ; preds = %43, %.lr.ph, %..critedge.loopexit_crit_edge, %18 + %.130.lcssa = phi ptr [ %11, %18 ], [ %.0283846, %..critedge.loopexit_crit_edge ], [ %11, %.lr.ph ], [ %.0283846, %43 ] + %60 = ptrtoint ptr %17 to i64 + %61 = ptrtoint ptr %.130.lcssa to i64 + %62 = sub i64 %60, %61 + br label %63 -64: ; preds = %.critedge, %12 - %.031 = phi i64 [ %63, %.critedge ], [ %16, %12 ] +63: ; preds = %.critedge, %12 + %.031 = phi i64 [ %62, %.critedge ], [ %16, %12 ] %.029 = phi ptr [ %.130.lcssa, %.critedge ], [ %11, %12 ] %.not32 = icmp eq i64 %.031, 0 - br i1 %.not32, label %68, label %65 + br i1 %.not32, label %67, label %64 -65: ; preds = %64 - %66 = trunc i64 %.031 to i32 - %67 = tail call ptr @ginPostingListDecodeAllSegments(ptr noundef nonnull %.029, i32 noundef %66, ptr noundef %1) #10 - br label %79 +64: ; preds = %63 + %65 = trunc i64 %.031 to i32 + %66 = tail call ptr @ginPostingListDecodeAllSegments(ptr noundef nonnull %.029, i32 noundef %65, ptr noundef %1) #10 + br label %78 -68: ; preds = %64 +67: ; preds = %63 store i32 0, ptr %1, align 4 - br label %79 - -69: ; preds = %3 - %70 = getelementptr inbounds nuw i8, ptr %7, i64 4 - %71 = load i16, ptr %70, align 4 - %72 = zext i16 %71 to i32 - store i32 %72, ptr %1, align 4 - %73 = zext i16 %71 to i64 - %74 = mul nuw nsw i64 %73, 6 - %75 = tail call ptr @palloc(i64 noundef %74) #10 - %76 = load i32, ptr %1, align 4 - %77 = sext i32 %76 to i64 - %78 = mul nsw i64 %77, 6 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 2 %75, ptr nonnull align 2 %11, i64 %78, i1 false) - br label %79 - -79: ; preds = %65, %68, %69 - %.1 = phi ptr [ %75, %69 ], [ %67, %65 ], [ null, %68 ] + br label %78 + +68: ; preds = %3 + %69 = getelementptr inbounds nuw i8, ptr %7, i64 4 + %70 = load i16, ptr %69, align 4 + %71 = zext i16 %70 to i32 + store i32 %71, ptr %1, align 4 + %72 = zext i16 %70 to i64 + %73 = mul nuw nsw i64 %72, 6 + %74 = tail call ptr @palloc(i64 noundef %73) #10 + %75 = load i32, ptr %1, align 4 + %76 = sext i32 %75 to i64 + %77 = mul nsw i64 %76, 6 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 2 %74, ptr nonnull align 2 %11, i64 %77, i1 false) + br label %78 + +78: ; preds = %64, %67, %68 + %.1 = phi ptr [ %74, %68 ], [ %66, %64 ], [ null, %67 ] ret ptr %.1 } diff --git a/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll b/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll index 04589541d8e..ef865fdd540 100644 --- a/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll +++ b/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll @@ -23201,7 +23201,6 @@ define i40 @"_ZN121_$LT$ruff_workspace..options..Flake8AnnotationsOptions$u20$as %.sroa.01.3.extract.shift = lshr i40 %0, 24 %.sroa.01.3.extract.trunc = trunc i40 %.sroa.01.3.extract.shift to i8 %.sroa.01.4.extract.shift = lshr i40 %0, 32 - %.sroa.01.4.extract.trunc = trunc nuw i40 %.sroa.01.4.extract.shift to i8 %.sroa.07.1.extract.shift = lshr i40 %1, 8 %.sroa.07.1.extract.trunc = trunc i40 %.sroa.07.1.extract.shift to i8 %.sroa.07.2.extract.shift = lshr i40 %1, 16 @@ -23209,7 +23208,6 @@ define i40 @"_ZN121_$LT$ruff_workspace..options..Flake8AnnotationsOptions$u20$as %.sroa.07.3.extract.shift = lshr i40 %1, 24 %.sroa.07.3.extract.trunc = trunc i40 %.sroa.07.3.extract.shift to i8 %.sroa.07.4.extract.shift = lshr i40 %1, 32 - %.sroa.07.4.extract.trunc = trunc nuw i40 %.sroa.07.4.extract.shift to i8 %.not = icmp eq i8 %.sroa.01.0.extract.trunc, 2 %.sroa.07.0.extract.trunc = trunc i40 %1 to i8 %spec.select = select i1 %.not, i8 %.sroa.07.0.extract.trunc, i8 %.sroa.01.0.extract.trunc @@ -23219,13 +23217,12 @@ define i40 @"_ZN121_$LT$ruff_workspace..options..Flake8AnnotationsOptions$u20$as %.sroa.018.0 = select i1 %.not25, i8 %.sroa.07.2.extract.trunc, i8 %.sroa.01.2.extract.trunc %.not26 = icmp eq i8 %.sroa.01.3.extract.trunc, 2 %.sroa.020.0 = select i1 %.not26, i8 %.sroa.07.3.extract.trunc, i8 %.sroa.01.3.extract.trunc - %.not27 = icmp eq i8 %.sroa.01.4.extract.trunc, 2 - %.sroa.022.0 = select i1 %.not27, i8 %.sroa.07.4.extract.trunc, i8 %.sroa.01.4.extract.trunc - %.sroa.513.0.insert.ext = zext i8 %.sroa.022.0 to i40 - %.sroa.513.0.insert.shift = shl nuw i40 %.sroa.513.0.insert.ext, 32 + %.not27 = icmp eq i40 %.sroa.01.4.extract.shift, 2 + %.sroa.022.0.v = select i1 %.not27, i40 %.sroa.07.4.extract.shift, i40 %.sroa.01.4.extract.shift + %.sroa.513.0.insert.shift = shl nuw i40 %.sroa.022.0.v, 32 %.sroa.412.0.insert.ext = zext i8 %.sroa.020.0 to i40 %.sroa.412.0.insert.shift = shl nuw nsw i40 %.sroa.412.0.insert.ext, 24 - %.sroa.412.0.insert.insert = or disjoint i40 %.sroa.513.0.insert.shift, %.sroa.412.0.insert.shift + %.sroa.412.0.insert.insert = or disjoint i40 %.sroa.412.0.insert.shift, %.sroa.513.0.insert.shift %.sroa.311.0.insert.ext = zext i8 %.sroa.018.0 to i40 %.sroa.311.0.insert.shift = shl nuw nsw i40 %.sroa.311.0.insert.ext, 16 %.sroa.311.0.insert.insert = or disjoint i40 %.sroa.412.0.insert.insert, %.sroa.311.0.insert.shift diff --git a/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll b/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll index 3b1ff3eeb18..e8d5ebe346d 100644 --- a/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll +++ b/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll @@ -596,16 +596,16 @@ define hidden noundef nonnull align 8 dereferenceable(32) ptr @"_ZN101_$LT$la_ar ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden noundef range(i8 -1, 2) i8 @"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856"(ptr noalias noundef readonly align 16 captures(none) dereferenceable(32) %0, ptr noalias noundef readonly align 16 captures(none) dereferenceable(32) %1) unnamed_addr #2 { %3 = load i128, ptr %0, align 16, !range !13, !noundef !4 - %4 = trunc nuw nsw i128 %3 to i64 - %5 = load i128, ptr %1, align 16, !range !13, !noundef !4 - %6 = trunc nuw nsw i128 %5 to i64 - %7 = icmp eq i64 %4, 1 - %8 = icmp eq i64 %6, 1 - %or.cond = select i1 %7, i1 %8, i1 false - br i1 %or.cond, label %10, label %9 + %4 = load i128, ptr %1, align 16, !range !13, !noundef !4 + %5 = icmp eq i128 %3, 1 + %6 = icmp eq i128 %4, 1 + %or.cond = and i1 %5, %6 + br i1 %or.cond, label %10, label %7 -9: ; preds = %2 - %.08 = tail call i8 @llvm.ucmp.i8.i64(i64 %4, i64 %6) +7: ; preds = %2 + %8 = trunc nuw nsw i128 %4 to i64 + %9 = trunc nuw nsw i128 %3 to i64 + %.08 = tail call i8 @llvm.ucmp.i8.i64(i64 %9, i64 %8) br label %15 10: ; preds = %2 @@ -616,8 +616,8 @@ define hidden noundef range(i8 -1, 2) i8 @"_ZN101_$LT$ra_ap_rustc_pattern_analys %.07 = tail call i8 @llvm.ucmp.i8.i128(i128 %12, i128 %14) br label %15 -15: ; preds = %9, %10 - %.0 = phi i8 [ %.07, %10 ], [ %.08, %9 ] +15: ; preds = %7, %10 + %.0 = phi i8 [ %.07, %10 ], [ %.08, %7 ] ret i8 %.0 } @@ -17701,7 +17701,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %6 = getelementptr inbounds nuw i8, ptr %1, i64 48 %7 = load ptr, ptr %6, align 16, !noundef !4 %.not = icmp eq ptr %7, null - br i1 %.not, label %26, label %8 + br i1 %.not, label %27, label %8 8: ; preds = %4 tail call void @llvm.experimental.noalias.scope.decl(metadata !8091) @@ -17712,18 +17712,18 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 %13 = getelementptr inbounds nuw i8, ptr %3, i64 32 %.promoted = load i128, ptr %3, align 16 - %.promoted71 = load i128, ptr %12, align 16 - %.promoted73 = load i64, ptr %13, align 16 + %.promoted79 = load i128, ptr %12, align 16 + %.promoted81 = load i64, ptr %13, align 16 br label %14 14: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %8 - %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted73, %8 ] - %.sroa.8.sroa.0.0.copyload.i72 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted71, %8 ] - %.sroa.0.0.copyload1.i70 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted, %8 ] + %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted81, %8 ] + %.sroa.8.sroa.0.0.copyload.i80 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted79, %8 ] + %.sroa.0.0.copyload1.i78 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted, %8 ] %16 = phi ptr [ %18, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted.i, %8 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8101) %17 = icmp eq ptr %16, %10 - br i1 %17, label %28, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" + br i1 %17, label %29, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i": ; preds = %14 %18 = getelementptr inbounds nuw i8, ptr %16, i64 48 @@ -17732,7 +17732,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.8.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %16, i64 16 %.sroa.8.sroa.0.0.copyload.i = load i128, ptr %.sroa.8.0..sroa_idx2.i, align 16, !noalias !8102 %.not.i = icmp eq i128 %.sroa.0.0.copyload1.i, 3 - br i1 %.not.i, label %28, label %19 + br i1 %.not.i, label %29, label %19 19: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" %.sroa.8.sroa.6.0..sroa.8.0..sroa_idx2.sroa_idx.i = getelementptr inbounds nuw i8, ptr %16, i64 32 @@ -17741,72 +17741,75 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %12, align 16, !alias.scope !8103, !noalias !8106 %20 = add i64 %15, %.sroa.8.sroa.6.0.copyload.i store i64 %20, ptr %13, align 16, !alias.scope !8103, !noalias !8106 - %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i70 to i64 + %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i78 to i64 %22 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i to i64 %23 = icmp eq i64 %21, %22 - br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", label %34 + br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", label %35 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i": ; preds = %19 - %24 = icmp eq i64 %21, 1 - %25 = icmp ne i128 %.sroa.8.sroa.0.0.copyload.i72, %.sroa.8.sroa.0.0.copyload.i - %spec.select.i.i.i.i.i.i = select i1 %24, i1 %25, i1 false - br i1 %spec.select.i.i.i.i.i.i, label %34, label %14 - -26: ; preds = %37, %4 - %27 = load i128, ptr %1, align 16, !range !8115, !noundef !4 - %.not4 = icmp eq i128 %27, 4 - br i1 %.not4, label %51, label %38 - -28: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 + %24 = icmp eq i128 %.sroa.0.0.copyload1.i78, 1 + %25 = icmp eq i128 %.sroa.0.0.copyload1.i, 1 + %or.cond.i.i.i.i.i.i = and i1 %25, %24 + %26 = icmp ne i128 %.sroa.8.sroa.0.0.copyload.i80, %.sroa.8.sroa.0.0.copyload.i + %spec.select.i.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i.i, i1 %26, i1 false + br i1 %spec.select.i.i.i.i.i.i, label %35, label %14 + +27: ; preds = %38, %4 + %28 = load i128, ptr %1, align 16, !range !8115, !noundef !4 + %.not4 = icmp eq i128 %28, 4 + br i1 %.not4, label %53, label %39 + +29: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !8116 store ptr %6, ptr %5, align 8, !noalias !8116 - %29 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) - to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %30 + %30 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) + to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %31 -30: ; preds = %28 - %31 = landingpad { ptr, i32 } +31: ; preds = %29 + %32 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %.body unwind label %32 + to label %.body unwind label %33 -32: ; preds = %30 - %33 = landingpad { ptr, i32 } +33: ; preds = %31 + %34 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #65 unreachable -"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %28 +"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %29 invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %37 unwind label %35 + to label %38 unwind label %36 -34: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %19 - store i128 %.sroa.0.0.copyload1.i70, ptr %0, align 16, !alias.scope !8123 +35: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %19 + %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i78, %19 ] + store i128 %.sroa.015.0, ptr %0, align 16, !alias.scope !8123 %.sroa.219.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i128 %.sroa.8.sroa.0.0.copyload.i72, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8123 + store i128 %.sroa.8.sroa.0.0.copyload.i80, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 %15, ptr %.sroa.3.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.0.0.copyload1.i, ptr %.sroa.5.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.620.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %.sroa.620.0..sroa_idx, align 16, !alias.scope !8123 - br label %52 + br label %54 -35: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" - %36 = landingpad { ptr, i32 } +36: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" + %37 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %30, %35 - %eh.lpad-body = phi { ptr, i32 } [ %36, %35 ], [ %31, %30 ] +.body: ; preds = %31, %36 + %eh.lpad-body = phi { ptr, i32 } [ %37, %36 ], [ %32, %31 ] store ptr null, ptr %6, align 16 resume { ptr, i32 } %eh.lpad-body -37: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" +38: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !8116 store ptr null, ptr %6, align 16 - br label %26 + br label %27 -38: ; preds = %26 +39: ; preds = %27 call void @llvm.experimental.noalias.scope.decl(metadata !8127) call void @llvm.experimental.noalias.scope.decl(metadata !8130) %.sroa.7.0..sroa_idx3.i = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -17814,62 +17817,69 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.7.sroa.6.0.copyload.i = load i64, ptr %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i, align 16, !alias.scope !8132, !noalias !8136 %.promoted55.i = load i128, ptr %3, align 16, !alias.scope !8130, !noalias !8138 - %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.promoted57.i = load i128, ptr %39, align 16, !alias.scope !8130, !noalias !8138 - %.promoted59.i = load i64, ptr %40, align 16, !alias.scope !8130, !noalias !8138 - br label %41 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %41 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %.promoted57.i = load i128, ptr %40, align 16, !alias.scope !8130, !noalias !8138 + %.promoted59.i = load i64, ptr %41, align 16, !alias.scope !8130, !noalias !8138 + br label %42 -41: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", %38 - %42 = phi i64 [ %44, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted59.i, %38 ] - %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted57.i, %38 ] - %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted55.i, %38 ] - %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %27, %38 ] +42: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", %39 + %43 = phi i64 [ %45, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted59.i, %39 ] + %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted57.i, %39 ] + %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted55.i, %39 ] + %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %28, %39 ] %.not.i7 = icmp eq i128 %.sroa.01.0.copyload254.i, 3 - br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, label %43 + br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, label %44 -43: ; preds = %41 +44: ; preds = %42 store i128 %.sroa.01.0.copyload254.i, ptr %3, align 16, !alias.scope !8139, !noalias !8142 - store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %39, align 16, !alias.scope !8139, !noalias !8142 - %44 = add i64 %42, %.sroa.7.sroa.6.0.copyload.i - store i64 %44, ptr %40, align 16, !alias.scope !8139, !noalias !8142 - %45 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 - %46 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 - %47 = icmp eq i64 %45, %46 - br i1 %47, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit - -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i": ; preds = %43 - %48 = icmp eq i64 %45, 1 - %49 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i - %spec.select.i.i.i.i.i = select i1 %48, i1 %49, i1 false - br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, label %41 - -_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread: ; preds = %41 + store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %40, align 16, !alias.scope !8139, !noalias !8142 + %45 = add i64 %43, %.sroa.7.sroa.6.0.copyload.i + store i64 %45, ptr %41, align 16, !alias.scope !8139, !noalias !8142 + %46 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 + %47 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 + %48 = icmp eq i64 %46, %47 + br i1 %48, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit + +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i": ; preds = %44 + %49 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 + %50 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 + %or.cond.i.i.i.i.i = and i1 %49, %50 + %51 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i + %spec.select.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i, i1 %51, i1 false + br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60, label %42 + +_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 - br label %51 + br label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + +_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread: ; preds = %42 + store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 + br label %53 -_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit: ; preds = %43, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" +_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit: ; preds = %44 store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 - %50 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 - br i1 %50, label %51, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + %52 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 + br i1 %52, label %53, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" -51: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, %26 +53: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, %27 store i128 3, ptr %0, align 16, !alias.scope !8149 - br label %52 + br label %54 -"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit - store i128 %.sroa.01.0.copyload25456.i, ptr %0, align 16, !alias.scope !8152 +"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60 + %.sroa.021.0 = phi i128 [ 1, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60 ], [ %.sroa.01.0.copyload25456.i, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit ] + store i128 %.sroa.021.0, ptr %0, align 16, !alias.scope !8152 %.sroa.237.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i128 %.sroa.7.sroa.0.0.copyload58.i, ptr %.sroa.237.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.338.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 %42, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8152 + store i64 %43, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.540.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.01.0.copyload254.i, ptr %.sroa.540.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.641.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %.sroa.641.0..sroa_idx, align 16, !alias.scope !8152 - br label %52 + br label %54 -52: ; preds = %51, %34, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" +54: ; preds = %53, %35, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" ret void } @@ -19115,7 +19125,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %6 = getelementptr inbounds nuw i8, ptr %1, i64 48 %7 = load ptr, ptr %6, align 16, !noundef !4 %.not = icmp eq ptr %7, null - br i1 %.not, label %26, label %8 + br i1 %.not, label %27, label %8 8: ; preds = %4 tail call void @llvm.experimental.noalias.scope.decl(metadata !8742) @@ -19126,18 +19136,18 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 %13 = getelementptr inbounds nuw i8, ptr %3, i64 32 %.promoted = load i128, ptr %3, align 16 - %.promoted71 = load i128, ptr %12, align 16 - %.promoted73 = load i64, ptr %13, align 16 + %.promoted79 = load i128, ptr %12, align 16 + %.promoted81 = load i64, ptr %13, align 16 br label %14 14: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %8 - %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted73, %8 ] - %.sroa.8.sroa.0.0.copyload.i72 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted71, %8 ] - %.sroa.0.0.copyload1.i70 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted, %8 ] + %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted81, %8 ] + %.sroa.8.sroa.0.0.copyload.i80 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted79, %8 ] + %.sroa.0.0.copyload1.i78 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted, %8 ] %16 = phi ptr [ %18, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted.i, %8 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8752) %17 = icmp eq ptr %16, %10 - br i1 %17, label %28, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" + br i1 %17, label %29, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i": ; preds = %14 %18 = getelementptr inbounds nuw i8, ptr %16, i64 48 @@ -19146,7 +19156,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.8.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %16, i64 16 %.sroa.8.sroa.0.0.copyload.i = load i128, ptr %.sroa.8.0..sroa_idx2.i, align 16, !noalias !8753 %.not.i = icmp eq i128 %.sroa.0.0.copyload1.i, 3 - br i1 %.not.i, label %28, label %19 + br i1 %.not.i, label %29, label %19 19: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i" %.sroa.8.sroa.6.0..sroa.8.0..sroa_idx2.sroa_idx.i = getelementptr inbounds nuw i8, ptr %16, i64 32 @@ -19155,72 +19165,75 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %12, align 16, !alias.scope !8754, !noalias !8757 %20 = add i64 %15, %.sroa.8.sroa.6.0.copyload.i store i64 %20, ptr %13, align 16, !alias.scope !8754, !noalias !8757 - %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i70 to i64 + %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i78 to i64 %22 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i to i64 %23 = icmp eq i64 %21, %22 - br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", label %34 + br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", label %35 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i": ; preds = %19 - %24 = icmp eq i64 %21, 1 - %25 = icmp ne i128 %.sroa.8.sroa.0.0.copyload.i72, %.sroa.8.sroa.0.0.copyload.i - %spec.select.i.i.i.i.i.i = select i1 %24, i1 %25, i1 false - br i1 %spec.select.i.i.i.i.i.i, label %34, label %14 - -26: ; preds = %37, %4 - %27 = load i128, ptr %1, align 16, !range !8115, !noundef !4 - %.not4 = icmp eq i128 %27, 4 - br i1 %.not4, label %51, label %38 - -28: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 + %24 = icmp eq i128 %.sroa.0.0.copyload1.i78, 1 + %25 = icmp eq i128 %.sroa.0.0.copyload1.i, 1 + %or.cond.i.i.i.i.i.i = and i1 %25, %24 + %26 = icmp ne i128 %.sroa.8.sroa.0.0.copyload.i80, %.sroa.8.sroa.0.0.copyload.i + %spec.select.i.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i.i, i1 %26, i1 false + br i1 %spec.select.i.i.i.i.i.i, label %35, label %14 + +27: ; preds = %38, %4 + %28 = load i128, ptr %1, align 16, !range !8115, !noundef !4 + %.not4 = icmp eq i128 %28, 4 + br i1 %.not4, label %53, label %39 + +29: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !8766 store ptr %6, ptr %5, align 8, !noalias !8766 - %29 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) - to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %30 + %30 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) + to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %31 -30: ; preds = %28 - %31 = landingpad { ptr, i32 } +31: ; preds = %29 + %32 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %.body unwind label %32 + to label %.body unwind label %33 -32: ; preds = %30 - %33 = landingpad { ptr, i32 } +33: ; preds = %31 + %34 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #65 unreachable -"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %28 +"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %29 invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %37 unwind label %35 + to label %38 unwind label %36 -34: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %19 - store i128 %.sroa.0.0.copyload1.i70, ptr %0, align 16, !alias.scope !8773 +35: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %19 + %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i78, %19 ] + store i128 %.sroa.015.0, ptr %0, align 16, !alias.scope !8773 %.sroa.219.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i128 %.sroa.8.sroa.0.0.copyload.i72, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8773 + store i128 %.sroa.8.sroa.0.0.copyload.i80, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 %15, ptr %.sroa.3.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.0.0.copyload1.i, ptr %.sroa.5.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.620.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %.sroa.620.0..sroa_idx, align 16, !alias.scope !8773 - br label %52 + br label %54 -35: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" - %36 = landingpad { ptr, i32 } +36: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" + %37 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %30, %35 - %eh.lpad-body = phi { ptr, i32 } [ %36, %35 ], [ %31, %30 ] +.body: ; preds = %31, %36 + %eh.lpad-body = phi { ptr, i32 } [ %37, %36 ], [ %32, %31 ] store ptr null, ptr %6, align 16 resume { ptr, i32 } %eh.lpad-body -37: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" +38: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !8766 store ptr null, ptr %6, align 16 - br label %26 + br label %27 -38: ; preds = %26 +39: ; preds = %27 call void @llvm.experimental.noalias.scope.decl(metadata !8777) call void @llvm.experimental.noalias.scope.decl(metadata !8780) %.sroa.7.0..sroa_idx3.i = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -19228,62 +19241,69 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.7.sroa.6.0.copyload.i = load i64, ptr %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i, align 16, !alias.scope !8782, !noalias !8786 %.promoted55.i = load i128, ptr %3, align 16, !alias.scope !8780, !noalias !8788 - %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.promoted57.i = load i128, ptr %39, align 16, !alias.scope !8780, !noalias !8788 - %.promoted59.i = load i64, ptr %40, align 16, !alias.scope !8780, !noalias !8788 - br label %41 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %41 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %.promoted57.i = load i128, ptr %40, align 16, !alias.scope !8780, !noalias !8788 + %.promoted59.i = load i64, ptr %41, align 16, !alias.scope !8780, !noalias !8788 + br label %42 -41: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", %38 - %42 = phi i64 [ %44, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted59.i, %38 ] - %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted57.i, %38 ] - %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted55.i, %38 ] - %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %27, %38 ] +42: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", %39 + %43 = phi i64 [ %45, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted59.i, %39 ] + %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted57.i, %39 ] + %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted55.i, %39 ] + %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %28, %39 ] %.not.i7 = icmp eq i128 %.sroa.01.0.copyload254.i, 3 - br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, label %43 + br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, label %44 -43: ; preds = %41 +44: ; preds = %42 store i128 %.sroa.01.0.copyload254.i, ptr %3, align 16, !alias.scope !8789, !noalias !8792 - store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %39, align 16, !alias.scope !8789, !noalias !8792 - %44 = add i64 %42, %.sroa.7.sroa.6.0.copyload.i - store i64 %44, ptr %40, align 16, !alias.scope !8789, !noalias !8792 - %45 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 - %46 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 - %47 = icmp eq i64 %45, %46 - br i1 %47, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit - -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i": ; preds = %43 - %48 = icmp eq i64 %45, 1 - %49 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i - %spec.select.i.i.i.i.i = select i1 %48, i1 %49, i1 false - br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, label %41 - -_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread: ; preds = %41 + store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %40, align 16, !alias.scope !8789, !noalias !8792 + %45 = add i64 %43, %.sroa.7.sroa.6.0.copyload.i + store i64 %45, ptr %41, align 16, !alias.scope !8789, !noalias !8792 + %46 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 + %47 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 + %48 = icmp eq i64 %46, %47 + br i1 %48, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit + +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i": ; preds = %44 + %49 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 + %50 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 + %or.cond.i.i.i.i.i = and i1 %49, %50 + %51 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i + %spec.select.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i, i1 %51, i1 false + br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60, label %42 + +_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 - br label %51 + br label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + +_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread: ; preds = %42 + store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 + br label %53 -_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit: ; preds = %43, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" +_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit: ; preds = %44 store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 - %50 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 - br i1 %50, label %51, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + %52 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 + br i1 %52, label %53, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" -51: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, %26 +53: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, %27 store i128 3, ptr %0, align 16, !alias.scope !8799 - br label %52 + br label %54 -"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit - store i128 %.sroa.01.0.copyload25456.i, ptr %0, align 16, !alias.scope !8802 +"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60 + %.sroa.021.0 = phi i128 [ 1, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60 ], [ %.sroa.01.0.copyload25456.i, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit ] + store i128 %.sroa.021.0, ptr %0, align 16, !alias.scope !8802 %.sroa.237.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i128 %.sroa.7.sroa.0.0.copyload58.i, ptr %.sroa.237.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.338.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 %42, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8802 + store i64 %43, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.540.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.01.0.copyload254.i, ptr %.sroa.540.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.641.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %.sroa.641.0..sroa_idx, align 16, !alias.scope !8802 - br label %52 + br label %54 -52: ; preds = %51, %34, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" +54: ; preds = %53, %35, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" ret void } @@ -39038,16 +39058,16 @@ define hidden noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut17hbe44b94 tail call void @llvm.experimental.noalias.scope.decl(metadata !14408) tail call void @llvm.experimental.noalias.scope.decl(metadata !14411) %4 = load i128, ptr %1, align 16, !range !13, !alias.scope !14413, !noalias !14414, !noundef !4 - %5 = trunc nuw nsw i128 %4 to i64 - %6 = load i128, ptr %2, align 16, !range !13, !alias.scope !14414, !noalias !14413, !noundef !4 - %7 = trunc nuw nsw i128 %6 to i64 - %8 = icmp eq i64 %5, 1 - %9 = icmp eq i64 %7, 1 - %or.cond.i.i = select i1 %8, i1 %9, i1 false - br i1 %or.cond.i.i, label %11, label %10 + %5 = load i128, ptr %2, align 16, !range !13, !alias.scope !14414, !noalias !14413, !noundef !4 + %6 = icmp eq i128 %4, 1 + %7 = icmp eq i128 %5, 1 + %or.cond.i.i = and i1 %6, %7 + br i1 %or.cond.i.i, label %11, label %8 -10: ; preds = %3 - %.08.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %5, i64 %7) +8: ; preds = %3 + %9 = trunc nuw nsw i128 %5 to i64 + %10 = trunc nuw nsw i128 %4 to i64 + %.08.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %10, i64 %9) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i" 11: ; preds = %3 @@ -39058,8 +39078,8 @@ define hidden noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut17hbe44b94 %.07.i.i = tail call i8 @llvm.ucmp.i8.i128(i128 %13, i128 %15) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i": ; preds = %11, %10 - %.0.i.i = phi i8 [ %.07.i.i, %11 ], [ %.08.i.i, %10 ] +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i": ; preds = %11, %8 + %.0.i.i = phi i8 [ %.07.i.i, %11 ], [ %.08.i.i, %8 ] %16 = icmp eq i8 %.0.i.i, 0 br i1 %16, label %19, label %17 @@ -39091,16 +39111,16 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co tail call void @llvm.experimental.noalias.scope.decl(metadata !14432) tail call void @llvm.experimental.noalias.scope.decl(metadata !14435) %4 = load i128, ptr %1, align 16, !range !13, !alias.scope !14437, !noalias !14438, !noundef !4 - %5 = trunc nuw nsw i128 %4 to i64 - %6 = load i128, ptr %2, align 16, !range !13, !alias.scope !14438, !noalias !14437, !noundef !4 - %7 = trunc nuw nsw i128 %6 to i64 - %8 = icmp eq i64 %5, 1 - %9 = icmp eq i64 %7, 1 - %or.cond.i.i.i = select i1 %8, i1 %9, i1 false - br i1 %or.cond.i.i.i, label %11, label %10 + %5 = load i128, ptr %2, align 16, !range !13, !alias.scope !14438, !noalias !14437, !noundef !4 + %6 = icmp eq i128 %4, 1 + %7 = icmp eq i128 %5, 1 + %or.cond.i.i.i = and i1 %6, %7 + br i1 %or.cond.i.i.i, label %11, label %8 -10: ; preds = %3 - %.08.i.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %5, i64 %7) +8: ; preds = %3 + %9 = trunc nuw nsw i128 %5 to i64 + %10 = trunc nuw nsw i128 %4 to i64 + %.08.i.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %10, i64 %9) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i" 11: ; preds = %3 @@ -39111,8 +39131,8 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co %.07.i.i.i = tail call i8 @llvm.ucmp.i8.i128(i128 %13, i128 %15) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i": ; preds = %11, %10 - %.0.i.i.i = phi i8 [ %.07.i.i.i, %11 ], [ %.08.i.i.i, %10 ] +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i": ; preds = %11, %8 + %.0.i.i.i = phi i8 [ %.07.i.i.i, %11 ], [ %.08.i.i.i, %8 ] %16 = icmp eq i8 %.0.i.i.i, 0 br i1 %16, label %19, label %17 @@ -60538,16 +60558,16 @@ define hidden noundef zeroext i1 @"_ZN4core5tuple65_$LT$impl$u20$core..cmp..Part tail call void @llvm.experimental.noalias.scope.decl(metadata !22523) tail call void @llvm.experimental.noalias.scope.decl(metadata !22526) %3 = load i128, ptr %0, align 16, !range !13, !alias.scope !22523, !noalias !22526, !noundef !4 - %4 = trunc nuw nsw i128 %3 to i64 - %5 = load i128, ptr %1, align 16, !range !13, !alias.scope !22526, !noalias !22523, !noundef !4 - %6 = trunc nuw nsw i128 %5 to i64 - %7 = icmp eq i64 %4, 1 - %8 = icmp eq i64 %6, 1 - %or.cond.i = select i1 %7, i1 %8, i1 false - br i1 %or.cond.i, label %10, label %9 + %4 = load i128, ptr %1, align 16, !range !13, !alias.scope !22526, !noalias !22523, !noundef !4 + %5 = icmp eq i128 %3, 1 + %6 = icmp eq i128 %4, 1 + %or.cond.i = and i1 %5, %6 + br i1 %or.cond.i, label %10, label %7 -9: ; preds = %2 - %.08.i = tail call i8 @llvm.ucmp.i8.i64(i64 %4, i64 %6) +7: ; preds = %2 + %8 = trunc nuw nsw i128 %4 to i64 + %9 = trunc nuw nsw i128 %3 to i64 + %.08.i = tail call i8 @llvm.ucmp.i8.i64(i64 %9, i64 %8) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit" 10: ; preds = %2 @@ -60558,8 +60578,8 @@ define hidden noundef zeroext i1 @"_ZN4core5tuple65_$LT$impl$u20$core..cmp..Part %.07.i = tail call i8 @llvm.ucmp.i8.i128(i128 %12, i128 %14) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit": ; preds = %9, %10 - %.0.i = phi i8 [ %.07.i, %10 ], [ %.08.i, %9 ] +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit": ; preds = %7, %10 + %.0.i = phi i8 [ %.07.i, %10 ], [ %.08.i, %7 ] %15 = icmp eq i8 %.0.i, 0 br i1 %15, label %18, label %16 diff --git a/bench/sentencepiece/optimized/repeated_field.ll b/bench/sentencepiece/optimized/repeated_field.ll index 2e0ff04205e..538d2bf719a 100644 --- a/bench/sentencepiece/optimized/repeated_field.ll +++ b/bench/sentencepiece/optimized/repeated_field.ll @@ -13400,24 +13400,24 @@ _ZN6google8protobuf8internal20RepeatedPtrFieldBase5ClearINS0_16RepeatedPtrFieldI call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false) store i128 %.0.copyload.i.i.i, ptr %5, align 8 %53 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %54 = lshr i128 %.0.copyload.i.i.i, 64 - %55 = trunc nuw i128 %54 to i64 - %.not.i = icmp ne i64 %55, 0 - %56 = load ptr, ptr %3, align 8 - %57 = icmp eq ptr %56, null - %or.cond.i = select i1 %.not.i, i1 %57, i1 false - br i1 %or.cond.i, label %58, label %79 - -58: ; preds = %52 - %59 = lshr i128 %.0.copyload.i.i.i, 32 - %60 = trunc i128 %59 to i32 - %61 = inttoptr i64 %55 to ptr + %.not.i = icmp ugt i128 %.0.copyload.i.i.i, 18446744073709551615 + %54 = load ptr, ptr %3, align 8 + %55 = icmp eq ptr %54, null + %or.cond.i = select i1 %.not.i, i1 %55, i1 false + br i1 %or.cond.i, label %56, label %79 + +56: ; preds = %52 + %57 = lshr i128 %.0.copyload.i.i.i, 32 + %58 = trunc i128 %57 to i32 + %59 = lshr i128 %.0.copyload.i.i.i, 64 + %60 = trunc nuw i128 %59 to i64 + %61 = inttoptr i64 %60 to ptr %62 = load i32, ptr %61, align 8, !tbaa !136 %63 = getelementptr inbounds nuw i8, ptr %61, i64 8 %64 = icmp sgt i32 %62, 0 br i1 %64, label %.lr.ph.preheader.i, label %._crit_edge.i -.lr.ph.preheader.i: ; preds = %58 +.lr.ph.preheader.i: ; preds = %56 %wide.trip.count.i9 = zext nneg i32 %62 to i64 br label %.lr.ph.i @@ -13427,9 +13427,9 @@ _ZN6google8protobuf8internal20RepeatedPtrFieldBase5ClearINS0_16RepeatedPtrFieldI %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !138 br label %._crit_edge.i -._crit_edge.i: ; preds = %._crit_edge.loopexit.i, %58 - %65 = phi i32 [ %.pre, %._crit_edge.loopexit.i ], [ %60, %58 ] - %66 = phi ptr [ %.pre.i, %._crit_edge.loopexit.i ], [ %61, %58 ] +._crit_edge.i: ; preds = %._crit_edge.loopexit.i, %56 + %65 = phi i32 [ %.pre, %._crit_edge.loopexit.i ], [ %58, %56 ] + %66 = phi ptr [ %.pre.i, %._crit_edge.loopexit.i ], [ %61, %56 ] %67 = sext i32 %65 to i64 %68 = shl nsw i64 %67, 3 %69 = add nsw i64 %68, 8 diff --git a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll index dacd0a260ed..62fea7cc094 100644 --- a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll +++ b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll @@ -1135,67 +1135,62 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h %10 = load i64, ptr %9, align 8, !noundef !4 %11 = lshr i64 %6, 1 %12 = trunc i64 %11 to i16 + %.not = icmp eq i16 %12, 0 + br i1 %.not, label %.critedge, label %.lr.ph34 + +.lr.ph34: ; preds = %3 %13 = lshr i64 %10, 1 %14 = trunc i64 %13 to i16 - %.not = icmp eq i16 %12, 0 - br i1 %.not, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread", label %.lr.ph40 + br label %15 .loopexit: ; preds = %.lr.ph, %.preheader - %15 = add i16 %17, 1 - %16 = icmp ult i16 %17, %12 - br i1 %16, label %.lr.ph40, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread" - -.lr.ph40: ; preds = %3, %.loopexit - %17 = phi i16 [ %15, %.loopexit ], [ 1, %3 ] - %.sroa.14.039 = phi i16 [ %25, %.loopexit ], [ 0, %3 ] - %.sroa.620.038 = phi i16 [ %17, %.loopexit ], [ 0, %3 ] - %18 = zext i16 %.sroa.620.038 to i64 - %19 = shl nuw nsw i64 %18, 1 - %20 = add nuw nsw i64 %19, 2 - %21 = icmp ugt i64 %20, %6 - br i1 %21, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread", label %22 - -22: ; preds = %.lr.ph40 - %23 = getelementptr inbounds nuw i8, ptr %4, i64 %19 - %.val.i.i.i.i.i.i = load i16, ptr %23, align 1, !alias.scope !172, !noalias !179 - %24 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) - %25 = add i16 %.sroa.14.039, 1 - %26 = icmp ult i16 %.sroa.14.039, %14 - br i1 %26, label %27, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread" - -27: ; preds = %22 - %28 = zext i16 %.sroa.14.039 to i64 - %29 = shl nuw nsw i64 %28, 1 - %30 = add nuw nsw i64 %29, 2 - %31 = icmp ugt i64 %30, %10 - br i1 %31, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread", label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit" - -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit": ; preds = %27 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 %29 - %.val.i.i.i.i.i20.i = load i16, ptr %32, align 1, !alias.scope !184, !noalias !191 - %33 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i) - %34 = and i16 %24, %33 - %or.cond = icmp eq i16 %34, -1 - br i1 %or.cond, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread", label %.preheader + %exitcond39.not = icmp eq i16 %23, %12 + br i1 %exitcond39.not, label %.critedge, label %15 + +15: ; preds = %.lr.ph34, %.loopexit + %.sroa.14.033 = phi i16 [ 0, %.lr.ph34 ], [ %23, %.loopexit ] + %16 = zext i16 %.sroa.14.033 to i64 + %17 = shl nuw nsw i64 %16, 1 + %18 = add nuw nsw i64 %17, 2 + %19 = icmp ugt i64 %18, %6 + br i1 %19, label %.critedge, label %20 + +20: ; preds = %15 + %21 = getelementptr inbounds nuw i8, ptr %4, i64 %17 + %.val.i.i.i.i.i.i = load i16, ptr %21, align 1, !alias.scope !172, !noalias !179 + %22 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) + %23 = add nuw i16 %.sroa.14.033, 1 + %exitcond.not = icmp eq i16 %.sroa.14.033, %14 + %24 = icmp ugt i64 %18, %10 + %or.cond44 = or i1 %exitcond.not, %24 + br i1 %or.cond44, label %.critedge, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit" + +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit": ; preds = %20 + %25 = getelementptr inbounds nuw i8, ptr %8, i64 %17 + %.val.i.i.i.i.i20.i = load i16, ptr %25, align 1, !alias.scope !184, !noalias !191 + %26 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i) + %27 = and i16 %26, %22 + %or.cond = icmp eq i16 %27, -1 + br i1 %or.cond, label %.critedge, label %.preheader .preheader: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit" - %.not.i31 = icmp ugt i16 %24, %33 - br i1 %.not.i31, label %.loopexit, label %.lr.ph + %.not.i30 = icmp ugt i16 %22, %26 + br i1 %.not.i30, label %.loopexit, label %.lr.ph -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread": ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit", %.lr.ph40, %.loopexit, %27, %22, %3 +.critedge: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit", %20, %.loopexit, %15, %3 ret void .lr.ph: ; preds = %.preheader, %.lr.ph - %.sroa.022.032 = phi i16 [ %spec.select, %.lr.ph ], [ %24, %.preheader ] - %35 = icmp uge i16 %.sroa.022.032, %33 - %not. = xor i1 %35, true - %36 = zext i1 %not. to i16 - %spec.select = add nuw i16 %.sroa.022.032, %36 - %37 = zext i16 %.sroa.022.032 to i32 - tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull %1, ptr nonnull %2, i32 noundef %37) - %.not.i = icmp ugt i16 %spec.select, %33 - %or.cond30 = select i1 %35, i1 true, i1 %.not.i - br i1 %or.cond30, label %.loopexit, label %.lr.ph + %.sroa.021.031 = phi i16 [ %spec.select, %.lr.ph ], [ %22, %.preheader ] + %28 = icmp uge i16 %.sroa.021.031, %26 + %not. = xor i1 %28, true + %29 = zext i1 %not. to i16 + %spec.select = add nuw i16 %.sroa.021.031, %29 + %30 = zext i16 %.sroa.021.031 to i32 + tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull %1, ptr nonnull %2, i32 noundef %30) + %.not.i = icmp ugt i16 %spec.select, %26 + %or.cond29 = select i1 %28, i1 true, i1 %.not.i + br i1 %or.cond29, label %.loopexit, label %.lr.ph } ; Function Attrs: nonlazybind uwtable @@ -1236,7 +1231,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format69Subtable610codepoints17h ; Function Attrs: nonlazybind uwtable define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h8cd33444b1e539ccE(ptr noalias noundef readonly align 8 captures(none) dereferenceable(104) %0, ptr noalias noundef readonly align 8 captures(address_is_null) dereferenceable(2456) %1, ptr noalias noundef align 8 dereferenceable(24) %2) unnamed_addr #3 personality ptr @rust_eh_personality { %4 = load i64, ptr %0, align 8, !range !194, !noundef !4 - switch i64 %4, label %default.unreachable77 [ + switch i64 %4, label %default.unreachable72 [ i64 0, label %5 i64 1, label %19 i64 2, label %72 @@ -1248,7 +1243,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h8cd33444b i64 8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit ] -default.unreachable77: ; preds = %3 +default.unreachable72: ; preds = %3 unreachable 5: ; preds = %3 @@ -1394,58 +1389,61 @@ default.unreachable77: ; preds = %3 %78 = load ptr, ptr %77, align 8, !alias.scope !239, !noalias !242, !nonnull !4, !align !141, !noundef !4 %79 = getelementptr inbounds nuw i8, ptr %0, i64 32 %80 = load i64, ptr %79, align 8, !alias.scope !239, !noalias !242, !noundef !4 - %81 = lshr i64 %76, 1 - %82 = trunc i64 %81 to i16 + %81 = and i64 %76, 131070 + %.not.i2 = icmp eq i64 %81, 0 + br i1 %.not.i2, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph34.i + +.lr.ph34.i: ; preds = %72 + %82 = lshr i64 %76, 1 %83 = lshr i64 %80, 1 - %84 = trunc i64 %83 to i16 - %.not = icmp eq i16 %82, 0 - br i1 %.not, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph - -.loopexit.i: ; preds = %.lr.ph.i5, %.preheader.i4 - %exitcond60.not = icmp eq i16 %92, %82 - br i1 %exitcond60.not, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph - -.lr.ph: ; preds = %72, %.loopexit.i - %.sroa.14.0.i48 = phi i16 [ %92, %.loopexit.i ], [ 0, %72 ] - %85 = zext i16 %.sroa.14.0.i48 to i64 - %86 = shl nuw nsw i64 %85, 1 - %87 = add nuw nsw i64 %86, 2 - %88 = icmp ugt i64 %87, %76 - br i1 %88, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %89 - -89: ; preds = %.lr.ph - %90 = getelementptr inbounds nuw i8, ptr %74, i64 %86 - %.val.i.i.i.i.i.i.i2 = load i16, ptr %90, align 1, !alias.scope !245, !noalias !252 - %91 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i2) - %92 = add nuw i16 %.sroa.14.0.i48, 1 - %exitcond.not = icmp eq i16 %.sroa.14.0.i48, %84 - %93 = icmp ugt i64 %87, %80 - %or.cond = or i1 %exitcond.not, %93 - br i1 %or.cond, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" - -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i": ; preds = %89 - %94 = getelementptr inbounds nuw i8, ptr %78, i64 %86 + %84 = and i64 %82, 65535 + %85 = and i64 %83, 65535 + br label %86 + +.loopexit.i: ; preds = %.lr.ph.i7, %.preheader.i6 + %exitcond39.not.i = icmp eq i64 %indvars.iv.next, %84 + br i1 %exitcond39.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %86 + +86: ; preds = %.loopexit.i, %.lr.ph34.i + %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph34.i ] + %87 = shl nuw nsw i64 %indvars.iv, 1 + %88 = add nuw nsw i64 %87, 2 + %89 = icmp ugt i64 %88, %76 + br i1 %89, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %90 + +90: ; preds = %86 + %91 = getelementptr inbounds nuw i8, ptr %74, i64 %87 + %.val.i.i.i.i.i.i.i3 = load i16, ptr %91, align 1, !alias.scope !245, !noalias !252 + %92 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i3) + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 + %exitcond.not.i4 = icmp eq i64 %indvars.iv, %85 + %93 = icmp ugt i64 %88, %80 + %or.cond44.i = or i1 %exitcond.not.i4, %93 + br i1 %or.cond44.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" + +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i": ; preds = %90 + %94 = getelementptr inbounds nuw i8, ptr %78, i64 %87 %.val.i.i.i.i.i20.i.i = load i16, ptr %94, align 1, !alias.scope !257, !noalias !264 %95 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i.i) - %96 = and i16 %95, %91 - %or.cond.i3 = icmp eq i16 %96, -1 - br i1 %or.cond.i3, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.preheader.i4 + %96 = and i16 %95, %92 + %or.cond.i5 = icmp eq i16 %96, -1 + br i1 %or.cond.i5, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.preheader.i6 -.preheader.i4: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" - %.not.i31.i = icmp ugt i16 %91, %95 - br i1 %.not.i31.i, label %.loopexit.i, label %.lr.ph.i5 +.preheader.i6: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" + %.not.i30.i = icmp ugt i16 %92, %95 + br i1 %.not.i30.i, label %.loopexit.i, label %.lr.ph.i7 -.lr.ph.i5: ; preds = %.preheader.i4, %.lr.ph.i5 - %.sroa.022.032.i = phi i16 [ %spec.select.i, %.lr.ph.i5 ], [ %91, %.preheader.i4 ] - %97 = icmp uge i16 %.sroa.022.032.i, %95 +.lr.ph.i7: ; preds = %.preheader.i6, %.lr.ph.i7 + %.sroa.021.031.i = phi i16 [ %spec.select.i, %.lr.ph.i7 ], [ %92, %.preheader.i6 ] + %97 = icmp uge i16 %.sroa.021.031.i, %95 %not..i = xor i1 %97, true %98 = zext i1 %not..i to i16 - %spec.select.i = add nuw i16 %.sroa.022.032.i, %98 - %99 = zext i16 %.sroa.022.032.i to i32 + %spec.select.i = add nuw i16 %.sroa.021.031.i, %98 + %99 = zext i16 %.sroa.021.031.i to i32 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %99), !noalias !239 %.not.i.i = icmp ugt i16 %spec.select.i, %95 - %or.cond30.i = select i1 %97, i1 true, i1 %.not.i.i - br i1 %or.cond30.i, label %.loopexit.i, label %.lr.ph.i5 + %or.cond29.i = select i1 %97, i1 true, i1 %.not.i.i + br i1 %or.cond29.i, label %.loopexit.i, label %.lr.ph.i7 100: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !267) @@ -1453,16 +1451,16 @@ default.unreachable77: ; preds = %3 %102 = load i64, ptr %101, align 8, !alias.scope !267, !noalias !270, !noundef !4 %103 = lshr i64 %102, 1 %104 = trunc i64 %103 to i16 - %.not.i6 = icmp eq i16 %104, 0 - br i1 %.not.i6, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i7 + %.not.i8 = icmp eq i16 %104, 0 + br i1 %.not.i8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i9 -.lr.ph.i7: ; preds = %100 +.lr.ph.i9: ; preds = %100 %105 = getelementptr inbounds nuw i8, ptr %0, i64 24 %106 = load i16, ptr %105, align 8, !alias.scope !267, !noalias !270, !noundef !4 br label %107 -107: ; preds = %114, %.lr.ph.i7 - %.sroa.01.011.i = phi i16 [ 0, %.lr.ph.i7 ], [ %108, %114 ] +107: ; preds = %114, %.lr.ph.i9 + %.sroa.01.011.i = phi i16 [ 0, %.lr.ph.i9 ], [ %108, %114 ] %108 = add nuw i16 %.sroa.01.011.i, 1 %109 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %106, i16 %.sroa.01.011.i) %110 = extractvalue { i16, i1 } %109, 1 @@ -1475,8 +1473,8 @@ default.unreachable77: ; preds = %3 br label %114 114: ; preds = %111, %107 - %exitcond.not.i8 = icmp eq i16 %108, %104 - br i1 %exitcond.not.i8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %107 + %exitcond.not.i10 = icmp eq i16 %108, %104 + br i1 %exitcond.not.i10, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %107 115: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !273) @@ -1484,18 +1482,18 @@ default.unreachable77: ; preds = %3 %117 = load i64, ptr %116, align 8, !alias.scope !273, !noalias !276, !noundef !4 %118 = lshr i64 %117, 1 %119 = trunc i64 %118 to i32 - %.not.i9 = icmp eq i32 %119, 0 - br i1 %.not.i9, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i10 + %.not.i11 = icmp eq i32 %119, 0 + br i1 %.not.i11, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i12 -.lr.ph.i10: ; preds = %115 +.lr.ph.i12: ; preds = %115 %120 = getelementptr inbounds nuw i8, ptr %0, i64 24 %121 = load i32, ptr %120, align 8, !alias.scope !273, !noalias !276, !noundef !4 br label %122 -122: ; preds = %128, %.lr.ph.i10 - %.sroa.01.011.i11 = phi i32 [ 0, %.lr.ph.i10 ], [ %123, %128 ] - %123 = add nuw i32 %.sroa.01.011.i11, 1 - %124 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %121, i32 %.sroa.01.011.i11) +122: ; preds = %128, %.lr.ph.i12 + %.sroa.01.011.i13 = phi i32 [ 0, %.lr.ph.i12 ], [ %123, %128 ] + %123 = add nuw i32 %.sroa.01.011.i13, 1 + %124 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %121, i32 %.sroa.01.011.i13) %125 = extractvalue { i32, i1 } %124, 1 br i1 %125, label %128, label %126 @@ -1505,8 +1503,8 @@ default.unreachable77: ; preds = %3 br label %128 128: ; preds = %126, %122 - %exitcond.not.i12 = icmp eq i32 %123, %119 - br i1 %exitcond.not.i12, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %122 + %exitcond.not.i14 = icmp eq i32 %123, %119 + br i1 %exitcond.not.i14, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %122 129: ; preds = %3 %130 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1516,16 +1514,16 @@ default.unreachable77: ; preds = %3 %133 = load i64, ptr %132, align 8, !alias.scope !279, !noalias !282, !noundef !4 %134 = udiv i64 %133, 12 %135 = and i64 %134, 4294967295 - %.not.i13 = icmp eq i64 %135, 0 - br i1 %.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i + %.not.i15 = icmp eq i64 %135, 0 + br i1 %.not.i15, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i -.loopexit.i21: ; preds = %.lr.ph.i16, %139 +.loopexit.i23: ; preds = %.lr.ph.i18, %139 %indvars.iv.next33.i = add nuw nsw i64 %indvars.iv32.i, 1 - %exitcond.not.i22 = icmp eq i64 %indvars.iv.next33.i, %135 - br i1 %exitcond.not.i22, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i + %exitcond.not.i24 = icmp eq i64 %indvars.iv.next33.i, %135 + br i1 %exitcond.not.i24, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i -.lr.ph30.i: ; preds = %129, %.loopexit.i21 - %indvars.iv32.i = phi i64 [ %indvars.iv.next33.i, %.loopexit.i21 ], [ 0, %129 ] +.lr.ph30.i: ; preds = %129, %.loopexit.i23 + %indvars.iv32.i = phi i64 [ %indvars.iv.next33.i, %.loopexit.i23 ], [ 0, %129 ] %136 = mul nuw nsw i64 %indvars.iv32.i, 12 %137 = add nuw nsw i64 %136, 12 %138 = icmp ugt i64 %137, %133 @@ -1533,24 +1531,24 @@ default.unreachable77: ; preds = %3 139: ; preds = %.lr.ph30.i %140 = getelementptr inbounds nuw i8, ptr %131, i64 %136 - %.val.i.i.i.i.i.i.i15 = load i32, ptr %140, align 1, !alias.scope !285, !noalias !296 - %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i15) + %.val.i.i.i.i.i.i.i17 = load i32, ptr %140, align 1, !alias.scope !285, !noalias !296 + %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i17) %142 = getelementptr inbounds nuw i8, ptr %140, i64 4 %.val.i.i.i35.i.i.i.i = load i32, ptr %142, align 1, !alias.scope !301, !noalias !296 %143 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i) %.not.i27.i = icmp ugt i32 %141, %143 - br i1 %.not.i27.i, label %.loopexit.i21, label %.lr.ph.i16 + br i1 %.not.i27.i, label %.loopexit.i23, label %.lr.ph.i18 -.lr.ph.i16: ; preds = %139, %.lr.ph.i16 - %.sroa.015.028.i = phi i32 [ %spec.select.i18, %.lr.ph.i16 ], [ %141, %139 ] +.lr.ph.i18: ; preds = %139, %.lr.ph.i18 + %.sroa.015.028.i = phi i32 [ %spec.select.i20, %.lr.ph.i18 ], [ %141, %139 ] %144 = icmp uge i32 %.sroa.015.028.i, %143 - %not..i17 = xor i1 %144, true - %145 = zext i1 %not..i17 to i32 - %spec.select.i18 = add nuw i32 %.sroa.015.028.i, %145 + %not..i19 = xor i1 %144, true + %145 = zext i1 %not..i19 to i32 + %spec.select.i20 = add nuw i32 %.sroa.015.028.i, %145 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i), !noalias !279 - %.not.i.i19 = icmp ugt i32 %spec.select.i18, %143 - %or.cond.i20 = select i1 %144, i1 true, i1 %.not.i.i19 - br i1 %or.cond.i20, label %.loopexit.i21, label %.lr.ph.i16 + %.not.i.i21 = icmp ugt i32 %spec.select.i20, %143 + %or.cond.i22 = select i1 %144, i1 true, i1 %.not.i.i21 + br i1 %or.cond.i22, label %.loopexit.i23, label %.lr.ph.i18 146: ; preds = %3 %147 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1560,43 +1558,43 @@ default.unreachable77: ; preds = %3 %150 = load i64, ptr %149, align 8, !alias.scope !308, !noalias !311, !noundef !4 %151 = udiv i64 %150, 12 %152 = and i64 %151, 4294967295 - %.not.i23 = icmp eq i64 %152, 0 - br i1 %.not.i23, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i26 + %.not.i25 = icmp eq i64 %152, 0 + br i1 %.not.i25, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i28 -.loopexit.i37: ; preds = %.lr.ph.i31, %156 - %indvars.iv.next33.i38 = add nuw nsw i64 %indvars.iv32.i27, 1 - %exitcond.not.i39 = icmp eq i64 %indvars.iv.next33.i38, %152 - br i1 %exitcond.not.i39, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i26 +.loopexit.i39: ; preds = %.lr.ph.i33, %156 + %indvars.iv.next33.i40 = add nuw nsw i64 %indvars.iv32.i29, 1 + %exitcond.not.i41 = icmp eq i64 %indvars.iv.next33.i40, %152 + br i1 %exitcond.not.i41, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i28 -.lr.ph30.i26: ; preds = %146, %.loopexit.i37 - %indvars.iv32.i27 = phi i64 [ %indvars.iv.next33.i38, %.loopexit.i37 ], [ 0, %146 ] - %153 = mul nuw nsw i64 %indvars.iv32.i27, 12 +.lr.ph30.i28: ; preds = %146, %.loopexit.i39 + %indvars.iv32.i29 = phi i64 [ %indvars.iv.next33.i40, %.loopexit.i39 ], [ 0, %146 ] + %153 = mul nuw nsw i64 %indvars.iv32.i29, 12 %154 = add nuw nsw i64 %153, 12 %155 = icmp ugt i64 %154, %150 br i1 %155, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %156 -156: ; preds = %.lr.ph30.i26 +156: ; preds = %.lr.ph30.i28 %157 = getelementptr inbounds nuw i8, ptr %148, i64 %153 - %.val.i.i.i.i.i.i.i28 = load i32, ptr %157, align 1, !alias.scope !314, !noalias !325 - %158 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i28) + %.val.i.i.i.i.i.i.i30 = load i32, ptr %157, align 1, !alias.scope !314, !noalias !325 + %158 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i30) %159 = getelementptr inbounds nuw i8, ptr %157, i64 4 - %.val.i.i.i35.i.i.i.i29 = load i32, ptr %159, align 1, !alias.scope !330, !noalias !325 - %160 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i29) - %.not.i27.i30 = icmp ugt i32 %158, %160 - br i1 %.not.i27.i30, label %.loopexit.i37, label %.lr.ph.i31 - -.lr.ph.i31: ; preds = %156, %.lr.ph.i31 - %.sroa.015.028.i32 = phi i32 [ %spec.select.i34, %.lr.ph.i31 ], [ %158, %156 ] - %161 = icmp uge i32 %.sroa.015.028.i32, %160 - %not..i33 = xor i1 %161, true - %162 = zext i1 %not..i33 to i32 - %spec.select.i34 = add nuw i32 %.sroa.015.028.i32, %162 - tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i32), !noalias !308 - %.not.i.i35 = icmp ugt i32 %spec.select.i34, %160 - %or.cond.i36 = select i1 %161, i1 true, i1 %.not.i.i35 - br i1 %or.cond.i36, label %.loopexit.i37, label %.lr.ph.i31 - -_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit: ; preds = %.lr.ph30.i26, %.loopexit.i37, %.lr.ph30.i, %.loopexit.i21, %128, %114, %.loopexit.i, %.lr.ph, %89, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i", %.thread72.i, %53, %50, %39, %34, %30, %29, %.lr.ph.i1, %17, %72, %146, %129, %115, %100, %5, %3, %3 + %.val.i.i.i35.i.i.i.i31 = load i32, ptr %159, align 1, !alias.scope !330, !noalias !325 + %160 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i31) + %.not.i27.i32 = icmp ugt i32 %158, %160 + br i1 %.not.i27.i32, label %.loopexit.i39, label %.lr.ph.i33 + +.lr.ph.i33: ; preds = %156, %.lr.ph.i33 + %.sroa.015.028.i34 = phi i32 [ %spec.select.i36, %.lr.ph.i33 ], [ %158, %156 ] + %161 = icmp uge i32 %.sroa.015.028.i34, %160 + %not..i35 = xor i1 %161, true + %162 = zext i1 %not..i35 to i32 + %spec.select.i36 = add nuw i32 %.sroa.015.028.i34, %162 + tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i34), !noalias !308 + %.not.i.i37 = icmp ugt i32 %spec.select.i36, %160 + %or.cond.i38 = select i1 %161, i1 true, i1 %.not.i.i37 + br i1 %or.cond.i38, label %.loopexit.i39, label %.lr.ph.i33 + +_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit: ; preds = %.lr.ph30.i28, %.loopexit.i39, %.lr.ph30.i, %.loopexit.i23, %128, %114, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i", %90, %86, %.loopexit.i, %.thread72.i, %53, %50, %39, %34, %30, %29, %.lr.ph.i1, %17, %146, %129, %115, %100, %72, %5, %3, %3 ret void } diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index 5bbfd52b427..c1608c396b6 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -56238,7 +56238,7 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %9 = alloca { i64, [2 x i64] }, align 8 %10 = alloca { { { i64, ptr, {} }, i64 }, { i64, { i8, [1 x i8] }, [6 x i8] } }, align 8 %11 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.sroa.6.sroa.0.i.i175 = alloca [2 x i64], align 8 + %.sroa.6.sroa.0.i.i174 = alloca [2 x i64], align 8 %12 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %13 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %14 = alloca { { i64, [2 x i64] } }, align 8 @@ -56307,7 +56307,7 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %75 = getelementptr inbounds nuw i8, ptr %0, i64 104 %76 = load i8, ptr %75, align 8, !range !7159, !noundef !4 %.not = icmp eq i8 %76, 6 - br i1 %.not, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246", label %77 + br i1 %.not, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245", label %77 77: ; preds = %2 %78 = getelementptr inbounds nuw i8, ptr %1, i64 184 @@ -56323,20 +56323,20 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %83 = add nsw i64 %82, -3 %84 = select i1 %81, i64 %83, i64 0 switch i64 %84, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread" [ - i64 0, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" + i64 0, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" i64 1, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" i64 2, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" ] "_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit": ; preds = %80, %80 %85 = trunc nuw i8 %.val146 to i1 - br i1 %85, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread", label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" + br i1 %85, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread", label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" -"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split": ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit", %904, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %93, %.outer._crit_edge +"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split": ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit", %904, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %93, %.outer._crit_edge call void @llvm.lifetime.end.p0(ptr nonnull %74) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" -"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246": ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split", %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", %2 +"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245": ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split", %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", %2 ret void "_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread": ; preds = %77, %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" @@ -56360,13 +56360,13 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. 93: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread" call void @llvm.lifetime.end.p0(ptr nonnull %73) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" 94: ; preds = %87 br i1 %.not129, label %339, label %96 95: ; preds = %87 - br i1 %.not129, label %869, label %switch.lookup592 + br i1 %.not129, label %869, label %switch.lookup591 96: ; preds = %94 %97 = getelementptr inbounds nuw i8, ptr %1, i64 648 @@ -56524,7 +56524,7 @@ common.resume: ; preds = %808, %610, %99 _ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread: ; preds = %145, %148, %152 call void @llvm.lifetime.end.p0(ptr nonnull %52), !noalias !11659 call void @llvm.lifetime.end.p0(ptr nonnull %59), !noalias !11637 - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" 154: ; preds = %125 call void @llvm.lifetime.start.p0(ptr nonnull %55), !noalias !11637 @@ -57061,7 +57061,6 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %.3.extract.shift.i = lshr i40 %.sroa.091.0.copyload, 24 %.3.extract.trunc.i = trunc i40 %.3.extract.shift.i to i8 %.4.extract.shift.i = lshr i40 %.sroa.091.0.copyload, 32 - %.4.extract.trunc.i = trunc nuw i40 %.4.extract.shift.i to i8 %.1.extract.shift9.i = lshr i40 %.sroa.092.0.copyload, 8 %.1.extract.trunc10.i = trunc i40 %.1.extract.shift9.i to i8 %.2.extract.shift12.i = lshr i40 %.sroa.092.0.copyload, 16 @@ -57069,7 +57068,6 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %.3.extract.shift15.i = lshr i40 %.sroa.092.0.copyload, 24 %.3.extract.trunc16.i = trunc i40 %.3.extract.shift15.i to i8 %.4.extract.shift18.i = lshr i40 %.sroa.092.0.copyload, 32 - %.4.extract.trunc19.i = trunc nuw i40 %.4.extract.shift18.i to i8 %345 = icmp eq i8 %.0.extract.trunc.i, 2 %.0.extract.trunc7.i = trunc i40 %.sroa.092.0.copyload to i8 %spec.select.i = select i1 %345, i8 %.0.extract.trunc7.i, i8 %.0.extract.trunc.i @@ -57079,18 +57077,18 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %.037.i = select i1 %347, i8 %.3.extract.trunc16.i, i8 %.3.extract.trunc.i %348 = icmp eq i8 %.2.extract.trunc.i, 2 %.036.i = select i1 %348, i8 %.2.extract.trunc13.i, i8 %.2.extract.trunc.i - %349 = icmp eq i8 %.4.extract.trunc.i, 4 - %.0.i152 = select i1 %349, i8 %.4.extract.trunc19.i, i8 %.4.extract.trunc.i - %.sroa.525.0.insert.ext.i = zext i8 %.0.i152 to i32 - %.sroa.525.0.insert.shift.i = shl nuw i32 %.sroa.525.0.insert.ext.i, 24 - %.sroa.424.0.insert.ext.i = zext i8 %.037.i to i32 - %.sroa.424.0.insert.shift.i = shl nuw nsw i32 %.sroa.424.0.insert.ext.i, 16 - %.sroa.424.0.insert.insert.i = or disjoint i32 %.sroa.525.0.insert.shift.i, %.sroa.424.0.insert.shift.i - %.sroa.323.0.insert.ext.i = zext i8 %.036.i to i32 - %.sroa.323.0.insert.shift.i = shl nuw nsw i32 %.sroa.323.0.insert.ext.i, 8 - %.sroa.323.0.insert.insert.i = or disjoint i32 %.sroa.424.0.insert.insert.i, %.sroa.323.0.insert.shift.i - %.sroa.222.0.insert.ext.i = zext i8 %.038.i to i32 - %.sroa.222.0.insert.insert.i = or disjoint i32 %.sroa.323.0.insert.insert.i, %.sroa.222.0.insert.ext.i + %349 = icmp eq i40 %.4.extract.shift.i, 4 + %.0.v.i = select i1 %349, i40 %.4.extract.shift18.i, i40 %.4.extract.shift.i + %.sroa.525.0.insert.shift.i = shl nuw nsw i40 %.0.v.i, 24 + %.sroa.424.0.insert.ext.i = zext i8 %.037.i to i40 + %.sroa.424.0.insert.shift.i = shl nuw nsw i40 %.sroa.424.0.insert.ext.i, 16 + %.sroa.424.0.insert.insert.i = or disjoint i40 %.sroa.424.0.insert.shift.i, %.sroa.525.0.insert.shift.i + %.sroa.323.0.insert.ext.i = zext i8 %.036.i to i40 + %.sroa.323.0.insert.shift.i = shl nuw nsw i40 %.sroa.323.0.insert.ext.i, 8 + %.sroa.323.0.insert.insert.i = or disjoint i40 %.sroa.424.0.insert.insert.i, %.sroa.323.0.insert.shift.i + %.sroa.222.0.insert.ext.i = zext i8 %.038.i to i40 + %.sroa.222.0.insert.insert.i = or disjoint i40 %.sroa.323.0.insert.insert.i, %.sroa.222.0.insert.ext.i + %.1.extract.trunc = trunc nuw i40 %.sroa.222.0.insert.insert.i to i32 %350 = trunc nuw i40 %.1.extract.shift.i to i32 br label %351 @@ -57098,9 +57096,9 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %.sroa.3.0.copyload = phi i32 [ %350, %341 ], [ %.sroa.3.0.copyload.pre, %339 ] %.sroa.093.0.copyload = phi i8 [ %.0.extract.trunc.i, %341 ], [ %.sroa.093.0.copyload.pre, %339 ] %.in = phi i8 [ %342, %341 ], [ %340, %339 ] - %.0119253 = phi ptr [ %.1.i, %341 ], [ null, %339 ] + %.0119252 = phi ptr [ %.1.i, %341 ], [ null, %339 ] %.sroa.043.0 = phi i8 [ %spec.select.i, %341 ], [ 3, %339 ] - %.sroa.645.0 = phi i32 [ %.sroa.222.0.insert.insert.i, %341 ], [ undef, %339 ] + %.sroa.645.0 = phi i32 [ %.1.extract.trunc, %341 ], [ undef, %339 ] %352 = getelementptr inbounds nuw i8, ptr %1, i64 192 %353 = trunc nuw i8 %.in to i1 %354 = icmp eq i8 %.sroa.043.0, 3 @@ -57120,7 +57118,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. br i1 %.not129, label %364, label %361 361: ; preds = %351 - %362 = getelementptr inbounds nuw i8, ptr %.0119253, i64 105 + %362 = getelementptr inbounds nuw i8, ptr %.0119252, i64 105 %363 = load i8, ptr %362, align 1, !range !7159, !noundef !4 br label %364 @@ -57202,12 +57200,12 @@ switch.lookup: ; preds = %364 br i1 %.not129, label %402, label %399 399: ; preds = %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" - %400 = getelementptr inbounds nuw i8, ptr %.0119253, i64 102 + %400 = getelementptr inbounds nuw i8, ptr %.0119252, i64 102 %401 = load i8, ptr %400, align 2, !range !569, !noundef !4 br label %402 402: ; preds = %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit", %399 - %.0109 = phi ptr [ %.0119253, %399 ], [ %0, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] + %.0109 = phi ptr [ %.0119252, %399 ], [ %0, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] %.0116 = phi i8 [ %401, %399 ], [ 3, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] %403 = getelementptr i8, ptr %.0109, i64 8 %.0109.val = load ptr, ptr %403, align 8, !nonnull !4, !noundef !4 @@ -57240,7 +57238,7 @@ switch.lookup: ; preds = %364 %419 = getelementptr inbounds { { i64, [2 x i64] }, { { i64, [2 x i64] }, { i64, [2 x i64] } }, i8, i8, { i8, i8, i8, i8, i8 }, i8, i8, [7 x i8] }, ptr %.val148, i64 %.val149 %420 = getelementptr inbounds nuw i8, ptr %74, i64 8 %421 = getelementptr inbounds nuw i8, ptr %74, i64 4 - %.sroa.gep226 = getelementptr inbounds nuw i8, ptr %74, i64 10 + %.sroa.gep225 = getelementptr inbounds nuw i8, ptr %74, i64 10 %.sroa.622.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %21, i64 8 %422 = getelementptr inbounds nuw i8, ptr %1, i64 642 %423 = getelementptr inbounds nuw i8, ptr %1, i64 144 @@ -57274,18 +57272,18 @@ switch.lookup: ; preds = %364 %445 = getelementptr inbounds nuw i8, ptr %33, i64 32 %446 = getelementptr inbounds nuw i8, ptr %33, i64 16 %447 = getelementptr inbounds nuw i8, ptr %33, i64 24 - %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i177 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i178 = getelementptr inbounds nuw i8, ptr %17, i64 16 - %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i179 = getelementptr inbounds nuw i8, ptr %17, i64 24 - %.sroa.0.sroa.2.0..sroa_idx.i180 = getelementptr inbounds nuw i8, ptr %17, i64 32 - %.sroa.0.sroa.3.0..sroa_idx.i181 = getelementptr inbounds nuw i8, ptr %17, i64 40 - %.sroa.2.0..sroa_idx.i182 = getelementptr inbounds nuw i8, ptr %17, i64 48 + %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i176 = getelementptr inbounds nuw i8, ptr %17, i64 8 + %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i177 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i178 = getelementptr inbounds nuw i8, ptr %17, i64 24 + %.sroa.0.sroa.2.0..sroa_idx.i179 = getelementptr inbounds nuw i8, ptr %17, i64 32 + %.sroa.0.sroa.3.0..sroa_idx.i180 = getelementptr inbounds nuw i8, ptr %17, i64 40 + %.sroa.2.0..sroa_idx.i181 = getelementptr inbounds nuw i8, ptr %17, i64 48 %448 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %.sroa.4.0..sroa_idx.i.i183 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sroa.6.0..sroa_idx.i.i184 = getelementptr inbounds nuw i8, ptr %11, i64 16 + %.sroa.4.0..sroa_idx.i.i182 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %.sroa.6.0..sroa_idx.i.i183 = getelementptr inbounds nuw i8, ptr %11, i64 16 %449 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sroa.614.24..sroa_idx.i.i185 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sroa.02.sroa.4.0..sroa_idx.i.i186 = getelementptr inbounds nuw i8, ptr %16, i64 16 + %.sroa.614.24..sroa_idx.i.i184 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sroa.02.sroa.4.0..sroa_idx.i.i185 = getelementptr inbounds nuw i8, ptr %16, i64 16 %450 = getelementptr inbounds nuw i8, ptr %8, i64 8 %451 = getelementptr inbounds nuw i8, ptr %8, i64 16 %452 = getelementptr inbounds nuw i8, ptr %19, i64 8 @@ -57305,7 +57303,7 @@ switch.lookup: ; preds = %364 %466 = getelementptr inbounds nuw i8, ptr %13, i64 16 %467 = getelementptr inbounds nuw i8, ptr %12, i64 8 %468 = getelementptr inbounds nuw i8, ptr %12, i64 16 - %.sroa.gep220 = getelementptr inbounds nuw i8, ptr %74, i64 9 + %.sroa.gep219 = getelementptr inbounds nuw i8, ptr %74, i64 9 %469 = getelementptr inbounds nuw i8, ptr %37, i64 8 %470 = getelementptr inbounds nuw i8, ptr %38, i64 8 %471 = getelementptr inbounds nuw i8, ptr %38, i64 16 @@ -57337,21 +57335,21 @@ switch.lookup: ; preds = %364 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.lr.ph, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit - %.0114.ph340 = phi i1 [ true, %.lr.ph.lr.ph ], [ %865, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] - %.sroa.0243.0.ph339 = phi ptr [ %.0109.val, %.lr.ph.lr.ph ], [ %.us-phi315, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] + %.0114.ph339 = phi i1 [ true, %.lr.ph.lr.ph ], [ %865, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] + %.sroa.0242.0.ph338 = phi ptr [ %.0109.val, %.lr.ph.lr.ph ], [ %.us-phi314, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] br i1 %switch, label %.lr.ph.split.us, label %.lr.ph.split.split .lr.ph.split.us: ; preds = %.lr.ph br i1 %410, label %.lr.ph.split.us.split.us, label %.lr.ph.split.us.split .lr.ph.split.us.split.us: ; preds = %.lr.ph.split.us - %490 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0.ph339, i64 88 + %490 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0.ph338, i64 88 br label %.split.us .lr.ph.split.us.split: ; preds = %.lr.ph.split.us, %494 - %.sroa.0243.0314.us = phi ptr [ %491, %494 ], [ %.sroa.0243.0.ph339, %.lr.ph.split.us ] - %491 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314.us, i64 88 - %492 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314.us, i64 73 + %.sroa.0242.0313.us = phi ptr [ %491, %494 ], [ %.sroa.0242.0.ph338, %.lr.ph.split.us ] + %491 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313.us, i64 88 + %492 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313.us, i64 73 %493 = load i8, ptr %492, align 1, !range !566, !noundef !4 %cond = icmp eq i8 %493, 0 br i1 %cond, label %494, label %.split.us @@ -57369,22 +57367,22 @@ switch.lookup: ; preds = %364 store i8 1, ptr %60, align 8 call void @_ZN9hayagriva3csl14WritingContext11commit_elem17h3b1fa942ea201ccfE(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i64 noundef %356, i64 noundef %357, i8 noundef %497, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(16) %60) call void @llvm.lifetime.end.p0(ptr nonnull %60) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" .lr.ph.split.split: ; preds = %.lr.ph, %503 - %.sroa.0243.0314 = phi ptr [ %498, %503 ], [ %.sroa.0243.0.ph339, %.lr.ph ] - %498 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314, i64 88 - %499 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314, i64 73 + %.sroa.0242.0313 = phi ptr [ %498, %503 ], [ %.sroa.0242.0.ph338, %.lr.ph ] + %498 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313, i64 88 + %499 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313, i64 73 %500 = load i8, ptr %499, align 1, !range !566, !noundef !4 - %switch341 = icmp samesign ult i8 %500, 2 - br i1 %switch341, label %503, label %.split.us + %switch340 = icmp samesign ult i8 %500, 2 + br i1 %switch340, label %503, label %.split.us .split.us: ; preds = %.lr.ph.split.split, %.lr.ph.split.us.split, %.lr.ph.split.us.split.us - %.us-phi = phi ptr [ %.sroa.0243.0.ph339, %.lr.ph.split.us.split.us ], [ %.sroa.0243.0314.us, %.lr.ph.split.us.split ], [ %.sroa.0243.0314, %.lr.ph.split.split ] - %.us-phi315 = phi ptr [ %490, %.lr.ph.split.us.split.us ], [ %491, %.lr.ph.split.us.split ], [ %498, %.lr.ph.split.split ] + %.us-phi = phi ptr [ %.sroa.0242.0.ph338, %.lr.ph.split.us.split.us ], [ %.sroa.0242.0313.us, %.lr.ph.split.us.split ], [ %.sroa.0242.0313, %.lr.ph.split.split ] + %.us-phi314 = phi ptr [ %490, %.lr.ph.split.us.split.us ], [ %491, %.lr.ph.split.us.split ], [ %498, %.lr.ph.split.split ] %501 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 73 %502 = call noundef i64 @_ZN9hayagriva3csl14WritingContext3len17h79b1b0473df8f2bbE(ptr noundef nonnull align 8 %352) - %or.cond = select i1 %.0114.ph340, i1 true, i1 %.not127 + %or.cond = select i1 %.0114.ph339, i1 true, i1 %.not127 br i1 %or.cond, label %505, label %506 503: ; preds = %.lr.ph.split.split @@ -57416,7 +57414,7 @@ switch.lookup: ; preds = %364 %514 = load i32, ptr %74, align 8, !range !5765, !alias.scope !11877, !noundef !4 %trunc.i = trunc nuw i32 %514 to i1 %515 = load ptr, ptr %420, align 8, !alias.scope !11877, !nonnull !4, !align !11880 - %.0.i154 = select i1 %trunc.i, ptr %421, ptr %515 + %.0.i153 = select i1 %trunc.i, ptr %421, ptr %515 call void @llvm.experimental.noalias.scope.decl(metadata !11866) call void @llvm.experimental.noalias.scope.decl(metadata !11881) call void @llvm.experimental.noalias.scope.decl(metadata !11882) @@ -57439,27 +57437,27 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation br label %522 518: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" - %519 = load i32, ptr %.0.i154, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 + %519 = load i32, ptr %.0.i153, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 %520 = icmp sgt i32 %519, 0 %521 = sub i32 1, %519 %spec.select184.i = select i1 %520, i32 %519, i32 %521 - br label %.thread.i155 + br label %.thread.i154 522: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit", %517 - %.sink529 = phi i64 [ 4, %517 ], [ 6, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] - %.sink = phi ptr [ %420, %517 ], [ %.sroa.gep226, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] + %.sink528 = phi i64 [ 4, %517 ], [ 6, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] + %.sink = phi ptr [ %420, %517 ], [ %.sroa.gep225, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] %.sink206.i = phi i64 [ 5, %517 ], [ 7, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] - %.sroa.gep224 = getelementptr inbounds nuw i8, ptr %515, i64 %.sink529 - %.0.i154.sroa.sel225 = select i1 %trunc.i, ptr %.sink, ptr %.sroa.gep224 - %.sink207.i = load i8, ptr %.0.i154.sroa.sel225, align 2, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 - %523 = getelementptr inbounds nuw i8, ptr %.0.i154, i64 %.sink206.i + %.sroa.gep223 = getelementptr inbounds nuw i8, ptr %515, i64 %.sink528 + %.0.i153.sroa.sel224 = select i1 %trunc.i, ptr %.sink, ptr %.sroa.gep223 + %.sink207.i = load i8, ptr %.0.i153.sroa.sel224, align 2, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 + %523 = getelementptr inbounds nuw i8, ptr %.0.i153, i64 %.sink206.i %524 = load i8, ptr %523, align 1, !alias.scope !11881, !noalias !11885 %525 = zext i8 %524 to i32 %526 = add nuw nsw i32 %525, 1 %.not183.i = icmp eq i8 %.sink207.i, 0 - br i1 %.not183.i, label %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit, label %.thread.i155 + br i1 %.not183.i, label %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit, label %.thread.i154 -.thread.i155: ; preds = %522, %518 +.thread.i154: ; preds = %522, %518 %.sroa.9.1152.i = phi i32 [ %526, %522 ], [ %spec.select184.i, %518 ] store i32 %.sroa.9.1152.i, ptr %43, align 4, !noalias !11884 %527 = load i8, ptr %78, align 8, !range !11633, !alias.scope !11882, !noalias !11886, !noundef !4 @@ -57467,7 +57465,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %529 = icmp eq ptr %..sroa.563.0, null br i1 %529, label %.thread163.i, label %532 -.thread163.i: ; preds = %.thread.i155 +.thread163.i: ; preds = %.thread.i154 %530 = call { i8, i8 } @_ZN12citationberg8DatePart4form17he0e6f97140595101E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %.us-phi), !noalias !11881 %531 = extractvalue { i8, i8 } %530, 0 %.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %.us-phi, i64 74 @@ -57476,7 +57474,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %.sroa.392.0.copyload.pre.i = load i32, ptr %.sroa.392.0..sroa_idx.phi.trans.insert.i, align 1, !alias.scope !11866, !noalias !11869 br label %547 -532: ; preds = %.thread.i155 +532: ; preds = %.thread.i154 %533 = call { i8, i8 } @_ZN12citationberg8DatePart4form17he0e6f97140595101E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) dereferenceable_or_null(88) %..sroa.563.0), !noalias !11881 %534 = extractvalue { i8, i8 } %533, 0 %535 = icmp eq i8 %534, 3 @@ -57488,7 +57486,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation br label %.thread156.i .thread156.i: ; preds = %536, %532 - %.pn.i156 = phi { i8, i8 } [ %537, %536 ], [ %533, %532 ] + %.pn.i155 = phi { i8, i8 } [ %537, %536 ], [ %533, %532 ] %.sroa.081.0159.i = phi i8 [ %538, %536 ], [ %534, %532 ] %539 = getelementptr inbounds nuw i8, ptr %..sroa.563.0, i64 74 %.sroa.089.0.copyload.i = load i40, ptr %539, align 2, !alias.scope !11883, !noalias !11887 @@ -57502,7 +57500,6 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %.3.extract.shift.i.i = lshr i40 %.sroa.089.0.copyload.i, 24 %.3.extract.trunc.i.i = trunc i40 %.3.extract.shift.i.i to i8 %.4.extract.shift.i.i = lshr i40 %.sroa.089.0.copyload.i, 32 - %.4.extract.trunc.i.i = trunc nuw i40 %.4.extract.shift.i.i to i8 %.1.extract.shift9.i.i = lshr i40 %.sroa.090.0.copyload.i, 8 %.1.extract.trunc10.i.i = trunc i40 %.1.extract.shift9.i.i to i8 %.2.extract.shift12.i.i = lshr i40 %.sroa.090.0.copyload.i, 16 @@ -57510,7 +57507,6 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %.3.extract.shift15.i.i = lshr i40 %.sroa.090.0.copyload.i, 24 %.3.extract.trunc16.i.i = trunc i40 %.3.extract.shift15.i.i to i8 %.4.extract.shift18.i.i = lshr i40 %.sroa.090.0.copyload.i, 32 - %.4.extract.trunc19.i.i = trunc nuw i40 %.4.extract.shift18.i.i to i8 %541 = icmp eq i8 %.0.extract.trunc.i.i, 2 %.0.extract.trunc7.i.i = trunc i40 %.sroa.090.0.copyload.i to i8 %spec.select.i.i = select i1 %541, i8 %.0.extract.trunc7.i.i, i8 %.0.extract.trunc.i.i @@ -57520,35 +57516,35 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %.037.i.i = select i1 %543, i8 %.3.extract.trunc16.i.i, i8 %.3.extract.trunc.i.i %544 = icmp eq i8 %.2.extract.trunc.i.i, 2 %.036.i.i = select i1 %544, i8 %.2.extract.trunc13.i.i, i8 %.2.extract.trunc.i.i - %545 = icmp eq i8 %.4.extract.trunc.i.i, 4 - %.0.i.i157 = select i1 %545, i8 %.4.extract.trunc19.i.i, i8 %.4.extract.trunc.i.i - %.sroa.525.0.insert.ext.i.i = zext i8 %.0.i.i157 to i32 - %.sroa.525.0.insert.shift.i.i = shl nuw i32 %.sroa.525.0.insert.ext.i.i, 24 - %.sroa.424.0.insert.ext.i.i = zext i8 %.037.i.i to i32 - %.sroa.424.0.insert.shift.i.i = shl nuw nsw i32 %.sroa.424.0.insert.ext.i.i, 16 - %.sroa.424.0.insert.insert.i.i = or disjoint i32 %.sroa.525.0.insert.shift.i.i, %.sroa.424.0.insert.shift.i.i - %.sroa.323.0.insert.ext.i.i = zext i8 %.036.i.i to i32 - %.sroa.323.0.insert.shift.i.i = shl nuw nsw i32 %.sroa.323.0.insert.ext.i.i, 8 - %.sroa.323.0.insert.insert.i.i = or disjoint i32 %.sroa.424.0.insert.insert.i.i, %.sroa.323.0.insert.shift.i.i - %.sroa.222.0.insert.ext.i.i = zext i8 %.038.i.i to i32 - %.sroa.222.0.insert.insert.i.i = or disjoint i32 %.sroa.323.0.insert.insert.i.i, %.sroa.222.0.insert.ext.i.i + %545 = icmp eq i40 %.4.extract.shift.i.i, 4 + %.0.v.i.i = select i1 %545, i40 %.4.extract.shift18.i.i, i40 %.4.extract.shift.i.i + %.sroa.525.0.insert.shift.i.i = shl nuw nsw i40 %.0.v.i.i, 24 + %.sroa.424.0.insert.ext.i.i = zext i8 %.037.i.i to i40 + %.sroa.424.0.insert.shift.i.i = shl nuw nsw i40 %.sroa.424.0.insert.ext.i.i, 16 + %.sroa.424.0.insert.insert.i.i = or disjoint i40 %.sroa.424.0.insert.shift.i.i, %.sroa.525.0.insert.shift.i.i + %.sroa.323.0.insert.ext.i.i = zext i8 %.036.i.i to i40 + %.sroa.323.0.insert.shift.i.i = shl nuw nsw i40 %.sroa.323.0.insert.ext.i.i, 8 + %.sroa.323.0.insert.insert.i.i = or disjoint i40 %.sroa.424.0.insert.insert.i.i, %.sroa.323.0.insert.shift.i.i + %.sroa.222.0.insert.ext.i.i = zext i8 %.038.i.i to i40 + %.sroa.222.0.insert.insert.i.i = or disjoint i40 %.sroa.323.0.insert.insert.i.i, %.sroa.222.0.insert.ext.i.i + %.1.extract.trunc.i156 = trunc nuw i40 %.sroa.222.0.insert.insert.i.i to i32 %546 = trunc nuw i40 %.1.extract.shift9.i.i to i32 br label %547 547: ; preds = %.thread156.i, %.thread163.i %.sroa.392.0.copyload.i = phi i32 [ %546, %.thread156.i ], [ %.sroa.392.0.copyload.pre.i, %.thread163.i ] %.sroa.091.0.copyload.i = phi i8 [ %.0.extract.trunc7.i.i, %.thread156.i ], [ %.sroa.091.0.copyload.pre.i, %.thread163.i ] - %.pn.pn.i = phi { i8, i8 } [ %.pn.i156, %.thread156.i ], [ %530, %.thread163.i ] + %.pn.pn.i = phi { i8, i8 } [ %.pn.i155, %.thread156.i ], [ %530, %.thread163.i ] %.sroa.081.0160.i = phi i8 [ %.sroa.081.0159.i, %.thread156.i ], [ %531, %.thread163.i ] - %.sroa.617.0.i = phi i32 [ %.sroa.222.0.insert.insert.i.i, %.thread156.i ], [ undef, %.thread163.i ] + %.sroa.617.0.i = phi i32 [ %.1.extract.trunc.i156, %.thread156.i ], [ undef, %.thread163.i ] %.sroa.015.0.i = phi i8 [ %spec.select.i.i, %.thread156.i ], [ 3, %.thread163.i ] %.sroa.584.0162.i = extractvalue { i8, i8 } %.pn.pn.i, 1 %548 = icmp eq i8 %.sroa.015.0.i, 3 - %spec.select.i158 = select i1 %548, i8 %.sroa.091.0.copyload.i, i8 %.sroa.015.0.i + %spec.select.i157 = select i1 %548, i8 %.sroa.091.0.copyload.i, i8 %.sroa.015.0.i %spec.select136.i = select i1 %548, i32 %.sroa.392.0.copyload.i, i32 %.sroa.617.0.i %.sroa.392.0.insert.ext.i = zext i32 %spec.select136.i to i40 %.sroa.392.0.insert.shift.i = shl nuw i40 %.sroa.392.0.insert.ext.i, 8 - %.sroa.091.0.insert.ext.i = zext i8 %spec.select.i158 to i40 + %.sroa.091.0.insert.ext.i = zext i8 %spec.select.i157 to i40 %.sroa.091.0.insert.insert.i = or disjoint i40 %.sroa.392.0.insert.shift.i, %.sroa.091.0.insert.ext.i %549 = call noundef i64 @_ZN9hayagriva3csl14WritingContext11push_format17h807a950b072ff910E(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i40 %.sroa.091.0.insert.insert.i), !range !3699, !noalias !11881 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.622.i) @@ -57588,15 +57584,15 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %563 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 80 %564 = load i8, ptr %563, align 8, !range !7159, !alias.scope !11866, !noalias !11869, !noundef !4 %565 = icmp eq i8 %562, 6 - %spec.select530 = select i1 %565, i8 %564, i8 %562 + %spec.select529 = select i1 %565, i8 %564, i8 %562 br label %select.unfold.i select.unfold.i: ; preds = %560, %.thread164.i - %566 = phi i8 [ %559, %.thread164.i ], [ %spec.select530, %560 ] + %566 = phi i8 [ %559, %.thread164.i ], [ %spec.select529, %560 ] call void @llvm.experimental.noalias.scope.decl(metadata !11888) - %switch.shifted585 = lshr i8 79, %566 - %switch.lobit586 = trunc i8 %switch.shifted585 to i1 - br i1 %switch.lobit586, label %switch.lookup584, label %567 + %switch.shifted584 = lshr i8 79, %566 + %switch.lobit585 = trunc i8 %switch.shifted584 to i1 + br i1 %switch.lobit585, label %switch.lookup583, label %567 567: ; preds = %select.unfold.i %568 = load ptr, ptr %423, align 8, !alias.scope !11891, !noalias !11886, !nonnull !4, !align !562, !noundef !4 @@ -57648,15 +57644,15 @@ select.unfold.i: ; preds = %560, %.thread164.i 591: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" br label %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i" -switch.lookup584: ; preds = %select.unfold.i - %switch.cast587 = zext i8 %566 to i56 - %switch.shiftamt588 = shl nuw nsw i56 %switch.cast587, 3 - %switch.downshift589 = lshr i56 1688849910726912, %switch.shiftamt588 - %switch.masked590 = trunc i56 %switch.downshift589 to i8 +switch.lookup583: ; preds = %select.unfold.i + %switch.cast586 = zext i8 %566 to i56 + %switch.shiftamt587 = shl nuw nsw i56 %switch.cast586, 3 + %switch.downshift588 = lshr i56 1688849910726912, %switch.shiftamt587 + %switch.masked589 = trunc i56 %switch.downshift588 to i8 br label %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i" -"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i": ; preds = %switch.lookup584, %591, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %581, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" - %.sink17.i.i = phi i8 [ 6, %591 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" ], [ %566, %588 ], [ %566, %581 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i" ], [ %switch.masked590, %switch.lookup584 ] +"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i": ; preds = %switch.lookup583, %591, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %581, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" + %.sink17.i.i = phi i8 [ 6, %591 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" ], [ %566, %588 ], [ %566, %581 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i" ], [ %switch.masked589, %switch.lookup583 ] %592 = call noundef range(i64 1, 0) i64 @_ZN9hayagriva3csl14WritingContext9push_case17h6fad8e686d52464eE(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i8 noundef %.sink17.i.i), !range !3699, !noalias !11881 br i1 %528, label %594, label %593 @@ -57757,10 +57753,10 @@ switch.lookup584: ; preds = %select.unfold.i call void @_ZN9hayagriva3csl12StyleContext6locale17hade34cb91d2eb81aE(ptr noalias noundef nonnull sret({ { { { i64, ptr, {} }, i64 } } }) align 8 captures(none) dereferenceable(24) %19, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %609), !noalias !11881 call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !11923 invoke void @_ZN12citationberg10LocaleCode5en_us17h7b646f6c103c83a8E(ptr noalias noundef nonnull sret({ { { { i64, ptr, {} }, i64 } } }) align 8 captures(none) dereferenceable(24) %18) - to label %.lr.ph.i176 unwind label %611, !noalias !11881 + to label %.lr.ph.i175 unwind label %611, !noalias !11881 -610: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191", %611 - %.pn43.i = phi { ptr, i32 } [ %612, %611 ], [ %.pn41.i, %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191" ] +610: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190", %611 + %.pn43.i = phi { ptr, i32 } [ %612, %611 ], [ %.pn41.i, %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" ] invoke void @"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #81 to label %common.resume unwind label %796, !noalias !11881 @@ -57769,7 +57765,7 @@ switch.lookup584: ; preds = %select.unfold.i cleanup br label %610 -.lr.ph.i176: ; preds = %608 +.lr.ph.i175: ; preds = %608 %613 = getelementptr inbounds nuw i8, ptr %609, i64 24 %614 = load ptr, ptr %613, align 8, !alias.scope !11920, !noalias !11881, !nonnull !4, !align !562, !noundef !4 %615 = getelementptr inbounds nuw i8, ptr %614, i64 888 @@ -57782,69 +57778,69 @@ switch.lookup584: ; preds = %select.unfold.i %622 = load i64, ptr %621, align 8, !alias.scope !11920, !noalias !11881, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %17), !noalias !11923 store ptr %616, ptr %17, align 8, !noalias !11923 - store i64 %618, ptr %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i177, align 8, !noalias !11923 - store ptr %620, ptr %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i178, align 8, !noalias !11923 - store i64 %622, ptr %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i179, align 8, !noalias !11923 - store i64 2, ptr %.sroa.0.sroa.3.0..sroa_idx.i181, align 8, !noalias !11923 - store i64 0, ptr %.sroa.2.0..sroa_idx.i182, align 8, !noalias !11923 + store i64 %618, ptr %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i176, align 8, !noalias !11923 + store ptr %620, ptr %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i177, align 8, !noalias !11923 + store i64 %622, ptr %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i178, align 8, !noalias !11923 + store i64 2, ptr %.sroa.0.sroa.3.0..sroa_idx.i180, align 8, !noalias !11923 + store i64 0, ptr %.sroa.2.0..sroa_idx.i181, align 8, !noalias !11923 br label %625 -.body.i189: ; preds = %677, %668, %.loopexit.split-lp.i200, %.loopexit.i187 - %.pn.i190 = phi { ptr, i32 } [ %669, %668 ], [ %678, %677 ], [ %lpad.loopexit.i188, %.loopexit.i187 ], [ %lpad.loopexit.split-lp.i201, %.loopexit.split-lp.i200 ] +.body.i188: ; preds = %677, %668, %.loopexit.split-lp.i199, %.loopexit.i186 + %.pn.i189 = phi { ptr, i32 } [ %669, %668 ], [ %678, %677 ], [ %lpad.loopexit.i187, %.loopexit.i186 ], [ %lpad.loopexit.split-lp.i200, %.loopexit.split-lp.i199 ] %623 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) - to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191" unwind label %796, !noalias !11881 + to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" unwind label %796, !noalias !11881 -.loopexit.i187: ; preds = %770, %686, %662, %651, %650 - %lpad.loopexit.i188 = landingpad { ptr, i32 } +.loopexit.i186: ; preds = %770, %686, %662, %651, %650 + %lpad.loopexit.i187 = landingpad { ptr, i32 } cleanup - br label %.body.i189 + br label %.body.i188 -.loopexit.split-lp.i200: ; preds = %719 - %lpad.loopexit.split-lp.i201 = landingpad { ptr, i32 } +.loopexit.split-lp.i199: ; preds = %719 + %lpad.loopexit.split-lp.i200 = landingpad { ptr, i32 } cleanup - br label %.body.i189 + br label %.body.i188 -._crit_edge.i196: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" +._crit_edge.i195: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" %624 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" unwind label %635, !noalias !11881 -625: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", %.lr.ph.i176 - %626 = phi i64 [ 0, %.lr.ph.i176 ], [ %795, %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" ] +625: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", %.lr.ph.i175 + %626 = phi i64 [ 0, %.lr.ph.i175 ], [ %795, %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" ] %627 = add nuw nsw i64 %626, 1 - store i64 %627, ptr %.sroa.0.sroa.2.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929 + store i64 %627, ptr %.sroa.0.sroa.2.0..sroa_idx.i179, align 8, !alias.scope !11924, !noalias !11929 %628 = getelementptr inbounds nuw { [2 x i64] }, ptr %17, i64 %626 %629 = load ptr, ptr %628, align 8, !alias.scope !11924, !noalias !11929, !nonnull !4, !align !562, !noundef !4 %630 = getelementptr inbounds nuw i8, ptr %628, i64 8 %631 = load i64, ptr %630, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %632 = load i64, ptr %.sroa.2.0..sroa_idx.i182, align 8, !alias.scope !11931, !noalias !11929, !noundef !4 + %632 = load i64, ptr %.sroa.2.0..sroa_idx.i181, align 8, !alias.scope !11931, !noalias !11929, !noundef !4 %633 = add i64 %632, 1 - store i64 %633, ptr %.sroa.2.0..sroa_idx.i182, align 8, !alias.scope !11931, !noalias !11929 + store i64 %633, ptr %.sroa.2.0..sroa_idx.i181, align 8, !alias.scope !11931, !noalias !11929 call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !11923 %634 = icmp eq i64 %632, 0 br i1 %634, label %650, label %651 -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191": ; preds = %635, %.body.i189 - %.pn41.i = phi { ptr, i32 } [ %636, %635 ], [ %.pn.i190, %.body.i189 ] +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190": ; preds = %635, %.body.i188 + %.pn41.i = phi { ptr, i32 } [ %636, %635 ], [ %.pn.i189, %.body.i188 ] invoke void @"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18) #81 to label %610 unwind label %796, !noalias !11881 -635: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204", %._crit_edge.i196 +635: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203", %._crit_edge.i195 %636 = landingpad { ptr, i32 } cleanup - br label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191" + br label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i": ; preds = %._crit_edge.i196 +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i": ; preds = %._crit_edge.i195 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !11932 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) - to label %.noexc.i197 unwind label %611, !noalias !11881 + to label %.noexc.i196 unwind label %611, !noalias !11881 -.noexc.i197: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" +.noexc.i196: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" %637 = load i64, ptr %465, align 8, !range !567, !noalias !11932, !noundef !4 - %.not.i.i.i.i.i.i198 = icmp eq i64 %637, 0 - br i1 %.not.i.i.i.i.i.i198, label %643, label %638 + %.not.i.i.i.i.i.i197 = icmp eq i64 %637, 0 + br i1 %.not.i.i.i.i.i.i197, label %643, label %638 -638: ; preds = %.noexc.i197 +638: ; preds = %.noexc.i196 %639 = load i64, ptr %466, align 8, !noalias !11932, !noundef !4 %640 = icmp eq i64 %639, 0 br i1 %640, label %643, label %641 @@ -57854,7 +57850,7 @@ switch.lookup584: ; preds = %select.unfold.i call void @__rust_dealloc(ptr noundef nonnull %642, i64 noundef %639, i64 noundef %637) #83, !noalias !11881 br label %643 -643: ; preds = %641, %638, %.noexc.i197 +643: ; preds = %641, %638, %.noexc.i196 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !11932 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !11943 @@ -57881,11 +57877,11 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: 650: ; preds = %625 call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !11923 invoke void @_ZN12citationberg10LocaleCode10parse_base17h9267f7607f7d2246E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) - to label %652 unwind label %.loopexit.i187, !noalias !11881 + to label %652 unwind label %.loopexit.i186, !noalias !11881 651: ; preds = %625 invoke void @_ZN12citationberg10LocaleCode8fallback17h83c19825268df75bE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) - to label %.thread166.i192 unwind label %.loopexit.i187, !noalias !11881 + to label %.thread166.i191 unwind label %.loopexit.i186, !noalias !11881 652: ; preds = %650 %653 = load i64, ptr %15, align 8, !range !568, !noalias !11923, !noundef !4 @@ -57907,7 +57903,7 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: %660 = select i1 %659, i64 %658, i64 1 switch i64 %660, label %661 [ i64 0, label %662 - i64 1, label %.thread.i.i207 + i64 1, label %.thread.i.i206 ] 661: ; preds = %656 @@ -57916,10 +57912,10 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: 662: ; preds = %656 %663 = load <2 x i8>, ptr %448, align 8, !alias.scope !11957, !noalias !11959 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6.sroa.0.i.i175) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6.sroa.0.i.i174) call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !11961 %664 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6a68132a218671f8E"(i64 noundef 2, i1 noundef zeroext false) - to label %.noexc51.i unwind label %.loopexit.i187, !noalias !11881 + to label %.noexc51.i unwind label %.loopexit.i186, !noalias !11881 .noexc51.i: ; preds = %662 %665 = extractvalue { i64, ptr } %664, 0 @@ -57928,8 +57924,8 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: call void @llvm.assume(i1 %667), !noalias !11881 store <2 x i8> %663, ptr %666, align 1, !noalias !11962 store i64 %665, ptr %11, align 8, !noalias !11961 - store ptr %666, ptr %.sroa.4.0..sroa_idx.i.i183, align 8, !noalias !11961 - store i64 2, ptr %.sroa.6.0..sroa_idx.i.i184, align 8, !noalias !11961 + store ptr %666, ptr %.sroa.4.0..sroa_idx.i.i182, align 8, !noalias !11961 + store i64 2, ptr %.sroa.6.0..sroa_idx.i.i183, align 8, !noalias !11961 call void @llvm.experimental.noalias.scope.decl(metadata !11963), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !11966), !noalias !11881 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !11968 @@ -57940,18 +57936,18 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: %669 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) #81 - to label %.body.i189 unwind label %672, !noalias !11970 + to label %.body.i188 unwind label %672, !noalias !11970 670: ; preds = %.noexc51.i %671 = load i64, ptr %9, align 8, !range !26, !noalias !11968, !noundef !4 - %trunc.i.i.i209 = trunc nuw i64 %671 to i1 - br i1 %trunc.i.i.i209, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210 + %trunc.i.i.i208 = trunc nuw i64 %671 to i1 + br i1 %trunc.i.i.i208, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 -_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210: ; preds = %670 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, ptr noundef nonnull align 8 dereferenceable(16) %11, i64 16, i1 false), !alias.scope !11971, !noalias !11961 +_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209: ; preds = %670 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, ptr noundef nonnull align 8 dereferenceable(16) %11, i64 16, i1 false), !alias.scope !11971, !noalias !11961 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !11968 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !11961 - br label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211" + br label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210" 672: ; preds = %668 %673 = landingpad { ptr, i32 } @@ -57959,24 +57955,24 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11970 unreachable -_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214: ; preds = %670 +_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213: ; preds = %670 %674 = load i64, ptr %449, align 8, !noalias !11968 - %.sroa.614.24.copyload.i.i215 = load i64, ptr %.sroa.614.24..sroa_idx.i.i185, align 8, !noalias !11968 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.4.0..sroa_idx.i.i183, i64 16, i1 false), !noalias !11961 + %.sroa.614.24.copyload.i.i214 = load i64, ptr %.sroa.614.24..sroa_idx.i.i184, align 8, !noalias !11968 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.4.0..sroa_idx.i.i182, i64 16, i1 false), !noalias !11961 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !11968 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !11961 %675 = icmp eq i64 %665, -9223372036854775808 - br i1 %675, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211", label %676 + br i1 %675, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210", label %676 -676: ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214 +676: ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213 call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !11972 store i64 %665, ptr %10, align 8, !noalias !11976 - %.sroa.6.0..sroa_idx8.i.i216 = getelementptr inbounds nuw i8, ptr %10, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx8.i.i216, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, i64 16, i1 false), !noalias !11976 - %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i217 = getelementptr inbounds nuw i8, ptr %10, i64 24 - store i64 %674, ptr %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i217, align 8, !noalias !11976 - %.sroa.8.0..sroa_idx.i.i218 = getelementptr inbounds nuw i8, ptr %10, i64 32 - store i64 %.sroa.614.24.copyload.i.i215, ptr %.sroa.8.0..sroa_idx.i.i218, align 8, !noalias !11976 + %.sroa.6.0..sroa_idx8.i.i215 = getelementptr inbounds nuw i8, ptr %10, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx8.i.i215, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, i64 16, i1 false), !noalias !11976 + %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i216 = getelementptr inbounds nuw i8, ptr %10, i64 24 + store i64 %674, ptr %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i216, align 8, !noalias !11976 + %.sroa.8.0..sroa_idx.i.i217 = getelementptr inbounds nuw i8, ptr %10, i64 32 + store i64 %.sroa.614.24.copyload.i.i214, ptr %.sroa.8.0..sroa_idx.i.i217, align 8, !noalias !11976 invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.43c633cc9d0c07b847282a0596e0d119.199, i64 noundef 43, ptr noundef nonnull align 1 %10, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.200, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.772) #80 to label %679 unwind label %677, !noalias !11977 @@ -57984,7 +57980,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %678 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr49drop_in_place$LT$alloc..string..FromUtf8Error$GT$17h7e29f4cb7984507eE"(ptr noalias noundef nonnull align 8 dereferenceable(40) %10) #81 - to label %.body.i189 unwind label %680, !noalias !11977 + to label %.body.i188 unwind label %680, !noalias !11977 679: ; preds = %676 unreachable @@ -57995,18 +57991,18 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11977 unreachable -"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211": ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210 - %.sroa.6.sroa.6.0.i.i212 = phi i64 [ %674, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214 ], [ 2, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, i64 16, i1 false), !noalias !11960 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6.sroa.0.i.i175) - store i64 %.sroa.6.sroa.6.0.i.i212, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i186, align 8, !alias.scope !11954, !noalias !11960 +"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210": ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 + %.sroa.6.sroa.6.0.i.i211 = phi i64 [ %674, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213 ], [ 2, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, i64 16, i1 false), !noalias !11960 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6.sroa.0.i.i174) + store i64 %.sroa.6.sroa.6.0.i.i211, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i185, align 8, !alias.scope !11954, !noalias !11960 br label %682 -.thread.i.i207: ; preds = %656 +.thread.i.i206: ; preds = %656 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false), !noalias !11923 br label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i" -682: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211", %661 +682: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210", %661 %683 = icmp sgt i64 %657, -9223372036854775806 %684 = icmp eq i64 %657, -9223372036854775807 %685 = or i1 %683, %684 @@ -58015,28 +58011,28 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 686: ; preds = %682 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !11978 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14) - to label %.noexc52.i unwind label %.loopexit.i187, !noalias !11881 + to label %.noexc52.i unwind label %.loopexit.i186, !noalias !11881 .noexc52.i: ; preds = %686 %687 = load i64, ptr %450, align 8, !range !567, !noalias !11978, !noundef !4 %.not.i.i.i.i.i50.i = icmp eq i64 %687, 0 - br i1 %.not.i.i.i.i.i50.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", label %688 + br i1 %.not.i.i.i.i.i50.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", label %688 688: ; preds = %.noexc52.i %689 = load i64, ptr %451, align 8, !noalias !11978, !noundef !4 %690 = icmp eq i64 %689, 0 - br i1 %690, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", label %691 + br i1 %690, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", label %691 691: ; preds = %688 %692 = load ptr, ptr %8, align 8, !noalias !11978, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %692, i64 noundef %689, i64 noundef %687) #83, !noalias !11987 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213": ; preds = %691, %688, %.noexc52.i +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212": ; preds = %691, %688, %.noexc52.i call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !11978 br label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i" -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", %682, %.thread.i.i207 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", %682, %.thread.i.i206 call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !11923 br label %693 @@ -58045,33 +58041,33 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @llvm.experimental.noalias.scope.decl(metadata !11988), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !11991), !noalias !11881 %694 = icmp eq i64 %631, 0 - br i1 %694, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", label %.lr.ph.i.i.i193 + br i1 %694, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", label %.lr.ph.i.i.i192 -.thread166.i192: ; preds = %651 +.thread166.i191: ; preds = %651 %695 = icmp eq i64 %631, 0 - br i1 %695, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i", label %.lr.ph.i.i.i193 + br i1 %695, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i", label %.lr.ph.i.i.i192 -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i": ; preds = %.thread166.i192 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i": ; preds = %.thread166.i191 %696 = load i64, ptr %16, align 8, !range !567, !noalias !11923, !noundef !4 %.not36106168.i = icmp eq i64 %696, -9223372036854775808 br i1 %.not36106168.i, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", label %770 -.lr.ph.i.i.i193: ; preds = %.thread166.i192, %693 +.lr.ph.i.i.i192: ; preds = %.thread166.i191, %693 %.idx.i167.pn.i = mul nsw i64 %631, 200 %697 = getelementptr inbounds i8, ptr %629, i64 %.idx.i167.pn.i %698 = load i64, ptr %453, align 8, !alias.scope !11991, !noalias !11993 %699 = load ptr, ptr %452, align 8, !alias.scope !11991, !noalias !11993, !nonnull !4 - br label %.lr.ph.split.split.i.i.i194 + br label %.lr.ph.split.split.i.i.i193 -.lr.ph.split.split.i.i.i194: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", %.lr.ph.i.i.i193 - %700 = phi ptr [ %701, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" ], [ %629, %.lr.ph.i.i.i193 ] +.lr.ph.split.split.i.i.i193: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", %.lr.ph.i.i.i192 + %700 = phi ptr [ %701, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" ], [ %629, %.lr.ph.i.i.i192 ] %701 = getelementptr inbounds nuw i8, ptr %700, i64 200 %702 = getelementptr inbounds nuw i8, ptr %700, i64 24 %703 = load i64, ptr %702, align 8, !range !567, !alias.scope !11988, !noalias !11994, !noundef !4 %704 = icmp eq i64 %703, -9223372036854775808 br i1 %704, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", label %705 -705: ; preds = %.lr.ph.split.split.i.i.i194 +705: ; preds = %.lr.ph.split.split.i.i.i193 call void @llvm.experimental.noalias.scope.decl(metadata !11998), !noalias !11881 %706 = getelementptr inbounds nuw i8, ptr %700, i64 40 %707 = load i64, ptr %706, align 8, !alias.scope !12001, !noalias !12002, !noundef !4 @@ -58081,52 +58077,52 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 708: ; preds = %705 %709 = getelementptr inbounds nuw i8, ptr %700, i64 32 %710 = load ptr, ptr %709, align 8, !alias.scope !12001, !noalias !12002, !nonnull !4, !noundef !4 - %bcmp.i.i.i.i.i.i205 = call i32 @bcmp(ptr nonnull readonly align 1 %710, ptr nonnull readonly align 1 %699, i64 %698), !alias.scope !12004, !noalias !12008 - %711 = icmp eq i32 %bcmp.i.i.i.i.i.i205, 0 + %bcmp.i.i.i.i.i.i204 = call i32 @bcmp(ptr nonnull readonly align 1 %710, ptr nonnull readonly align 1 %699, i64 %698), !alias.scope !12004, !noalias !12008 + %711 = icmp eq i32 %bcmp.i.i.i.i.i.i204, 0 br i1 %711, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i", label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i": ; preds = %708, %705, %.lr.ph.split.split.i.i.i194 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i": ; preds = %708, %705, %.lr.ph.split.split.i.i.i193 %712 = icmp eq ptr %701, %697 - br i1 %712, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i", label %.lr.ph.split.split.i.i.i194 + br i1 %712, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i", label %.lr.ph.split.split.i.i.i193 "_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i": ; preds = %708 %713 = getelementptr i8, ptr %700, i64 192 %.val.i.i = load i8, ptr %713, align 8, !range !569, !alias.scope !11988, !noalias !12009, !noundef !4 %714 = icmp eq i8 %.val.i.i, 3 %715 = select i1 %714, i8 0, i8 %.val.i.i - %.pre.i206 = load i64, ptr %16, align 8, !range !567, !alias.scope !12010, !noalias !11923 + %.pre.i205 = load i64, ptr %16, align 8, !range !567, !alias.scope !12010, !noalias !11923 br label %716 716: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" - %717 = phi i64 [ %.pre.i206, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] + %717 = phi i64 [ %.pre.i205, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] %.1.in.i = phi i8 [ %715, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %744, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %769, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %779, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] call void @llvm.experimental.noalias.scope.decl(metadata !12010), !noalias !11881 %718 = icmp eq i64 %717, -9223372036854775808 - br i1 %718, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204", label %719 + br i1 %718, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203", label %719 719: ; preds = %716 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !12013 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16) - to label %.noexc54.i unwind label %.loopexit.split-lp.i200, !noalias !11881 + to label %.noexc54.i unwind label %.loopexit.split-lp.i199, !noalias !11881 .noexc54.i: ; preds = %719 %720 = load i64, ptr %459, align 8, !range !567, !noalias !12013, !noundef !4 - %.not.i.i.i.i.i.i.i202 = icmp eq i64 %720, 0 - br i1 %.not.i.i.i.i.i.i.i202, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", label %721 + %.not.i.i.i.i.i.i.i201 = icmp eq i64 %720, 0 + br i1 %.not.i.i.i.i.i.i.i201, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", label %721 721: ; preds = %.noexc54.i %722 = load i64, ptr %460, align 8, !noalias !12013, !noundef !4 %723 = icmp eq i64 %722, 0 - br i1 %723, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", label %724 + br i1 %723, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", label %724 724: ; preds = %721 %725 = load ptr, ptr %7, align 8, !noalias !12013, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %725, i64 noundef %722, i64 noundef %720) #83, !noalias !11881 - br label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203" + br label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202" -"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203": ; preds = %724, %721, %.noexc54.i +"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202": ; preds = %724, %721, %.noexc54.i call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !12013 - br label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204" + br label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203" "_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i": ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" %726 = load i64, ptr %16, align 8, !range !567, !noalias !11923, !noundef !4 @@ -58136,7 +58132,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. .lr.ph.i.i56.i: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i" call void @llvm.experimental.noalias.scope.decl(metadata !12024), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !12027), !noalias !11881 - %727 = load i64, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i186, align 8, !alias.scope !12027, !noalias !12029 + %727 = load i64, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i185, align 8, !alias.scope !12027, !noalias !12029 %728 = load ptr, ptr %454, align 8, !alias.scope !12027, !noalias !12029, !nonnull !4 br label %.lr.ph.split.split.i.i57.i @@ -58239,7 +58235,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 770: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i" call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !12076 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16) - to label %.noexc83.i unwind label %.loopexit.i187, !noalias !11881 + to label %.noexc83.i unwind label %.loopexit.i186, !noalias !11881 .noexc83.i: ; preds = %770 %771 = load i64, ptr %457, align 8, !range !567, !noalias !12076, !noundef !4 @@ -58267,12 +58263,12 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %779 = select i1 %778, i8 0, i8 %.val.i79.i br label %716 -"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", %716 +"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", %716 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !11923 %780 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i" unwind label %635, !noalias !11881 -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i": ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204" +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i": ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203" call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !12090 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) @@ -58314,12 +58310,12 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. "_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i82.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i" call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !11923 - %794 = load i64, ptr %.sroa.0.sroa.3.0..sroa_idx.i181, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %795 = load i64, ptr %.sroa.0.sroa.2.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %.not.not.i.i.i195 = icmp eq i64 %794, %795 - br i1 %.not.not.i.i.i195, label %._crit_edge.i196, label %625 + %794 = load i64, ptr %.sroa.0.sroa.3.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 + %795 = load i64, ptr %.sroa.0.sroa.2.0..sroa_idx.i179, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 + %.not.not.i.i.i194 = icmp eq i64 %794, %795 + br i1 %.not.not.i.i.i194, label %._crit_edge.i195, label %625 -796: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191", %.body.i189, %610 +796: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190", %.body.i188, %610 %797 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11881 @@ -58332,16 +58328,16 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br i1 %798, label %599, label %799 799: ; preds = %_ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit, %605 - %.sroa.gep219 = getelementptr inbounds nuw i8, ptr %515, i64 4 - %.0.i154.sroa.sel = select i1 %trunc.i, ptr %420, ptr %.sroa.gep219 - %800 = load i8, ptr %.0.i154.sroa.sel, align 4, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 + %.sroa.gep218 = getelementptr inbounds nuw i8, ptr %515, i64 4 + %.0.i153.sroa.sel = select i1 %trunc.i, ptr %420, ptr %.sroa.gep218 + %800 = load i8, ptr %.0.i153.sroa.sel, align 4, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 %trunc134.i = trunc nuw i8 %800 to i1 br i1 %trunc134.i, label %801, label %.thread168.i 801: ; preds = %799 - %.sroa.gep221 = getelementptr inbounds nuw i8, ptr %515, i64 5 - %.0.i154.sroa.sel222 = select i1 %trunc.i, ptr %.sroa.gep220, ptr %.sroa.gep221 - %802 = load i8, ptr %.0.i154.sroa.sel222, align 1, !alias.scope !11881, !noalias !11885 + %.sroa.gep220 = getelementptr inbounds nuw i8, ptr %515, i64 5 + %.0.i153.sroa.sel221 = select i1 %trunc.i, ptr %.sroa.gep219, ptr %.sroa.gep220 + %802 = load i8, ptr %.0.i153.sroa.sel221, align 1, !alias.scope !11881, !noalias !11885 %803 = icmp ugt i8 %802, 11 br i1 %803, label %.thread168.i, label %804 @@ -58404,9 +58400,9 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds 815: ; preds = %814 invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.43c633cc9d0c07b847282a0596e0d119.199, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.198, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.852) #80 - to label %.noexc.i160 unwind label %.loopexit.split-lp, !noalias !11881 + to label %.noexc.i159 unwind label %.loopexit.split-lp, !noalias !11881 -.noexc.i160: ; preds = %815 +.noexc.i159: ; preds = %815 unreachable "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143.i": ; preds = %814 @@ -58587,7 +58583,7 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br label %857 857: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit140.i" - %858 = load i32, ptr %.0.i154, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 + %858 = load i32, ptr %.0.i153, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 %859 = icmp slt i32 %858, 1000 br i1 %859, label %.sink.split.i, label %594 @@ -58598,8 +58594,8 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br label %594 .thread166.i: ; preds = %861, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit141.i", %844, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit142.i", %837, %"_ZN4core3ptr48drop_in_place$LT$citationberg..OrdinalLookup$GT$17hbbfb5ebfd8ac4735E.exit.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit145.i", %594 - %.not.i159 = icmp eq i64 %.sroa.020.0.i, 0 - br i1 %.not.i159, label %863, label %862 + %.not.i158 = icmp eq i64 %.sroa.020.0.i, 0 + br i1 %.not.i158, label %863, label %862 861: ; preds = %594 call fastcc void @_ZN9hayagriva3csl9rendering29render_year_suffix_implicitly17h9f91b50bfb3905b2E(ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !11881 @@ -58623,14 +58619,14 @@ _ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit: ; preds call void @llvm.lifetime.end.p0(ptr nonnull %22) %864 = call noundef i64 @_ZN9hayagriva3csl14WritingContext3len17h79b1b0473df8f2bbE(ptr noundef nonnull align 8 %352) %865 = icmp eq i64 %502, %864 - %866 = icmp eq ptr %.us-phi315, %405 + %866 = icmp eq ptr %.us-phi314, %405 br i1 %866, label %.outer._crit_edge, label %.lr.ph -switch.lookup592: ; preds = %95 +switch.lookup591: ; preds = %95 %867 = getelementptr inbounds nuw i8, ptr %0, i64 102 %868 = load i8, ptr %867, align 2, !range !569, !noundef !4 - %switch.masked596 = icmp ne i8 %868, 0 - %switch.masked600 = icmp samesign ugt i8 %868, 1 + %switch.masked595 = icmp ne i8 %868, 0 + %switch.masked599 = icmp samesign ugt i8 %868, 1 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread" 869: ; preds = %95 @@ -58649,8 +58645,8 @@ switch.lookup592: ; preds = %95 877: ; preds = %875 %878 = getelementptr inbounds nuw i8, ptr %876, i64 88 %879 = getelementptr i8, ptr %876, i64 73 - %.val.i162 = load i8, ptr %879, align 1, !range !566, !noalias !12145, !noundef !4 - %880 = icmp eq i8 %.val.i162, 2 + %.val.i161 = load i8, ptr %879, align 1, !range !566, !noalias !12145, !noundef !4 + %880 = icmp eq i8 %.val.i161, 2 br i1 %880, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader", label %875 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader": ; preds = %875, %877 @@ -58658,14 +58654,14 @@ switch.lookup592: ; preds = %95 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader", %882 %881 = phi ptr [ %883, %882 ], [ %871, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader" ] - %.not.not.not.i164.not.not.not.not.not = icmp ne ptr %881, %874 - br i1 %.not.not.not.i164.not.not.not.not.not, label %882, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" + %.not.not.not.i163.not.not.not.not.not = icmp ne ptr %881, %874 + br i1 %.not.not.not.i163.not.not.not.not.not, label %882, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" 882: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit" %883 = getelementptr inbounds nuw i8, ptr %881, i64 88 %884 = getelementptr i8, ptr %881, i64 73 - %.val.i165 = load i8, ptr %884, align 1, !range !566, !noalias !12148, !noundef !4 - %885 = icmp eq i8 %.val.i165, 1 + %.val.i164 = load i8, ptr %884, align 1, !range !566, !noalias !12148, !noundef !4 + %885 = icmp eq i8 %.val.i164, 1 br i1 %885, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit", %882 @@ -58673,34 +58669,34 @@ switch.lookup592: ; preds = %95 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader", %887 %886 = phi ptr [ %888, %887 ], [ %871, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" ] - %.not.not.not.i167.not.not.not.not.not.not = icmp ne ptr %886, %874 - br i1 %.not.not.not.i167.not.not.not.not.not.not, label %887, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" + %.not.not.not.i166.not.not.not.not.not.not = icmp ne ptr %886, %874 + br i1 %.not.not.not.i166.not.not.not.not.not.not, label %887, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" 887: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" %888 = getelementptr inbounds nuw i8, ptr %886, i64 88 %889 = getelementptr i8, ptr %886, i64 73 - %.val.i168 = load i8, ptr %889, align 1, !range !566, !noalias !12151, !noundef !4 - %890 = icmp eq i8 %.val.i168, 0 + %.val.i167 = load i8, ptr %889, align 1, !range !566, !noalias !12151, !noundef !4 + %890 = icmp eq i8 %.val.i167, 0 br i1 %890, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit": ; preds = %887, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" br i1 %.not.not.not.i.not, label %891, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread" 891: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" - br i1 %.not.not.not.i164.not.not.not.not.not, label %905, label %904 + br i1 %.not.not.not.i163.not.not.not.not.not, label %905, label %904 -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread": ; preds = %switch.lookup592, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" - %.0117265 = phi i1 [ %.not.not.not.i164.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked596, %switch.lookup592 ] - %.0120263 = phi i1 [ %.not.not.not.i167.not.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked600, %switch.lookup592 ] +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread": ; preds = %switch.lookup591, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" + %.0117264 = phi i1 [ %.not.not.not.i163.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked595, %switch.lookup591 ] + %.0120262 = phi i1 [ %.not.not.not.i166.not.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked599, %switch.lookup591 ] call void @llvm.lifetime.start.p0(ptr nonnull %72) call void @llvm.lifetime.start.p0(ptr nonnull %71) %892 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12154, !noundef !4 - %trunc.i169 = trunc nuw i32 %892 to i1 + %trunc.i168 = trunc nuw i32 %892 to i1 %893 = getelementptr inbounds nuw i8, ptr %74, i64 8 %894 = load ptr, ptr %893, align 8, !alias.scope !12154, !nonnull !4, !align !11880 %895 = getelementptr inbounds nuw i8, ptr %74, i64 4 - %.0.i170 = select i1 %trunc.i169, ptr %895, ptr %894 - store ptr %.0.i170, ptr %71, align 8 + %.0.i169 = select i1 %trunc.i168, ptr %895, ptr %894 + store ptr %.0.i169, ptr %71, align 8 %896 = getelementptr inbounds nuw i8, ptr %71, i64 8 store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h499aad881c3f5dc5E", ptr %896, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %70) @@ -58740,29 +58736,29 @@ switch.lookup592: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %70) call void @llvm.lifetime.end.p0(ptr nonnull %71) call fastcc void @_ZN9hayagriva3csl9rendering29render_year_suffix_implicitly17h9f91b50bfb3905b2E(ptr noalias noundef align 8 dereferenceable(664) %1) - br i1 %.0117265, label %905, label %904 + br i1 %.0117264, label %905, label %904 904: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144", %891 - %.0120262266 = phi i1 [ %.0120263, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i167.not.not.not.not.not.not, %891 ] - br i1 %.0120262266, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + %.0120261265 = phi i1 [ %.0120262, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i166.not.not.not.not.not.not, %891 ] + br i1 %.0120261265, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" 905: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144", %891 - %.0120262267 = phi i1 [ %.0120263, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i167.not.not.not.not.not.not, %891 ] + %.0120261266 = phi i1 [ %.0120262, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i166.not.not.not.not.not.not, %891 ] call void @llvm.lifetime.start.p0(ptr nonnull %69) call void @llvm.lifetime.start.p0(ptr nonnull %68) call void @llvm.lifetime.start.p0(ptr nonnull %67) %906 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12157, !noundef !4 - %trunc.i171 = trunc nuw i32 %906 to i1 + %trunc.i170 = trunc nuw i32 %906 to i1 %907 = getelementptr inbounds nuw i8, ptr %74, i64 8 %908 = load ptr, ptr %907, align 8, !alias.scope !12157, !nonnull !4, !align !11880 - %.sroa.gep232 = getelementptr inbounds nuw i8, ptr %908, i64 4 - %.0.i172.sroa.sel233 = select i1 %trunc.i171, ptr %907, ptr %.sroa.gep232 - %909 = load i8, ptr %.0.i172.sroa.sel233, align 4, !range !23, !noundef !4 + %.sroa.gep231 = getelementptr inbounds nuw i8, ptr %908, i64 4 + %.0.i171.sroa.sel232 = select i1 %trunc.i170, ptr %907, ptr %.sroa.gep231 + %909 = load i8, ptr %.0.i171.sroa.sel232, align 4, !range !23, !noundef !4 %trunc = trunc nuw i8 %909 to i1 - %.sroa.gep229 = getelementptr inbounds nuw i8, ptr %74, i64 9 - %.sroa.gep230 = getelementptr inbounds nuw i8, ptr %908, i64 5 - %.0.i172.sroa.sel = select i1 %trunc.i171, ptr %.sroa.gep229, ptr %.sroa.gep230 - %910 = load i8, ptr %.0.i172.sroa.sel, align 1 + %.sroa.gep228 = getelementptr inbounds nuw i8, ptr %74, i64 9 + %.sroa.gep229 = getelementptr inbounds nuw i8, ptr %908, i64 5 + %.0.i171.sroa.sel = select i1 %trunc.i170, ptr %.sroa.gep228, ptr %.sroa.gep229 + %910 = load i8, ptr %.0.i171.sroa.sel, align 1 %911 = zext i8 %910 to i32 %912 = add nuw nsw i32 %911, 1 %spec.select140 = select i1 %trunc, i32 %912, i32 0 @@ -58807,25 +58803,25 @@ switch.lookup592: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %66) call void @llvm.lifetime.end.p0(ptr nonnull %67) call void @llvm.lifetime.end.p0(ptr nonnull %68) - br i1 %.0120262267, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + br i1 %.0120261266, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" 921: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %904 call void @llvm.lifetime.start.p0(ptr nonnull %65) call void @llvm.lifetime.start.p0(ptr nonnull %64) call void @llvm.lifetime.start.p0(ptr nonnull %63) %922 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12160, !noundef !4 - %trunc.i173 = trunc nuw i32 %922 to i1 + %trunc.i172 = trunc nuw i32 %922 to i1 %923 = getelementptr inbounds nuw i8, ptr %74, i64 8 %924 = load ptr, ptr %923, align 8, !alias.scope !12160, !nonnull !4, !align !11880 - %.sroa.gep236 = getelementptr inbounds nuw i8, ptr %74, i64 10 - %.sroa.gep237 = getelementptr inbounds nuw i8, ptr %924, i64 6 - %.0.i174.sroa.sel238 = select i1 %trunc.i173, ptr %.sroa.gep236, ptr %.sroa.gep237 - %925 = load i8, ptr %.0.i174.sroa.sel238, align 2, !range !23, !noundef !4 + %.sroa.gep235 = getelementptr inbounds nuw i8, ptr %74, i64 10 + %.sroa.gep236 = getelementptr inbounds nuw i8, ptr %924, i64 6 + %.0.i173.sroa.sel237 = select i1 %trunc.i172, ptr %.sroa.gep235, ptr %.sroa.gep236 + %925 = load i8, ptr %.0.i173.sroa.sel237, align 2, !range !23, !noundef !4 %trunc131 = trunc nuw i8 %925 to i1 - %.sroa.gep234 = getelementptr inbounds nuw i8, ptr %74, i64 11 - %.sroa.gep235 = getelementptr inbounds nuw i8, ptr %924, i64 7 - %.0.i174.sroa.sel = select i1 %trunc.i173, ptr %.sroa.gep234, ptr %.sroa.gep235 - %926 = load i8, ptr %.0.i174.sroa.sel, align 1 + %.sroa.gep233 = getelementptr inbounds nuw i8, ptr %74, i64 11 + %.sroa.gep234 = getelementptr inbounds nuw i8, ptr %924, i64 7 + %.0.i173.sroa.sel = select i1 %trunc.i172, ptr %.sroa.gep233, ptr %.sroa.gep234 + %926 = load i8, ptr %.0.i173.sroa.sel, align 1 %927 = zext i8 %926 to i32 %928 = add nuw nsw i32 %927, 1 %spec.select142 = select i1 %trunc131, i32 %928, i32 0 @@ -58870,7 +58866,7 @@ switch.lookup592: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %62) call void @llvm.lifetime.end.p0(ptr nonnull %63) call void @llvm.lifetime.end.p0(ptr nonnull %64) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" } ; Function Attrs: inlinehint nonlazybind uwtable @@ -82330,15 +82326,15 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1292, %1307 = load i8, ptr %1306, align 2, !range !566, !noundef !4 %1308 = getelementptr inbounds nuw i8, ptr %1300, i64 604 %1309 = load i8, ptr %1308, align 4, !range !550, !noundef !4 + %.sroa.7140.0.insert.ext = zext nneg i8 %1309 to i40 + %.sroa.7140.0.insert.shift = shl nuw nsw i40 %.sroa.7140.0.insert.ext, 32 %.sroa.5138.0.insert.ext = zext nneg i8 %1307 to i40 %.sroa.5138.0.insert.shift = shl nuw nsw i40 %.sroa.5138.0.insert.ext, 16 %.sroa.0136.0.insert.insert = or disjoint i40 %.sroa.5138.0.insert.shift, %1303 %.not38.i = icmp eq i8 %1305, 3 %.sroa.5.0.i = select i1 %.not38.i, i8 0, i8 %1305 %.not40.i = icmp eq i8 %1309, 4 - %.sroa.6.0.i = select i1 %.not40.i, i8 0, i8 %1309 - %.sroa.536.0.insert.ext.i = zext nneg i8 %.sroa.6.0.i to i40 - %.sroa.536.0.insert.shift.i = shl nuw nsw i40 %.sroa.536.0.insert.ext.i, 32 + %.sroa.536.0.insert.shift.i = select i1 %.not40.i, i40 0, i40 %.sroa.7140.0.insert.shift %.sroa.435.0.insert.ext.i = zext nneg i8 %.sroa.5.0.i to i40 %.sroa.435.0.insert.shift.i = shl nuw nsw i40 %.sroa.435.0.insert.ext.i, 24 %.sroa.435.0.insert.insert.i = or disjoint i40 %.sroa.536.0.insert.shift.i, %.sroa.435.0.insert.shift.i diff --git a/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll b/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll index 069941e51e9..8aa9a935e56 100644 --- a/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll +++ b/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll @@ -271,257 +271,255 @@ define internal fastcc void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension %.sroa.3.sroa.0.0.extract.trunc = trunc i48 %.2.extract.shift to i8 %.4.extract.shift = lshr i48 %2, 32 %.4.extract.trunc = trunc nuw i48 %.4.extract.shift to i16 - %5 = trunc i48 %2 to i1 - %6 = and i48 %2, 4294901761 - %or.cond = icmp eq i48 %6, 1 - %7 = icmp eq i16 %.4.extract.trunc, 0 - %or.cond7 = select i1 %or.cond, i1 %7, i1 false - br i1 %or.cond7, label %17, label %8 + %5 = and i48 %2, -65535 + %or.cond7 = icmp eq i48 %5, 1 + br i1 %or.cond7, label %15, label %6 -8: ; preds = %3 +6: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !52) - %9 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %10 = load ptr, ptr %9, align 8, !alias.scope !52, !noundef !7 - %11 = icmp eq ptr %10, null - br i1 %11, label %43, label %12 + %7 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %8 = load ptr, ptr %7, align 8, !alias.scope !52, !noundef !7 + %9 = icmp eq ptr %8, null + br i1 %9, label %41, label %10 -12: ; preds = %8 +10: ; preds = %6 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !55 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17ha4fed7327d8484b9E.llvm.17057414408856058071(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull inttoptr (i64 154618822659 to ptr)), !noalias !55 - %13 = load i8, ptr %4, align 8, !range !15, !alias.scope !62, !noalias !55, !noundef !7 - %14 = icmp eq i8 %13, 3 - br i1 %14, label %15, label %19 + %11 = load i8, ptr %4, align 8, !range !15, !alias.scope !62, !noalias !55, !noundef !7 + %12 = icmp eq i8 %11, 3 + br i1 %12, label %13, label %17 -15: ; preds = %12 - %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17he959ce38eed87d40E.llvm.17057414408856058071"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16), !noalias !55 - br label %19 +13: ; preds = %10 + %14 = getelementptr inbounds nuw i8, ptr %4, i64 8 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17he959ce38eed87d40E.llvm.17057414408856058071"(ptr noalias noundef nonnull align 8 dereferenceable(8) %14), !noalias !55 + br label %17 -17: ; preds = %3 +15: ; preds = %3 store i8 2, ptr %0, align 8 - br label %18 + br label %16 -18: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163", %43, %17 +16: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163", %41, %15 ret void -19: ; preds = %12, %15 +17: ; preds = %10, %13 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !55 - %20 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %21 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %22 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.promoted.i.i = load i64, ptr %20, align 8, !alias.scope !65, !noalias !72 + %18 = getelementptr inbounds nuw i8, ptr %8, i64 24 + %19 = getelementptr inbounds nuw i8, ptr %8, i64 16 + %20 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %.promoted.i.i = load i64, ptr %18, align 8, !alias.scope !65, !noalias !72 call void @llvm.experimental.noalias.scope.decl(metadata !82) call void @llvm.experimental.noalias.scope.decl(metadata !83) - %23 = call i64 @llvm.uadd.sat.i64(i64 %.promoted.i.i, i64 range(i64 1, 0) 1) - %24 = load i64, ptr %10, align 8, !alias.scope !84, !noalias !87, !noundef !7 - %25 = icmp ugt i64 %23, %24 - %.pre19.i.i = load i64, ptr %21, align 8, !alias.scope !84, !noalias !87 - br i1 %25, label %26, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - -26: ; preds = %19 - %27 = sub i64 %23, %.pre19.i.i - %28 = sub i64 %24, %.pre19.i.i - %29 = icmp ugt i64 %27, %28 - br i1 %29, label %30, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + %21 = call i64 @llvm.uadd.sat.i64(i64 %.promoted.i.i, i64 range(i64 1, 0) 1) + %22 = load i64, ptr %8, align 8, !alias.scope !84, !noalias !87, !noundef !7 + %23 = icmp ugt i64 %21, %22 + %.pre19.i.i = load i64, ptr %19, align 8, !alias.scope !84, !noalias !87 + br i1 %23, label %24, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + +24: ; preds = %17 + %25 = sub i64 %21, %.pre19.i.i + %26 = sub i64 %22, %.pre19.i.i + %27 = icmp ugt i64 %25, %26 + br i1 %27, label %28, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" -30: ; preds = %26 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i, i64 noundef %27), !noalias !87 - %.pre.i.i = load i64, ptr %21, align 8, !alias.scope !84, !noalias !87 +28: ; preds = %24 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i, i64 noundef %25), !noalias !87 + %.pre.i.i = load i64, ptr %19, align 8, !alias.scope !84, !noalias !87 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i": ; preds = %30, %26, %19 - %31 = phi i64 [ %.pre.i.i, %30 ], [ %.pre19.i.i, %26 ], [ %.pre19.i.i, %19 ] - %32 = icmp ugt i64 %.promoted.i.i, %31 - br i1 %32, label %.lr.ph.preheader.i.i.i.i.us.i.i, label %36 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i": ; preds = %28, %24, %17 + %29 = phi i64 [ %.pre.i.i, %28 ], [ %.pre19.i.i, %24 ], [ %.pre19.i.i, %17 ] + %30 = icmp ugt i64 %.promoted.i.i, %29 + br i1 %30, label %.lr.ph.preheader.i.i.i.i.us.i.i, label %34 .lr.ph.preheader.i.i.i.i.us.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - %33 = sub nuw i64 %.promoted.i.i, %31 - %34 = load ptr, ptr %22, align 8, !alias.scope !89, !noalias !87, !nonnull !7, !noundef !7 - %35 = getelementptr inbounds i8, ptr %34, i64 %31 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %35, i8 0, i64 %33, i1 false), !alias.scope !92, !noalias !87 - store i64 %.promoted.i.i, ptr %21, align 8, !alias.scope !84, !noalias !87 - br label %36 - -36: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - %37 = load ptr, ptr %22, align 8, !alias.scope !95, !noalias !96, !nonnull !7, !noundef !7 - %38 = getelementptr inbounds i8, ptr %37, i64 %.promoted.i.i - store i8 33, ptr %38, align 1, !noalias !97 - %39 = add i64 %.promoted.i.i, 1 - %40 = load i64, ptr %21, align 8, !alias.scope !95, !noalias !96, !noundef !7 - %41 = icmp ugt i64 %39, %40 - br i1 %41, label %42, label %44 + %31 = sub nuw i64 %.promoted.i.i, %29 + %32 = load ptr, ptr %20, align 8, !alias.scope !89, !noalias !87, !nonnull !7, !noundef !7 + %33 = getelementptr inbounds i8, ptr %32, i64 %29 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %33, i8 0, i64 %31, i1 false), !alias.scope !92, !noalias !87 + store i64 %.promoted.i.i, ptr %19, align 8, !alias.scope !84, !noalias !87 + br label %34 + +34: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + %35 = load ptr, ptr %20, align 8, !alias.scope !95, !noalias !96, !nonnull !7, !noundef !7 + %36 = getelementptr inbounds i8, ptr %35, i64 %.promoted.i.i + store i8 33, ptr %36, align 1, !noalias !97 + %37 = add i64 %.promoted.i.i, 1 + %38 = load i64, ptr %19, align 8, !alias.scope !95, !noalias !96, !noundef !7 + %39 = icmp ugt i64 %37, %38 + br i1 %39, label %40, label %42 -42: ; preds = %36 - store i64 %39, ptr %21, align 8, !alias.scope !95, !noalias !96 - br label %44 +40: ; preds = %34 + store i64 %37, ptr %19, align 8, !alias.scope !95, !noalias !96 + br label %42 -43: ; preds = %8 +41: ; preds = %6 store i8 1, ptr %0, align 8 %.sroa.4185.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr inttoptr (i64 154618822659 to ptr), ptr %.sroa.4185.0..sroa_idx, align 8 - br label %18 - -44: ; preds = %42, %36 - %.pre19.i.i.i180 = phi i64 [ %39, %42 ], [ %40, %36 ] - store i64 %39, ptr %20, align 8, !alias.scope !65, !noalias !72 - br i1 %5, label %86, label %45 - -45: ; preds = %44 - %46 = call i64 @llvm.uadd.sat.i64(i64 %39, i64 range(i64 1, 0) 6) - %47 = load i64, ptr %10, align 8, !alias.scope !98, !noalias !107, !noundef !7 - %48 = icmp ugt i64 %46, %47 - br i1 %48, label %49, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" - -49: ; preds = %45 - %50 = sub i64 %46, %.pre19.i.i.i180 - %51 = sub i64 %47, %.pre19.i.i.i180 - %52 = icmp ugt i64 %50, %51 - br i1 %52, label %53, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" + br label %16 -53: ; preds = %49 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i.i180, i64 noundef %50), !noalias !107 - %.pre.i.i.i = load i64, ptr %21, align 8, !alias.scope !98, !noalias !107 +42: ; preds = %40, %34 + %.pre19.i.i.i180 = phi i64 [ %37, %40 ], [ %38, %34 ] + store i64 %37, ptr %18, align 8, !alias.scope !65, !noalias !72 + %trunc = trunc i48 %2 to i1 + br i1 %trunc, label %84, label %43 + +43: ; preds = %42 + %44 = call i64 @llvm.uadd.sat.i64(i64 %37, i64 range(i64 1, 0) 6) + %45 = load i64, ptr %8, align 8, !alias.scope !98, !noalias !107, !noundef !7 + %46 = icmp ugt i64 %44, %45 + br i1 %46, label %47, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" + +47: ; preds = %43 + %48 = sub i64 %44, %.pre19.i.i.i180 + %49 = sub i64 %45, %.pre19.i.i.i180 + %50 = icmp ugt i64 %48, %49 + br i1 %50, label %51, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" + +51: ; preds = %47 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i.i180, i64 noundef %48), !noalias !107 + %.pre.i.i.i = load i64, ptr %19, align 8, !alias.scope !98, !noalias !107 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i": ; preds = %53, %49, %45 - %54 = phi i64 [ %.pre.i.i.i, %53 ], [ %.pre19.i.i.i180, %49 ], [ %.pre19.i.i.i180, %45 ] - %55 = icmp ugt i64 %39, %54 - br i1 %55, label %.lr.ph.preheader.i.i.i.i.us.i.i.i, label %59 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i": ; preds = %51, %47, %43 + %52 = phi i64 [ %.pre.i.i.i, %51 ], [ %.pre19.i.i.i180, %47 ], [ %.pre19.i.i.i180, %43 ] + %53 = icmp ugt i64 %37, %52 + br i1 %53, label %.lr.ph.preheader.i.i.i.i.us.i.i.i, label %57 .lr.ph.preheader.i.i.i.i.us.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" - %56 = sub nuw i64 %39, %54 - %57 = load ptr, ptr %22, align 8, !alias.scope !120, !noalias !107, !nonnull !7, !noundef !7 - %58 = getelementptr inbounds i8, ptr %57, i64 %54 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %58, i8 0, i64 %56, i1 false), !alias.scope !123, !noalias !107 - store i64 %39, ptr %21, align 8, !alias.scope !98, !noalias !107 - br label %59 + %54 = sub nuw i64 %37, %52 + %55 = load ptr, ptr %20, align 8, !alias.scope !120, !noalias !107, !nonnull !7, !noundef !7 + %56 = getelementptr inbounds i8, ptr %55, i64 %52 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %56, i8 0, i64 %54, i1 false), !alias.scope !123, !noalias !107 + store i64 %37, ptr %19, align 8, !alias.scope !98, !noalias !107 + br label %57 -59: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" - %60 = load ptr, ptr %22, align 8, !alias.scope !126, !noalias !127, !nonnull !7, !noundef !7 - %61 = getelementptr inbounds i8, ptr %60, i64 %39 - store i8 -7, ptr %61, align 1, !noalias !128 - %.sroa.11.8..sroa_idx249 = getelementptr inbounds nuw i8, ptr %61, i64 1 +57: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" + %58 = load ptr, ptr %20, align 8, !alias.scope !126, !noalias !127, !nonnull !7, !noundef !7 + %59 = getelementptr inbounds i8, ptr %58, i64 %37 + store i8 -7, ptr %59, align 1, !noalias !128 + %.sroa.11.8..sroa_idx249 = getelementptr inbounds nuw i8, ptr %59, i64 1 store i8 4, ptr %.sroa.11.8..sroa_idx249, align 1, !noalias !128 - %.sroa.12.8..sroa_idx251 = getelementptr inbounds nuw i8, ptr %61, i64 2 + %.sroa.12.8..sroa_idx251 = getelementptr inbounds nuw i8, ptr %59, i64 2 store i8 %.1.extract.trunc, ptr %.sroa.12.8..sroa_idx251, align 1, !noalias !128 - %.sroa.13.8..sroa_idx253 = getelementptr inbounds nuw i8, ptr %61, i64 3 + %.sroa.13.8..sroa_idx253 = getelementptr inbounds nuw i8, ptr %59, i64 3 store i16 %.4.extract.trunc, ptr %.sroa.13.8..sroa_idx253, align 1, !noalias !128 - %.sroa.14.8..sroa_idx255 = getelementptr inbounds nuw i8, ptr %61, i64 5 + %.sroa.14.8..sroa_idx255 = getelementptr inbounds nuw i8, ptr %59, i64 5 store i8 %.sroa.3.sroa.0.0.extract.trunc, ptr %.sroa.14.8..sroa_idx255, align 1, !noalias !128 - %62 = add i64 %.promoted.i.i, 7 - %63 = load i64, ptr %21, align 8, !alias.scope !126, !noalias !127, !noundef !7 - %64 = icmp ugt i64 %62, %63 - br i1 %64, label %.sink.split, label %65 - -.sink.split: ; preds = %59, %101 - %.sink = phi i64 [ %104, %101 ], [ %62, %59 ] - store i64 %.sink, ptr %21, align 8, !noalias !7 - br label %65 - -65: ; preds = %.sink.split, %101, %59 - %storemerge = phi i64 [ %62, %59 ], [ %104, %101 ], [ %.sink, %.sink.split ] - %.pre19.i.i159 = phi i64 [ %63, %59 ], [ %105, %101 ], [ %.sink, %.sink.split ] - store i64 %storemerge, ptr %20, align 8, !noalias !7 + %60 = add i64 %.promoted.i.i, 7 + %61 = load i64, ptr %19, align 8, !alias.scope !126, !noalias !127, !noundef !7 + %62 = icmp ugt i64 %60, %61 + br i1 %62, label %.sink.split, label %63 + +.sink.split: ; preds = %57, %99 + %.sink = phi i64 [ %102, %99 ], [ %60, %57 ] + store i64 %.sink, ptr %19, align 8, !noalias !7 + br label %63 + +63: ; preds = %.sink.split, %99, %57 + %storemerge = phi i64 [ %60, %57 ], [ %102, %99 ], [ %.sink, %.sink.split ] + %.pre19.i.i159 = phi i64 [ %61, %57 ], [ %103, %99 ], [ %.sink, %.sink.split ] + store i64 %storemerge, ptr %18, align 8, !noalias !7 call void @llvm.experimental.noalias.scope.decl(metadata !129) call void @llvm.experimental.noalias.scope.decl(metadata !132) - %66 = call i64 @llvm.uadd.sat.i64(i64 %storemerge, i64 range(i64 1, 0) 1) - %67 = load i64, ptr %10, align 8, !alias.scope !134, !noalias !141, !noundef !7 - %68 = icmp ugt i64 %66, %67 - br i1 %68, label %69, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - -69: ; preds = %65 - %70 = sub i64 %66, %.pre19.i.i159 - %71 = sub i64 %67, %.pre19.i.i159 - %72 = icmp ugt i64 %70, %71 - br i1 %72, label %73, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - -73: ; preds = %69 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i159, i64 noundef %70), !noalias !141 - %.pre.i.i162 = load i64, ptr %21, align 8, !alias.scope !134, !noalias !141 + %64 = call i64 @llvm.uadd.sat.i64(i64 %storemerge, i64 range(i64 1, 0) 1) + %65 = load i64, ptr %8, align 8, !alias.scope !134, !noalias !141, !noundef !7 + %66 = icmp ugt i64 %64, %65 + br i1 %66, label %67, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" + +67: ; preds = %63 + %68 = sub i64 %64, %.pre19.i.i159 + %69 = sub i64 %65, %.pre19.i.i159 + %70 = icmp ugt i64 %68, %69 + br i1 %70, label %71, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" + +71: ; preds = %67 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i159, i64 noundef %68), !noalias !141 + %.pre.i.i162 = load i64, ptr %19, align 8, !alias.scope !134, !noalias !141 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160": ; preds = %73, %69, %65 - %74 = phi i64 [ %.pre.i.i162, %73 ], [ %.pre19.i.i159, %69 ], [ %.pre19.i.i159, %65 ] - %75 = icmp ugt i64 %storemerge, %74 - br i1 %75, label %.lr.ph.preheader.i.i.i.i.us.i.i161, label %79 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160": ; preds = %71, %67, %63 + %72 = phi i64 [ %.pre.i.i162, %71 ], [ %.pre19.i.i159, %67 ], [ %.pre19.i.i159, %63 ] + %73 = icmp ugt i64 %storemerge, %72 + br i1 %73, label %.lr.ph.preheader.i.i.i.i.us.i.i161, label %77 .lr.ph.preheader.i.i.i.i.us.i.i161: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - %76 = sub nuw i64 %storemerge, %74 - %77 = load ptr, ptr %22, align 8, !alias.scope !151, !noalias !141, !nonnull !7, !noundef !7 - %78 = getelementptr inbounds i8, ptr %77, i64 %74 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %78, i8 0, i64 %76, i1 false), !alias.scope !154, !noalias !141 - store i64 %storemerge, ptr %21, align 8, !alias.scope !134, !noalias !141 - br label %79 + %74 = sub nuw i64 %storemerge, %72 + %75 = load ptr, ptr %20, align 8, !alias.scope !151, !noalias !141, !nonnull !7, !noundef !7 + %76 = getelementptr inbounds i8, ptr %75, i64 %72 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %76, i8 0, i64 %74, i1 false), !alias.scope !154, !noalias !141 + store i64 %storemerge, ptr %19, align 8, !alias.scope !134, !noalias !141 + br label %77 + +77: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i161, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" + %78 = load ptr, ptr %20, align 8, !alias.scope !157, !noalias !158, !nonnull !7, !noundef !7 + %79 = getelementptr inbounds i8, ptr %78, i64 %storemerge + store i8 0, ptr %79, align 1, !noalias !159 + %80 = add i64 %storemerge, 1 + %81 = load i64, ptr %19, align 8, !alias.scope !157, !noalias !158, !noundef !7 + %82 = icmp ugt i64 %80, %81 + br i1 %82, label %83, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163" -79: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i161, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - %80 = load ptr, ptr %22, align 8, !alias.scope !157, !noalias !158, !nonnull !7, !noundef !7 - %81 = getelementptr inbounds i8, ptr %80, i64 %storemerge - store i8 0, ptr %81, align 1, !noalias !159 - %82 = add i64 %storemerge, 1 - %83 = load i64, ptr %21, align 8, !alias.scope !157, !noalias !158, !noundef !7 - %84 = icmp ugt i64 %82, %83 - br i1 %84, label %85, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163" - -85: ; preds = %79 - store i64 %82, ptr %21, align 8, !alias.scope !157, !noalias !158 +83: ; preds = %77 + store i64 %80, ptr %19, align 8, !alias.scope !157, !noalias !158 br label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163" -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163": ; preds = %79, %85 - store i64 %82, ptr %20, align 8, !alias.scope !160, !noalias !161 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163": ; preds = %77, %83 + store i64 %80, ptr %18, align 8, !alias.scope !160, !noalias !161 store i8 2, ptr %0, align 8, !alias.scope !162 - br label %18 + br label %16 -86: ; preds = %44 +84: ; preds = %42 %trunc128 = trunc i48 %.2.extract.shift to i16 - %87 = icmp eq i16 %trunc128, 0 - %.4.extract.trunc. = select i1 %87, i16 %.4.extract.trunc, i16 0 - %88 = call i64 @llvm.uadd.sat.i64(i64 %39, i64 range(i64 1, 0) 17) - %89 = load i64, ptr %10, align 8, !alias.scope !165, !noalias !174, !noundef !7 - %90 = icmp ugt i64 %88, %89 - br i1 %90, label %91, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - -91: ; preds = %86 - %92 = sub i64 %88, %.pre19.i.i.i180 - %93 = sub i64 %89, %.pre19.i.i.i180 - %94 = icmp ugt i64 %92, %93 - br i1 %94, label %95, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - -95: ; preds = %91 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i.i180, i64 noundef %92), !noalias !174 - %.pre.i.i.i183 = load i64, ptr %21, align 8, !alias.scope !165, !noalias !174 + %85 = icmp eq i16 %trunc128, 0 + %.4.extract.trunc. = select i1 %85, i16 %.4.extract.trunc, i16 0 + %86 = call i64 @llvm.uadd.sat.i64(i64 %37, i64 range(i64 1, 0) 17) + %87 = load i64, ptr %8, align 8, !alias.scope !165, !noalias !174, !noundef !7 + %88 = icmp ugt i64 %86, %87 + br i1 %88, label %89, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + +89: ; preds = %84 + %90 = sub i64 %86, %.pre19.i.i.i180 + %91 = sub i64 %87, %.pre19.i.i.i180 + %92 = icmp ugt i64 %90, %91 + br i1 %92, label %93, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + +93: ; preds = %89 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i.i180, i64 noundef %90), !noalias !174 + %.pre.i.i.i183 = load i64, ptr %19, align 8, !alias.scope !165, !noalias !174 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181": ; preds = %95, %91, %86 - %96 = phi i64 [ %.pre.i.i.i183, %95 ], [ %.pre19.i.i.i180, %91 ], [ %.pre19.i.i.i180, %86 ] - %97 = icmp ugt i64 %39, %96 - br i1 %97, label %.lr.ph.preheader.i.i.i.i.us.i.i.i182, label %101 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181": ; preds = %93, %89, %84 + %94 = phi i64 [ %.pre.i.i.i183, %93 ], [ %.pre19.i.i.i180, %89 ], [ %.pre19.i.i.i180, %84 ] + %95 = icmp ugt i64 %37, %94 + br i1 %95, label %.lr.ph.preheader.i.i.i.i.us.i.i.i182, label %99 .lr.ph.preheader.i.i.i.i.us.i.i.i182: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - %98 = sub nuw i64 %39, %96 - %99 = load ptr, ptr %22, align 8, !alias.scope !187, !noalias !174, !nonnull !7, !noundef !7 - %100 = getelementptr inbounds i8, ptr %99, i64 %96 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %100, i8 0, i64 %98, i1 false), !alias.scope !190, !noalias !174 - store i64 %39, ptr %21, align 8, !alias.scope !165, !noalias !174 - br label %101 - -101: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i182, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - %102 = load ptr, ptr %22, align 8, !alias.scope !193, !noalias !194, !nonnull !7, !noundef !7 - %103 = getelementptr inbounds i8, ptr %102, i64 %39 - store i8 -1, ptr %103, align 1, !noalias !195 - %.sroa.12259.8..sroa_idx260 = getelementptr inbounds nuw i8, ptr %103, i64 1 + %96 = sub nuw i64 %37, %94 + %97 = load ptr, ptr %20, align 8, !alias.scope !187, !noalias !174, !nonnull !7, !noundef !7 + %98 = getelementptr inbounds i8, ptr %97, i64 %94 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %98, i8 0, i64 %96, i1 false), !alias.scope !190, !noalias !174 + store i64 %37, ptr %19, align 8, !alias.scope !165, !noalias !174 + br label %99 + +99: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i182, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + %100 = load ptr, ptr %20, align 8, !alias.scope !193, !noalias !194, !nonnull !7, !noundef !7 + %101 = getelementptr inbounds i8, ptr %100, i64 %37 + store i8 -1, ptr %101, align 1, !noalias !195 + %.sroa.12259.8..sroa_idx260 = getelementptr inbounds nuw i8, ptr %101, i64 1 store i8 11, ptr %.sroa.12259.8..sroa_idx260, align 1, !noalias !195 - %.sroa.13262.8..sroa_idx263 = getelementptr inbounds nuw i8, ptr %103, i64 2 + %.sroa.13262.8..sroa_idx263 = getelementptr inbounds nuw i8, ptr %101, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(11) %.sroa.13262.8..sroa_idx263, ptr noundef nonnull align 1 dereferenceable(11) @anon.34ad03ac7dbb51fd0fc21b39122f0032.15, i64 11, i1 false) - %.sroa.14264.8..sroa_idx265 = getelementptr inbounds nuw i8, ptr %103, i64 13 + %.sroa.14264.8..sroa_idx265 = getelementptr inbounds nuw i8, ptr %101, i64 13 store i8 3, ptr %.sroa.14264.8..sroa_idx265, align 1, !noalias !195 - %.sroa.15267.8..sroa_idx268 = getelementptr inbounds nuw i8, ptr %103, i64 14 + %.sroa.15267.8..sroa_idx268 = getelementptr inbounds nuw i8, ptr %101, i64 14 store i8 1, ptr %.sroa.15267.8..sroa_idx268, align 1, !noalias !195 - %.sroa.16.8..sroa_idx270 = getelementptr inbounds nuw i8, ptr %103, i64 15 + %.sroa.16.8..sroa_idx270 = getelementptr inbounds nuw i8, ptr %101, i64 15 store i16 %.4.extract.trunc., ptr %.sroa.16.8..sroa_idx270, align 1, !noalias !195 - %104 = add i64 %.promoted.i.i, 18 - %105 = load i64, ptr %21, align 8, !alias.scope !193, !noalias !194, !noundef !7 - %106 = icmp ugt i64 %104, %105 - br i1 %106, label %.sink.split, label %65 + %102 = add i64 %.promoted.i.i, 18 + %103 = load i64, ptr %19, align 8, !alias.scope !193, !noalias !194, !noundef !7 + %104 = icmp ugt i64 %102, %103 + br i1 %104, label %.sink.split, label %63 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll index 948b14f74d9..d92460c662a 100644 --- a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll +++ b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll @@ -2259,90 +2259,85 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h %9 = load i64, ptr %8, align 8, !noundef !4 %10 = lshr i64 %5, 1 %11 = trunc i64 %10 to i16 + %.not = icmp eq i16 %11, 0 + br i1 %.not, label %.critedge, label %.lr.ph31 + +.lr.ph31: ; preds = %2 %12 = lshr i64 %9, 1 %13 = trunc i64 %12 to i16 %14 = getelementptr inbounds nuw i8, ptr %1, i64 16 %15 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %.not = icmp eq i16 %11, 0 - br i1 %.not, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread", label %.lr.ph37 + br label %16 .loopexit: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit", %.preheader - %16 = add i16 %18, 1 - %17 = icmp ult i16 %18, %11 - br i1 %17, label %.lr.ph37, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread" - -.lr.ph37: ; preds = %2, %.loopexit - %18 = phi i16 [ %16, %.loopexit ], [ 1, %2 ] - %.sroa.14.036 = phi i16 [ %26, %.loopexit ], [ 0, %2 ] - %.sroa.617.035 = phi i16 [ %18, %.loopexit ], [ 0, %2 ] - %19 = zext i16 %.sroa.617.035 to i64 - %20 = shl nuw nsw i64 %19, 1 - %21 = add nuw nsw i64 %20, 2 - %22 = icmp ugt i64 %21, %5 - br i1 %22, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread", label %23 - -23: ; preds = %.lr.ph37 - %24 = getelementptr inbounds nuw i8, ptr %3, i64 %20 - %.val.i.i.i.i.i.i = load i16, ptr %24, align 1, !alias.scope !252, !noalias !259 - %25 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) - %26 = add i16 %.sroa.14.036, 1 - %27 = icmp ult i16 %.sroa.14.036, %13 - br i1 %27, label %28, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread" + %exitcond36.not = icmp eq i16 %24, %11 + br i1 %exitcond36.not, label %.critedge, label %16 -28: ; preds = %23 - %29 = zext i16 %.sroa.14.036 to i64 - %30 = shl nuw nsw i64 %29, 1 - %31 = add nuw nsw i64 %30, 2 - %32 = icmp ugt i64 %31, %9 - br i1 %32, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread", label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit" - -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit": ; preds = %28 - %33 = getelementptr inbounds nuw i8, ptr %7, i64 %30 - %.val.i.i.i.i.i20.i = load i16, ptr %33, align 1, !alias.scope !264, !noalias !271 - %34 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i) - %35 = and i16 %25, %34 - %or.cond = icmp eq i16 %35, -1 - br i1 %or.cond, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread", label %.preheader +16: ; preds = %.lr.ph31, %.loopexit + %.sroa.14.030 = phi i16 [ 0, %.lr.ph31 ], [ %24, %.loopexit ] + %17 = zext i16 %.sroa.14.030 to i64 + %18 = shl nuw nsw i64 %17, 1 + %19 = add nuw nsw i64 %18, 2 + %20 = icmp ugt i64 %19, %5 + br i1 %20, label %.critedge, label %21 + +21: ; preds = %16 + %22 = getelementptr inbounds nuw i8, ptr %3, i64 %18 + %.val.i.i.i.i.i.i = load i16, ptr %22, align 1, !alias.scope !252, !noalias !259 + %23 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) + %24 = add nuw i16 %.sroa.14.030, 1 + %exitcond.not = icmp eq i16 %.sroa.14.030, %13 + %25 = icmp ugt i64 %19, %9 + %or.cond42 = or i1 %exitcond.not, %25 + br i1 %or.cond42, label %.critedge, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit" + +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit": ; preds = %21 + %26 = getelementptr inbounds nuw i8, ptr %7, i64 %18 + %.val.i.i.i.i.i20.i = load i16, ptr %26, align 1, !alias.scope !264, !noalias !271 + %27 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i) + %28 = and i16 %27, %23 + %or.cond = icmp eq i16 %28, -1 + br i1 %or.cond, label %.critedge, label %.preheader .preheader: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit" - %.not.i28 = icmp ugt i16 %25, %34 - br i1 %.not.i28, label %.loopexit, label %.lr.ph.preheader + %.not.i27 = icmp ugt i16 %23, %27 + br i1 %.not.i27, label %.loopexit, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.preheader %.pre = load i64, ptr %14, align 8, !alias.scope !274 br label %.lr.ph -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread": ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit", %.lr.ph37, %.loopexit, %28, %23, %2 +.critedge: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit", %21, %.loopexit, %16, %2 ret void .lr.ph: ; preds = %.lr.ph.preheader, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" - %36 = phi i64 [ %47, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %.pre, %.lr.ph.preheader ] - %.sroa.019.029 = phi i16 [ %spec.select, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %25, %.lr.ph.preheader ] - %37 = icmp uge i16 %.sroa.019.029, %34 - %not. = xor i1 %37, true - %38 = zext i1 %not. to i16 - %spec.select = add nuw i16 %.sroa.019.029, %38 - %39 = zext i16 %.sroa.019.029 to i32 - %40 = load i64, ptr %1, align 8, !alias.scope !274, !noundef !4 - %41 = icmp eq i64 %36, %40 - br i1 %41, label %42, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" - -42: ; preds = %.lr.ph - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %36) + %29 = phi i64 [ %40, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %.pre, %.lr.ph.preheader ] + %.sroa.018.028 = phi i16 [ %spec.select, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %23, %.lr.ph.preheader ] + %30 = icmp uge i16 %.sroa.018.028, %27 + %not. = xor i1 %30, true + %31 = zext i1 %not. to i16 + %spec.select = add nuw i16 %.sroa.018.028, %31 + %32 = zext i16 %.sroa.018.028 to i32 + %33 = load i64, ptr %1, align 8, !alias.scope !274, !noundef !4 + %34 = icmp eq i64 %29, %33 + br i1 %34, label %35, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" + +35: ; preds = %.lr.ph + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) %.pre.i.i = load i64, ptr %14, align 8, !alias.scope !274 br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit": ; preds = %.lr.ph, %42 - %43 = phi i64 [ %.pre.i.i, %42 ], [ %36, %.lr.ph ] - %44 = load ptr, ptr %15, align 8, !alias.scope !274, !nonnull !4, !noundef !4 - %45 = getelementptr inbounds i32, ptr %44, i64 %43 - store i32 %39, ptr %45, align 4 - %46 = load i64, ptr %14, align 8, !alias.scope !274, !noundef !4 - %47 = add i64 %46, 1 - store i64 %47, ptr %14, align 8, !alias.scope !274 - %.not.i = icmp ugt i16 %spec.select, %34 - %or.cond27 = select i1 %37, i1 true, i1 %.not.i - br i1 %or.cond27, label %.loopexit, label %.lr.ph +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit": ; preds = %.lr.ph, %35 + %36 = phi i64 [ %.pre.i.i, %35 ], [ %29, %.lr.ph ] + %37 = load ptr, ptr %15, align 8, !alias.scope !274, !nonnull !4, !noundef !4 + %38 = getelementptr inbounds i32, ptr %37, i64 %36 + store i32 %32, ptr %38, align 4 + %39 = load i64, ptr %14, align 8, !alias.scope !274, !noundef !4 + %40 = add i64 %39, 1 + store i64 %40, ptr %14, align 8, !alias.scope !274 + %.not.i = icmp ugt i16 %spec.select, %27 + %or.cond26 = select i1 %30, i1 true, i1 %.not.i + br i1 %or.cond26, label %.loopexit, label %.lr.ph } ; Function Attrs: nonlazybind uwtable @@ -2403,7 +2398,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format69Subtable610codepoints17h define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h70a4d7b0ce14f868E(ptr noalias noundef readonly align 8 captures(none) dereferenceable(104) %0, ptr noalias noundef align 8 dereferenceable(24) %1) unnamed_addr #7 personality ptr @rust_eh_personality { %3 = alloca { i32, [3 x i32] }, align 4 %4 = load i64, ptr %0, align 8, !range !103, !noundef !4 - switch i64 %4, label %default.unreachable85 [ + switch i64 %4, label %default.unreachable77 [ i64 0, label %5 i64 1, label %31 i64 2, label %34 @@ -2415,7 +2410,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h70a4d7b0c i64 8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit ] -default.unreachable85: ; preds = %2 +default.unreachable77: ; preds = %2 unreachable 5: ; preds = %2 @@ -2484,81 +2479,84 @@ default.unreachable85: ; preds = %2 %40 = load ptr, ptr %39, align 8, !alias.scope !288, !noalias !291, !nonnull !4, !align !159, !noundef !4 %41 = getelementptr inbounds nuw i8, ptr %0, i64 32 %42 = load i64, ptr %41, align 8, !alias.scope !288, !noalias !291, !noundef !4 - %43 = lshr i64 %38, 1 - %44 = trunc i64 %43 to i16 + %43 = and i64 %38, 131070 + %.not.i = icmp eq i64 %43, 0 + br i1 %.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph31.i + +.lr.ph31.i: ; preds = %34 + %44 = lshr i64 %38, 1 %45 = lshr i64 %42, 1 - %46 = trunc i64 %45 to i16 - %47 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %48 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %.not46 = icmp eq i16 %44, 0 - br i1 %.not46, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph42 + %46 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %47 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %48 = and i64 %44, 65535 + %49 = and i64 %45, 65535 + br label %50 .loopexit.i: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2", %.preheader.i - %exitcond58.not = icmp eq i16 %56, %44 - br i1 %exitcond58.not, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph42 - -.lr.ph42: ; preds = %34, %.loopexit.i - %.sroa.14.0.i41 = phi i16 [ %56, %.loopexit.i ], [ 0, %34 ] - %49 = zext i16 %.sroa.14.0.i41 to i64 - %50 = shl nuw nsw i64 %49, 1 - %51 = add nuw nsw i64 %50, 2 - %52 = icmp ugt i64 %51, %38 - br i1 %52, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %53 - -53: ; preds = %.lr.ph42 - %54 = getelementptr inbounds nuw i8, ptr %36, i64 %50 - %.val.i.i.i.i.i.i.i = load i16, ptr %54, align 1, !alias.scope !293, !noalias !300 - %55 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i) - %56 = add nuw i16 %.sroa.14.0.i41, 1 - %exitcond57.not = icmp eq i16 %.sroa.14.0.i41, %46 - %57 = icmp ugt i64 %51, %42 - %or.cond = or i1 %exitcond57.not, %57 - br i1 %or.cond, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i" - -"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i": ; preds = %53 - %58 = getelementptr inbounds nuw i8, ptr %40, i64 %50 + %exitcond36.not.i = icmp eq i64 %indvars.iv.next, %48 + br i1 %exitcond36.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %50 + +50: ; preds = %.loopexit.i, %.lr.ph31.i + %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph31.i ] + %51 = shl nuw nsw i64 %indvars.iv, 1 + %52 = add nuw nsw i64 %51, 2 + %53 = icmp ugt i64 %52, %38 + br i1 %53, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %54 + +54: ; preds = %50 + %55 = getelementptr inbounds nuw i8, ptr %36, i64 %51 + %.val.i.i.i.i.i.i.i = load i16, ptr %55, align 1, !alias.scope !293, !noalias !300 + %56 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i) + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 + %exitcond.not.i = icmp eq i64 %indvars.iv, %49 + %57 = icmp ugt i64 %52, %42 + %or.cond42.i = or i1 %exitcond.not.i, %57 + br i1 %or.cond42.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i" + +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i": ; preds = %54 + %58 = getelementptr inbounds nuw i8, ptr %40, i64 %51 %.val.i.i.i.i.i20.i.i = load i16, ptr %58, align 1, !alias.scope !305, !noalias !312 %59 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i.i) - %60 = and i16 %59, %55 + %60 = and i16 %59, %56 %or.cond.i = icmp eq i16 %60, -1 br i1 %or.cond.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.preheader.i .preheader.i: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i" - %.not.i28.i = icmp ugt i16 %55, %59 - br i1 %.not.i28.i, label %.loopexit.i, label %.lr.ph.preheader.i + %.not.i27.i = icmp ugt i16 %56, %59 + br i1 %.not.i27.i, label %.loopexit.i, label %.lr.ph.preheader.i .lr.ph.preheader.i: ; preds = %.preheader.i - %.pre.i = load i64, ptr %47, align 8, !alias.scope !315, !noalias !288 + %.pre.i = load i64, ptr %46, align 8, !alias.scope !315, !noalias !288 br label %.lr.ph.i1 .lr.ph.i1: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2", %.lr.ph.preheader.i %61 = phi i64 [ %72, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %.pre.i, %.lr.ph.preheader.i ] - %.sroa.019.029.i = phi i16 [ %spec.select.i, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %55, %.lr.ph.preheader.i ] - %62 = icmp uge i16 %.sroa.019.029.i, %59 + %.sroa.018.028.i = phi i16 [ %spec.select.i, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %56, %.lr.ph.preheader.i ] + %62 = icmp uge i16 %.sroa.018.028.i, %59 %not..i = xor i1 %62, true %63 = zext i1 %not..i to i16 - %spec.select.i = add nuw i16 %.sroa.019.029.i, %63 - %64 = zext i16 %.sroa.019.029.i to i32 + %spec.select.i = add nuw i16 %.sroa.018.028.i, %63 + %64 = zext i16 %.sroa.018.028.i to i32 %65 = load i64, ptr %1, align 8, !alias.scope !315, !noalias !288, !noundef !4 %66 = icmp eq i64 %61, %65 br i1 %66, label %67, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" 67: ; preds = %.lr.ph.i1 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %61), !noalias !288 - %.pre.i.i.i3 = load i64, ptr %47, align 8, !alias.scope !315, !noalias !288 + %.pre.i.i.i3 = load i64, ptr %46, align 8, !alias.scope !315, !noalias !288 br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" "_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2": ; preds = %67, %.lr.ph.i1 %68 = phi i64 [ %.pre.i.i.i3, %67 ], [ %61, %.lr.ph.i1 ] - %69 = load ptr, ptr %48, align 8, !alias.scope !315, !noalias !288, !nonnull !4, !noundef !4 + %69 = load ptr, ptr %47, align 8, !alias.scope !315, !noalias !288, !nonnull !4, !noundef !4 %70 = getelementptr inbounds i32, ptr %69, i64 %68 store i32 %64, ptr %70, align 4, !noalias !288 - %71 = load i64, ptr %47, align 8, !alias.scope !315, !noalias !288, !noundef !4 + %71 = load i64, ptr %46, align 8, !alias.scope !315, !noalias !288, !noundef !4 %72 = add i64 %71, 1 - store i64 %72, ptr %47, align 8, !alias.scope !315, !noalias !288 + store i64 %72, ptr %46, align 8, !alias.scope !315, !noalias !288 %.not.i.i = icmp ugt i16 %spec.select.i, %59 - %or.cond27.i = select i1 %62, i1 true, i1 %.not.i.i - br i1 %or.cond27.i, label %.loopexit.i, label %.lr.ph.i1 + %or.cond26.i = select i1 %62, i1 true, i1 %.not.i.i + br i1 %or.cond26.i, label %.loopexit.i, label %.lr.ph.i1 73: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !318) @@ -2567,18 +2565,18 @@ default.unreachable85: ; preds = %2 %75 = load i64, ptr %74, align 8, !alias.scope !318, !noalias !321, !noundef !4 %76 = lshr i64 %75, 1 %77 = trunc i64 %76 to i16 - %.not.i = icmp eq i16 %77, 0 - br i1 %.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i4 + %.not.i4 = icmp eq i16 %77, 0 + br i1 %.not.i4, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i5 -.lr.ph.i4: ; preds = %73 +.lr.ph.i5: ; preds = %73 %78 = getelementptr inbounds nuw i8, ptr %0, i64 24 %79 = load i16, ptr %78, align 8, !alias.scope !318, !noalias !321, !noundef !4 %80 = getelementptr inbounds nuw i8, ptr %1, i64 16 %81 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %82 -82: ; preds = %98, %.lr.ph.i4 - %.sroa.01.010.i = phi i16 [ 0, %.lr.ph.i4 ], [ %83, %98 ] +82: ; preds = %98, %.lr.ph.i5 + %.sroa.01.010.i = phi i16 [ 0, %.lr.ph.i5 ], [ %83, %98 ] %83 = add nuw i16 %.sroa.01.010.i, 1 %84 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %79, i16 %.sroa.01.010.i) %85 = extractvalue { i16, i1 } %84, 1 @@ -2590,15 +2588,15 @@ default.unreachable85: ; preds = %2 %89 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318, !noundef !4 %90 = load i64, ptr %1, align 8, !alias.scope !323, !noalias !318, !noundef !4 %91 = icmp eq i64 %89, %90 - br i1 %91, label %92, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5" + br i1 %91, label %92, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6" 92: ; preds = %88 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %89), !noalias !318 - %.pre.i.i.i6 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5" + %.pre.i.i.i8 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5": ; preds = %92, %88 - %93 = phi i64 [ %.pre.i.i.i6, %92 ], [ %89, %88 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6": ; preds = %92, %88 + %93 = phi i64 [ %.pre.i.i.i8, %92 ], [ %89, %88 ] %94 = load ptr, ptr %81, align 8, !alias.scope !323, !noalias !318, !nonnull !4, !noundef !4 %95 = getelementptr inbounds i32, ptr %94, i64 %93 store i32 %87, ptr %95, align 4, !noalias !318 @@ -2607,9 +2605,9 @@ default.unreachable85: ; preds = %2 store i64 %97, ptr %80, align 8, !alias.scope !323, !noalias !318 br label %98 -98: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5", %82 - %exitcond.not.i = icmp eq i16 %83, %77 - br i1 %exitcond.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %82 +98: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6", %82 + %exitcond.not.i7 = icmp eq i16 %83, %77 + br i1 %exitcond.not.i7, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %82 99: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !326) @@ -2618,20 +2616,20 @@ default.unreachable85: ; preds = %2 %101 = load i64, ptr %100, align 8, !alias.scope !326, !noalias !329, !noundef !4 %102 = lshr i64 %101, 1 %103 = trunc i64 %102 to i32 - %.not.i7 = icmp eq i32 %103, 0 - br i1 %.not.i7, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i8 + %.not.i9 = icmp eq i32 %103, 0 + br i1 %.not.i9, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i10 -.lr.ph.i8: ; preds = %99 +.lr.ph.i10: ; preds = %99 %104 = getelementptr inbounds nuw i8, ptr %0, i64 24 %105 = load i32, ptr %104, align 8, !alias.scope !326, !noalias !329, !noundef !4 %106 = getelementptr inbounds nuw i8, ptr %1, i64 16 %107 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %108 -108: ; preds = %123, %.lr.ph.i8 - %.sroa.01.010.i9 = phi i32 [ 0, %.lr.ph.i8 ], [ %109, %123 ] - %109 = add nuw i32 %.sroa.01.010.i9, 1 - %110 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %105, i32 %.sroa.01.010.i9) +108: ; preds = %123, %.lr.ph.i10 + %.sroa.01.010.i11 = phi i32 [ 0, %.lr.ph.i10 ], [ %109, %123 ] + %109 = add nuw i32 %.sroa.01.010.i11, 1 + %110 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %105, i32 %.sroa.01.010.i11) %111 = extractvalue { i32, i1 } %110, 1 %112 = extractvalue { i32, i1 } %110, 0 br i1 %111, label %123, label %113 @@ -2640,15 +2638,15 @@ default.unreachable85: ; preds = %2 %114 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326, !noundef !4 %115 = load i64, ptr %1, align 8, !alias.scope !331, !noalias !326, !noundef !4 %116 = icmp eq i64 %114, %115 - br i1 %116, label %117, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10" + br i1 %116, label %117, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12" 117: ; preds = %113 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %114), !noalias !326 - %.pre.i.i.i12 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10" + %.pre.i.i.i14 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10": ; preds = %117, %113 - %118 = phi i64 [ %.pre.i.i.i12, %117 ], [ %114, %113 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12": ; preds = %117, %113 + %118 = phi i64 [ %.pre.i.i.i14, %117 ], [ %114, %113 ] %119 = load ptr, ptr %107, align 8, !alias.scope !331, !noalias !326, !nonnull !4, !noundef !4 %120 = getelementptr inbounds i32, ptr %119, i64 %118 store i32 %112, ptr %120, align 4, !noalias !326 @@ -2657,9 +2655,9 @@ default.unreachable85: ; preds = %2 store i64 %122, ptr %106, align 8, !alias.scope !331, !noalias !326 br label %123 -123: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10", %108 - %exitcond.not.i11 = icmp eq i32 %109, %103 - br i1 %exitcond.not.i11, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %108 +123: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12", %108 + %exitcond.not.i13 = icmp eq i32 %109, %103 + br i1 %exitcond.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %108 124: ; preds = %2 %125 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2670,21 +2668,21 @@ default.unreachable85: ; preds = %2 %128 = load i64, ptr %127, align 8, !alias.scope !334, !noalias !337, !noundef !4 %129 = udiv i64 %128, 12 %130 = and i64 %129, 4294967295 - %.not.i13 = icmp eq i64 %130, 0 - br i1 %.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph28.i + %.not.i15 = icmp eq i64 %130, 0 + br i1 %.not.i15, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph28.i .lr.ph28.i: ; preds = %124 %131 = getelementptr inbounds nuw i8, ptr %1, i64 16 %132 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %133 -.loopexit.i23: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20", %137 +.loopexit.i25: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22", %137 %indvars.iv.next31.i = add nuw nsw i64 %indvars.iv30.i, 1 - %exitcond.not.i24 = icmp eq i64 %indvars.iv.next31.i, %130 - br i1 %exitcond.not.i24, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %133 + %exitcond.not.i26 = icmp eq i64 %indvars.iv.next31.i, %130 + br i1 %exitcond.not.i26, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %133 -133: ; preds = %.loopexit.i23, %.lr.ph28.i - %indvars.iv30.i = phi i64 [ 0, %.lr.ph28.i ], [ %indvars.iv.next31.i, %.loopexit.i23 ] +133: ; preds = %.loopexit.i25, %.lr.ph28.i + %indvars.iv30.i = phi i64 [ 0, %.lr.ph28.i ], [ %indvars.iv.next31.i, %.loopexit.i25 ] %134 = mul nuw nsw i64 %indvars.iv30.i, 12 %135 = add nuw nsw i64 %134, 12 %136 = icmp ugt i64 %135, %128 @@ -2692,45 +2690,45 @@ default.unreachable85: ; preds = %2 137: ; preds = %133 %138 = getelementptr inbounds nuw i8, ptr %126, i64 %134 - %.val.i.i.i.i.i.i.i14 = load i32, ptr %138, align 1, !alias.scope !339, !noalias !350 - %139 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i14) + %.val.i.i.i.i.i.i.i16 = load i32, ptr %138, align 1, !alias.scope !339, !noalias !350 + %139 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i16) %140 = getelementptr inbounds nuw i8, ptr %138, i64 4 %.val.i.i.i35.i.i.i.i = load i32, ptr %140, align 1, !alias.scope !355, !noalias !350 %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i) %.not.i25.i = icmp ugt i32 %139, %141 - br i1 %.not.i25.i, label %.loopexit.i23, label %.lr.ph.preheader.i15 + br i1 %.not.i25.i, label %.loopexit.i25, label %.lr.ph.preheader.i17 -.lr.ph.preheader.i15: ; preds = %137 - %.pre.i16 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 - br label %.lr.ph.i17 +.lr.ph.preheader.i17: ; preds = %137 + %.pre.i18 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 + br label %.lr.ph.i19 -.lr.ph.i17: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20", %.lr.ph.preheader.i15 - %142 = phi i64 [ %152, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" ], [ %.pre.i16, %.lr.ph.preheader.i15 ] - %.sroa.013.026.i = phi i32 [ %spec.select.i19, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" ], [ %139, %.lr.ph.preheader.i15 ] +.lr.ph.i19: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22", %.lr.ph.preheader.i17 + %142 = phi i64 [ %152, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %.pre.i18, %.lr.ph.preheader.i17 ] + %.sroa.013.026.i = phi i32 [ %spec.select.i21, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %139, %.lr.ph.preheader.i17 ] %143 = icmp uge i32 %.sroa.013.026.i, %141 - %not..i18 = xor i1 %143, true - %144 = zext i1 %not..i18 to i32 - %spec.select.i19 = add nuw i32 %.sroa.013.026.i, %144 + %not..i20 = xor i1 %143, true + %144 = zext i1 %not..i20 to i32 + %spec.select.i21 = add nuw i32 %.sroa.013.026.i, %144 %145 = load i64, ptr %1, align 8, !alias.scope !362, !noalias !334, !noundef !4 %146 = icmp eq i64 %142, %145 - br i1 %146, label %147, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" + br i1 %146, label %147, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" -147: ; preds = %.lr.ph.i17 +147: ; preds = %.lr.ph.i19 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %142), !noalias !334 - %.pre.i.i.i25 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" + %.pre.i.i.i27 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20": ; preds = %147, %.lr.ph.i17 - %148 = phi i64 [ %.pre.i.i.i25, %147 ], [ %142, %.lr.ph.i17 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22": ; preds = %147, %.lr.ph.i19 + %148 = phi i64 [ %.pre.i.i.i27, %147 ], [ %142, %.lr.ph.i19 ] %149 = load ptr, ptr %132, align 8, !alias.scope !362, !noalias !334, !nonnull !4, !noundef !4 %150 = getelementptr inbounds i32, ptr %149, i64 %148 store i32 %.sroa.013.026.i, ptr %150, align 4, !noalias !334 %151 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334, !noundef !4 %152 = add i64 %151, 1 store i64 %152, ptr %131, align 8, !alias.scope !362, !noalias !334 - %.not.i.i21 = icmp ugt i32 %spec.select.i19, %141 - %or.cond.i22 = select i1 %143, i1 true, i1 %.not.i.i21 - br i1 %or.cond.i22, label %.loopexit.i23, label %.lr.ph.i17 + %.not.i.i23 = icmp ugt i32 %spec.select.i21, %141 + %or.cond.i24 = select i1 %143, i1 true, i1 %.not.i.i23 + br i1 %or.cond.i24, label %.loopexit.i25, label %.lr.ph.i19 153: ; preds = %2 %154 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2754,8 +2752,8 @@ default.unreachable85: ; preds = %2 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %._crit_edge.i - %indvars.iv51 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next52, %._crit_edge.i ] - %164 = mul nuw nsw i64 %indvars.iv51, 12 + %indvars.iv46 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next47, %._crit_edge.i ] + %164 = mul nuw nsw i64 %indvars.iv46, 12 %165 = add nuw nsw i64 %164, 12 %166 = icmp ugt i64 %165, %157 br i1 %166, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit, label %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i" @@ -2763,27 +2761,27 @@ default.unreachable85: ; preds = %2 "_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i": ; preds = %.lr.ph %167 = getelementptr inbounds nuw i8, ptr %155, i64 %164 call void @"_ZN103_$LT$ttf_parser..tables..cmap..format12..SequentialMapGroup$u20$as$u20$ttf_parser..parser..FromData$GT$5parse17hccf98e39eb683be3E.llvm.4930786928582598558"(ptr noalias noundef nonnull sret({ i32, [3 x i32] }) align 4 captures(none) dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 1 %167, i64 noundef 12), !noalias !371 - %.pre.i26 = load i32, ptr %3, align 4, !range !177, !noalias !370 - %168 = trunc nuw i32 %.pre.i26 to i1 + %.pre.i28 = load i32, ptr %3, align 4, !range !177, !noalias !370 + %168 = trunc nuw i32 %.pre.i28 to i1 br i1 %168, label %169, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit 169: ; preds = %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i" %170 = load i32, ptr %159, align 4, !noalias !370, !noundef !4 %171 = load i32, ptr %160, align 4, !noalias !370, !noundef !4 %.not.i15.i = icmp ugt i32 %170, %171 - br i1 %.not.i15.i, label %._crit_edge.i, label %.lr.ph.preheader.i27 + br i1 %.not.i15.i, label %._crit_edge.i, label %.lr.ph.preheader.i29 -.lr.ph.preheader.i27: ; preds = %169 +.lr.ph.preheader.i29: ; preds = %169 %.pre17.i = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 - br label %.lr.ph.i28 + br label %.lr.ph.i30 -.lr.ph.i28: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %.lr.ph.preheader.i27 - %172 = phi i64 [ %182, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %.pre17.i, %.lr.ph.preheader.i27 ] - %.sroa.09.016.i = phi i32 [ %spec.select.i30, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %170, %.lr.ph.preheader.i27 ] +.lr.ph.i30: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %.lr.ph.preheader.i29 + %172 = phi i64 [ %182, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %.pre17.i, %.lr.ph.preheader.i29 ] + %.sroa.09.016.i = phi i32 [ %spec.select.i32, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %170, %.lr.ph.preheader.i29 ] %173 = icmp uge i32 %.sroa.09.016.i, %171 - %not..i29 = xor i1 %173, true - %174 = zext i1 %not..i29 to i32 - %spec.select.i30 = add nuw i32 %.sroa.09.016.i, %174 + %not..i31 = xor i1 %173, true + %174 = zext i1 %not..i31 to i32 + %spec.select.i32 = add nuw i32 %.sroa.09.016.i, %174 %175 = load i64, ptr %1, align 8, !alias.scope !374, !noalias !377, !noundef !4 %176 = icmp eq i64 %172, %175 br i1 %176, label %177, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" @@ -2791,32 +2789,32 @@ default.unreachable85: ; preds = %2 ._crit_edge.i: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %169 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !370 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !370 - %indvars.iv.next52 = add nuw nsw i64 %indvars.iv51, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next52, %wide.trip.count + %indvars.iv.next47 = add nuw nsw i64 %indvars.iv46, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next47, %wide.trip.count br i1 %exitcond.not, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit, label %.lr.ph -177: ; preds = %.lr.ph.i28 +177: ; preds = %.lr.ph.i30 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %172), !noalias !377 - %.pre.i.i.i33 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 + %.pre.i.i.i35 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i": ; preds = %177, %.lr.ph.i28 - %178 = phi i64 [ %.pre.i.i.i33, %177 ], [ %172, %.lr.ph.i28 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i": ; preds = %177, %.lr.ph.i30 + %178 = phi i64 [ %.pre.i.i.i35, %177 ], [ %172, %.lr.ph.i30 ] %179 = load ptr, ptr %162, align 8, !alias.scope !374, !noalias !377, !nonnull !4, !noundef !4 %180 = getelementptr inbounds i32, ptr %179, i64 %178 store i32 %.sroa.09.016.i, ptr %180, align 4, !noalias !377 %181 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377, !noundef !4 %182 = add i64 %181, 1 store i64 %182, ptr %161, align 8, !alias.scope !374, !noalias !377 - %.not.i.i31 = icmp ugt i32 %spec.select.i30, %171 - %or.cond.i32 = select i1 %173, i1 true, i1 %.not.i.i31 - br i1 %or.cond.i32, label %._crit_edge.i, label %.lr.ph.i28 + %.not.i.i33 = icmp ugt i32 %spec.select.i32, %171 + %or.cond.i34 = select i1 %173, i1 true, i1 %.not.i.i33 + br i1 %or.cond.i34, label %._crit_edge.i, label %.lr.ph.i30 _ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit: ; preds = %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i", %.lr.ph, %._crit_edge.i, %153 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !370 br label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit -_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit: ; preds = %133, %.loopexit.i23, %123, %98, %.loopexit.i, %.lr.ph42, %53, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i", %29, %34, %124, %99, %73, %5, %2, %2, %31, %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit +_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit: ; preds = %133, %.loopexit.i25, %123, %98, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i", %54, %50, %.loopexit.i, %29, %124, %99, %73, %34, %5, %2, %2, %31, %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit ret void } diff --git a/bench/wasmedge/optimized/wasmedge.ll b/bench/wasmedge/optimized/wasmedge.ll index c0e8891bc7a..71f6f101761 100644 --- a/bench/wasmedge/optimized/wasmedge.ll +++ b/bench/wasmedge/optimized/wasmedge.ll @@ -11670,7 +11670,7 @@ _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit4.i: ; preds = %41, %_ZNSt6vect %58 = getelementptr inbounds nuw i8, ptr %0, i64 2 %59 = load i8, ptr %58, align 2 %60 = icmp ne i8 %59, 99 - %61 = icmp eq i64 %.sroa.22.0.extract.trunc, 0 + %61 = icmp ult i128 %57, 18446744073709551616 %or.cond = select i1 %60, i1 %61, i1 false br i1 %or.cond, label %62, label %64 @@ -11734,7 +11734,7 @@ _ZNSt12_Vector_baseIN8WasmEdge10RefVariantESaIS1_EEC2EmRKS2_.exit.i.i: ; preds = br i1 %60, label %80, label %_ZN8WasmEdge7ErrInfo12InfoMismatchD2Ev.exit 80: ; preds = %.loopexit.i - %81 = icmp ne i64 %.sroa.22.0.extract.trunc, 0 + %81 = icmp ugt i128 %57, 18446744073709551615 tail call void @llvm.assume(i1 %81) br label %_ZN8WasmEdge7ErrInfo12InfoMismatchD2Ev.exit @@ -12746,7 +12746,7 @@ _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit4.i: ; preds = %41, %_ZNSt6vect 58: ; preds = %56 %59 = icmp ne i8 %.sroa.218.0.extract.trunc, 99 - %60 = icmp eq i64 %.sroa.24.0.extract.trunc, 0 + %60 = icmp ult i128 %57, 18446744073709551616 %or.cond = select i1 %59, i1 %60, i1 false br i1 %or.cond, label %61, label %68 @@ -12794,7 +12794,7 @@ _ZN8WasmEdgeneERKNS_7ValTypeES2_.exit.thread: ; preds = %63 ] 71: ; preds = %68 - %72 = icmp ne i64 %.sroa.24.0.extract.trunc, 0 + %72 = icmp ugt i128 %57, 18446744073709551615 tail call void @llvm.assume(i1 %72) br label %_ZN8WasmEdge7ErrInfo12InfoMismatchD2Ev.exit @@ -13008,7 +13008,7 @@ _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit4.i.i.i: ; preds = %49, %_ZNSt6 %.sroa.22.0.extract.trunc23.i.i = trunc nuw i128 %.sroa.22.0.extract.shift22.i.i to i64 %.sroa.02.0.extract.trunc24.i.i = trunc i128 %65 to i64 %66 = icmp ne i8 %.sroa.28.0.extract.trunc.i.i, 99 - %67 = icmp eq i64 %.sroa.22.0.extract.trunc23.i.i, 0 + %67 = icmp ult i128 %65, 18446744073709551616 %or.cond.i.i = select i1 %66, i1 %67, i1 false br i1 %or.cond.i.i, label %68, label %76 diff --git a/bench/yyjson/optimized/yyjson.ll b/bench/yyjson/optimized/yyjson.ll index 611997812c4..df3a0bc9121 100644 --- a/bench/yyjson/optimized/yyjson.ll +++ b/bench/yyjson/optimized/yyjson.ll @@ -8465,8 +8465,8 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %read_number.exit430.thread .preheader4258thread-pre-split: ; preds = %.preheader4258thread-pre-split.lr.ph, %.preheader4258thread-pre-split - %.4334610348 = phi ptr [ %312, %.preheader4258thread-pre-split.lr.ph ], [ %317, %.preheader4258thread-pre-split ] - %317 = getelementptr inbounds nuw i8, ptr %.4334610348, i64 1 + %.4334610364 = phi ptr [ %312, %.preheader4258thread-pre-split.lr.ph ], [ %317, %.preheader4258thread-pre-split ] + %317 = getelementptr inbounds nuw i8, ptr %.4334610364, i64 1 %.pr = load i8, ptr %317, align 1, !tbaa !75 %318 = icmp eq i8 %.pr, 48 br i1 %318, label %.preheader4258thread-pre-split, label %.preheader4258._crit_edge, !prof !154, !llvm.loop !153 @@ -8475,14 +8475,14 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %319, !llvm.loop !153 319: ; preds = %.preheader4258._crit_edge, %.preheader4258.preheader - %.lcssa9619 = phi i8 [ %.pr, %.preheader4258._crit_edge ], [ %313, %.preheader4258.preheader ] + %.lcssa9631 = phi i8 [ %.pr, %.preheader4258._crit_edge ], [ %313, %.preheader4258.preheader ] %.43346.lcssa = phi ptr [ %317, %.preheader4258._crit_edge ], [ %312, %.preheader4258.preheader ] - %320 = add i8 %.lcssa9619, -58 + %320 = add i8 %.lcssa9631, -58 %.not4064 = icmp ult i8 %320, -10 br i1 %.not4064, label %.thread7462, label %321, !prof !4 321: ; preds = %319 - %322 = zext nneg i8 %.lcssa9619 to i64 + %322 = zext nneg i8 %.lcssa9631 to i64 %323 = add nsw i64 %322, -48 %324 = getelementptr inbounds i8, ptr %.43346.lcssa, i64 -1 br label %713 @@ -8499,7 +8499,7 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 .thread7462: ; preds = %319, %325 %.133437465 = phi ptr [ %300, %325 ], [ %.43346.lcssa, %319 ] - %328 = phi i8 [ %301, %325 ], [ %.lcssa9619, %319 ] + %328 = phi i8 [ %301, %325 ], [ %.lcssa9631, %319 ] %329 = and i8 %328, -33 %.not4066.not = icmp eq i8 %329, 69 br i1 %.not4066.not, label %330, label %.loopexit4246, !prof !4 @@ -9687,8 +9687,8 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %read_number.exit430.thread .preheader4255thread-pre-split: ; preds = %.preheader4255thread-pre-split.lr.ph, %.preheader4255thread-pre-split - %.9335110351 = phi ptr [ %988, %.preheader4255thread-pre-split.lr.ph ], [ %993, %.preheader4255thread-pre-split ] - %993 = getelementptr inbounds nuw i8, ptr %.9335110351, i64 1 + %.9335110367 = phi ptr [ %988, %.preheader4255thread-pre-split.lr.ph ], [ %993, %.preheader4255thread-pre-split ] + %993 = getelementptr inbounds nuw i8, ptr %.9335110367, i64 1 %.pr7466 = load i8, ptr %993, align 1, !tbaa !75 %994 = icmp eq i8 %.pr7466, 48 br i1 %994, label %.preheader4255thread-pre-split, label %.preheader4255..preheader4254_crit_edge, !llvm.loop !160 @@ -9697,14 +9697,14 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %.preheader4254, !llvm.loop !160 .preheader4254: ; preds = %.preheader4255..preheader4254_crit_edge, %.preheader4255.preheader - %.lcssa9615 = phi i8 [ %.pr7466, %.preheader4255..preheader4254_crit_edge ], [ %989, %.preheader4255.preheader ] + %.lcssa9627 = phi i8 [ %.pr7466, %.preheader4255..preheader4254_crit_edge ], [ %989, %.preheader4255.preheader ] %.93351.lcssa = phi ptr [ %993, %.preheader4255..preheader4254_crit_edge ], [ %988, %.preheader4255.preheader ] - %995 = add i8 %.lcssa9615, -58 + %995 = add i8 %.lcssa9627, -58 %.not41025069 = icmp ult i8 %995, -10 br i1 %.not41025069, label %._crit_edge5073, label %.lr.ph5072 .lr.ph5072: ; preds = %.preheader4254, %.lr.ph5072 - %996 = phi i8 [ %1002, %.lr.ph5072 ], [ %.lcssa9615, %.preheader4254 ] + %996 = phi i8 [ %1002, %.lr.ph5072 ], [ %.lcssa9627, %.preheader4254 ] %.0595.i3745071 = phi i64 [ %1001, %.lr.ph5072 ], [ 0, %.preheader4254 ] %.1033525070 = phi ptr [ %997, %.lr.ph5072 ], [ %.93351.lcssa, %.preheader4254 ] %997 = getelementptr inbounds nuw i8, ptr %.1033525070, i64 1 @@ -10231,7 +10231,7 @@ diy_fp_to_ieee_raw.exit1161: ; preds = %1187 br i1 %exitcond6473.not, label %._crit_edge5121, label %.lr.ph5120, !llvm.loop !165 ._crit_edge5121: ; preds = %.lr.ph5120 - %.not19.i1347 = icmp eq i64 %1259, 0 + %.not19.i1347 = icmp ult i128 %1257, 18446744073709551616 br i1 %.not19.i1347, label %bigint_mul_u64.exit1349, label %1261 1261: ; preds = %._crit_edge5121 @@ -10311,7 +10311,7 @@ bigint_mul_u64.exit1349: ; preds = %1248, %._crit_edge5 br i1 %exitcond6483.not, label %._crit_edge5141, label %1281, !llvm.loop !165 ._crit_edge5141: ; preds = %1281 - %.not19.i1353 = icmp eq i64 %1289, 0 + %.not19.i1353 = icmp ult i128 %1287, 18446744073709551616 br i1 %.not19.i1353, label %bigint_mul_pow10.exit1173, label %1291 1291: ; preds = %._crit_edge5141 @@ -10385,7 +10385,7 @@ bigint_mul_u64.exit1349: ; preds = %1248, %._crit_edge5 br i1 %exitcond6453.not, label %._crit_edge5087, label %.lr.ph5086, !llvm.loop !165 ._crit_edge5087: ; preds = %.lr.ph5086 - %.not19.i1335 = icmp eq i64 %1313, 0 + %.not19.i1335 = icmp ult i128 %1311, 18446744073709551616 br i1 %.not19.i1335, label %bigint_mul_u64.exit1337, label %1315 1315: ; preds = %._crit_edge5087 @@ -10466,7 +10466,7 @@ bigint_mul_u64.exit1337: ; preds = %1302, %._crit_edge5 br i1 %exitcond6463.not, label %._crit_edge5108, label %1337, !llvm.loop !165 ._crit_edge5108: ; preds = %1337 - %.not19.i1341 = icmp eq i64 %1345, 0 + %.not19.i1341 = icmp ult i128 %1343, 18446744073709551616 br i1 %.not19.i1341, label %bigint_mul_pow10.exit1173, label %1347 1347: ; preds = %._crit_edge5108 @@ -11822,7 +11822,7 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %2034 = and i32 %.sroa.212904.2.in.lcssa, 12291 %2035 = icmp eq i32 %2034, 0 %2036 = or i1 %2033, %2035 - br i1 %2036, label %.lr.ph10357, label %.critedge6.i721 + br i1 %2036, label %.lr.ph10373, label %.critedge6.i721 .lr.ph5274: ; preds = %.preheader4234, %.lr.ph5274 %.sroa.02856.25273.in = phi i32 [ %.sroa.0.0.copyload.i896, %.lr.ph5274 ], [ %storemerge.i711.lcssa, %.preheader4234 ] @@ -11840,21 +11840,21 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %2043 = and i1 %2040, %2042 br i1 %2043, label %.lr.ph5274, label %.preheader4233.loopexit, !llvm.loop !177 -.lr.ph5288: ; preds = %.lr.ph10357 +.lr.ph5288: ; preds = %.lr.ph10373 %2044 = and i32 %.sroa.0.0.copyload.i897, 4 %2045 = icmp eq i32 %2044, 0 %2046 = and i32 %.sroa.0.0.copyload.i897, 12291 %2047 = icmp eq i32 %2046, 0 %2048 = or i1 %2045, %2047 - br i1 %2048, label %.lr.ph10357, label %.critedge6.i721.loopexit, !llvm.loop !178 - -.lr.ph10357: ; preds = %.lr.ph5288.preheader, %.lr.ph5288 - %.14.i717528410356 = phi ptr [ %2050, %.lr.ph5288 ], [ %.13.i715.lcssa, %.lr.ph5288.preheader ] - %.7.i718528510355 = phi ptr [ %2049, %.lr.ph5288 ], [ %.6.i716.lcssa, %.lr.ph5288.preheader ] - %.sroa.02856.0.insert.insert2880528710354 = phi i32 [ %.sroa.0.0.copyload.i897, %.lr.ph5288 ], [ %.sroa.212904.2.in.lcssa, %.lr.ph5288.preheader ] - store i32 %.sroa.02856.0.insert.insert2880528710354, ptr %.7.i718528510355, align 1 - %2049 = getelementptr inbounds nuw i8, ptr %.7.i718528510355, i64 4 - %2050 = getelementptr inbounds nuw i8, ptr %.14.i717528410356, i64 4 + br i1 %2048, label %.lr.ph10373, label %.critedge6.i721.loopexit, !llvm.loop !178 + +.lr.ph10373: ; preds = %.lr.ph5288.preheader, %.lr.ph5288 + %.14.i717528410372 = phi ptr [ %2050, %.lr.ph5288 ], [ %.13.i715.lcssa, %.lr.ph5288.preheader ] + %.7.i718528510371 = phi ptr [ %2049, %.lr.ph5288 ], [ %.6.i716.lcssa, %.lr.ph5288.preheader ] + %.sroa.02856.0.insert.insert2880528710370 = phi i32 [ %.sroa.0.0.copyload.i897, %.lr.ph5288 ], [ %.sroa.212904.2.in.lcssa, %.lr.ph5288.preheader ] + store i32 %.sroa.02856.0.insert.insert2880528710370, ptr %.7.i718528510371, align 1 + %2049 = getelementptr inbounds nuw i8, ptr %.7.i718528510371, i64 4 + %2050 = getelementptr inbounds nuw i8, ptr %.14.i717528410372, i64 4 %.sroa.0.0.copyload.i897 = load i32, ptr %2050, align 1 %2051 = and i32 %.sroa.0.0.copyload.i897, -1061109512 %2052 = icmp ne i32 %2051, -2139062032 @@ -11863,7 +11863,7 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %or.cond292.i720 = or i1 %.not289.i719, %2052 br i1 %or.cond292.i720, label %..critedge6.i721.loopexit_crit_edge, label %.lr.ph5288, !llvm.loop !178 -..critedge6.i721.loopexit_crit_edge: ; preds = %.lr.ph10357 +..critedge6.i721.loopexit_crit_edge: ; preds = %.lr.ph10373 %2054 = trunc i32 %.sroa.0.0.copyload.i897 to i16 br label %.critedge6.i721, !llvm.loop !178 @@ -12497,18 +12497,18 @@ read_null.exit820: ; preds = %2124 br label %.preheader4324.sink.split .preheader4324.sink.split: ; preds = %123, %4926, %._crit_edge5038, %2319 - %.sink10406 = phi ptr [ %2320, %2319 ], [ %4923, %._crit_edge5038 ], [ %4927, %4926 ], [ %95, %123 ] + %.sink10422 = phi ptr [ %2320, %2319 ], [ %4923, %._crit_edge5038 ], [ %4927, %4926 ], [ %95, %123 ] %.0625.i.ph.ph = phi ptr [ %.23621.i, %2319 ], [ %.20645.i.ph, %._crit_edge5038 ], [ %.20645.i.ph, %4926 ], [ %114, %123 ] %.0598.i.ph.ph = phi ptr [ %.23621.i, %2319 ], [ %.21619.i.ph, %._crit_edge5038 ], [ %.21619.i.ph, %4926 ], [ %114, %123 ] %.0572.i.ph.ph = phi ptr [ %.22594.i, %2319 ], [ %.20592.i.ph, %._crit_edge5038 ], [ %.20592.i.ph, %4926 ], [ %113, %123 ] %.0555.i.ph.ph = phi ptr [ %.23.i, %2319 ], [ %.21.i.ph, %._crit_edge5038 ], [ %.21.i.ph, %4926 ], [ %111, %123 ] %.0547.i.ph.ph = phi i64 [ 0, %2319 ], [ %.6553.i.ph, %._crit_edge5038 ], [ %.6553.i.ph, %4926 ], [ 0, %123 ] %.0546.i.ph.ph = phi i64 [ %.14.i, %2319 ], [ %.13.i.ph, %._crit_edge5038 ], [ %.13.i.ph, %4926 ], [ %109, %123 ] - store ptr %.sink10406, ptr %21, align 8, !tbaa !86 + store ptr %.sink10422, ptr %21, align 8, !tbaa !86 br label %.preheader4324 .preheader4324: ; preds = %.preheader4324.sink.split, %2312, %123 - %.promoted46666867 = phi ptr [ %88, %123 ], [ %storemerge705.i, %2312 ], [ %.sink10406, %.preheader4324.sink.split ] + %.promoted46666867 = phi ptr [ %88, %123 ], [ %storemerge705.i, %2312 ], [ %.sink10422, %.preheader4324.sink.split ] %.0625.i.ph = phi ptr [ %114, %123 ], [ %.23621.i, %2312 ], [ %.0625.i.ph.ph, %.preheader4324.sink.split ] %.0598.i.ph = phi ptr [ %114, %123 ], [ %.23621.i, %2312 ], [ %.0598.i.ph.ph, %.preheader4324.sink.split ] %.0572.i.ph = phi ptr [ %113, %123 ], [ %.22594.i, %2312 ], [ %.0572.i.ph.ph, %.preheader4324.sink.split ] @@ -13719,7 +13719,7 @@ read_null.exit820: ; preds = %2124 %2926 = and i32 %.sroa.213138.2.in.lcssa, 12291 %2927 = icmp eq i32 %2926, 0 %2928 = or i1 %2925, %2927 - br i1 %2928, label %.lr.ph10326, label %.critedge6.i805 + br i1 %2928, label %.lr.ph10342, label %.critedge6.i805 .lr.ph4779: ; preds = %.preheader4311, %.lr.ph4779 %.sroa.03090.24778.in = phi i32 [ %.sroa.0.0.copyload.i880, %.lr.ph4779 ], [ %storemerge.i795.lcssa, %.preheader4311 ] @@ -13737,21 +13737,21 @@ read_null.exit820: ; preds = %2124 %2935 = and i1 %2932, %2934 br i1 %2935, label %.lr.ph4779, label %.preheader4310.loopexit, !llvm.loop !177 -.lr.ph4793: ; preds = %.lr.ph10326 +.lr.ph4793: ; preds = %.lr.ph10342 %2936 = and i32 %.sroa.0.0.copyload.i881, 4 %2937 = icmp eq i32 %2936, 0 %2938 = and i32 %.sroa.0.0.copyload.i881, 12291 %2939 = icmp eq i32 %2938, 0 %2940 = or i1 %2937, %2939 - br i1 %2940, label %.lr.ph10326, label %.critedge6.i805.loopexit, !llvm.loop !178 - -.lr.ph10326: ; preds = %.lr.ph4793.preheader, %.lr.ph4793 - %.14.i801478910325 = phi ptr [ %2942, %.lr.ph4793 ], [ %.13.i799.lcssa, %.lr.ph4793.preheader ] - %.7.i802479010324 = phi ptr [ %2941, %.lr.ph4793 ], [ %.6.i800.lcssa, %.lr.ph4793.preheader ] - %.sroa.03090.0.insert.insert3114479210323 = phi i32 [ %.sroa.0.0.copyload.i881, %.lr.ph4793 ], [ %.sroa.213138.2.in.lcssa, %.lr.ph4793.preheader ] - store i32 %.sroa.03090.0.insert.insert3114479210323, ptr %.7.i802479010324, align 1 - %2941 = getelementptr inbounds nuw i8, ptr %.7.i802479010324, i64 4 - %2942 = getelementptr inbounds nuw i8, ptr %.14.i801478910325, i64 4 + br i1 %2940, label %.lr.ph10342, label %.critedge6.i805.loopexit, !llvm.loop !178 + +.lr.ph10342: ; preds = %.lr.ph4793.preheader, %.lr.ph4793 + %.14.i801478910341 = phi ptr [ %2942, %.lr.ph4793 ], [ %.13.i799.lcssa, %.lr.ph4793.preheader ] + %.7.i802479010340 = phi ptr [ %2941, %.lr.ph4793 ], [ %.6.i800.lcssa, %.lr.ph4793.preheader ] + %.sroa.03090.0.insert.insert3114479210339 = phi i32 [ %.sroa.0.0.copyload.i881, %.lr.ph4793 ], [ %.sroa.213138.2.in.lcssa, %.lr.ph4793.preheader ] + store i32 %.sroa.03090.0.insert.insert3114479210339, ptr %.7.i802479010340, align 1 + %2941 = getelementptr inbounds nuw i8, ptr %.7.i802479010340, i64 4 + %2942 = getelementptr inbounds nuw i8, ptr %.14.i801478910341, i64 4 %.sroa.0.0.copyload.i881 = load i32, ptr %2942, align 1 %2943 = and i32 %.sroa.0.0.copyload.i881, -1061109512 %2944 = icmp ne i32 %2943, -2139062032 @@ -13760,7 +13760,7 @@ read_null.exit820: ; preds = %2124 %or.cond292.i804 = or i1 %.not289.i803, %2944 br i1 %or.cond292.i804, label %..critedge6.i805.loopexit_crit_edge, label %.lr.ph4793, !llvm.loop !178 -..critedge6.i805.loopexit_crit_edge: ; preds = %.lr.ph10326 +..critedge6.i805.loopexit_crit_edge: ; preds = %.lr.ph10342 %2946 = trunc i32 %.sroa.0.0.copyload.i881 to i16 br label %.critedge6.i805, !llvm.loop !178 @@ -14910,7 +14910,7 @@ read_string.exit812: ; preds = %.split.loop.exit471 %3532 = and i32 %.sroa.213021.2.in.lcssa, 12291 %3533 = icmp eq i32 %3532, 0 %3534 = or i1 %3531, %3533 - br i1 %3534, label %.lr.ph10341, label %.critedge6.i763 + br i1 %3534, label %.lr.ph10357, label %.critedge6.i763 .lr.ph5014: ; preds = %.preheader4276, %.lr.ph5014 %.sroa.02973.25013.in = phi i32 [ %.sroa.0.0.copyload.i888, %.lr.ph5014 ], [ %storemerge.i753.lcssa, %.preheader4276 ] @@ -14928,21 +14928,21 @@ read_string.exit812: ; preds = %.split.loop.exit471 %3541 = and i1 %3538, %3540 br i1 %3541, label %.lr.ph5014, label %.preheader4275.loopexit, !llvm.loop !177 -.lr.ph5028: ; preds = %.lr.ph10341 +.lr.ph5028: ; preds = %.lr.ph10357 %3542 = and i32 %.sroa.0.0.copyload.i889, 4 %3543 = icmp eq i32 %3542, 0 %3544 = and i32 %.sroa.0.0.copyload.i889, 12291 %3545 = icmp eq i32 %3544, 0 %3546 = or i1 %3543, %3545 - br i1 %3546, label %.lr.ph10341, label %.critedge6.i763.loopexit, !llvm.loop !178 - -.lr.ph10341: ; preds = %.lr.ph5028.preheader, %.lr.ph5028 - %.14.i759502410340 = phi ptr [ %3548, %.lr.ph5028 ], [ %.13.i757.lcssa, %.lr.ph5028.preheader ] - %.7.i760502510339 = phi ptr [ %3547, %.lr.ph5028 ], [ %.6.i758.lcssa, %.lr.ph5028.preheader ] - %.sroa.02973.0.insert.insert2997502710338 = phi i32 [ %.sroa.0.0.copyload.i889, %.lr.ph5028 ], [ %.sroa.213021.2.in.lcssa, %.lr.ph5028.preheader ] - store i32 %.sroa.02973.0.insert.insert2997502710338, ptr %.7.i760502510339, align 1 - %3547 = getelementptr inbounds nuw i8, ptr %.7.i760502510339, i64 4 - %3548 = getelementptr inbounds nuw i8, ptr %.14.i759502410340, i64 4 + br i1 %3546, label %.lr.ph10357, label %.critedge6.i763.loopexit, !llvm.loop !178 + +.lr.ph10357: ; preds = %.lr.ph5028.preheader, %.lr.ph5028 + %.14.i759502410356 = phi ptr [ %3548, %.lr.ph5028 ], [ %.13.i757.lcssa, %.lr.ph5028.preheader ] + %.7.i760502510355 = phi ptr [ %3547, %.lr.ph5028 ], [ %.6.i758.lcssa, %.lr.ph5028.preheader ] + %.sroa.02973.0.insert.insert2997502710354 = phi i32 [ %.sroa.0.0.copyload.i889, %.lr.ph5028 ], [ %.sroa.213021.2.in.lcssa, %.lr.ph5028.preheader ] + store i32 %.sroa.02973.0.insert.insert2997502710354, ptr %.7.i760502510355, align 1 + %3547 = getelementptr inbounds nuw i8, ptr %.7.i760502510355, i64 4 + %3548 = getelementptr inbounds nuw i8, ptr %.14.i759502410356, i64 4 %.sroa.0.0.copyload.i889 = load i32, ptr %3548, align 1 %3549 = and i32 %.sroa.0.0.copyload.i889, -1061109512 %3550 = icmp ne i32 %3549, -2139062032 @@ -14951,7 +14951,7 @@ read_string.exit812: ; preds = %.split.loop.exit471 %or.cond292.i762 = or i1 %.not289.i761, %3550 br i1 %or.cond292.i762, label %..critedge6.i763.loopexit_crit_edge, label %.lr.ph5028, !llvm.loop !178 -..critedge6.i763.loopexit_crit_edge: ; preds = %.lr.ph10341 +..critedge6.i763.loopexit_crit_edge: ; preds = %.lr.ph10357 %3552 = trunc i32 %.sroa.0.0.copyload.i889 to i16 br label %.critedge6.i763, !llvm.loop !178 @@ -15184,8 +15184,8 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %read_number.exit535.thread .preheader4298thread-pre-split: ; preds = %.preheader4298thread-pre-split.lr.ph, %.preheader4298thread-pre-split - %.4327010332 = phi ptr [ %3632, %.preheader4298thread-pre-split.lr.ph ], [ %3637, %.preheader4298thread-pre-split ] - %3637 = getelementptr inbounds nuw i8, ptr %.4327010332, i64 1 + %.4327010348 = phi ptr [ %3632, %.preheader4298thread-pre-split.lr.ph ], [ %3637, %.preheader4298thread-pre-split ] + %3637 = getelementptr inbounds nuw i8, ptr %.4327010348, i64 1 %.pr7485 = load i8, ptr %3637, align 1, !tbaa !75 %3638 = icmp eq i8 %.pr7485, 48 br i1 %3638, label %.preheader4298thread-pre-split, label %.preheader4298._crit_edge, !prof !154, !llvm.loop !153 @@ -15194,14 +15194,14 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %3639, !llvm.loop !153 3639: ; preds = %.preheader4298._crit_edge, %.preheader4298.preheader - %.lcssa9981 = phi i8 [ %.pr7485, %.preheader4298._crit_edge ], [ %3633, %.preheader4298.preheader ] + %.lcssa9997 = phi i8 [ %.pr7485, %.preheader4298._crit_edge ], [ %3633, %.preheader4298.preheader ] %.43270.lcssa = phi ptr [ %3637, %.preheader4298._crit_edge ], [ %3632, %.preheader4298.preheader ] - %3640 = add i8 %.lcssa9981, -58 + %3640 = add i8 %.lcssa9997, -58 %.not3934 = icmp ult i8 %3640, -10 br i1 %.not3934, label %.thread7486, label %3641, !prof !4 3641: ; preds = %3639 - %3642 = zext nneg i8 %.lcssa9981 to i64 + %3642 = zext nneg i8 %.lcssa9997 to i64 %3643 = add nsw i64 %3642, -48 %3644 = getelementptr inbounds i8, ptr %.43270.lcssa, i64 -1 br label %4033 @@ -15218,7 +15218,7 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, .thread7486: ; preds = %3639, %3645 %.132677489 = phi ptr [ %3620, %3645 ], [ %.43270.lcssa, %3639 ] - %3648 = phi i8 [ %3621, %3645 ], [ %.lcssa9981, %3639 ] + %3648 = phi i8 [ %3621, %3645 ], [ %.lcssa9997, %3639 ] %3649 = and i8 %3648, -33 %.not3936.not = icmp eq i8 %3649, 69 br i1 %.not3936.not, label %3650, label %.loopexit4286, !prof !4 @@ -16406,8 +16406,8 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %read_number.exit535.thread .preheader4295thread-pre-split: ; preds = %.preheader4295thread-pre-split.lr.ph, %.preheader4295thread-pre-split - %.9327510335 = phi ptr [ %4308, %.preheader4295thread-pre-split.lr.ph ], [ %4313, %.preheader4295thread-pre-split ] - %4313 = getelementptr inbounds nuw i8, ptr %.9327510335, i64 1 + %.9327510351 = phi ptr [ %4308, %.preheader4295thread-pre-split.lr.ph ], [ %4313, %.preheader4295thread-pre-split ] + %4313 = getelementptr inbounds nuw i8, ptr %.9327510351, i64 1 %.pr7490 = load i8, ptr %4313, align 1, !tbaa !75 %4314 = icmp eq i8 %.pr7490, 48 br i1 %4314, label %.preheader4295thread-pre-split, label %.preheader4295..preheader4294_crit_edge, !llvm.loop !160 @@ -16416,14 +16416,14 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %.preheader4294, !llvm.loop !160 .preheader4294: ; preds = %.preheader4295..preheader4294_crit_edge, %.preheader4295.preheader - %.lcssa9977 = phi i8 [ %.pr7490, %.preheader4295..preheader4294_crit_edge ], [ %4309, %.preheader4295.preheader ] + %.lcssa9993 = phi i8 [ %.pr7490, %.preheader4295..preheader4294_crit_edge ], [ %4309, %.preheader4295.preheader ] %.93275.lcssa = phi ptr [ %4313, %.preheader4295..preheader4294_crit_edge ], [ %4308, %.preheader4295.preheader ] - %4315 = add i8 %.lcssa9977, -58 + %4315 = add i8 %.lcssa9993, -58 %.not39724812 = icmp ult i8 %4315, -10 br i1 %.not39724812, label %._crit_edge4816, label %.lr.ph4815 .lr.ph4815: ; preds = %.preheader4294, %.lr.ph4815 - %4316 = phi i8 [ %4322, %.lr.ph4815 ], [ %.lcssa9977, %.preheader4294 ] + %4316 = phi i8 [ %4322, %.lr.ph4815 ], [ %.lcssa9993, %.preheader4294 ] %.0595.i4794814 = phi i64 [ %4321, %.lr.ph4815 ], [ 0, %.preheader4294 ] %.1032764813 = phi ptr [ %4317, %.lr.ph4815 ], [ %.93275.lcssa, %.preheader4294 ] %4317 = getelementptr inbounds nuw i8, ptr %.1032764813, i64 1 @@ -16950,7 +16950,7 @@ diy_fp_to_ieee_raw.exit: ; preds = %4507 br i1 %exitcond6418.not, label %._crit_edge4864, label %.lr.ph4863, !llvm.loop !165 ._crit_edge4864: ; preds = %.lr.ph4863 - %.not19.i1371 = icmp eq i64 %4579, 0 + %.not19.i1371 = icmp ult i128 %4577, 18446744073709551616 br i1 %.not19.i1371, label %bigint_mul_u64.exit1373, label %4581 4581: ; preds = %._crit_edge4864 @@ -17030,7 +17030,7 @@ bigint_mul_u64.exit1373: ; preds = %4568, %._crit_edge4 br i1 %exitcond6428.not, label %._crit_edge4884, label %4601, !llvm.loop !165 ._crit_edge4884: ; preds = %4601 - %.not19.i1377 = icmp eq i64 %4609, 0 + %.not19.i1377 = icmp ult i128 %4607, 18446744073709551616 br i1 %.not19.i1377, label %bigint_mul_pow10.exit, label %4611 4611: ; preds = %._crit_edge4884 @@ -17104,7 +17104,7 @@ bigint_mul_u64.exit1373: ; preds = %4568, %._crit_edge4 br i1 %exitcond6398.not, label %._crit_edge4830, label %.lr.ph4829, !llvm.loop !165 ._crit_edge4830: ; preds = %.lr.ph4829 - %.not19.i1359 = icmp eq i64 %4633, 0 + %.not19.i1359 = icmp ult i128 %4631, 18446744073709551616 br i1 %.not19.i1359, label %bigint_mul_u64.exit1361, label %4635 4635: ; preds = %._crit_edge4830 @@ -17185,7 +17185,7 @@ bigint_mul_u64.exit1361: ; preds = %4622, %._crit_edge4 br i1 %exitcond6408.not, label %._crit_edge4851, label %4657, !llvm.loop !165 ._crit_edge4851: ; preds = %4657 - %.not19.i1365 = icmp eq i64 %4665, 0 + %.not19.i1365 = icmp ult i128 %4663, 18446744073709551616 br i1 %.not19.i1365, label %bigint_mul_pow10.exit, label %4667 4667: ; preds = %._crit_edge4851 @@ -18673,8 +18673,8 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %read_number.exit.thread .preheader4163thread-pre-split: ; preds = %.preheader4163thread-pre-split.lr.ph, %.preheader4163thread-pre-split - %.410390 = phi ptr [ %5234, %.preheader4163thread-pre-split.lr.ph ], [ %5239, %.preheader4163thread-pre-split ] - %5239 = getelementptr inbounds nuw i8, ptr %.410390, i64 1 + %.410406 = phi ptr [ %5234, %.preheader4163thread-pre-split.lr.ph ], [ %5239, %.preheader4163thread-pre-split ] + %5239 = getelementptr inbounds nuw i8, ptr %.410406, i64 1 %.pr7510 = load i8, ptr %5239, align 1, !tbaa !75 %5240 = icmp eq i8 %.pr7510, 48 br i1 %5240, label %.preheader4163thread-pre-split, label %.preheader4163._crit_edge, !prof !154, !llvm.loop !153 @@ -18683,14 +18683,14 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %5241, !llvm.loop !153 5241: ; preds = %.preheader4163._crit_edge, %.preheader4163.preheader - %.lcssa9003 = phi i8 [ %.pr7510, %.preheader4163._crit_edge ], [ %5235, %.preheader4163.preheader ] + %.lcssa9007 = phi i8 [ %.pr7510, %.preheader4163._crit_edge ], [ %5235, %.preheader4163.preheader ] %.4.lcssa = phi ptr [ %5239, %.preheader4163._crit_edge ], [ %5234, %.preheader4163.preheader ] - %5242 = add i8 %.lcssa9003, -58 + %5242 = add i8 %.lcssa9007, -58 %.not3823 = icmp ult i8 %5242, -10 br i1 %.not3823, label %.thread7511, label %5243, !prof !4 5243: ; preds = %5241 - %5244 = zext nneg i8 %.lcssa9003 to i64 + %5244 = zext nneg i8 %.lcssa9007 to i64 %5245 = add nsw i64 %5244, -48 %5246 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %5635 @@ -18707,7 +18707,7 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, .thread7511: ; preds = %5241, %5247 %.132627514 = phi ptr [ %5222, %5247 ], [ %.4.lcssa, %5241 ] - %5250 = phi i8 [ %5223, %5247 ], [ %.lcssa9003, %5241 ] + %5250 = phi i8 [ %5223, %5247 ], [ %.lcssa9007, %5241 ] %5251 = and i8 %5250, -33 %.not3825.not = icmp eq i8 %5251, 69 br i1 %.not3825.not, label %5252, label %.loopexit4151, !prof !4 @@ -19895,8 +19895,8 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %read_number.exit.thread .preheader4160thread-pre-split: ; preds = %.preheader4160thread-pre-split.lr.ph, %.preheader4160thread-pre-split - %.910393 = phi ptr [ %5910, %.preheader4160thread-pre-split.lr.ph ], [ %5915, %.preheader4160thread-pre-split ] - %5915 = getelementptr inbounds nuw i8, ptr %.910393, i64 1 + %.910409 = phi ptr [ %5910, %.preheader4160thread-pre-split.lr.ph ], [ %5915, %.preheader4160thread-pre-split ] + %5915 = getelementptr inbounds nuw i8, ptr %.910409, i64 1 %.pr7515 = load i8, ptr %5915, align 1, !tbaa !75 %5916 = icmp eq i8 %.pr7515, 48 br i1 %5916, label %.preheader4160thread-pre-split, label %.preheader4160..preheader4159_crit_edge, !llvm.loop !160 @@ -19905,14 +19905,14 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %.preheader4159, !llvm.loop !160 .preheader4159: ; preds = %.preheader4160..preheader4159_crit_edge, %.preheader4160.preheader - %.lcssa8999 = phi i8 [ %.pr7515, %.preheader4160..preheader4159_crit_edge ], [ %5911, %.preheader4160.preheader ] + %.lcssa9003 = phi i8 [ %.pr7515, %.preheader4160..preheader4159_crit_edge ], [ %5911, %.preheader4160.preheader ] %.9.lcssa = phi ptr [ %5915, %.preheader4160..preheader4159_crit_edge ], [ %5910, %.preheader4160.preheader ] - %5917 = add i8 %.lcssa8999, -58 + %5917 = add i8 %.lcssa9003, -58 %.not38615658 = icmp ult i8 %5917, -10 br i1 %.not38615658, label %._crit_edge5662, label %.lr.ph5661 .lr.ph5661: ; preds = %.preheader4159, %.lr.ph5661 - %5918 = phi i8 [ %5924, %.lr.ph5661 ], [ %.lcssa8999, %.preheader4159 ] + %5918 = phi i8 [ %5924, %.lr.ph5661 ], [ %.lcssa9003, %.preheader4159 ] %.0595.i5660 = phi i64 [ %5923, %.lr.ph5661 ], [ 0, %.preheader4159 ] %.105659 = phi ptr [ %5919, %.lr.ph5661 ], [ %.9.lcssa, %.preheader4159 ] %5919 = getelementptr inbounds nuw i8, ptr %.105659, i64 1 @@ -20439,7 +20439,7 @@ diy_fp_to_ieee_raw.exit1165: ; preds = %6109 br i1 %exitcond6583.not, label %._crit_edge5710, label %.lr.ph5709, !llvm.loop !165 ._crit_edge5710: ; preds = %.lr.ph5709 - %.not19.i1299 = icmp eq i64 %6181, 0 + %.not19.i1299 = icmp ult i128 %6179, 18446744073709551616 br i1 %.not19.i1299, label %bigint_mul_u64.exit1301, label %6183 6183: ; preds = %._crit_edge5710 @@ -20519,7 +20519,7 @@ bigint_mul_u64.exit1301: ; preds = %6170, %._crit_edge5 br i1 %exitcond6593.not, label %._crit_edge5730, label %6203, !llvm.loop !165 ._crit_edge5730: ; preds = %6203 - %.not19.i1305 = icmp eq i64 %6211, 0 + %.not19.i1305 = icmp ult i128 %6209, 18446744073709551616 br i1 %.not19.i1305, label %bigint_mul_pow10.exit1185, label %6213 6213: ; preds = %._crit_edge5730 @@ -20593,7 +20593,7 @@ bigint_mul_u64.exit1301: ; preds = %6170, %._crit_edge5 br i1 %exitcond6563.not, label %._crit_edge5676, label %.lr.ph5675, !llvm.loop !165 ._crit_edge5676: ; preds = %.lr.ph5675 - %.not19.i = icmp eq i64 %6235, 0 + %.not19.i = icmp ult i128 %6233, 18446744073709551616 br i1 %.not19.i, label %bigint_mul_u64.exit, label %6237 6237: ; preds = %._crit_edge5676 @@ -20674,7 +20674,7 @@ bigint_mul_u64.exit: ; preds = %6224, %._crit_edge5 br i1 %exitcond6573.not, label %._crit_edge5697, label %6259, !llvm.loop !165 ._crit_edge5697: ; preds = %6259 - %.not19.i1293 = icmp eq i64 %6267, 0 + %.not19.i1293 = icmp ult i128 %6265, 18446744073709551616 br i1 %.not19.i1293, label %bigint_mul_pow10.exit1185, label %6269 6269: ; preds = %._crit_edge5697 @@ -22024,7 +22024,7 @@ read_number.exit: ; preds = %.loopexit4151, %542 %6954 = and i32 %.sroa.21.2.in.lcssa, 12291 %6955 = icmp eq i32 %6954, 0 %6956 = or i1 %6953, %6955 - br i1 %6956, label %.lr.ph10399, label %.critedge6.i + br i1 %6956, label %.lr.ph10415, label %.critedge6.i .lr.ph5863: ; preds = %.preheader4140, %.lr.ph5863 %.sroa.02506.25862.in = phi i32 [ %.sroa.0.0.copyload.i920, %.lr.ph5863 ], [ %storemerge.i594.lcssa, %.preheader4140 ] @@ -22042,21 +22042,21 @@ read_number.exit: ; preds = %.loopexit4151, %542 %6963 = and i1 %6960, %6962 br i1 %6963, label %.lr.ph5863, label %.preheader4139.loopexit, !llvm.loop !177 -.lr.ph5877: ; preds = %.lr.ph10399 +.lr.ph5877: ; preds = %.lr.ph10415 %6964 = and i32 %.sroa.0.0.copyload.i921, 4 %6965 = icmp eq i32 %6964, 0 %6966 = and i32 %.sroa.0.0.copyload.i921, 12291 %6967 = icmp eq i32 %6966, 0 %6968 = or i1 %6965, %6967 - br i1 %6968, label %.lr.ph10399, label %.critedge6.i.loopexit, !llvm.loop !178 - -.lr.ph10399: ; preds = %.lr.ph5877.preheader, %.lr.ph5877 - %.14.i599587310398 = phi ptr [ %6970, %.lr.ph5877 ], [ %.13.i597.lcssa, %.lr.ph5877.preheader ] - %.7.i600587410397 = phi ptr [ %6969, %.lr.ph5877 ], [ %.6.i598.lcssa, %.lr.ph5877.preheader ] - %.sroa.02506.0.insert.insert2530587610396 = phi i32 [ %.sroa.0.0.copyload.i921, %.lr.ph5877 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5877.preheader ] - store i32 %.sroa.02506.0.insert.insert2530587610396, ptr %.7.i600587410397, align 1 - %6969 = getelementptr inbounds nuw i8, ptr %.7.i600587410397, i64 4 - %6970 = getelementptr inbounds nuw i8, ptr %.14.i599587310398, i64 4 + br i1 %6968, label %.lr.ph10415, label %.critedge6.i.loopexit, !llvm.loop !178 + +.lr.ph10415: ; preds = %.lr.ph5877.preheader, %.lr.ph5877 + %.14.i599587310414 = phi ptr [ %6970, %.lr.ph5877 ], [ %.13.i597.lcssa, %.lr.ph5877.preheader ] + %.7.i600587410413 = phi ptr [ %6969, %.lr.ph5877 ], [ %.6.i598.lcssa, %.lr.ph5877.preheader ] + %.sroa.02506.0.insert.insert2530587610412 = phi i32 [ %.sroa.0.0.copyload.i921, %.lr.ph5877 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5877.preheader ] + store i32 %.sroa.02506.0.insert.insert2530587610412, ptr %.7.i600587410413, align 1 + %6969 = getelementptr inbounds nuw i8, ptr %.7.i600587410413, i64 4 + %6970 = getelementptr inbounds nuw i8, ptr %.14.i599587310414, i64 4 %.sroa.0.0.copyload.i921 = load i32, ptr %6970, align 1 %6971 = and i32 %.sroa.0.0.copyload.i921, -1061109512 %6972 = icmp ne i32 %6971, -2139062032 @@ -22065,7 +22065,7 @@ read_number.exit: ; preds = %.loopexit4151, %542 %or.cond292.i = or i1 %.not289.i, %6972 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph5877, !llvm.loop !178 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10399 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10415 %6974 = trunc i32 %.sroa.0.0.copyload.i921 to i16 br label %.critedge6.i, !llvm.loop !178 @@ -23708,7 +23708,7 @@ read_null.exit: ; preds = %7044 %7772 = and i32 %.sroa.212787.2.in.lcssa, 12291 %7773 = icmp eq i32 %7772, 0 %7774 = or i1 %7771, %7773 - br i1 %7774, label %.lr.ph10367, label %.critedge6.i679 + br i1 %7774, label %.lr.ph10383, label %.critedge6.i679 .lr.ph5396: ; preds = %.preheader4215, %.lr.ph5396 %.sroa.02739.25395.in = phi i32 [ %.sroa.0.0.copyload.i904, %.lr.ph5396 ], [ %storemerge.i669.lcssa, %.preheader4215 ] @@ -23726,21 +23726,21 @@ read_null.exit: ; preds = %7044 %7781 = and i1 %7778, %7780 br i1 %7781, label %.lr.ph5396, label %.preheader4214.loopexit, !llvm.loop !177 -.lr.ph5410: ; preds = %.lr.ph10367 +.lr.ph5410: ; preds = %.lr.ph10383 %7782 = and i32 %.sroa.0.0.copyload.i905, 4 %7783 = icmp eq i32 %7782, 0 %7784 = and i32 %.sroa.0.0.copyload.i905, 12291 %7785 = icmp eq i32 %7784, 0 %7786 = or i1 %7783, %7785 - br i1 %7786, label %.lr.ph10367, label %.critedge6.i679.loopexit, !llvm.loop !178 - -.lr.ph10367: ; preds = %.lr.ph5410.preheader, %.lr.ph5410 - %.14.i675540610366 = phi ptr [ %7788, %.lr.ph5410 ], [ %.13.i673.lcssa, %.lr.ph5410.preheader ] - %.7.i676540710365 = phi ptr [ %7787, %.lr.ph5410 ], [ %.6.i674.lcssa, %.lr.ph5410.preheader ] - %.sroa.02739.0.insert.insert2763540910364 = phi i32 [ %.sroa.0.0.copyload.i905, %.lr.ph5410 ], [ %.sroa.212787.2.in.lcssa, %.lr.ph5410.preheader ] - store i32 %.sroa.02739.0.insert.insert2763540910364, ptr %.7.i676540710365, align 1 - %7787 = getelementptr inbounds nuw i8, ptr %.7.i676540710365, i64 4 - %7788 = getelementptr inbounds nuw i8, ptr %.14.i675540610366, i64 4 + br i1 %7786, label %.lr.ph10383, label %.critedge6.i679.loopexit, !llvm.loop !178 + +.lr.ph10383: ; preds = %.lr.ph5410.preheader, %.lr.ph5410 + %.14.i675540610382 = phi ptr [ %7788, %.lr.ph5410 ], [ %.13.i673.lcssa, %.lr.ph5410.preheader ] + %.7.i676540710381 = phi ptr [ %7787, %.lr.ph5410 ], [ %.6.i674.lcssa, %.lr.ph5410.preheader ] + %.sroa.02739.0.insert.insert2763540910380 = phi i32 [ %.sroa.0.0.copyload.i905, %.lr.ph5410 ], [ %.sroa.212787.2.in.lcssa, %.lr.ph5410.preheader ] + store i32 %.sroa.02739.0.insert.insert2763540910380, ptr %.7.i676540710381, align 1 + %7787 = getelementptr inbounds nuw i8, ptr %.7.i676540710381, i64 4 + %7788 = getelementptr inbounds nuw i8, ptr %.14.i675540610382, i64 4 %.sroa.0.0.copyload.i905 = load i32, ptr %7788, align 1 %7789 = and i32 %.sroa.0.0.copyload.i905, -1061109512 %7790 = icmp ne i32 %7789, -2139062032 @@ -23749,7 +23749,7 @@ read_null.exit: ; preds = %7044 %or.cond292.i678 = or i1 %.not289.i677, %7790 br i1 %or.cond292.i678, label %..critedge6.i679.loopexit_crit_edge, label %.lr.ph5410, !llvm.loop !178 -..critedge6.i679.loopexit_crit_edge: ; preds = %.lr.ph10367 +..critedge6.i679.loopexit_crit_edge: ; preds = %.lr.ph10383 %7792 = trunc i32 %.sroa.0.0.copyload.i905 to i16 br label %.critedge6.i679, !llvm.loop !178 @@ -24888,7 +24888,7 @@ read_string.exit686: ; preds = %.split.loop.exit533 %8376 = and i32 %.sroa.212670.2.in.lcssa, 12291 %8377 = icmp eq i32 %8376, 0 %8378 = or i1 %8375, %8377 - br i1 %8378, label %.lr.ph10383, label %.critedge6.i637 + br i1 %8378, label %.lr.ph10399, label %.critedge6.i637 .lr.ph5631: ; preds = %.preheader4181, %.lr.ph5631 %.sroa.02622.25630.in = phi i32 [ %.sroa.0.0.copyload.i912, %.lr.ph5631 ], [ %storemerge.i627.lcssa, %.preheader4181 ] @@ -24906,21 +24906,21 @@ read_string.exit686: ; preds = %.split.loop.exit533 %8385 = and i1 %8382, %8384 br i1 %8385, label %.lr.ph5631, label %.preheader4180.loopexit, !llvm.loop !177 -.lr.ph5645: ; preds = %.lr.ph10383 +.lr.ph5645: ; preds = %.lr.ph10399 %8386 = and i32 %.sroa.0.0.copyload.i913, 4 %8387 = icmp eq i32 %8386, 0 %8388 = and i32 %.sroa.0.0.copyload.i913, 12291 %8389 = icmp eq i32 %8388, 0 %8390 = or i1 %8387, %8389 - br i1 %8390, label %.lr.ph10383, label %.critedge6.i637.loopexit, !llvm.loop !178 - -.lr.ph10383: ; preds = %.lr.ph5645.preheader, %.lr.ph5645 - %.14.i633564110382 = phi ptr [ %8392, %.lr.ph5645 ], [ %.13.i631.lcssa, %.lr.ph5645.preheader ] - %.7.i634564210381 = phi ptr [ %8391, %.lr.ph5645 ], [ %.6.i632.lcssa, %.lr.ph5645.preheader ] - %.sroa.02622.0.insert.insert2646564410380 = phi i32 [ %.sroa.0.0.copyload.i913, %.lr.ph5645 ], [ %.sroa.212670.2.in.lcssa, %.lr.ph5645.preheader ] - store i32 %.sroa.02622.0.insert.insert2646564410380, ptr %.7.i634564210381, align 1 - %8391 = getelementptr inbounds nuw i8, ptr %.7.i634564210381, i64 4 - %8392 = getelementptr inbounds nuw i8, ptr %.14.i633564110382, i64 4 + br i1 %8390, label %.lr.ph10399, label %.critedge6.i637.loopexit, !llvm.loop !178 + +.lr.ph10399: ; preds = %.lr.ph5645.preheader, %.lr.ph5645 + %.14.i633564110398 = phi ptr [ %8392, %.lr.ph5645 ], [ %.13.i631.lcssa, %.lr.ph5645.preheader ] + %.7.i634564210397 = phi ptr [ %8391, %.lr.ph5645 ], [ %.6.i632.lcssa, %.lr.ph5645.preheader ] + %.sroa.02622.0.insert.insert2646564410396 = phi i32 [ %.sroa.0.0.copyload.i913, %.lr.ph5645 ], [ %.sroa.212670.2.in.lcssa, %.lr.ph5645.preheader ] + store i32 %.sroa.02622.0.insert.insert2646564410396, ptr %.7.i634564210397, align 1 + %8391 = getelementptr inbounds nuw i8, ptr %.7.i634564210397, i64 4 + %8392 = getelementptr inbounds nuw i8, ptr %.14.i633564110398, i64 4 %.sroa.0.0.copyload.i913 = load i32, ptr %8392, align 1 %8393 = and i32 %.sroa.0.0.copyload.i913, -1061109512 %8394 = icmp ne i32 %8393, -2139062032 @@ -24929,7 +24929,7 @@ read_string.exit686: ; preds = %.split.loop.exit533 %or.cond292.i636 = or i1 %.not289.i635, %8394 br i1 %or.cond292.i636, label %..critedge6.i637.loopexit_crit_edge, label %.lr.ph5645, !llvm.loop !178 -..critedge6.i637.loopexit_crit_edge: ; preds = %.lr.ph10383 +..critedge6.i637.loopexit_crit_edge: ; preds = %.lr.ph10399 %8396 = trunc i32 %.sroa.0.0.copyload.i913 to i16 br label %.critedge6.i637, !llvm.loop !178 @@ -25162,8 +25162,8 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %read_number.exit325.thread .preheader4203thread-pre-split: ; preds = %.preheader4203thread-pre-split.lr.ph, %.preheader4203thread-pre-split - %.4330810374 = phi ptr [ %8476, %.preheader4203thread-pre-split.lr.ph ], [ %8481, %.preheader4203thread-pre-split ] - %8481 = getelementptr inbounds nuw i8, ptr %.4330810374, i64 1 + %.4330810390 = phi ptr [ %8476, %.preheader4203thread-pre-split.lr.ph ], [ %8481, %.preheader4203thread-pre-split ] + %8481 = getelementptr inbounds nuw i8, ptr %.4330810390, i64 1 %.pr7535 = load i8, ptr %8481, align 1, !tbaa !75 %8482 = icmp eq i8 %.pr7535, 48 br i1 %8482, label %.preheader4203thread-pre-split, label %.preheader4203._crit_edge, !prof !154, !llvm.loop !153 @@ -25172,14 +25172,14 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %8483, !llvm.loop !153 8483: ; preds = %.preheader4203._crit_edge, %.preheader4203.preheader - %.lcssa9224 = phi i8 [ %.pr7535, %.preheader4203._crit_edge ], [ %8477, %.preheader4203.preheader ] + %.lcssa9232 = phi i8 [ %.pr7535, %.preheader4203._crit_edge ], [ %8477, %.preheader4203.preheader ] %.43308.lcssa = phi ptr [ %8481, %.preheader4203._crit_edge ], [ %8476, %.preheader4203.preheader ] - %8484 = add i8 %.lcssa9224, -58 + %8484 = add i8 %.lcssa9232, -58 %.not3696 = icmp ult i8 %8484, -10 br i1 %.not3696, label %.thread7536, label %8485, !prof !4 8485: ; preds = %8483 - %8486 = zext nneg i8 %.lcssa9224 to i64 + %8486 = zext nneg i8 %.lcssa9232 to i64 %8487 = add nsw i64 %8486, -48 %8488 = getelementptr inbounds i8, ptr %.43308.lcssa, i64 -1 br label %8877 @@ -25196,7 +25196,7 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, .thread7536: ; preds = %8483, %8489 %.133057539 = phi ptr [ %8464, %8489 ], [ %.43308.lcssa, %8483 ] - %8492 = phi i8 [ %8465, %8489 ], [ %.lcssa9224, %8483 ] + %8492 = phi i8 [ %8465, %8489 ], [ %.lcssa9232, %8483 ] %8493 = and i8 %8492, -33 %.not3698.not = icmp eq i8 %8493, 69 br i1 %.not3698.not, label %8494, label %.loopexit4191, !prof !4 @@ -26384,8 +26384,8 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %read_number.exit325.thread .preheader4200thread-pre-split: ; preds = %.preheader4200thread-pre-split.lr.ph, %.preheader4200thread-pre-split - %.9331310377 = phi ptr [ %9152, %.preheader4200thread-pre-split.lr.ph ], [ %9157, %.preheader4200thread-pre-split ] - %9157 = getelementptr inbounds nuw i8, ptr %.9331310377, i64 1 + %.9331310393 = phi ptr [ %9152, %.preheader4200thread-pre-split.lr.ph ], [ %9157, %.preheader4200thread-pre-split ] + %9157 = getelementptr inbounds nuw i8, ptr %.9331310393, i64 1 %.pr7540 = load i8, ptr %9157, align 1, !tbaa !75 %9158 = icmp eq i8 %.pr7540, 48 br i1 %9158, label %.preheader4200thread-pre-split, label %.preheader4200..preheader4199_crit_edge, !llvm.loop !160 @@ -26394,14 +26394,14 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %.preheader4199, !llvm.loop !160 .preheader4199: ; preds = %.preheader4200..preheader4199_crit_edge, %.preheader4200.preheader - %.lcssa9220 = phi i8 [ %.pr7540, %.preheader4200..preheader4199_crit_edge ], [ %9153, %.preheader4200.preheader ] + %.lcssa9228 = phi i8 [ %.pr7540, %.preheader4200..preheader4199_crit_edge ], [ %9153, %.preheader4200.preheader ] %.93313.lcssa = phi ptr [ %9157, %.preheader4200..preheader4199_crit_edge ], [ %9152, %.preheader4200.preheader ] - %9159 = add i8 %.lcssa9220, -58 + %9159 = add i8 %.lcssa9228, -58 %.not37345429 = icmp ult i8 %9159, -10 br i1 %.not37345429, label %._crit_edge5433, label %.lr.ph5432 .lr.ph5432: ; preds = %.preheader4199, %.lr.ph5432 - %9160 = phi i8 [ %9166, %.lr.ph5432 ], [ %.lcssa9220, %.preheader4199 ] + %9160 = phi i8 [ %9166, %.lr.ph5432 ], [ %.lcssa9228, %.preheader4199 ] %.0595.i2695431 = phi i64 [ %9165, %.lr.ph5432 ], [ 0, %.preheader4199 ] %.1033145430 = phi ptr [ %9161, %.lr.ph5432 ], [ %.93313.lcssa, %.preheader4199 ] %9161 = getelementptr inbounds nuw i8, ptr %.1033145430, i64 1 @@ -26928,7 +26928,7 @@ diy_fp_to_ieee_raw.exit1163: ; preds = %9351 br i1 %exitcond6528.not, label %._crit_edge5481, label %.lr.ph5480, !llvm.loop !165 ._crit_edge5481: ; preds = %.lr.ph5480 - %.not19.i1323 = icmp eq i64 %9423, 0 + %.not19.i1323 = icmp ult i128 %9421, 18446744073709551616 br i1 %.not19.i1323, label %bigint_mul_u64.exit1325, label %9425 9425: ; preds = %._crit_edge5481 @@ -27008,7 +27008,7 @@ bigint_mul_u64.exit1325: ; preds = %9412, %._crit_edge5 br i1 %exitcond6538.not, label %._crit_edge5501, label %9445, !llvm.loop !165 ._crit_edge5501: ; preds = %9445 - %.not19.i1329 = icmp eq i64 %9453, 0 + %.not19.i1329 = icmp ult i128 %9451, 18446744073709551616 br i1 %.not19.i1329, label %bigint_mul_pow10.exit1179, label %9455 9455: ; preds = %._crit_edge5501 @@ -27082,7 +27082,7 @@ bigint_mul_u64.exit1325: ; preds = %9412, %._crit_edge5 br i1 %exitcond6508.not, label %._crit_edge5447, label %.lr.ph5446, !llvm.loop !165 ._crit_edge5447: ; preds = %.lr.ph5446 - %.not19.i1311 = icmp eq i64 %9477, 0 + %.not19.i1311 = icmp ult i128 %9475, 18446744073709551616 br i1 %.not19.i1311, label %bigint_mul_u64.exit1313, label %9479 9479: ; preds = %._crit_edge5447 @@ -27163,7 +27163,7 @@ bigint_mul_u64.exit1313: ; preds = %9466, %._crit_edge5 br i1 %exitcond6518.not, label %._crit_edge5468, label %9501, !llvm.loop !165 ._crit_edge5468: ; preds = %9501 - %.not19.i1317 = icmp eq i64 %9509, 0 + %.not19.i1317 = icmp ult i128 %9507, 18446744073709551616 br i1 %.not19.i1317, label %bigint_mul_pow10.exit1179, label %9511 9511: ; preds = %._crit_edge5468 @@ -28733,8 +28733,8 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.thread581._crit_edge.sink.split .preheader736thread-pre-split: ; preds = %.preheader736thread-pre-split.lr.ph, %.preheader736thread-pre-split - %.41639 = phi ptr [ %93, %.preheader736thread-pre-split.lr.ph ], [ %98, %.preheader736thread-pre-split ] - %98 = getelementptr inbounds nuw i8, ptr %.41639, i64 1 + %.41643 = phi ptr [ %93, %.preheader736thread-pre-split.lr.ph ], [ %98, %.preheader736thread-pre-split ] + %98 = getelementptr inbounds nuw i8, ptr %.41643, i64 1 %.pr = load i8, ptr %98, align 1, !tbaa !75 %99 = icmp eq i8 %.pr, 48 br i1 %99, label %.preheader736thread-pre-split, label %.preheader736._crit_edge, !prof !154, !llvm.loop !153 @@ -28743,14 +28743,14 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %100, !llvm.loop !153 100: ; preds = %.preheader736._crit_edge, %.preheader736.preheader - %.lcssa1638 = phi i8 [ %.pr, %.preheader736._crit_edge ], [ %94, %.preheader736.preheader ] + %.lcssa1642 = phi i8 [ %.pr, %.preheader736._crit_edge ], [ %94, %.preheader736.preheader ] %.4.lcssa = phi ptr [ %98, %.preheader736._crit_edge ], [ %93, %.preheader736.preheader ] - %101 = add i8 %.lcssa1638, -58 + %101 = add i8 %.lcssa1642, -58 %.not623 = icmp ult i8 %101, -10 br i1 %.not623, label %.thread, label %102, !prof !4 102: ; preds = %100 - %103 = zext nneg i8 %.lcssa1638 to i64 + %103 = zext nneg i8 %.lcssa1642 to i64 %104 = add nsw i64 %103, -48 %105 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %490 @@ -28766,7 +28766,7 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, .thread: ; preds = %100, %106 %.15791258 = phi ptr [ %81, %106 ], [ %.4.lcssa, %100 ] - %109 = phi i8 [ %82, %106 ], [ %.lcssa1638, %100 ] + %109 = phi i8 [ %82, %106 ], [ %.lcssa1642, %100 ] %110 = and i8 %109, -33 %.not625.not = icmp eq i8 %110, 69 br i1 %.not625.not, label %111, label %.loopexit724, !prof !4 @@ -29918,8 +29918,8 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.thread581._crit_edge.sink.split .preheader733thread-pre-split: ; preds = %.preheader733thread-pre-split.lr.ph, %.preheader733thread-pre-split - %.91641 = phi ptr [ %756, %.preheader733thread-pre-split.lr.ph ], [ %761, %.preheader733thread-pre-split ] - %761 = getelementptr inbounds nuw i8, ptr %.91641, i64 1 + %.91645 = phi ptr [ %756, %.preheader733thread-pre-split.lr.ph ], [ %761, %.preheader733thread-pre-split ] + %761 = getelementptr inbounds nuw i8, ptr %.91645, i64 1 %.pr1259 = load i8, ptr %761, align 1, !tbaa !75 %762 = icmp eq i8 %.pr1259, 48 br i1 %762, label %.preheader733thread-pre-split, label %.preheader733..preheader732_crit_edge, !llvm.loop !160 @@ -29928,14 +29928,14 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.preheader732, !llvm.loop !160 .preheader732: ; preds = %.preheader733..preheader732_crit_edge, %.preheader733.preheader - %.lcssa1634 = phi i8 [ %.pr1259, %.preheader733..preheader732_crit_edge ], [ %757, %.preheader733.preheader ] + %.lcssa1638 = phi i8 [ %.pr1259, %.preheader733..preheader732_crit_edge ], [ %757, %.preheader733.preheader ] %.9.lcssa = phi ptr [ %761, %.preheader733..preheader732_crit_edge ], [ %756, %.preheader733.preheader ] - %763 = add i8 %.lcssa1634, -58 + %763 = add i8 %.lcssa1638, -58 %.not661781 = icmp ult i8 %763, -10 br i1 %.not661781, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader732, %.lr.ph - %764 = phi i8 [ %770, %.lr.ph ], [ %.lcssa1634, %.preheader732 ] + %764 = phi i8 [ %770, %.lr.ph ], [ %.lcssa1638, %.preheader732 ] %.0595.i783 = phi i64 [ %769, %.lr.ph ], [ 0, %.preheader732 ] %.10782 = phi ptr [ %765, %.lr.ph ], [ %.9.lcssa, %.preheader732 ] %765 = getelementptr inbounds nuw i8, ptr %.10782, i64 1 @@ -30422,7 +30422,7 @@ diy_fp_to_ieee_raw.exit: ; preds = %949 br i1 %exitcond1099.not, label %._crit_edge829, label %.lr.ph828, !llvm.loop !165 ._crit_edge829: ; preds = %.lr.ph828 - %.not19.i282 = icmp eq i64 %1017, 0 + %.not19.i282 = icmp ult i128 %1015, 18446744073709551616 br i1 %.not19.i282, label %bigint_mul_u64.exit284, label %1019 1019: ; preds = %._crit_edge829 @@ -30502,7 +30502,7 @@ bigint_mul_u64.exit284: ; preds = %1006, %._crit_edge8 br i1 %exitcond1109.not, label %._crit_edge849, label %1039, !llvm.loop !165 ._crit_edge849: ; preds = %1039 - %.not19.i288 = icmp eq i64 %1047, 0 + %.not19.i288 = icmp ult i128 %1045, 18446744073709551616 br i1 %.not19.i288, label %bigint_mul_pow10.exit, label %1049 1049: ; preds = %._crit_edge849 @@ -30576,7 +30576,7 @@ bigint_mul_u64.exit284: ; preds = %1006, %._crit_edge8 br i1 %exitcond1079.not, label %._crit_edge796, label %.lr.ph795, !llvm.loop !165 ._crit_edge796: ; preds = %.lr.ph795 - %.not19.i = icmp eq i64 %1071, 0 + %.not19.i = icmp ult i128 %1069, 18446744073709551616 br i1 %.not19.i, label %bigint_mul_u64.exit, label %1073 1073: ; preds = %._crit_edge796 @@ -30657,7 +30657,7 @@ bigint_mul_u64.exit: ; preds = %1060, %._crit_edge7 br i1 %exitcond1089.not, label %._crit_edge816, label %1095, !llvm.loop !165 ._crit_edge816: ; preds = %1095 - %.not19.i276 = icmp eq i64 %1103, 0 + %.not19.i276 = icmp ult i128 %1101, 18446744073709551616 br i1 %.not19.i276, label %bigint_mul_pow10.exit, label %1105 1105: ; preds = %._crit_edge816 @@ -31988,7 +31988,7 @@ read_number.exit: ; preds = %1238, %978 %1788 = and i32 %.sroa.21.2.in.lcssa, 12291 %1789 = icmp eq i32 %1788, 0 %1790 = or i1 %1787, %1789 - br i1 %1790, label %.lr.ph1647, label %.critedge6.i + br i1 %1790, label %.lr.ph1651, label %.critedge6.i .lr.ph978: ; preds = %.preheader715, %.lr.ph978 %.sroa.0.2977.in = phi i32 [ %.sroa.0.0.copyload.i203, %.lr.ph978 ], [ %storemerge.i186.lcssa, %.preheader715 ] @@ -32006,21 +32006,21 @@ read_number.exit: ; preds = %1238, %978 %1797 = and i1 %1794, %1796 br i1 %1797, label %.lr.ph978, label %.preheader714.loopexit, !llvm.loop !177 -.lr.ph992: ; preds = %.lr.ph1647 +.lr.ph992: ; preds = %.lr.ph1651 %1798 = and i32 %.sroa.0.0.copyload.i204, 4 %1799 = icmp eq i32 %1798, 0 %1800 = and i32 %.sroa.0.0.copyload.i204, 12291 %1801 = icmp eq i32 %1800, 0 %1802 = or i1 %1799, %1801 - br i1 %1802, label %.lr.ph1647, label %.critedge6.i.loopexit, !llvm.loop !178 - -.lr.ph1647: ; preds = %.lr.ph992.preheader, %.lr.ph992 - %.14.i1919881646 = phi ptr [ %1804, %.lr.ph992 ], [ %.13.i189.lcssa, %.lr.ph992.preheader ] - %.7.i1929891645 = phi ptr [ %1803, %.lr.ph992 ], [ %.6.i190.lcssa, %.lr.ph992.preheader ] - %.sroa.0.0.insert.insert4729911644 = phi i32 [ %.sroa.0.0.copyload.i204, %.lr.ph992 ], [ %.sroa.21.2.in.lcssa, %.lr.ph992.preheader ] - store i32 %.sroa.0.0.insert.insert4729911644, ptr %.7.i1929891645, align 1 - %1803 = getelementptr inbounds nuw i8, ptr %.7.i1929891645, i64 4 - %1804 = getelementptr inbounds nuw i8, ptr %.14.i1919881646, i64 4 + br i1 %1802, label %.lr.ph1651, label %.critedge6.i.loopexit, !llvm.loop !178 + +.lr.ph1651: ; preds = %.lr.ph992.preheader, %.lr.ph992 + %.14.i1919881650 = phi ptr [ %1804, %.lr.ph992 ], [ %.13.i189.lcssa, %.lr.ph992.preheader ] + %.7.i1929891649 = phi ptr [ %1803, %.lr.ph992 ], [ %.6.i190.lcssa, %.lr.ph992.preheader ] + %.sroa.0.0.insert.insert4729911648 = phi i32 [ %.sroa.0.0.copyload.i204, %.lr.ph992 ], [ %.sroa.21.2.in.lcssa, %.lr.ph992.preheader ] + store i32 %.sroa.0.0.insert.insert4729911648, ptr %.7.i1929891649, align 1 + %1803 = getelementptr inbounds nuw i8, ptr %.7.i1929891649, i64 4 + %1804 = getelementptr inbounds nuw i8, ptr %.14.i1919881650, i64 4 %.sroa.0.0.copyload.i204 = load i32, ptr %1804, align 1 %1805 = and i32 %.sroa.0.0.copyload.i204, -1061109512 %1806 = icmp ne i32 %1805, -2139062032 @@ -32029,7 +32029,7 @@ read_number.exit: ; preds = %1238, %978 %or.cond292.i = or i1 %.not289.i, %1806 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph992, !llvm.loop !178 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1647 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1651 %1808 = trunc i32 %.sroa.0.0.copyload.i204 to i16 br label %.critedge6.i, !llvm.loop !178 @@ -33036,8 +33036,8 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader371thread-pre-split, !llvm.loop !153 .preheader371thread-pre-split: ; preds = %.preheader371thread-pre-split.lr.ph, %.preheader371thread-pre-split - %.4732 = phi ptr [ %80, %.preheader371thread-pre-split.lr.ph ], [ %84, %.preheader371thread-pre-split ] - %84 = getelementptr inbounds nuw i8, ptr %.4732, i64 1 + %.4736 = phi ptr [ %80, %.preheader371thread-pre-split.lr.ph ], [ %84, %.preheader371thread-pre-split ] + %84 = getelementptr inbounds nuw i8, ptr %.4736, i64 1 %.pr = load i8, ptr %84, align 1, !tbaa !75 %85 = icmp eq i8 %.pr, 48 br i1 %85, label %.preheader371thread-pre-split, label %.preheader371._crit_edge, !prof !154, !llvm.loop !153 @@ -33046,14 +33046,14 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %86, !llvm.loop !153 86: ; preds = %.preheader371._crit_edge, %.preheader371.preheader - %.lcssa731 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %81, %.preheader371.preheader ] + %.lcssa735 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %81, %.preheader371.preheader ] %.4.lcssa = phi ptr [ %84, %.preheader371._crit_edge ], [ %80, %.preheader371.preheader ] - %87 = add i8 %.lcssa731, -58 + %87 = add i8 %.lcssa735, -58 %.not309 = icmp ult i8 %87, -10 br i1 %.not309, label %.thread652, label %88, !prof !4 88: ; preds = %86 - %89 = zext nneg i8 %.lcssa731 to i64 + %89 = zext nneg i8 %.lcssa735 to i64 %90 = add nsw i64 %89, -48 %91 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %475 @@ -33065,7 +33065,7 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 .thread652: ; preds = %86, %92 %.1655 = phi ptr [ %68, %92 ], [ %.4.lcssa, %86 ] - %94 = phi i8 [ %69, %92 ], [ %.lcssa731, %86 ] + %94 = phi i8 [ %69, %92 ], [ %.lcssa735, %86 ] %95 = and i8 %94, -33 %.not311.not = icmp eq i8 %95, 69 br i1 %.not311.not, label %96, label %.loopexit, !prof !4 @@ -34197,8 +34197,8 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader368thread-pre-split, !llvm.loop !160 .preheader368thread-pre-split: ; preds = %.preheader368thread-pre-split.lr.ph, %.preheader368thread-pre-split - %.9734 = phi ptr [ %740, %.preheader368thread-pre-split.lr.ph ], [ %744, %.preheader368thread-pre-split ] - %744 = getelementptr inbounds nuw i8, ptr %.9734, i64 1 + %.9738 = phi ptr [ %740, %.preheader368thread-pre-split.lr.ph ], [ %744, %.preheader368thread-pre-split ] + %744 = getelementptr inbounds nuw i8, ptr %.9738, i64 1 %.pr656 = load i8, ptr %744, align 1, !tbaa !75 %745 = icmp eq i8 %.pr656, 48 br i1 %745, label %.preheader368thread-pre-split, label %.preheader368..preheader367_crit_edge, !llvm.loop !160 @@ -34207,14 +34207,14 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader367, !llvm.loop !160 .preheader367: ; preds = %.preheader368..preheader367_crit_edge, %.preheader368.preheader - %.lcssa727 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %741, %.preheader368.preheader ] + %.lcssa731 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %741, %.preheader368.preheader ] %.9.lcssa = phi ptr [ %744, %.preheader368..preheader367_crit_edge ], [ %740, %.preheader368.preheader ] - %746 = add i8 %.lcssa727, -58 + %746 = add i8 %.lcssa731, -58 %.not347379 = icmp ult i8 %746, -10 br i1 %.not347379, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader367, %.lr.ph - %747 = phi i8 [ %753, %.lr.ph ], [ %.lcssa727, %.preheader367 ] + %747 = phi i8 [ %753, %.lr.ph ], [ %.lcssa731, %.preheader367 ] %.0595.i381 = phi i64 [ %752, %.lr.ph ], [ 0, %.preheader367 ] %.10380 = phi ptr [ %748, %.lr.ph ], [ %.9.lcssa, %.preheader367 ] %748 = getelementptr inbounds nuw i8, ptr %.10380, i64 1 @@ -34690,7 +34690,7 @@ diy_fp_to_ieee_raw.exit: ; preds = %930 br i1 %exitcond530.not, label %._crit_edge427, label %.lr.ph426, !llvm.loop !165 ._crit_edge427: ; preds = %.lr.ph426 - %.not19.i66 = icmp eq i64 %998, 0 + %.not19.i66 = icmp ult i128 %996, 18446744073709551616 br i1 %.not19.i66, label %bigint_mul_u64.exit68, label %1000 1000: ; preds = %._crit_edge427 @@ -34770,7 +34770,7 @@ bigint_mul_u64.exit68: ; preds = %987, %._crit_edge41 br i1 %exitcond540.not, label %._crit_edge447, label %1020, !llvm.loop !165 ._crit_edge447: ; preds = %1020 - %.not19.i72 = icmp eq i64 %1028, 0 + %.not19.i72 = icmp ult i128 %1026, 18446744073709551616 br i1 %.not19.i72, label %bigint_mul_pow10.exit, label %1030 1030: ; preds = %._crit_edge447 @@ -34844,7 +34844,7 @@ bigint_mul_u64.exit68: ; preds = %987, %._crit_edge41 br i1 %exitcond510.not, label %._crit_edge394, label %.lr.ph393, !llvm.loop !165 ._crit_edge394: ; preds = %.lr.ph393 - %.not19.i = icmp eq i64 %1052, 0 + %.not19.i = icmp ult i128 %1050, 18446744073709551616 br i1 %.not19.i, label %bigint_mul_u64.exit, label %1054 1054: ; preds = %._crit_edge394 @@ -34925,7 +34925,7 @@ bigint_mul_u64.exit: ; preds = %1041, %._crit_edge3 br i1 %exitcond520.not, label %._crit_edge414, label %1076, !llvm.loop !165 ._crit_edge414: ; preds = %1076 - %.not19.i60 = icmp eq i64 %1084, 0 + %.not19.i60 = icmp ult i128 %1082, 18446744073709551616 br i1 %.not19.i60, label %bigint_mul_pow10.exit, label %1086 1086: ; preds = %._crit_edge414 @@ -51563,7 +51563,7 @@ define internal fastcc void @bigint_set_buf(ptr noundef nonnull captures(none) i br i1 %exitcond193.not, label %._crit_edge129, label %.lr.ph128, !llvm.loop !165 ._crit_edge129: ; preds = %.lr.ph128 - %.not19.i = icmp eq i64 %65, 0 + %.not19.i = icmp ult i128 %63, 18446744073709551616 br i1 %.not19.i, label %bigint_mul_pow10.exit61, label %bigint_mul_pow10.exit61.sink.split 67: ; preds = %50 @@ -51631,7 +51631,7 @@ define internal fastcc void @bigint_set_buf(ptr noundef nonnull captures(none) i br i1 %exitcond173.not, label %._crit_edge100, label %.lr.ph99, !llvm.loop !165 ._crit_edge100: ; preds = %.lr.ph99 - %.not19.i75 = icmp eq i64 %85, 0 + %.not19.i75 = icmp ult i128 %83, 18446744073709551616 br i1 %.not19.i75, label %bigint_mul_u64.exit77, label %87 87: ; preds = %._crit_edge100 @@ -51717,7 +51717,7 @@ bigint_mul_u64.exit77: ; preds = %74, %._crit_edge, % br i1 %exitcond183.not, label %._crit_edge116, label %109, !llvm.loop !165 ._crit_edge116: ; preds = %109 - %.not19.i81 = icmp eq i64 %117, 0 + %.not19.i81 = icmp ult i128 %115, 18446744073709551616 br i1 %.not19.i81, label %bigint_mul_pow10.exit61, label %bigint_mul_pow10.exit61.sink.split bigint_mul_pow10.exit61.sink.split: ; preds = %._crit_edge116, %._crit_edge129 From e502a2fe2625c48db2b1c5574d7ceab750e78fb3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:59:52 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- bench/abseil-cpp/optimized/duration.ll | 4 +- .../abseil-cpp/optimized/float_conversion.ll | 102 ++-- bench/arrow/optimized/value_parsing.ll | 404 ++++++------- bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll | 36 +- bench/duckdb/optimized/yyjson.ll | 312 +++++----- bench/fmt/optimized/format-impl-test.ll | 6 +- bench/image-rs/optimized/30755d6iao7ojcvl.ll | 274 ++++----- bench/image-rs/optimized/5ez7udly19o3uj1p.ll | 56 +- bench/linux/optimized/i915_hwmon.ll | 2 +- bench/linux/optimized/memory.ll | 66 +- bench/linux/optimized/pci.ll | 58 +- bench/mitsuba3/optimized/string.ll | 460 +++++++------- .../optimized/bvwglp2tpp41rgrf36efmuws6.ll | 122 ++-- .../optimized/3x7yowofiwoipixvfrx7sq0eo.ll | 572 +++++++++--------- bench/postgres/optimized/gindatapage.ll | 138 ++--- .../optimized/b7bzulfx0416fsx8nur737ayt.ll | 4 +- .../optimized/2mbx5ptcpq6fo7sc.ll | 240 ++++---- .../sentencepiece/optimized/repeated_field.ll | 4 +- bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll | 196 +++--- bench/typst-rs/optimized/2i78fvbm4wocuesi.ll | 452 +++++++------- bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll | 316 +++++----- bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll | 246 ++++---- bench/yyjson/optimized/yyjson.ll | 306 +++++----- 23 files changed, 2188 insertions(+), 2188 deletions(-) diff --git a/bench/abseil-cpp/optimized/duration.ll b/bench/abseil-cpp/optimized/duration.ll index 96bf3fb27f1..526fa3b5057 100644 --- a/bench/abseil-cpp/optimized/duration.ll +++ b/bench/abseil-cpp/optimized/duration.ll @@ -2318,8 +2318,8 @@ _ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.th ] _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i: ; preds = %_ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.thread - %lhsc235 = load i8, ptr %.sroa.9.0156, align 1 - %10 = icmp eq i8 %lhsc235, 48 + %lhsc234 = load i8, ptr %.sroa.9.0156, align 1 + %10 = icmp eq i8 %lhsc234, 48 br i1 %10, label %.critedge.sink.split, label %.lr.ph.i.preheader.lr.ph _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i76: ; preds = %_ZN4absl13ConsumePrefixEPSt17basic_string_viewIcSt11char_traitsIcEES3_.exit75.thread diff --git a/bench/abseil-cpp/optimized/float_conversion.ll b/bench/abseil-cpp/optimized/float_conversion.ll index 1801db103ab..142e0ac5a5d 100644 --- a/bench/abseil-cpp/optimized/float_conversion.ll +++ b/bench/abseil-cpp/optimized/float_conversion.ll @@ -420,11 +420,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %161 = getelementptr inbounds i8, ptr %.val.i, i64 -1 %162 = load i8, ptr %161, align 1, !tbaa !12 %163 = icmp eq i8 %162, 46 - %spec.select165.i = select i1 %163, ptr %161, ptr %.val.i + %spec.select163.i = select i1 %163, ptr %161, ptr %.val.i br label %._crit_edge136.i ._crit_edge136.i: ; preds = %160, %155 - %164 = phi ptr [ %.val.i, %155 ], [ %spec.select165.i, %160 ] + %164 = phi ptr [ %.val.i, %155 ], [ %spec.select163.i, %160 ] %165 = load i32, ptr %8, align 4, !tbaa !16 %166 = load i8, ptr %1, align 4, !tbaa !13 %167 = icmp eq i8 %166, 7 @@ -439,21 +439,21 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %173 = load ptr, ptr %159, align 8, !tbaa !37 %174 = getelementptr inbounds nuw i8, ptr %173, i64 1 store ptr %174, ptr %159, align 8, !tbaa !37 - %spec.select166.i = select i1 %172, i8 45, i8 43 - %spec.select167.i = call i32 @llvm.abs.i32(i32 %165, i1 true) - store i8 %spec.select166.i, ptr %173, align 1, !tbaa !12 - %175 = icmp samesign ugt i32 %spec.select167.i, 99 + %spec.select164.i = select i1 %172, i8 45, i8 43 + %spec.select165.i = call i32 @llvm.abs.i32(i32 %165, i1 true) + store i8 %spec.select164.i, ptr %173, align 1, !tbaa !12 + %175 = icmp samesign ugt i32 %spec.select165.i, 99 %176 = load ptr, ptr %159, align 8, !tbaa !37 %177 = getelementptr inbounds nuw i8, ptr %176, i64 1 store ptr %177, ptr %159, align 8, !tbaa !37 br i1 %175, label %178, label %190 178: ; preds = %._crit_edge136.i - %179 = udiv i32 %spec.select167.i, 100 + %179 = udiv i32 %spec.select165.i, 100 %180 = trunc i32 %179 to i8 %181 = add i8 %180, 48 store i8 %181, ptr %176, align 1, !tbaa !12 - %182 = udiv i32 %spec.select167.i, 10 + %182 = udiv i32 %spec.select165.i, 10 %183 = urem i32 %182, 10 %184 = trunc nuw nsw i32 %183 to i8 %185 = or disjoint i8 %184, 48 @@ -461,12 +461,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFINS_7uint128EEEvT_iRKNS1_11Fo %187 = getelementptr inbounds nuw i8, ptr %186, i64 1 store ptr %187, ptr %159, align 8, !tbaa !37 store i8 %185, ptr %186, align 1, !tbaa !12 - %188 = urem i32 %spec.select167.i, 10 + %188 = urem i32 %spec.select165.i, 10 %189 = trunc nuw nsw i32 %188 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit.i 190: ; preds = %._crit_edge136.i - %.lhs.trunc.i.i = trunc nuw nsw i32 %spec.select167.i to i8 + %.lhs.trunc.i.i = trunc nuw nsw i32 %spec.select165.i to i8 %191 = udiv i8 %.lhs.trunc.i.i, 10 %192 = or disjoint i8 %191, 48 store i8 %192, ptr %176, align 1, !tbaa !12 @@ -513,8 +513,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %213 = load i8, ptr %212, align 1, !tbaa !12 %214 = getelementptr inbounds nuw i8, ptr %212, i64 1 store i8 %213, ptr %214, align 1, !tbaa !12 - %.not151.i = icmp eq i32 %204, -1 - br i1 %.not151.i, label %._crit_edge.i, label %.lr.ph.i + %.not149.i = icmp eq i32 %204, -1 + br i1 %.not149.i, label %._crit_edge.i, label %.lr.ph.i .lr.ph.i: ; preds = %210, %.lr.ph.i %215 = phi i32 [ %218, %.lr.ph.i ], [ %204, %210 ] @@ -600,20 +600,20 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %253 = getelementptr inbounds nuw i8, ptr %252, i64 1 store ptr %253, ptr %248, align 8, !tbaa !37 %spec.select = select i1 %251, i8 45, i8 43 - %spec.select51 = call i32 @llvm.abs.i32(i32 %232, i1 true) + %spec.select49 = call i32 @llvm.abs.i32(i32 %232, i1 true) store i8 %spec.select, ptr %252, align 1, !tbaa !12 - %254 = icmp samesign ugt i32 %spec.select51, 99 + %254 = icmp samesign ugt i32 %spec.select49, 99 %255 = load ptr, ptr %248, align 8, !tbaa !37 %256 = getelementptr inbounds nuw i8, ptr %255, i64 1 store ptr %256, ptr %248, align 8, !tbaa !37 br i1 %254, label %257, label %269 257: ; preds = %242 - %258 = udiv i32 %spec.select51, 100 + %258 = udiv i32 %spec.select49, 100 %259 = trunc i32 %258 to i8 %260 = add i8 %259, 48 store i8 %260, ptr %255, align 1, !tbaa !12 - %261 = udiv i32 %spec.select51, 10 + %261 = udiv i32 %spec.select49, 10 %262 = urem i32 %261, 10 %263 = trunc nuw nsw i32 %262 to i8 %264 = or disjoint i8 %263, 48 @@ -621,12 +621,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit. %266 = getelementptr inbounds nuw i8, ptr %265, i64 1 store ptr %266, ptr %248, align 8, !tbaa !37 store i8 %264, ptr %265, align 1, !tbaa !12 - %267 = urem i32 %spec.select51, 10 + %267 = urem i32 %spec.select49, 10 %268 = trunc nuw nsw i32 %267 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit 269: ; preds = %242 - %.lhs.trunc.i = trunc nuw nsw i32 %spec.select51 to i8 + %.lhs.trunc.i = trunc nuw nsw i32 %spec.select49 to i8 %270 = udiv i8 %.lhs.trunc.i, 10 %271 = or disjoint i8 %270, 48 store i8 %271, ptr %255, align 1, !tbaa !12 @@ -686,9 +686,9 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %289 = sub nuw nsw i32 -16382, %smin.i.i %290 = zext nneg i32 %289 to i128 %291 = lshr i128 %.sroa.03.0.insert.insert.i.i.i.i, %290 - %extract.t71 = trunc i128 %291 to i64 - %extract74 = lshr i128 %291, 64 - %extract.t75 = trunc nuw i128 %extract74 to i64 + %extract.t69 = trunc i128 %291 to i64 + %extract72 = lshr i128 %291, 64 + %extract.t73 = trunc nuw i128 %extract72 to i64 br label %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i 292: ; preds = %287 @@ -715,14 +715,14 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %298 = add i32 %.098.i.i, -4 %299 = select i1 %.not57.i.i.i, i32 0, i32 %298 %300 = shl i128 %.sroa.01.0.insert.insert.i.i.i72.i, 4 - %extract.t70 = trunc i128 %300 to i64 - %extract72 = lshr i128 %300, 64 - %extract.t73 = trunc nuw i128 %extract72 to i64 + %extract.t68 = trunc i128 %300 to i64 + %extract70 = lshr i128 %300, 64 + %extract.t71 = trunc nuw i128 %extract70 to i64 br label %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i: ; preds = %.critedge.i.i.i, %288 - %.sink69.off0 = phi i64 [ %extract.t70, %.critedge.i.i.i ], [ %extract.t71, %288 ] - %.sink69.off64 = phi i64 [ %extract.t73, %.critedge.i.i.i ], [ %extract.t75, %288 ] + %.sink67.off0 = phi i64 [ %extract.t68, %.critedge.i.i.i ], [ %extract.t69, %288 ] + %.sink67.off64 = phi i64 [ %extract.t71, %.critedge.i.i.i ], [ %extract.t73, %288 ] %.0100.i.i = phi i8 [ %297, %.critedge.i.i.i ], [ 0, %288 ] %.2.i.i = phi i32 [ %299, %.critedge.i.i.i ], [ -16382, %288 ] br i1 %282, label %_ZN4absl19str_format_internal12_GLOBAL__N_112FormatARoundINS_7uint128EEEvbRKNS1_11FormatStateEPhPT_Pi.exit.i.i, label %301 @@ -738,11 +738,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1 %307 = sub nuw nsw i32 128, %306 %308 = zext nneg i32 %307 to i128 %309 = lshr i128 -1, %308 - %.sroa.24.0.insert.ext.i.i.i.i.i = zext i64 %.sink69.off64 to i128 + %.sroa.24.0.insert.ext.i.i.i.i.i = zext i64 %.sink67.off64 to i128 %.sroa.24.0.insert.shift.i.i.i.i.i = shl nuw i128 %.sroa.24.0.insert.ext.i.i.i.i.i, 64 %310 = lshr i128 -18446744073709551616, %308 %311 = trunc i128 %309 to i64 - %.sroa.0.0.extract.trunc.i.i.i39.i.i = and i64 %.sink69.off0, %311 + %.sroa.0.0.extract.trunc.i.i.i39.i.i = and i64 %.sink67.off0, %311 %.sroa.2.0.extract.shift.i.i.i40.i.i = and i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %310 %312 = add nsw i32 %306, -4 %313 = zext nneg i32 %312 to i128 @@ -764,7 +764,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1 %320 = zext nneg i32 %306 to i128 %321 = shl i128 15, %320 %322 = trunc i128 %321 to i64 - %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = and i64 %.sink69.off0, %322 + %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = and i64 %.sink67.off0, %322 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i = and i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %321 %.sroa.01.0.insert.ext.i.i46.i.i.i.i = zext i64 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i to i128 %.sroa.01.0.insert.insert.i.i47.i.i.i.i = or disjoint i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i46.i.i.i.i @@ -787,7 +787,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE %.sroa.2.0.extract.trunc.i16.i.i.i.i = trunc nuw nsw i128 %.sroa.2.0.extract.shift.i15.i.i.i.i to i64 %.sroa.028.0.i.i.i.i = select i1 %328, i64 0, i64 %.sroa.0.0.extract.trunc.i14.i.i.i.i %.sroa.3.0.i.i.i.i = select i1 %328, i64 0, i64 %.sroa.2.0.extract.trunc.i16.i.i.i.i - %.sroa.01.0.insert.ext.i.i.i.i.i = zext i64 %.sink69.off0 to i128 + %.sroa.01.0.insert.ext.i.i.i.i.i = zext i64 %.sink67.off0 to i128 %.sroa.01.0.insert.insert.i.i.i.i.i = or disjoint i128 %.sroa.24.0.insert.shift.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i.i.i.i %.sroa.01.0.insert.ext.i.i.i20.i.i.i = zext nneg i64 %.sroa.028.0.i.i.i.i to i128 %.sroa.03.0.insert.insert.i.i.i.i.i.i = add i128 %.sroa.01.0.insert.insert.i.i.i.i.i, %.sroa.01.0.insert.ext.i.i.i20.i.i.i @@ -795,7 +795,7 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE %331 = lshr i128 %.sroa.03.0.insert.insert.i.i.i.i.i.i, 64 %.tr.i.i.i.i.i.i = trunc nuw i128 %331 to i64 %.narrow.i.i.i.i.i.i = add i64 %.sroa.3.0.i.i.i.i, %.tr.i.i.i.i.i.i - %.not.i.i.i.i77.i = icmp slt i64 %.sink69.off64, 0 + %.not.i.i.i.i77.i = icmp slt i64 %.sink67.off64, 0 %332 = icmp sgt i64 %.narrow.i.i.i.i.i.i, -1 %or.cond.i.i.i.i = select i1 %.not.i.i.i.i77.i, i1 %332, i1 false %spec.select.i.i.i.i = or i1 %328, %or.cond.i.i.i.i @@ -811,8 +811,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE ._crit_edge.i.i.i: ; preds = %336, %327, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i, %315 %.1101.i.i = phi i8 [ %.0100.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 1, %336 ], [ %.0100.i.i, %315 ], [ %334, %327 ] %.3.i.i = phi i32 [ %.2.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ %337, %336 ], [ %.2.i.i, %315 ], [ %.2.i.i, %327 ] - %.sroa.22.0.copyload.i.pre.i.i.i = phi i64 [ %.sink69.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink69.off64, %315 ], [ %.narrow.i.i.i.i.i.i, %327 ] - %.sroa.01.0.copyload.i.pre.i.i.i = phi i64 [ %.sink69.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink69.off0, %315 ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i, %327 ] + %.sroa.22.0.copyload.i.pre.i.i.i = phi i64 [ %.sink67.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink67.off64, %315 ], [ %.narrow.i.i.i.i.i.i, %327 ] + %.sroa.01.0.copyload.i.pre.i.i.i = phi i64 [ %.sink67.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEEbT_mh.exit.i.i.i ], [ 0, %336 ], [ %.sink67.off0, %315 ], [ %.sroa.0.0.extract.trunc.i.i.i.i.i.i, %327 ] %.sroa.2.0.extract.shift.i.i.i.i.i.i = lshr i128 18446744073709551615, %308 %.sroa.2.0.extract.trunc.i.i.i.i.i.i = trunc nuw i128 %.sroa.2.0.extract.shift.i.i.i.i.i.i to i64 %338 = xor i64 %311, -1 @@ -821,8 +821,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_120HexFloatNeedsRoundUpINS_7uint128EEE _ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i: ; preds = %._crit_edge.i.i.i, %301 %.2102.i.i = phi i8 [ %.0100.i.i, %301 ], [ %.1101.i.i, %._crit_edge.i.i.i ] %.4.i.i = phi i32 [ %.2.i.i, %301 ], [ %.3.i.i, %._crit_edge.i.i.i ] - %.sroa.22.0.copyload.i.i.i.i = phi i64 [ %.sink69.off64, %301 ], [ %.sroa.22.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] - %.sroa.01.0.copyload.i.i.i.i = phi i64 [ %.sink69.off0, %301 ], [ %.sroa.01.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] + %.sroa.22.0.copyload.i.i.i.i = phi i64 [ %.sink67.off64, %301 ], [ %.sroa.22.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] + %.sroa.01.0.copyload.i.i.i.i = phi i64 [ %.sink67.off0, %301 ], [ %.sroa.01.0.copyload.i.pre.i.i.i, %._crit_edge.i.i.i ] %.sroa.3.0.i23.i.i.i = phi i64 [ 0, %301 ], [ %.sroa.2.0.extract.trunc.i.i.i.i.i.i, %._crit_edge.i.i.i ] %.sroa.0.0.i.i.i.i = phi i64 [ -1, %301 ], [ %338, %._crit_edge.i.i.i ] %.sroa.22.0.insert.ext.i.i42.i.i = zext i64 %.sroa.3.0.i23.i.i.i to i128 @@ -843,8 +843,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128 _ZN4absl19str_format_internal12_GLOBAL__N_112FormatARoundINS_7uint128EEEvbRKNS1_11FormatStateEPhPT_Pi.exit.i.i: ; preds = %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i %.3103.i.i = phi i8 [ %.2102.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.0100.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] %.5.i.i = phi i32 [ %.4.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.2.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] - %.sroa.16.4.i.i = phi i64 [ %.sroa.2.0.extract.trunc.i.i.i43.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink69.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] - %.sroa.082.4.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i32.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink69.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] + %.sroa.16.4.i.i = phi i64 [ %.sroa.2.0.extract.trunc.i.i.i43.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink67.off64, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] + %.sroa.082.4.i.i = phi i64 [ %.sroa.0.0.extract.trunc.i.i32.i.i.i, %_ZN4absl19str_format_internal12_GLOBAL__N_123MaskUpToNibbleExclusiveINS_7uint128EEET_m.exit.i.i.i ], [ %.sink67.off0, %_ZN4absl19str_format_internal12_GLOBAL__N_116FormatANormalizeINS_7uint128EEEvNS1_18HexFloatTypeParamsEPhPT_Pi.exit.i.i ] call void @llvm.lifetime.start.p0(ptr nonnull %4) %341 = select i1 %277, i64 0, i64 16 %342 = getelementptr inbounds nuw i8, ptr @.str.27, i64 %341 @@ -1203,11 +1203,11 @@ select.unfold.preheader.i.i: ; preds = %72 %110 = icmp samesign ugt i32 %57, -64 %111 = zext nneg i32 %109 to i64 %112 = lshr i64 %58, %111 - %spec.select191 = select i1 %110, i64 %112, i64 0 + %spec.select190 = select i1 %110, i64 %112, i64 0 br label %select.unfold.i.i select.unfold.i.i: ; preds = %select.unfold.preheader.i.i, %select.unfold.i.i - %.03.i47.i.i = phi i64 [ %114, %select.unfold.i.i ], [ %spec.select191, %select.unfold.preheader.i.i ] + %.03.i47.i.i = phi i64 [ %114, %select.unfold.i.i ], [ %spec.select190, %select.unfold.preheader.i.i ] %.0.i48.i.i = phi ptr [ %116, %select.unfold.i.i ], [ %108, %select.unfold.preheader.i.i ] %113 = urem i64 %.03.i47.i.i, 10 %114 = udiv i64 %.03.i47.i.i, 10 @@ -1382,11 +1382,11 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %171 = getelementptr inbounds i8, ptr %.val, i64 -1 %172 = load i8, ptr %171, align 1, !tbaa !12 %173 = icmp eq i8 %172, 46 - %spec.select192 = select i1 %173, ptr %171, ptr %.val + %spec.select191 = select i1 %173, ptr %171, ptr %.val br label %._crit_edge152 ._crit_edge152: ; preds = %170, %165 - %174 = phi ptr [ %.val, %165 ], [ %spec.select192, %170 ] + %174 = phi ptr [ %.val, %165 ], [ %spec.select191, %170 ] %175 = load i32, ptr %9, align 4, !tbaa !16 %176 = load i8, ptr %1, align 4, !tbaa !13 %177 = icmp eq i8 %176, 7 @@ -1402,21 +1402,21 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %184 = load ptr, ptr %181, align 8, !tbaa !37 %185 = getelementptr inbounds nuw i8, ptr %184, i64 1 store ptr %185, ptr %181, align 8, !tbaa !37 - %spec.select193 = select i1 %183, i8 45, i8 43 - %spec.select194 = call i32 @llvm.abs.i32(i32 %175, i1 true) - store i8 %spec.select193, ptr %184, align 1, !tbaa !12 - %186 = icmp samesign ugt i32 %spec.select194, 99 + %spec.select192 = select i1 %183, i8 45, i8 43 + %spec.select193 = call i32 @llvm.abs.i32(i32 %175, i1 true) + store i8 %spec.select192, ptr %184, align 1, !tbaa !12 + %186 = icmp samesign ugt i32 %spec.select193, 99 %187 = load ptr, ptr %181, align 8, !tbaa !37 %188 = getelementptr inbounds nuw i8, ptr %187, i64 1 store ptr %188, ptr %181, align 8, !tbaa !37 br i1 %186, label %189, label %201 189: ; preds = %._crit_edge152 - %190 = udiv i32 %spec.select194, 100 + %190 = udiv i32 %spec.select193, 100 %191 = trunc i32 %190 to i8 %192 = add i8 %191, 48 store i8 %192, ptr %187, align 1, !tbaa !12 - %193 = udiv i32 %spec.select194, 10 + %193 = udiv i32 %spec.select193, 10 %194 = urem i32 %193, 10 %195 = trunc nuw nsw i32 %194 to i8 %196 = or disjoint i8 %195, 48 @@ -1424,12 +1424,12 @@ _ZN4absl19str_format_internal12_GLOBAL__N_17FormatFImEEvT_iRKNS1_11FormatStateE. %198 = getelementptr inbounds nuw i8, ptr %197, i64 1 store ptr %198, ptr %181, align 8, !tbaa !37 store i8 %196, ptr %197, align 1, !tbaa !12 - %199 = urem i32 %spec.select194, 10 + %199 = urem i32 %spec.select193, 10 %200 = trunc nuw nsw i32 %199 to i8 br label %_ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit 201: ; preds = %._crit_edge152 - %.lhs.trunc.i = trunc nuw nsw i32 %spec.select194 to i8 + %.lhs.trunc.i = trunc nuw nsw i32 %spec.select193 to i8 %202 = udiv i8 %.lhs.trunc.i, 10 %203 = or disjoint i8 %202, 48 store i8 %203, ptr %187, align 1, !tbaa !12 @@ -1476,8 +1476,8 @@ _ZN4absl19str_format_internal12_GLOBAL__N_113PrintExponentEicPNS1_6BufferE.exit: %224 = load i8, ptr %223, align 1, !tbaa !12 %225 = getelementptr inbounds nuw i8, ptr %223, i64 1 store i8 %224, ptr %225, align 1, !tbaa !12 - %.not171 = icmp eq i32 %215, -1 - br i1 %.not171, label %._crit_edge, label %.lr.ph + %.not170 = icmp eq i32 %215, -1 + br i1 %.not170, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %221, %.lr.ph %226 = phi i32 [ %229, %.lr.ph ], [ %215, %221 ] diff --git a/bench/arrow/optimized/value_parsing.ll b/bench/arrow/optimized/value_parsing.ll index dfe8e523139..6f259c7acc7 100644 --- a/bench/arrow/optimized/value_parsing.ll +++ b/bench/arrow/optimized/value_parsing.ll @@ -2100,63 +2100,63 @@ define linkonce_odr void @_ZN14arrow_vendored10fast_float14parse_mantissaERNS0_6 br i1 %11, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4, %12 - %.7304 = phi ptr [ %13, %12 ], [ %6, %4 ] - %.0.copyload.i = load i64, ptr %.7304, align 1 + %.7298 = phi ptr [ %13, %12 ], [ %6, %4 ] + %.0.copyload.i = load i64, ptr %.7298, align 1 %.not.i = icmp eq i64 %.0.copyload.i, 3472328296227680304 br i1 %.not.i, label %12, label %._crit_edge 12: ; preds = %.lr.ph - %13 = getelementptr inbounds nuw i8, ptr %.7304, i64 8 + %13 = getelementptr inbounds nuw i8, ptr %.7298, i64 8 %14 = ptrtoint ptr %13 to i64 %15 = sub i64 %10, %14 %16 = icmp sgt i64 %15, 7 br i1 %16, label %.lr.ph, label %._crit_edge, !llvm.loop !75 ._crit_edge: ; preds = %12, %.lr.ph, %4 - %.7.lcssa = phi ptr [ %6, %4 ], [ %.7304, %.lr.ph ], [ %13, %12 ] - %.not8.i309 = icmp eq ptr %.7.lcssa, %9 - br i1 %.not8.i309, label %._crit_edge341, label %.lr.ph312 + %.7.lcssa = phi ptr [ %6, %4 ], [ %.7298, %.lr.ph ], [ %13, %12 ] + %.not8.i303 = icmp eq ptr %.7.lcssa, %9 + br i1 %.not8.i303, label %._crit_edge335, label %.lr.ph306 -.lr.ph312: ; preds = %._crit_edge, %18 - %.8310 = phi ptr [ %19, %18 ], [ %.7.lcssa, %._crit_edge ] - %17 = load i8, ptr %.8310, align 1, !tbaa !6 +.lr.ph306: ; preds = %._crit_edge, %18 + %.8304 = phi ptr [ %19, %18 ], [ %.7.lcssa, %._crit_edge ] + %17 = load i8, ptr %.8304, align 1, !tbaa !6 %.not9.i = icmp eq i8 %17, 48 br i1 %.not9.i, label %18, label %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit -18: ; preds = %.lr.ph312 - %19 = getelementptr inbounds nuw i8, ptr %.8310, i64 1 +18: ; preds = %.lr.ph306 + %19 = getelementptr inbounds nuw i8, ptr %.8304, i64 1 %.not8.i = icmp eq ptr %19, %9 - br i1 %.not8.i, label %._crit_edge341, label %.lr.ph312, !llvm.loop !76 + br i1 %.not8.i, label %._crit_edge335, label %.lr.ph306, !llvm.loop !76 -_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph312 - %.not339 = icmp eq ptr %.8310, %9 - br i1 %.not339, label %._crit_edge341, label %.preheader281.lr.ph +_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph306 + %.not333 = icmp eq ptr %.8304, %9 + br i1 %.not333, label %._crit_edge335, label %.preheader281.lr.ph .preheader281.lr.ph: ; preds = %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit %20 = getelementptr inbounds nuw i8, ptr %0, i64 496 br label %.preheader281 .preheader281: ; preds = %.preheader281.lr.ph, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 - %.0340 = phi ptr [ %.8310, %.preheader281.lr.ph ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 ] + %.0334 = phi ptr [ %.8304, %.preheader281.lr.ph ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128 ] %.promoted = load i64, ptr %3, align 8 - %21 = ptrtoint ptr %.0340 to i64 + %21 = ptrtoint ptr %.0334 to i64 %22 = sub i64 %10, %21 %23 = icmp sgt i64 %22, 7 - br i1 %23, label %.lr.ph319, label %.critedge + br i1 %23, label %.lr.ph313, label %.critedge -.lr.ph319: ; preds = %.preheader281, %28 - %.1318 = phi ptr [ %42, %28 ], [ %.0340, %.preheader281 ] - %.1245317 = phi i64 [ %41, %28 ], [ 0, %.preheader281 ] +.lr.ph313: ; preds = %.preheader281, %28 + %.1312 = phi ptr [ %42, %28 ], [ %.0334, %.preheader281 ] + %.1245311 = phi i64 [ %41, %28 ], [ 0, %.preheader281 ] %24 = phi i1 [ false, %28 ], [ true, %.preheader281 ] - %.1252316 = phi i64 [ 8, %28 ], [ 0, %.preheader281 ] + %.1252310 = phi i64 [ 8, %28 ], [ 0, %.preheader281 ] %25 = phi i64 [ %43, %28 ], [ %.promoted, %.preheader281 ] %26 = sub i64 %2, %25 %27 = icmp ugt i64 %26, 7 br i1 %27, label %28, label %.critedge -28: ; preds = %.lr.ph319 - %29 = mul i64 %.1245317, 100000000 - %.0.copyload.i.i = load i64, ptr %.1318, align 1 +28: ; preds = %.lr.ph313 + %29 = mul i64 %.1245311, 100000000 + %.0.copyload.i.i = load i64, ptr %.1312, align 1 %30 = add i64 %.0.copyload.i.i, -3472328296227680304 %31 = mul i64 %30, 10 %32 = lshr i64 %30, 8 @@ -2169,56 +2169,56 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit: ; preds = %.lr.ph312 %39 = add i64 %38, %35 %40 = lshr i64 %39, 32 %41 = add i64 %40, %29 - %42 = getelementptr inbounds nuw i8, ptr %.1318, i64 8 + %42 = getelementptr inbounds nuw i8, ptr %.1312, i64 8 %43 = add i64 %25, 8 store i64 %43, ptr %3, align 8, !tbaa !17 %44 = ptrtoint ptr %42 to i64 %45 = sub i64 %10, %44 %46 = icmp sgt i64 %45, 7 %or.cond261 = and i1 %46, %24 - br i1 %or.cond261, label %.lr.ph319, label %.critedge.loopexit.split.loop.exit, !llvm.loop !77 + br i1 %or.cond261, label %.lr.ph313, label %.critedge.loopexit.split.loop.exit, !llvm.loop !77 .critedge.loopexit.split.loop.exit: ; preds = %28 - %47 = add nuw nsw i64 %.1252316, 8 + %47 = add nuw nsw i64 %.1252310, 8 br label %.critedge -.critedge: ; preds = %.lr.ph319, %.critedge.loopexit.split.loop.exit, %.preheader281 - %.promoted327 = phi i64 [ %.promoted, %.preheader281 ], [ %43, %.critedge.loopexit.split.loop.exit ], [ %25, %.lr.ph319 ] - %.1252.lcssa = phi i64 [ 0, %.preheader281 ], [ %47, %.critedge.loopexit.split.loop.exit ], [ %.1252316, %.lr.ph319 ] - %.1245.lcssa = phi i64 [ 0, %.preheader281 ], [ %41, %.critedge.loopexit.split.loop.exit ], [ %.1245317, %.lr.ph319 ] - %.1.lcssa = phi ptr [ %.0340, %.preheader281 ], [ %42, %.critedge.loopexit.split.loop.exit ], [ %.1318, %.lr.ph319 ] - %.not64328 = icmp ne ptr %.1.lcssa, %9 - %48 = icmp ult i64 %.promoted327, %2 - %or.cond67330 = select i1 %.not64328, i1 %48, i1 false - br i1 %or.cond67330, label %.lr.ph334, label %.critedge2 - -.lr.ph334: ; preds = %.critedge, %.lr.ph334 - %.2333 = phi ptr [ %55, %.lr.ph334 ], [ %.1.lcssa, %.critedge ] - %.2246332 = phi i64 [ %54, %.lr.ph334 ], [ %.1245.lcssa, %.critedge ] - %.2253331 = phi i64 [ %56, %.lr.ph334 ], [ %.1252.lcssa, %.critedge ] - %49 = phi i64 [ %57, %.lr.ph334 ], [ %.promoted327, %.critedge ] - %50 = mul i64 %.2246332, 10 - %51 = load i8, ptr %.2333, align 1, !tbaa !6 +.critedge: ; preds = %.lr.ph313, %.critedge.loopexit.split.loop.exit, %.preheader281 + %.promoted321 = phi i64 [ %.promoted, %.preheader281 ], [ %43, %.critedge.loopexit.split.loop.exit ], [ %25, %.lr.ph319 ] + %.1252.lcssa = phi i64 [ 0, %.preheader281 ], [ %47, %.critedge.loopexit.split.loop.exit ], [ %.1252310, %.lr.ph319 ] + %.1245.lcssa = phi i64 [ 0, %.preheader281 ], [ %41, %.critedge.loopexit.split.loop.exit ], [ %.1245311, %.lr.ph319 ] + %.1.lcssa = phi ptr [ %.0334, %.preheader281 ], [ %42, %.critedge.loopexit.split.loop.exit ], [ %.1312, %.lr.ph319 ] + %.not64322 = icmp ne ptr %.1.lcssa, %9 + %48 = icmp ult i64 %.promoted321, %2 + %or.cond67324 = select i1 %.not64322, i1 %48, i1 false + br i1 %or.cond67324, label %.lr.ph328, label %.critedge2 + +.lr.ph328: ; preds = %.critedge, %.lr.ph328 + %.2327 = phi ptr [ %55, %.lr.ph334 ], [ %.1.lcssa, %.critedge ] + %.2246326 = phi i64 [ %54, %.lr.ph334 ], [ %.1245.lcssa, %.critedge ] + %.2253325 = phi i64 [ %56, %.lr.ph334 ], [ %.1252.lcssa, %.critedge ] + %49 = phi i64 [ %57, %.lr.ph334 ], [ %.promoted321, %.critedge ] + %50 = mul i64 %.2246326, 10 + %51 = load i8, ptr %.2327, align 1, !tbaa !6 %52 = sext i8 %51 to i64 %53 = add i64 %50, -48 %54 = add i64 %53, %52 - %55 = getelementptr inbounds nuw i8, ptr %.2333, i64 1 - %56 = add nuw nsw i64 %.2253331, 1 + %55 = getelementptr inbounds nuw i8, ptr %.2327, i64 1 + %56 = add nuw nsw i64 %.2253325, 1 %57 = add nuw i64 %49, 1 store i64 %57, ptr %3, align 8, !tbaa !17 - %58 = icmp samesign ult i64 %.2253331, 18 + %58 = icmp samesign ult i64 %.2253325, 18 %.not64 = icmp ne ptr %55, %9 %or.cond.not270 = select i1 %58, i1 %.not64, i1 false %59 = icmp ult i64 %57, %2 %or.cond67 = select i1 %or.cond.not270, i1 %59, i1 false - br i1 %or.cond67, label %.lr.ph334, label %.critedge2, !llvm.loop !78 + br i1 %or.cond67, label %.lr.ph328, label %.critedge2, !llvm.loop !78 -.critedge2: ; preds = %.lr.ph334, %.critedge +.critedge2: ; preds = %.lr.ph328, %.critedge %.2253.lcssa = phi i64 [ %.1252.lcssa, %.critedge ], [ %56, %.lr.ph334 ] %.2246.lcssa = phi i64 [ %.1245.lcssa, %.critedge ], [ %54, %.lr.ph334 ] %.2.lcssa = phi ptr [ %.1.lcssa, %.critedge ], [ %55, %.lr.ph334 ] - %.lcssa299 = phi i64 [ %.promoted327, %.critedge ], [ %57, %.lr.ph334 ] - %60 = icmp eq i64 %.lcssa299, %2 + %.lcssa294 = phi i64 [ %.promoted321, %.critedge ], [ %57, %.lr.ph334 ] + %60 = icmp eq i64 %.lcssa294, %2 %61 = load i16, ptr %20, align 8, !tbaa !79 %62 = zext i16 %61 to i64 %.not19.i.i = icmp eq i16 %61, 0 @@ -2304,36 +2304,36 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit: ; preds = %84, %_ZN14arrow_ve %94 = ptrtoint ptr %.2.lcssa to i64 %95 = sub i64 %10, %94 %96 = icmp sgt i64 %95, 7 - br i1 %96, label %.lr.ph343, label %.preheader279 + br i1 %96, label %.lr.ph337, label %.preheader279 .preheader279: ; preds = %97, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit %.09.i.lcssa = phi ptr [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ], [ %98, %97 ] - %.not.i77345 = icmp eq ptr %.09.i.lcssa, %9 - br i1 %.not.i77345, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, label %.lr.ph347 + %.not.i77339 = icmp eq ptr %.09.i.lcssa, %9 + br i1 %.not.i77339, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, label %.lr.ph341 -.lr.ph343: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit, %97 - %.09.i342 = phi ptr [ %98, %97 ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ] - %.0.copyload.i78 = load i64, ptr %.09.i342, align 1 +.lr.ph337: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit, %97 + %.09.i336 = phi ptr [ %98, %97 ], [ %.2.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit ] + %.0.copyload.i78 = load i64, ptr %.09.i336, align 1 %.not11.i = icmp eq i64 %.0.copyload.i78, 3472328296227680304 br i1 %.not11.i, label %97, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit -97: ; preds = %.lr.ph343 - %98 = getelementptr inbounds nuw i8, ptr %.09.i342, i64 8 +97: ; preds = %.lr.ph337 + %98 = getelementptr inbounds nuw i8, ptr %.09.i336, i64 8 %99 = ptrtoint ptr %98 to i64 %100 = sub i64 %10, %99 %101 = icmp sgt i64 %100, 7 - br i1 %101, label %.lr.ph343, label %.preheader279, !llvm.loop !83 + br i1 %101, label %.lr.ph337, label %.preheader279, !llvm.loop !83 -.lr.ph347: ; preds = %.preheader279, %.lr.ph347 - %.1.i346 = phi ptr [ %103, %.lr.ph347 ], [ %.09.i.lcssa, %.preheader279 ] - %102 = load i8, ptr %.1.i346, align 1, !tbaa !6 +.lr.ph341: ; preds = %.preheader279, %.lr.ph341 + %.1.i340 = phi ptr [ %103, %.lr.ph347 ], [ %.09.i.lcssa, %.preheader279 ] + %102 = load i8, ptr %.1.i340, align 1, !tbaa !6 %.not10.i.not = icmp ne i8 %102, 48 - %103 = getelementptr inbounds nuw i8, ptr %.1.i346, i64 1 + %103 = getelementptr inbounds nuw i8, ptr %.1.i340, i64 1 %.not.i77 = icmp eq ptr %103, %9 %or.cond = select i1 %.not10.i.not, i1 true, i1 %.not.i77 - br i1 %or.cond, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit, label %.lr.ph347, !llvm.loop !84 + br i1 %or.cond, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit, label %.lr.ph341, !llvm.loop !84 -_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph343, %.lr.ph347 +_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph337, %.lr.ph341 %.0.i = phi i1 [ %.not10.i.not, %.lr.ph347 ], [ true, %.lr.ph343 ] %104 = getelementptr inbounds nuw i8, ptr %1, i64 48 %105 = load ptr, ptr %104, align 8, !tbaa !85 @@ -2343,55 +2343,55 @@ _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit: ; preds = %.lr.ph343, _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread: ; preds = %.preheader279 %106 = getelementptr inbounds nuw i8, ptr %1, i64 48 %107 = load ptr, ptr %106, align 8, !tbaa !85 - %.not65485 = icmp eq ptr %107, null - br i1 %.not65485, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %108 + %.not65479 = icmp eq ptr %107, null + br i1 %.not65479, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %108 108: ; preds = %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit %109 = phi ptr [ %107, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %105, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] - %.0.i487 = phi i1 [ false, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %.0.i, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] + %.0.i481 = phi i1 [ false, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread ], [ %.0.i, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit ] %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 56 %.sroa.2.0.copyload = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !tbaa !17 %110 = getelementptr inbounds nuw i8, ptr %109, i64 %.sroa.2.0.copyload %111 = ptrtoint ptr %110 to i64 %112 = icmp sgt i64 %.sroa.2.0.copyload, 7 - br i1 %112, label %.lr.ph353, label %.preheader277 + br i1 %112, label %.lr.ph347, label %.preheader277 .preheader277: ; preds = %113, %108 %.09.i.i.lcssa = phi ptr [ %109, %108 ], [ %114, %113 ] - %.not.i.i355 = icmp eq ptr %.09.i.i.lcssa, %110 - br i1 %.not.i.i355, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph357 + %.not.i.i349 = icmp eq ptr %.09.i.i.lcssa, %110 + br i1 %.not.i.i349, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph351 -.lr.ph353: ; preds = %108, %113 - %.09.i.i351 = phi ptr [ %114, %113 ], [ %109, %108 ] - %.0.copyload.i.i87 = load i64, ptr %.09.i.i351, align 1 +.lr.ph347: ; preds = %108, %113 + %.09.i.i345 = phi ptr [ %114, %113 ], [ %109, %108 ] + %.0.copyload.i.i87 = load i64, ptr %.09.i.i345, align 1 %.not11.i.i = icmp eq i64 %.0.copyload.i.i87, 3472328296227680304 br i1 %.not11.i.i, label %113, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread -113: ; preds = %.lr.ph353 - %114 = getelementptr inbounds nuw i8, ptr %.09.i.i351, i64 8 +113: ; preds = %.lr.ph347 + %114 = getelementptr inbounds nuw i8, ptr %.09.i.i345, i64 8 %115 = ptrtoint ptr %114 to i64 %116 = sub i64 %111, %115 %117 = icmp sgt i64 %116, 7 - br i1 %117, label %.lr.ph353, label %.preheader277, !llvm.loop !83 + br i1 %117, label %.lr.ph347, label %.preheader277, !llvm.loop !83 -118: ; preds = %.lr.ph357 - %119 = getelementptr inbounds nuw i8, ptr %.1.i.i356, i64 1 +118: ; preds = %.lr.ph351 + %119 = getelementptr inbounds nuw i8, ptr %.1.i.i350, i64 1 %.not.i.i = icmp eq ptr %119, %110 - br i1 %.not.i.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph357, !llvm.loop !84 + br i1 %.not.i.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, label %.lr.ph351, !llvm.loop !84 -.lr.ph357: ; preds = %.preheader277, %118 - %.1.i.i356 = phi ptr [ %119, %118 ], [ %.09.i.i.lcssa, %.preheader277 ] - %120 = load i8, ptr %.1.i.i356, align 1, !tbaa !6 +.lr.ph351: ; preds = %.preheader277, %118 + %.1.i.i350 = phi ptr [ %119, %118 ], [ %.09.i.i.lcssa, %.preheader277 ] + %120 = load i8, ptr %.1.i.i350, align 1, !tbaa !6 %.not10.i.i = icmp eq i8 %120, 48 br i1 %.not10.i.i, label %118, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread _ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit: ; preds = %118, %.preheader277 - br i1 %.0.i487, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 + br i1 %.0.i481, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 121: ; preds = %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit br i1 %.0.i, label %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 -_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread: ; preds = %.lr.ph353, %.lr.ph357, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 +_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit.thread: ; preds = %.lr.ph347, %.lr.ph351, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 %122 = zext i16 %.pr to i64 %.not19.i.i92 = icmp eq i16 %.pr, 0 br i1 %.not19.i.i92, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit101, label %.lr.ph.i.i93 @@ -2534,15 +2534,15 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i127: ; _ZN14arrow_vendored10fast_float6bigint3addEm.exit128: ; preds = %170, %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit119, %.critedge.i.i126, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i127 %.not = icmp eq ptr %.2.lcssa, %9 - br i1 %.not, label %._crit_edge341, label %.preheader281, !llvm.loop !86 + br i1 %.not, label %._crit_edge335, label %.preheader281, !llvm.loop !86 -._crit_edge341: ; preds = %18, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128, %._crit_edge, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit +._crit_edge335: ; preds = %18, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit128, %._crit_edge, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit %180 = getelementptr inbounds nuw i8, ptr %1, i64 48 %181 = load ptr, ptr %180, align 8, !tbaa !85 %.not59 = icmp eq ptr %181, null br i1 %.not59, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %182 -182: ; preds = %._crit_edge341 +182: ; preds = %._crit_edge335 %183 = getelementptr inbounds nuw i8, ptr %1, i64 56 %184 = load i64, ptr %183, align 8, !tbaa !74 %185 = getelementptr inbounds nuw i8, ptr %181, i64 %184 @@ -2553,41 +2553,41 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit128: ; preds = %170, %_ZN14arro .preheader276: ; preds = %182 %188 = ptrtoint ptr %185 to i64 %189 = icmp sgt i64 %184, 7 - br i1 %189, label %.lr.ph359, label %._crit_edge360 + br i1 %189, label %.lr.ph353, label %._crit_edge354 -.lr.ph359: ; preds = %.preheader276, %190 - %.9358 = phi ptr [ %191, %190 ], [ %181, %.preheader276 ] - %.0.copyload.i73 = load i64, ptr %.9358, align 1 +.lr.ph353: ; preds = %.preheader276, %190 + %.9352 = phi ptr [ %191, %190 ], [ %181, %.preheader276 ] + %.0.copyload.i73 = load i64, ptr %.9352, align 1 %.not.i74 = icmp eq i64 %.0.copyload.i73, 3472328296227680304 - br i1 %.not.i74, label %190, label %._crit_edge360 + br i1 %.not.i74, label %190, label %._crit_edge354 -190: ; preds = %.lr.ph359 - %191 = getelementptr inbounds nuw i8, ptr %.9358, i64 8 +190: ; preds = %.lr.ph353 + %191 = getelementptr inbounds nuw i8, ptr %.9352, i64 8 %192 = ptrtoint ptr %191 to i64 %193 = sub i64 %188, %192 %194 = icmp sgt i64 %193, 7 - br i1 %194, label %.lr.ph359, label %._crit_edge360, !llvm.loop !75 + br i1 %194, label %.lr.ph353, label %._crit_edge354, !llvm.loop !75 -._crit_edge360: ; preds = %190, %.lr.ph359, %.preheader276 - %.9.lcssa = phi ptr [ %181, %.preheader276 ], [ %.9358, %.lr.ph359 ], [ %191, %190 ] - %.not8.i71364 = icmp eq ptr %.9.lcssa, %185 - br i1 %.not8.i71364, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph367 +._crit_edge354: ; preds = %190, %.lr.ph353, %.preheader276 + %.9.lcssa = phi ptr [ %181, %.preheader276 ], [ %.9352, %.lr.ph359 ], [ %191, %190 ] + %.not8.i71358 = icmp eq ptr %.9.lcssa, %185 + br i1 %.not8.i71358, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph361 -.lr.ph367: ; preds = %._crit_edge360, %196 - %.10365 = phi ptr [ %197, %196 ], [ %.9.lcssa, %._crit_edge360 ] - %195 = load i8, ptr %.10365, align 1, !tbaa !6 +.lr.ph361: ; preds = %._crit_edge354, %196 + %.10359 = phi ptr [ %197, %196 ], [ %.9.lcssa, %._crit_edge360 ] + %195 = load i8, ptr %.10359, align 1, !tbaa !6 %.not9.i72 = icmp eq i8 %195, 48 br i1 %.not9.i72, label %196, label %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75 -196: ; preds = %.lr.ph367 - %197 = getelementptr inbounds nuw i8, ptr %.10365, i64 1 +196: ; preds = %.lr.ph361 + %197 = getelementptr inbounds nuw i8, ptr %.10359, i64 1 %.not8.i71 = icmp eq ptr %197, %185 - br i1 %.not8.i71, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph367, !llvm.loop !76 + br i1 %.not8.i71, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph361, !llvm.loop !76 -_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph367, %182 - %.3 = phi ptr [ %181, %182 ], [ %.10365, %.lr.ph367 ] - %.not60397 = icmp eq ptr %.3, %185 - br i1 %.not60397, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.preheader274.lr.ph +_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph361, %182 + %.3 = phi ptr [ %181, %182 ], [ %.10359, %.lr.ph367 ] + %.not60391 = icmp eq ptr %.3, %185 + br i1 %.not60391, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.preheader274.lr.ph .preheader274.lr.ph: ; preds = %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75 %198 = ptrtoint ptr %185 to i64 @@ -2595,26 +2595,26 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph367 br label %.preheader274 .preheader274: ; preds = %.preheader274.lr.ph, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 - %.4398 = phi ptr [ %.3, %.preheader274.lr.ph ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 ] - %.promoted371 = load i64, ptr %3, align 8 - %200 = ptrtoint ptr %.4398 to i64 + %.4392 = phi ptr [ %.3, %.preheader274.lr.ph ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184 ] + %.promoted365 = load i64, ptr %3, align 8 + %200 = ptrtoint ptr %.4392 to i64 %201 = sub i64 %198, %200 %202 = icmp sgt i64 %201, 7 - br i1 %202, label %.lr.ph375, label %.critedge4 + br i1 %202, label %.lr.ph369, label %.critedge4 -.lr.ph375: ; preds = %.preheader274, %207 - %.5374 = phi ptr [ %221, %207 ], [ %.4398, %.preheader274 ] - %.5249373 = phi i64 [ %220, %207 ], [ 0, %.preheader274 ] +.lr.ph369: ; preds = %.preheader274, %207 + %.5368 = phi ptr [ %221, %207 ], [ %.4392, %.preheader274 ] + %.5249367 = phi i64 [ %220, %207 ], [ 0, %.preheader274 ] %203 = phi i1 [ false, %207 ], [ true, %.preheader274 ] - %.5256372 = phi i64 [ 8, %207 ], [ 0, %.preheader274 ] - %204 = phi i64 [ %222, %207 ], [ %.promoted371, %.preheader274 ] + %.5256366 = phi i64 [ 8, %207 ], [ 0, %.preheader274 ] + %204 = phi i64 [ %222, %207 ], [ %.promoted365, %.preheader274 ] %205 = sub i64 %2, %204 %206 = icmp ugt i64 %205, 7 br i1 %206, label %207, label %.critedge4 -207: ; preds = %.lr.ph375 - %208 = mul i64 %.5249373, 100000000 - %.0.copyload.i.i76 = load i64, ptr %.5374, align 1 +207: ; preds = %.lr.ph369 + %208 = mul i64 %.5249367, 100000000 + %.0.copyload.i.i76 = load i64, ptr %.5368, align 1 %209 = add i64 %.0.copyload.i.i76, -3472328296227680304 %210 = mul i64 %209, 10 %211 = lshr i64 %209, 8 @@ -2627,56 +2627,56 @@ _ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75: ; preds = %.lr.ph367 %218 = add i64 %217, %214 %219 = lshr i64 %218, 32 %220 = add i64 %219, %208 - %221 = getelementptr inbounds nuw i8, ptr %.5374, i64 8 + %221 = getelementptr inbounds nuw i8, ptr %.5368, i64 8 %222 = add i64 %204, 8 store i64 %222, ptr %3, align 8, !tbaa !17 %223 = ptrtoint ptr %221 to i64 %224 = sub i64 %198, %223 %225 = icmp sgt i64 %224, 7 %or.cond265 = and i1 %225, %203 - br i1 %or.cond265, label %.lr.ph375, label %.critedge4.loopexit.split.loop.exit, !llvm.loop !87 + br i1 %or.cond265, label %.lr.ph369, label %.critedge4.loopexit.split.loop.exit, !llvm.loop !87 .critedge4.loopexit.split.loop.exit: ; preds = %207 - %226 = add nuw nsw i64 %.5256372, 8 + %226 = add nuw nsw i64 %.5256366, 8 br label %.critedge4 -.critedge4: ; preds = %.lr.ph375, %.critedge4.loopexit.split.loop.exit, %.preheader274 - %.promoted385 = phi i64 [ %.promoted371, %.preheader274 ], [ %222, %.critedge4.loopexit.split.loop.exit ], [ %204, %.lr.ph375 ] - %.5256.lcssa = phi i64 [ 0, %.preheader274 ], [ %226, %.critedge4.loopexit.split.loop.exit ], [ %.5256372, %.lr.ph375 ] - %.5249.lcssa = phi i64 [ 0, %.preheader274 ], [ %220, %.critedge4.loopexit.split.loop.exit ], [ %.5249373, %.lr.ph375 ] - %.5.lcssa = phi ptr [ %.4398, %.preheader274 ], [ %221, %.critedge4.loopexit.split.loop.exit ], [ %.5374, %.lr.ph375 ] - %.not62386 = icmp ne ptr %.5.lcssa, %185 - %227 = icmp ult i64 %.promoted385, %2 - %or.cond70388 = select i1 %.not62386, i1 %227, i1 false - br i1 %or.cond70388, label %.lr.ph392, label %.critedge6 - -.lr.ph392: ; preds = %.critedge4, %.lr.ph392 - %.6391 = phi ptr [ %234, %.lr.ph392 ], [ %.5.lcssa, %.critedge4 ] - %.6250390 = phi i64 [ %233, %.lr.ph392 ], [ %.5249.lcssa, %.critedge4 ] - %.6257389 = phi i64 [ %235, %.lr.ph392 ], [ %.5256.lcssa, %.critedge4 ] - %228 = phi i64 [ %236, %.lr.ph392 ], [ %.promoted385, %.critedge4 ] - %229 = mul i64 %.6250390, 10 - %230 = load i8, ptr %.6391, align 1, !tbaa !6 +.critedge4: ; preds = %.lr.ph369, %.critedge4.loopexit.split.loop.exit, %.preheader274 + %.promoted379 = phi i64 [ %.promoted365, %.preheader274 ], [ %222, %.critedge4.loopexit.split.loop.exit ], [ %204, %.lr.ph375 ] + %.5256.lcssa = phi i64 [ 0, %.preheader274 ], [ %226, %.critedge4.loopexit.split.loop.exit ], [ %.5256366, %.lr.ph375 ] + %.5249.lcssa = phi i64 [ 0, %.preheader274 ], [ %220, %.critedge4.loopexit.split.loop.exit ], [ %.5249367, %.lr.ph375 ] + %.5.lcssa = phi ptr [ %.4392, %.preheader274 ], [ %221, %.critedge4.loopexit.split.loop.exit ], [ %.5368, %.lr.ph375 ] + %.not62380 = icmp ne ptr %.5.lcssa, %185 + %227 = icmp ult i64 %.promoted379, %2 + %or.cond70382 = select i1 %.not62380, i1 %227, i1 false + br i1 %or.cond70382, label %.lr.ph386, label %.critedge6 + +.lr.ph386: ; preds = %.critedge4, %.lr.ph386 + %.6385 = phi ptr [ %234, %.lr.ph392 ], [ %.5.lcssa, %.critedge4 ] + %.6250384 = phi i64 [ %233, %.lr.ph392 ], [ %.5249.lcssa, %.critedge4 ] + %.6257383 = phi i64 [ %235, %.lr.ph392 ], [ %.5256.lcssa, %.critedge4 ] + %228 = phi i64 [ %236, %.lr.ph392 ], [ %.promoted379, %.critedge4 ] + %229 = mul i64 %.6250384, 10 + %230 = load i8, ptr %.6385, align 1, !tbaa !6 %231 = sext i8 %230 to i64 %232 = add i64 %229, -48 %233 = add i64 %232, %231 - %234 = getelementptr inbounds nuw i8, ptr %.6391, i64 1 - %235 = add nuw nsw i64 %.6257389, 1 + %234 = getelementptr inbounds nuw i8, ptr %.6385, i64 1 + %235 = add nuw nsw i64 %.6257383, 1 %236 = add nuw i64 %228, 1 store i64 %236, ptr %3, align 8, !tbaa !17 - %237 = icmp samesign ult i64 %.6257389, 18 + %237 = icmp samesign ult i64 %.6257383, 18 %.not62 = icmp ne ptr %234, %185 %or.cond68.not272 = select i1 %237, i1 %.not62, i1 false %238 = icmp ult i64 %236, %2 %or.cond70 = select i1 %or.cond68.not272, i1 %238, i1 false - br i1 %or.cond70, label %.lr.ph392, label %.critedge6, !llvm.loop !88 + br i1 %or.cond70, label %.lr.ph386, label %.critedge6, !llvm.loop !88 -.critedge6: ; preds = %.lr.ph392, %.critedge4 +.critedge6: ; preds = %.lr.ph386, %.critedge4 %.6257.lcssa = phi i64 [ %.5256.lcssa, %.critedge4 ], [ %235, %.lr.ph392 ] %.6250.lcssa = phi i64 [ %.5249.lcssa, %.critedge4 ], [ %233, %.lr.ph392 ] %.6.lcssa = phi ptr [ %.5.lcssa, %.critedge4 ], [ %234, %.lr.ph392 ] - %.lcssa288 = phi i64 [ %.promoted385, %.critedge4 ], [ %236, %.lr.ph392 ] - %239 = icmp eq i64 %.lcssa288, %2 + %.lcssa286 = phi i64 [ %.promoted379, %.critedge4 ], [ %236, %.lr.ph392 ] + %239 = icmp eq i64 %.lcssa286, %2 %240 = load i16, ptr %199, align 8, !tbaa !79 %241 = zext i16 %240 to i64 %.not19.i.i129 = icmp eq i16 %240, 0 @@ -2762,38 +2762,38 @@ _ZN14arrow_vendored10fast_float6bigint3addEm.exit147: ; preds = %263, %_ZN14arro %273 = ptrtoint ptr %.6.lcssa to i64 %274 = sub i64 %198, %273 %275 = icmp sgt i64 %274, 7 - br i1 %275, label %.lr.ph400, label %.preheader + br i1 %275, label %.lr.ph394, label %.preheader .preheader: ; preds = %276, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 %.09.i79.lcssa = phi ptr [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ], [ %277, %276 ] - %.not.i81402 = icmp eq ptr %.09.i79.lcssa, %185 - br i1 %.not.i81402, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph404 + %.not.i81396 = icmp eq ptr %.09.i79.lcssa, %185 + br i1 %.not.i81396, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph398 -.lr.ph400: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147, %276 - %.09.i79399 = phi ptr [ %277, %276 ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ] - %.0.copyload.i84 = load i64, ptr %.09.i79399, align 1 +.lr.ph394: ; preds = %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147, %276 + %.09.i79393 = phi ptr [ %277, %276 ], [ %.6.lcssa, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit147 ] + %.0.copyload.i84 = load i64, ptr %.09.i79393, align 1 %.not11.i85 = icmp eq i64 %.0.copyload.i84, 3472328296227680304 br i1 %.not11.i85, label %276, label %.loopexit -276: ; preds = %.lr.ph400 - %277 = getelementptr inbounds nuw i8, ptr %.09.i79399, i64 8 +276: ; preds = %.lr.ph394 + %277 = getelementptr inbounds nuw i8, ptr %.09.i79393, i64 8 %278 = ptrtoint ptr %277 to i64 %279 = sub i64 %198, %278 %280 = icmp sgt i64 %279, 7 - br i1 %280, label %.lr.ph400, label %.preheader, !llvm.loop !83 + br i1 %280, label %.lr.ph394, label %.preheader, !llvm.loop !83 -281: ; preds = %.lr.ph404 - %282 = getelementptr inbounds nuw i8, ptr %.1.i80403, i64 1 +281: ; preds = %.lr.ph398 + %282 = getelementptr inbounds nuw i8, ptr %.1.i80397, i64 1 %.not.i81 = icmp eq ptr %282, %185 - br i1 %.not.i81, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph404, !llvm.loop !84 + br i1 %.not.i81, label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86, label %.lr.ph398, !llvm.loop !84 -.lr.ph404: ; preds = %.preheader, %281 - %.1.i80403 = phi ptr [ %282, %281 ], [ %.09.i79.lcssa, %.preheader ] - %283 = load i8, ptr %.1.i80403, align 1, !tbaa !6 +.lr.ph398: ; preds = %.preheader, %281 + %.1.i80397 = phi ptr [ %282, %281 ], [ %.09.i79.lcssa, %.preheader ] + %283 = load i8, ptr %.1.i80397, align 1, !tbaa !6 %.not10.i82 = icmp eq i8 %283, 48 br i1 %.not10.i82, label %281, label %.loopexit -.loopexit: ; preds = %.lr.ph400, %.lr.ph404 +.loopexit: ; preds = %.lr.ph394, %.lr.ph398 %284 = zext i16 %.pr259 to i64 %.not19.i.i148 = icmp eq i16 %.pr259, 0 br i1 %.not19.i.i148, label %_ZN14arrow_vendored10fast_float6bigint3mulEm.exit157, label %.lr.ph.i.i149 @@ -2944,7 +2944,7 @@ _ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split: ; preds store i64 %343, ptr %3, align 8, !tbaa !17 br label %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86 -_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86: ; preds = %196, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184, %281, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split, %._crit_edge360, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75, %.preheader, %._crit_edge341, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 +_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86: ; preds = %196, %_ZN14arrow_vendored10fast_float6bigint3addEm.exit184, %281, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit86.sink.split, %._crit_edge354, %_ZN14arrow_vendored10fast_float12is_truncatedEPKcS2_.exit.thread, %_ZN14arrow_vendored10fast_float10skip_zerosERPKcS2_.exit75, %.preheader, %._crit_edge335, %_ZN14arrow_vendored10fast_float12is_truncatedENS0_4spanIKcEE.exit, %121 ret void } @@ -3428,26 +3428,26 @@ define linkonce_odr noundef zeroext i1 @_ZN14arrow_vendored10fast_float6bigint4p .preheader: ; preds = %7, %2 %.011.lcssa = phi i32 [ %1, %2 ], [ %8, %7 ] %4 = icmp samesign ugt i32 %.011.lcssa, 26 - br i1 %4, label %.lr.ph34, label %._crit_edge + br i1 %4, label %.lr.ph32, label %._crit_edge -.lr.ph34: ; preds = %.preheader +.lr.ph32: ; preds = %.preheader %5 = getelementptr inbounds nuw i8, ptr %0, i64 496 %.promoted = load i16, ptr %5, align 8, !tbaa !79 br label %10 .lr.ph: ; preds = %2, %7 - %.01132 = phi i32 [ %8, %7 ], [ %1, %2 ] + %.01130 = phi i32 [ %8, %7 ], [ %1, %2 ] %6 = tail call noundef zeroext i1 @_ZN14arrow_vendored10fast_float8long_mulILt62EEEbRNS0_8stackvecIXT_EEENS0_4spanImEE(ptr noundef nonnull align 8 dereferenceable(498) %0, ptr nonnull @_ZN14arrow_vendored10fast_float11pow5_tablesIvE16large_power_of_5E, i64 5) #21 br i1 %6, label %7, label %_ZN14arrow_vendored10fast_float9large_mulILt62EEEbRNS0_8stackvecIXT_EEENS0_4spanImEE.exit 7: ; preds = %.lr.ph - %8 = add i32 %.01132, -135 + %8 = add i32 %.01130, -135 %9 = icmp ugt i32 %8, 134 br i1 %9, label %.lr.ph, label %.preheader, !llvm.loop !93 -10: ; preds = %.lr.ph34, %27 +10: ; preds = %.lr.ph32, %27 %11 = phi i16 [ %.promoted, %.lr.ph34 ], [ %28, %27 ] - %.11233 = phi i32 [ %.011.lcssa, %.lr.ph34 ], [ %29, %27 ] + %.11231 = phi i32 [ %.011.lcssa, %.lr.ph34 ], [ %29, %27 ] %12 = zext i16 %11 to i64 %.not19.i = icmp eq i16 %11, 0 br i1 %.not19.i, label %27, label %.lr.ph.i @@ -3486,7 +3486,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; pred 27: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %._crit_edge.i, %10 %28 = phi i16 [ %26, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ %11, %._crit_edge.i ], [ 0, %10 ] - %29 = add nsw i32 %.11233, -27 + %29 = add nsw i32 %.11231, -27 %30 = icmp ugt i32 %29, 26 br i1 %30, label %10, label %._crit_edge, !llvm.loop !94 @@ -3552,31 +3552,31 @@ define linkonce_odr noundef zeroext i1 @_ZN14arrow_vendored10fast_float8long_mul %5 = alloca %"struct.arrow_vendored::fast_float::stackvec", align 8 %6 = getelementptr inbounds nuw i8, ptr %0, i64 496 %7 = load i16, ptr %6, align 8, !tbaa !79 - %.fr96 = freeze i16 %7 - %8 = zext i16 %.fr96 to i64 + %.fr94 = freeze i16 %7 + %8 = zext i16 %.fr94 to i64 call void @llvm.lifetime.start.p0(ptr nonnull %4) %.496..496..496..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 496 store i16 0, ptr %.496..496..496..sroa_idx, align 8, !tbaa !79 - %.not.i.i = icmp ult i16 %.fr96, 63 + %.not.i.i = icmp ult i16 %.fr94, 63 br i1 %.not.i.i, label %9, label %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit 9: ; preds = %3 - %10 = icmp eq i16 %.fr96, 0 + %10 = icmp eq i16 %.fr94, 0 br i1 %10, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i, label %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i _ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i: ; preds = %9 %.idx.i.i.i.i.i = shl nuw nsw i64 %8, 3 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 dereferenceable(498) %4, ptr nonnull align 8 %0, i64 %.idx.i.i.i.i.i, i1 false) - %.496..496..496..sroa_idx114 = getelementptr inbounds nuw i8, ptr %4, i64 496 - %.496..496..496..pre.i.i = load i16, ptr %.496..496..496..sroa_idx114, align 8, !tbaa !79 + %.496..496..496..sroa_idx106 = getelementptr inbounds nuw i8, ptr %4, i64 496 + %.496..496..496..pre.i.i = load i16, ptr %.496..496..496..sroa_idx106, align 8, !tbaa !79 %11 = freeze i16 %.496..496..496..pre.i.i br label %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i _ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i: ; preds = %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i, %9 %.fr = phi i16 [ 0, %9 ], [ %11, %_ZSt8__copy_nIPKmmPmET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i.i.i ] - %12 = add i16 %.fr, %.fr96 - %.496..496..496..sroa_idx115 = getelementptr inbounds nuw i8, ptr %4, i64 496 - store i16 %12, ptr %.496..496..496..sroa_idx115, align 8, !tbaa !79 + %12 = add i16 %.fr, %.fr94 + %.496..496..496..sroa_idx107 = getelementptr inbounds nuw i8, ptr %4, i64 496 + store i16 %12, ptr %.496..496..496..sroa_idx107, align 8, !tbaa !79 br label %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = %3, %_ZN14arrow_vendored10fast_float8stackvecILt62EE16extend_uncheckedENS0_4spanImEE.exit.i.i @@ -3585,7 +3585,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = br i1 %.not, label %.critedge34, label %13 13: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit - %.not19.i = icmp eq i16 %.fr96, 0 + %.not19.i = icmp eq i16 %.fr94, 0 br i1 %.not19.i, label %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit, label %.lr.ph.i .lr.ph.i: ; preds = %13 @@ -3615,19 +3615,19 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EEC2ENS0_4spanImEE.exit: ; preds = br i1 %exitcond.not.i, label %._crit_edge.i, label %16, !llvm.loop !81 27: ; preds = %._crit_edge.i - %28 = icmp ult i16 %.fr96, 62 + %28 = icmp ult i16 %.fr94, 62 br i1 %28, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, label %.critedge32 _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; preds = %27 %29 = getelementptr inbounds nuw i64, ptr %0, i64 %8 store i64 %24, ptr %29, align 8, !tbaa !17 - %30 = add nuw nsw i16 %.fr96, 1 + %30 = add nuw nsw i16 %.fr94, 1 store i16 %30, ptr %6, align 8, !tbaa !79 br label %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit _ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit: ; preds = %13, %._crit_edge.i, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i - %.not30.not69.not = icmp eq i64 %2, 1 - br i1 %.not30.not69.not, label %.critedge34, label %.lr.ph + %.not30.not67.not = icmp eq i64 %2, 1 + br i1 %.not30.not67.not, label %.critedge34, label %.lr.ph .lr.ph: ; preds = %_ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit %31 = getelementptr inbounds nuw i8, ptr %5, i64 496 @@ -3642,9 +3642,9 @@ _ZN14arrow_vendored10fast_float9small_mulILt62EEEbRNS0_8stackvecIXT_EEEm.exit: ; br label %.lr.ph.split.us .lr.ph.split.us: ; preds = %.lr.ph.split.us.preheader, %.critedge.us - %.02770.us = phi i64 [ %107, %.critedge.us ], [ 1, %.lr.ph.split.us.preheader ] + %.02768.us = phi i64 [ %107, %.critedge.us ], [ 1, %.lr.ph.split.us.preheader ] %34 = phi i16 [ %106, %.critedge.us ], [ %.promoted, %.lr.ph.split.us.preheader ] - %35 = getelementptr inbounds nuw i64, ptr %1, i64 %.02770.us + %35 = getelementptr inbounds nuw i64, ptr %1, i64 %.02768.us %36 = load i64, ptr %35, align 8, !tbaa !17 call void @llvm.lifetime.start.p0(ptr nonnull %5) %.not29.us = icmp eq i64 %36, 0 @@ -3705,14 +3705,14 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i44.us: ; %59 = phi i16 [ %57, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i44.us ], [ %40, %._crit_edge.i41.us ], [ 0, %38 ] %60 = zext i16 %59 to i64 %61 = zext i16 %34 to i64 - %62 = icmp ugt i64 %.02770.us, %61 - %63 = sub nsw i64 %61, %.02770.us + %62 = icmp ugt i64 %.02768.us, %61 + %63 = sub nsw i64 %61, %.02768.us %64 = icmp ult i64 %63, %60 %or.cond.i.us = select i1 %62, i1 true, i1 %64 br i1 %or.cond.i.us, label %65, label %73 65: ; preds = %58 - %66 = add i64 %.02770.us, %60 + %66 = add i64 %.02768.us, %60 %67 = icmp ult i64 %66, 63 br i1 %67, label %68, label %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_extendENS0_4spanImEE.exit @@ -3734,7 +3734,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: 73: ; preds = %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us, %58 %74 = phi i16 [ %34, %58 ], [ %storemerge.i.i.i.us, %_ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us ] - %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.02770.us + %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.02768.us %.not.i46.us = icmp eq i16 %59, 0 br i1 %.not.i46.us, label %.critedge.us, label %.lr.ph.i47.us @@ -3772,7 +3772,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: br i1 %89, label %91, label %.critedge.us 91: ; preds = %._crit_edge.i49.us - %92 = add i64 %.02770.us, %60 + %92 = add i64 %.02768.us, %60 %93 = zext i16 %74 to i64 br label %94 @@ -3805,13 +3805,13 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; .critedge.us: ; preds = %99, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us, %._crit_edge.i49.us, %73, %.lr.ph.split.us %106 = phi i16 [ %74, %73 ], [ %98, %_ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us ], [ %74, %._crit_edge.i49.us ], [ %34, %.lr.ph.split.us ], [ %74, %99 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) - %107 = add nuw i64 %.02770.us, 1 - %exitcond77.not = icmp eq i64 %107, %2 - br i1 %exitcond77.not, label %.critedge34, label %.lr.ph.split.us, !llvm.loop !96 + %107 = add nuw i64 %.02768.us, 1 + %exitcond73.not = icmp eq i64 %107, %2 + br i1 %exitcond73.not, label %.critedge34, label %.lr.ph.split.us, !llvm.loop !96 .lr.ph.split: ; preds = %.lr.ph, %.critedge - %.02770 = phi i64 [ %110, %.critedge ], [ 1, %.lr.ph ] - %108 = getelementptr inbounds nuw i64, ptr %1, i64 %.02770 + %.02768 = phi i64 [ %110, %.critedge ], [ 1, %.lr.ph ] + %108 = getelementptr inbounds nuw i64, ptr %1, i64 %.02768 %109 = load i64, ptr %108, align 8, !tbaa !17 call void @llvm.lifetime.start.p0(ptr nonnull %5) %.not29 = icmp eq i64 %109, 0 @@ -3819,7 +3819,7 @@ _ZN14arrow_vendored10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; .critedge: ; preds = %.lr.ph.split call void @llvm.lifetime.end.p0(ptr nonnull %5) - %110 = add nuw i64 %.02770, 1 + %110 = add nuw i64 %.02768, 1 %exitcond.not = icmp eq i64 %110, %2 br i1 %exitcond.not, label %.critedge34, label %.lr.ph.split, !llvm.loop !96 diff --git a/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll b/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll index 582de60c0a1..967045570be 100644 --- a/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll +++ b/bench/delta-rs/optimized/2n0ez5zuwgs53clg.ll @@ -88106,15 +88106,15 @@ default.unreachable: ; preds = %8 86: ; preds = %80 switch i64 %82, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" [ - i64 0, label %87 - i64 2, label %89 + i64 0, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i" + i64 2, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" ] -87: ; preds = %86 +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i": ; preds = %86 %88 = icmp eq i128 %83, 0 br i1 %88, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" -89: ; preds = %86 +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i": ; preds = %86 %90 = icmp eq i128 %83, 2 br i1 %90, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" @@ -88129,29 +88129,29 @@ default.unreachable: ; preds = %8 %95 = getelementptr inbounds nuw i8, ptr %1, i64 80 tail call void @llvm.experimental.noalias.scope.decl(metadata !12856) tail call void @llvm.experimental.noalias.scope.decl(metadata !12859) - %96 = load i128, ptr %94, align 16, !range !1886, !alias.scope !12861, !noalias !12862, !noundef !4 - %97 = trunc nuw nsw i128 %96 to i64 - %98 = load i128, ptr %95, align 16, !range !1886, !alias.scope !12862, !noalias !12861, !noundef !4 - %99 = trunc nuw nsw i128 %98 to i64 - %100 = icmp eq i64 %97, %99 - br i1 %100, label %101, label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" - -101: ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" - switch i64 %97, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" [ - i64 0, label %102 + %92 = load i128, ptr %94, align 16, !range !1886, !alias.scope !12861, !noalias !12862, !noundef !4 + %93 = trunc nuw nsw i128 %92 to i64 + %94 = load i128, ptr %95, align 16, !range !1886, !alias.scope !12862, !noalias !12861, !noundef !4 + %95 = trunc nuw nsw i128 %94 to i64 + %96 = icmp eq i64 %93, %95 + br i1 %96, label %97, label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" + +97: ; preds = %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit.thread.i" + switch i64 %93, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" [ + i64 0, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i" i64 2, label %104 ] -102: ; preds = %101 +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i": ; preds = %97 %103 = icmp eq i128 %98, 0 br i1 %103, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" -104: ; preds = %101 +104:; preds = %97 %105 = icmp eq i128 %98, 2 br i1 %105, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i", label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i" -"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i": ; preds = %104, %102 - %106 = getelementptr inbounds nuw i8, ptr %0, i64 96 +"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.i":; preds = %104, %102 + %103 = getelementptr inbounds nuw i8, ptr %0, i64 96 %107 = getelementptr inbounds nuw i8, ptr %1, i64 96 %108 = tail call noundef zeroext i1 @"_ZN79_$LT$datafusion_common..scalar..ScalarValue$u20$as$u20$core..cmp..PartialEq$GT$2eq17h41bc8ae7977a51eeE"(ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %106, ptr noalias noundef nonnull readonly align 16 dereferenceable(64) %107) br i1 %108, label %"_ZN88_$LT$datafusion_expr..window_frame..WindowFrameBound$u20$as$u20$core..cmp..PartialEq$GT$2eq17h97fd68876636795dE.exit3.thread.i", label %"_ZN83_$LT$datafusion_expr..window_frame..WindowFrame$u20$as$u20$core..cmp..PartialEq$GT$2eq17h00a7119f04ca3afaE.exit" diff --git a/bench/duckdb/optimized/yyjson.ll b/bench/duckdb/optimized/yyjson.ll index eef33f7c071..77cb124fdcd 100644 --- a/bench/duckdb/optimized/yyjson.ll +++ b/bench/duckdb/optimized/yyjson.ll @@ -7896,18 +7896,18 @@ define noundef ptr @_ZN13duckdb_yyjson16yyjson_read_optsEPcmjPKNS_10yyjson_alcEP br label %.preheader4149.sink.split .preheader4149.sink.split: ; preds = %115, %2256, %._crit_edge4931, %147 - %.sink10212 = phi ptr [ %148, %147 ], [ %2253, %._crit_edge4931 ], [ %2257, %2256 ], [ %86, %115 ] + %.sink10196 = phi ptr [ %148, %147 ], [ %2253, %._crit_edge4931 ], [ %2257, %2256 ], [ %86, %115 ] %.1529.i.ph.ph = phi ptr [ %.4496.i, %147 ], [ %.8536.i.ph, %._crit_edge4931 ], [ %.8536.i.ph, %2256 ], [ %105, %115 ] %.1493.i.ph.ph = phi ptr [ %.4496.i, %147 ], [ %.8500.i.ph, %._crit_edge4931 ], [ %.8500.i.ph, %2256 ], [ %105, %115 ] %.1467.i.ph.ph = phi ptr [ %.4470.i, %147 ], [ %.8474.i.ph, %._crit_edge4931 ], [ %.8474.i.ph, %2256 ], [ %104, %115 ] %.1450.i.ph.ph = phi ptr [ %.4453.i, %147 ], [ %.8457.i.ph, %._crit_edge4931 ], [ %.8457.i.ph, %2256 ], [ %102, %115 ] %.1442.i.ph.ph = phi i64 [ 0, %147 ], [ %.4445.i.ph, %._crit_edge4931 ], [ %.4445.i.ph, %2256 ], [ 0, %115 ] %.1.i.ph.ph = phi i64 [ %.3.i, %147 ], [ %.6.i.ph, %._crit_edge4931 ], [ %.6.i.ph, %2256 ], [ %100, %115 ] - store ptr %.sink10212, ptr %21, align 8, !tbaa !86 + store ptr %.sink10196, ptr %21, align 8, !tbaa !86 br label %.preheader4149 .preheader4149: ; preds = %.preheader4149.sink.split, %139, %115 - %.promoted49336694 = phi ptr [ %79, %115 ], [ %140, %139 ], [ %.sink10212, %.preheader4149.sink.split ] + %.promoted49336694 = phi ptr [ %79, %115 ], [ %140, %139 ], [ %.sink10196, %.preheader4149.sink.split ] %.1529.i.ph = phi ptr [ %105, %115 ], [ %.4496.i, %139 ], [ %.1529.i.ph.ph, %.preheader4149.sink.split ] %.1493.i.ph = phi ptr [ %105, %115 ], [ %.4496.i, %139 ], [ %.1493.i.ph.ph, %.preheader4149.sink.split ] %.1467.i.ph = phi ptr [ %104, %115 ], [ %.4470.i, %139 ], [ %.1467.i.ph.ph, %.preheader4149.sink.split ] @@ -8388,8 +8388,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463.thread .preheader4146thread-pre-split: ; preds = %.preheader4146thread-pre-split.lr.ph, %.preheader4146thread-pre-split - %.4314610154 = phi ptr [ %324, %.preheader4146thread-pre-split.lr.ph ], [ %329, %.preheader4146thread-pre-split ] - %329 = getelementptr inbounds nuw i8, ptr %.4314610154, i64 1 + %.4314610138 = phi ptr [ %324, %.preheader4146thread-pre-split.lr.ph ], [ %329, %.preheader4146thread-pre-split ] + %329 = getelementptr inbounds nuw i8, ptr %.4314610138, i64 1 %.pr = load i8, ptr %329, align 1, !tbaa !75 %330 = icmp eq i8 %.pr, 48 br i1 %330, label %.preheader4146thread-pre-split, label %.preheader4146._crit_edge, !prof !156, !llvm.loop !155 @@ -8398,14 +8398,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %331, !llvm.loop !155 331: ; preds = %.preheader4146._crit_edge, %.preheader4146.preheader - %.lcssa9422 = phi i8 [ %.pr, %.preheader4146._crit_edge ], [ %325, %.preheader4146.preheader ] + %.lcssa9410 = phi i8 [ %.pr, %.preheader4146._crit_edge ], [ %325, %.preheader4146.preheader ] %.43146.lcssa = phi ptr [ %329, %.preheader4146._crit_edge ], [ %324, %.preheader4146.preheader ] - %332 = add i8 %.lcssa9422, -58 + %332 = add i8 %.lcssa9410, -58 %.not3948 = icmp ult i8 %332, -10 br i1 %.not3948, label %.thread7312, label %333, !prof !3 333: ; preds = %331 - %334 = zext nneg i8 %.lcssa9422 to i64 + %334 = zext nneg i8 %.lcssa9410 to i64 %335 = add nsw i64 %334, -48 %336 = getelementptr inbounds i8, ptr %.43146.lcssa, i64 -1 br label %724 @@ -8422,7 +8422,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = .thread7312: ; preds = %331, %337 %.131437315 = phi ptr [ %312, %337 ], [ %.43146.lcssa, %331 ] - %340 = phi i8 [ %313, %337 ], [ %.lcssa9422, %331 ] + %340 = phi i8 [ %313, %337 ], [ %.lcssa9410, %331 ] %341 = and i8 %340, -33 %.not3950.not = icmp eq i8 %341, 69 br i1 %.not3950.not, label %342, label %.loopexit4134, !prof !3 @@ -9605,8 +9605,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463.thread .preheader4143thread-pre-split: ; preds = %.preheader4143thread-pre-split.lr.ph, %.preheader4143thread-pre-split - %.9315110157 = phi ptr [ %997, %.preheader4143thread-pre-split.lr.ph ], [ %1002, %.preheader4143thread-pre-split ] - %1002 = getelementptr inbounds nuw i8, ptr %.9315110157, i64 1 + %.9315110141 = phi ptr [ %997, %.preheader4143thread-pre-split.lr.ph ], [ %1002, %.preheader4143thread-pre-split ] + %1002 = getelementptr inbounds nuw i8, ptr %.9315110141, i64 1 %.pr7316 = load i8, ptr %1002, align 1, !tbaa !75 %1003 = icmp eq i8 %.pr7316, 48 br i1 %1003, label %.preheader4143thread-pre-split, label %.preheader4143..preheader4142_crit_edge, !llvm.loop !161 @@ -9615,14 +9615,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit880: ; preds = br label %.preheader4142, !llvm.loop !161 .preheader4142: ; preds = %.preheader4143..preheader4142_crit_edge, %.preheader4143.preheader - %.lcssa9418 = phi i8 [ %.pr7316, %.preheader4143..preheader4142_crit_edge ], [ %998, %.preheader4143.preheader ] + %.lcssa9406 = phi i8 [ %.pr7316, %.preheader4143..preheader4142_crit_edge ], [ %998, %.preheader4143.preheader ] %.93151.lcssa = phi ptr [ %1002, %.preheader4143..preheader4142_crit_edge ], [ %997, %.preheader4143.preheader ] - %1004 = add i8 %.lcssa9418, -58 + %1004 = add i8 %.lcssa9406, -58 %.not39864957 = icmp ult i8 %1004, -10 br i1 %.not39864957, label %._crit_edge4961, label %.lr.ph4960 .lr.ph4960: ; preds = %.preheader4142, %.lr.ph4960 - %1005 = phi i8 [ %1011, %.lr.ph4960 ], [ %.lcssa9418, %.preheader4142 ] + %1005 = phi i8 [ %1011, %.lr.ph4960 ], [ %.lcssa9406, %.preheader4142 ] %.0599.i4074959 = phi i64 [ %1010, %.lr.ph4960 ], [ 0, %.preheader4142 ] %.1031524958 = phi ptr [ %1006, %.lr.ph4960 ], [ %.93151.lcssa, %.preheader4142 ] %1006 = getelementptr inbounds nuw i8, ptr %.1031524958, i64 1 @@ -11734,7 +11734,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %2040 = and i32 %.sroa.212780.2.in.lcssa, 12291 %2041 = icmp eq i32 %2040, 0 %2042 = or i1 %2039, %2041 - br i1 %2042, label %.lr.ph10163, label %.critedge6.i756 + br i1 %2042, label %.lr.ph10147, label %.critedge6.i756 .lr.ph5162: ; preds = %.preheader4122, %.lr.ph5162 %.sroa.02732.25161.in = phi i32 [ %.sroa.0.0.copyload.i941, %.lr.ph5162 ], [ %storemerge.i746.lcssa, %.preheader4122 ] @@ -11752,21 +11752,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %2049 = and i1 %2046, %2048 br i1 %2049, label %.lr.ph5162, label %.preheader4121.loopexit, !llvm.loop !178 -.lr.ph5176: ; preds = %.lr.ph10163 +.lr.ph5176: ; preds = %.lr.ph10147 %2050 = and i32 %.sroa.0.0.copyload.i942, 4 %2051 = icmp eq i32 %2050, 0 %2052 = and i32 %.sroa.0.0.copyload.i942, 12291 %2053 = icmp eq i32 %2052, 0 %2054 = or i1 %2051, %2053 - br i1 %2054, label %.lr.ph10163, label %.critedge6.i756.loopexit, !llvm.loop !179 - -.lr.ph10163: ; preds = %.lr.ph5176.preheader, %.lr.ph5176 - %.14.i752517210162 = phi ptr [ %2056, %.lr.ph5176 ], [ %.13.i750.lcssa, %.lr.ph5176.preheader ] - %.7.i753517310161 = phi ptr [ %2055, %.lr.ph5176 ], [ %.6.i751.lcssa, %.lr.ph5176.preheader ] - %.sroa.02732.0.insert.insert2756517510160 = phi i32 [ %.sroa.0.0.copyload.i942, %.lr.ph5176 ], [ %.sroa.212780.2.in.lcssa, %.lr.ph5176.preheader ] - store i32 %.sroa.02732.0.insert.insert2756517510160, ptr %.7.i753517310161, align 1 - %2055 = getelementptr inbounds nuw i8, ptr %.7.i753517310161, i64 4 - %2056 = getelementptr inbounds nuw i8, ptr %.14.i752517210162, i64 4 + br i1 %2054, label %.lr.ph10147, label %.critedge6.i756.loopexit, !llvm.loop !179 + +.lr.ph10147: ; preds = %.lr.ph5176.preheader, %.lr.ph5176 + %.14.i752517210146 = phi ptr [ %2056, %.lr.ph5176 ], [ %.13.i750.lcssa, %.lr.ph5176.preheader ] + %.7.i753517310145 = phi ptr [ %2055, %.lr.ph5176 ], [ %.6.i751.lcssa, %.lr.ph5176.preheader ] + %.sroa.02732.0.insert.insert2756517510144 = phi i32 [ %.sroa.0.0.copyload.i942, %.lr.ph5176 ], [ %.sroa.212780.2.in.lcssa, %.lr.ph5176.preheader ] + store i32 %.sroa.02732.0.insert.insert2756517510144, ptr %.7.i753517310145, align 1 + %2055 = getelementptr inbounds nuw i8, ptr %.7.i753517310145, i64 4 + %2056 = getelementptr inbounds nuw i8, ptr %.14.i752517210146, i64 4 %.sroa.0.0.copyload.i942 = load i32, ptr %2056, align 1 %2057 = and i32 %.sroa.0.0.copyload.i942, -1061109512 %2058 = icmp ne i32 %2057, -2139062032 @@ -11775,7 +11775,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit463: ; preds = %or.cond292.i755 = or i1 %.not289.i754, %2058 br i1 %or.cond292.i755, label %..critedge6.i756.loopexit_crit_edge, label %.lr.ph5176, !llvm.loop !179 -..critedge6.i756.loopexit_crit_edge: ; preds = %.lr.ph10163 +..critedge6.i756.loopexit_crit_edge: ; preds = %.lr.ph10147 %2060 = trunc i32 %.sroa.0.0.copyload.i942 to i16 br label %.critedge6.i756, !llvm.loop !179 @@ -12419,18 +12419,18 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 br label %.preheader4212.sink.split .preheader4212.sink.split: ; preds = %112, %4953, %._crit_edge4926, %2330 - %.sink10213 = phi ptr [ %2331, %2330 ], [ %4950, %._crit_edge4926 ], [ %4954, %4953 ], [ %86, %112 ] + %.sink10197 = phi ptr [ %2331, %2330 ], [ %4950, %._crit_edge4926 ], [ %4954, %4953 ], [ %86, %112 ] %.0528.i.ph.ph = phi ptr [ %.23515.i, %2330 ], [ %.20548.i.ph, %._crit_edge4926 ], [ %.20548.i.ph, %4953 ], [ %105, %112 ] %.0492.i.ph.ph = phi ptr [ %.23515.i, %2330 ], [ %.21513.i.ph, %._crit_edge4926 ], [ %.21513.i.ph, %4953 ], [ %105, %112 ] %.0466.i.ph.ph = phi ptr [ %.22488.i, %2330 ], [ %.20486.i.ph, %._crit_edge4926 ], [ %.20486.i.ph, %4953 ], [ %104, %112 ] %.0449.i.ph.ph = phi ptr [ %.23.i, %2330 ], [ %.21.i.ph, %._crit_edge4926 ], [ %.21.i.ph, %4953 ], [ %102, %112 ] %.0441.i.ph.ph = phi i64 [ 0, %2330 ], [ %.6447.i.ph, %._crit_edge4926 ], [ %.6447.i.ph, %4953 ], [ 0, %112 ] %.0440.i.ph.ph = phi i64 [ %.14.i, %2330 ], [ %.13.i.ph, %._crit_edge4926 ], [ %.13.i.ph, %4953 ], [ %100, %112 ] - store ptr %.sink10213, ptr %21, align 8, !tbaa !86 + store ptr %.sink10197, ptr %21, align 8, !tbaa !86 br label %.preheader4212 .preheader4212: ; preds = %.preheader4212.sink.split, %2322, %112 - %.promoted45546667 = phi ptr [ %79, %112 ], [ %2323, %2322 ], [ %.sink10213, %.preheader4212.sink.split ] + %.promoted45546667 = phi ptr [ %79, %112 ], [ %2323, %2322 ], [ %.sink10197, %.preheader4212.sink.split ] %.0528.i.ph = phi ptr [ %105, %112 ], [ %.23515.i, %2322 ], [ %.0528.i.ph.ph, %.preheader4212.sink.split ] %.0492.i.ph = phi ptr [ %105, %112 ], [ %.23515.i, %2322 ], [ %.0492.i.ph.ph, %.preheader4212.sink.split ] %.0466.i.ph = phi ptr [ %104, %112 ], [ %.22488.i, %2322 ], [ %.0466.i.ph.ph, %.preheader4212.sink.split ] @@ -13643,7 +13643,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %2938 = and i32 %.sroa.213014.2.in.lcssa, 12291 %2939 = icmp eq i32 %2938, 0 %2940 = or i1 %2937, %2939 - br i1 %2940, label %.lr.ph10132, label %.critedge6.i840 + br i1 %2940, label %.lr.ph10116, label %.critedge6.i840 .lr.ph4667: ; preds = %.preheader4199, %.lr.ph4667 %.sroa.02966.24666.in = phi i32 [ %.sroa.0.0.copyload.i925, %.lr.ph4667 ], [ %storemerge.i830.lcssa, %.preheader4199 ] @@ -13661,21 +13661,21 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %2947 = and i1 %2944, %2946 br i1 %2947, label %.lr.ph4667, label %.preheader4198.loopexit, !llvm.loop !178 -.lr.ph4681: ; preds = %.lr.ph10132 +.lr.ph4681: ; preds = %.lr.ph10116 %2948 = and i32 %.sroa.0.0.copyload.i926, 4 %2949 = icmp eq i32 %2948, 0 %2950 = and i32 %.sroa.0.0.copyload.i926, 12291 %2951 = icmp eq i32 %2950, 0 %2952 = or i1 %2949, %2951 - br i1 %2952, label %.lr.ph10132, label %.critedge6.i840.loopexit, !llvm.loop !179 - -.lr.ph10132: ; preds = %.lr.ph4681.preheader, %.lr.ph4681 - %.14.i836467710131 = phi ptr [ %2954, %.lr.ph4681 ], [ %.13.i834.lcssa, %.lr.ph4681.preheader ] - %.7.i837467810130 = phi ptr [ %2953, %.lr.ph4681 ], [ %.6.i835.lcssa, %.lr.ph4681.preheader ] - %.sroa.02966.0.insert.insert2990468010129 = phi i32 [ %.sroa.0.0.copyload.i926, %.lr.ph4681 ], [ %.sroa.213014.2.in.lcssa, %.lr.ph4681.preheader ] - store i32 %.sroa.02966.0.insert.insert2990468010129, ptr %.7.i837467810130, align 1 - %2953 = getelementptr inbounds nuw i8, ptr %.7.i837467810130, i64 4 - %2954 = getelementptr inbounds nuw i8, ptr %.14.i836467710131, i64 4 + br i1 %2952, label %.lr.ph10116, label %.critedge6.i840.loopexit, !llvm.loop !179 + +.lr.ph10116: ; preds = %.lr.ph4681.preheader, %.lr.ph4681 + %.14.i836467710115 = phi ptr [ %2954, %.lr.ph4681 ], [ %.13.i834.lcssa, %.lr.ph4681.preheader ] + %.7.i837467810114 = phi ptr [ %2953, %.lr.ph4681 ], [ %.6.i835.lcssa, %.lr.ph4681.preheader ] + %.sroa.02966.0.insert.insert2990468010113 = phi i32 [ %.sroa.0.0.copyload.i926, %.lr.ph4681 ], [ %.sroa.213014.2.in.lcssa, %.lr.ph4681.preheader ] + store i32 %.sroa.02966.0.insert.insert2990468010113, ptr %.7.i837467810114, align 1 + %2953 = getelementptr inbounds nuw i8, ptr %.7.i837467810114, i64 4 + %2954 = getelementptr inbounds nuw i8, ptr %.14.i836467710115, i64 4 %.sroa.0.0.copyload.i926 = load i32, ptr %2954, align 1 %2955 = and i32 %.sroa.0.0.copyload.i926, -1061109512 %2956 = icmp ne i32 %2955, -2139062032 @@ -13684,7 +13684,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit855: ; preds = %2132 %or.cond292.i839 = or i1 %.not289.i838, %2956 br i1 %or.cond292.i839, label %..critedge6.i840.loopexit_crit_edge, label %.lr.ph4681, !llvm.loop !179 -..critedge6.i840.loopexit_crit_edge: ; preds = %.lr.ph10132 +..critedge6.i840.loopexit_crit_edge: ; preds = %.lr.ph10116 %2958 = trunc i32 %.sroa.0.0.copyload.i926 to i16 br label %.critedge6.i840, !llvm.loop !179 @@ -14834,7 +14834,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %3544 = and i32 %.sroa.212897.2.in.lcssa, 12291 %3545 = icmp eq i32 %3544, 0 %3546 = or i1 %3543, %3545 - br i1 %3546, label %.lr.ph10147, label %.critedge6.i798 + br i1 %3546, label %.lr.ph10131, label %.critedge6.i798 .lr.ph4902: ; preds = %.preheader4164, %.lr.ph4902 %.sroa.02849.24901.in = phi i32 [ %.sroa.0.0.copyload.i933, %.lr.ph4902 ], [ %storemerge.i788.lcssa, %.preheader4164 ] @@ -14852,21 +14852,21 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %3553 = and i1 %3550, %3552 br i1 %3553, label %.lr.ph4902, label %.preheader4163.loopexit, !llvm.loop !178 -.lr.ph4916: ; preds = %.lr.ph10147 +.lr.ph4916: ; preds = %.lr.ph10131 %3554 = and i32 %.sroa.0.0.copyload.i934, 4 %3555 = icmp eq i32 %3554, 0 %3556 = and i32 %.sroa.0.0.copyload.i934, 12291 %3557 = icmp eq i32 %3556, 0 %3558 = or i1 %3555, %3557 - br i1 %3558, label %.lr.ph10147, label %.critedge6.i798.loopexit, !llvm.loop !179 - -.lr.ph10147: ; preds = %.lr.ph4916.preheader, %.lr.ph4916 - %.14.i794491210146 = phi ptr [ %3560, %.lr.ph4916 ], [ %.13.i792.lcssa, %.lr.ph4916.preheader ] - %.7.i795491310145 = phi ptr [ %3559, %.lr.ph4916 ], [ %.6.i793.lcssa, %.lr.ph4916.preheader ] - %.sroa.02849.0.insert.insert2873491510144 = phi i32 [ %.sroa.0.0.copyload.i934, %.lr.ph4916 ], [ %.sroa.212897.2.in.lcssa, %.lr.ph4916.preheader ] - store i32 %.sroa.02849.0.insert.insert2873491510144, ptr %.7.i795491310145, align 1 - %3559 = getelementptr inbounds nuw i8, ptr %.7.i795491310145, i64 4 - %3560 = getelementptr inbounds nuw i8, ptr %.14.i794491210146, i64 4 + br i1 %3558, label %.lr.ph10131, label %.critedge6.i798.loopexit, !llvm.loop !179 + +.lr.ph10131: ; preds = %.lr.ph4916.preheader, %.lr.ph4916 + %.14.i794491210130 = phi ptr [ %3560, %.lr.ph4916 ], [ %.13.i792.lcssa, %.lr.ph4916.preheader ] + %.7.i795491310129 = phi ptr [ %3559, %.lr.ph4916 ], [ %.6.i793.lcssa, %.lr.ph4916.preheader ] + %.sroa.02849.0.insert.insert2873491510128 = phi i32 [ %.sroa.0.0.copyload.i934, %.lr.ph4916 ], [ %.sroa.212897.2.in.lcssa, %.lr.ph4916.preheader ] + store i32 %.sroa.02849.0.insert.insert2873491510128, ptr %.7.i795491310129, align 1 + %3559 = getelementptr inbounds nuw i8, ptr %.7.i795491310129, i64 4 + %3560 = getelementptr inbounds nuw i8, ptr %.14.i794491210130, i64 4 %.sroa.0.0.copyload.i934 = load i32, ptr %3560, align 1 %3561 = and i32 %.sroa.0.0.copyload.i934, -1061109512 %3562 = icmp ne i32 %3561, -2139062032 @@ -14875,7 +14875,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit847: ; preds = %or.cond292.i797 = or i1 %.not289.i796, %3562 br i1 %or.cond292.i797, label %..critedge6.i798.loopexit_crit_edge, label %.lr.ph4916, !llvm.loop !179 -..critedge6.i798.loopexit_crit_edge: ; preds = %.lr.ph10147 +..critedge6.i798.loopexit_crit_edge: ; preds = %.lr.ph10131 %3564 = trunc i32 %.sroa.0.0.copyload.i934 to i16 br label %.critedge6.i798, !llvm.loop !179 @@ -15158,8 +15158,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit570.thread .preheader4186thread-pre-split: ; preds = %.preheader4186thread-pre-split.lr.ph, %.preheader4186thread-pre-split - %.410138 = phi ptr [ %3666, %.preheader4186thread-pre-split.lr.ph ], [ %3671, %.preheader4186thread-pre-split ] - %3671 = getelementptr inbounds nuw i8, ptr %.410138, i64 1 + %.410122 = phi ptr [ %3666, %.preheader4186thread-pre-split.lr.ph ], [ %3671, %.preheader4186thread-pre-split ] + %3671 = getelementptr inbounds nuw i8, ptr %.410122, i64 1 %.pr7335 = load i8, ptr %3671, align 1, !tbaa !75 %3672 = icmp eq i8 %.pr7335, 48 br i1 %3672, label %.preheader4186thread-pre-split, label %.preheader4186._crit_edge, !prof !156, !llvm.loop !155 @@ -15168,14 +15168,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %3673, !llvm.loop !155 3673: ; preds = %.preheader4186._crit_edge, %.preheader4186.preheader - %.lcssa9787 = phi i8 [ %.pr7335, %.preheader4186._crit_edge ], [ %3667, %.preheader4186.preheader ] + %.lcssa9771 = phi i8 [ %.pr7335, %.preheader4186._crit_edge ], [ %3667, %.preheader4186.preheader ] %.4.lcssa = phi ptr [ %3671, %.preheader4186._crit_edge ], [ %3666, %.preheader4186.preheader ] - %3674 = add i8 %.lcssa9787, -58 + %3674 = add i8 %.lcssa9771, -58 %.not3817 = icmp ult i8 %3674, -10 br i1 %.not3817, label %.thread7336, label %3675, !prof !3 3675: ; preds = %3673 - %3676 = zext nneg i8 %.lcssa9787 to i64 + %3676 = zext nneg i8 %.lcssa9771 to i64 %3677 = add nsw i64 %3676, -48 %3678 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %4066 @@ -15192,7 +15192,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 .thread7336: ; preds = %3673, %3679 %.17339 = phi ptr [ %3654, %3679 ], [ %.4.lcssa, %3673 ] - %3682 = phi i8 [ %3655, %3679 ], [ %.lcssa9787, %3673 ] + %3682 = phi i8 [ %3655, %3679 ], [ %.lcssa9771, %3673 ] %3683 = and i8 %3682, -33 %.not3819.not = icmp eq i8 %3683, 69 br i1 %.not3819.not, label %3684, label %.loopexit4174, !prof !3 @@ -16375,8 +16375,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit570.thread .preheader4183thread-pre-split: ; preds = %.preheader4183thread-pre-split.lr.ph, %.preheader4183thread-pre-split - %.910141 = phi ptr [ %4339, %.preheader4183thread-pre-split.lr.ph ], [ %4344, %.preheader4183thread-pre-split ] - %4344 = getelementptr inbounds nuw i8, ptr %.910141, i64 1 + %.910125 = phi ptr [ %4339, %.preheader4183thread-pre-split.lr.ph ], [ %4344, %.preheader4183thread-pre-split ] + %4344 = getelementptr inbounds nuw i8, ptr %.910125, i64 1 %.pr7340 = load i8, ptr %4344, align 1, !tbaa !75 %4345 = icmp eq i8 %.pr7340, 48 br i1 %4345, label %.preheader4183thread-pre-split, label %.preheader4183..preheader4182_crit_edge, !llvm.loop !161 @@ -16385,14 +16385,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %.preheader4182, !llvm.loop !161 .preheader4182: ; preds = %.preheader4183..preheader4182_crit_edge, %.preheader4183.preheader - %.lcssa9783 = phi i8 [ %.pr7340, %.preheader4183..preheader4182_crit_edge ], [ %4340, %.preheader4183.preheader ] + %.lcssa9767 = phi i8 [ %.pr7340, %.preheader4183..preheader4182_crit_edge ], [ %4340, %.preheader4183.preheader ] %.9.lcssa = phi ptr [ %4344, %.preheader4183..preheader4182_crit_edge ], [ %4339, %.preheader4183.preheader ] - %4346 = add i8 %.lcssa9783, -58 + %4346 = add i8 %.lcssa9767, -58 %.not38554700 = icmp ult i8 %4346, -10 br i1 %.not38554700, label %._crit_edge4704, label %.lr.ph4703 .lr.ph4703: ; preds = %.preheader4182, %.lr.ph4703 - %4347 = phi i8 [ %4353, %.lr.ph4703 ], [ %.lcssa9783, %.preheader4182 ] + %4347 = phi i8 [ %4353, %.lr.ph4703 ], [ %.lcssa9767, %.preheader4182 ] %.0599.i5144702 = phi i64 [ %4352, %.lr.ph4703 ], [ 0, %.preheader4182 ] %.104701 = phi ptr [ %4348, %.lr.ph4703 ], [ %.9.lcssa, %.preheader4182 ] %4348 = getelementptr inbounds nuw i8, ptr %.104701, i64 1 @@ -18561,8 +18561,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit.thread .preheader4051thread-pre-split: ; preds = %.preheader4051thread-pre-split.lr.ph, %.preheader4051thread-pre-split - %.4318410196 = phi ptr [ %5250, %.preheader4051thread-pre-split.lr.ph ], [ %5255, %.preheader4051thread-pre-split ] - %5255 = getelementptr inbounds nuw i8, ptr %.4318410196, i64 1 + %.4318410180 = phi ptr [ %5250, %.preheader4051thread-pre-split.lr.ph ], [ %5255, %.preheader4051thread-pre-split ] + %5255 = getelementptr inbounds nuw i8, ptr %.4318410180, i64 1 %.pr7360 = load i8, ptr %5255, align 1, !tbaa !75 %5256 = icmp eq i8 %.pr7360, 48 br i1 %5256, label %.preheader4051thread-pre-split, label %.preheader4051._crit_edge, !prof !156, !llvm.loop !155 @@ -18571,14 +18571,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %5257, !llvm.loop !155 5257: ; preds = %.preheader4051._crit_edge, %.preheader4051.preheader - %.lcssa8799 = phi i8 [ %.pr7360, %.preheader4051._crit_edge ], [ %5251, %.preheader4051.preheader ] + %.lcssa8795 = phi i8 [ %.pr7360, %.preheader4051._crit_edge ], [ %5251, %.preheader4051.preheader ] %.43184.lcssa = phi ptr [ %5255, %.preheader4051._crit_edge ], [ %5250, %.preheader4051.preheader ] - %5258 = add i8 %.lcssa8799, -58 + %5258 = add i8 %.lcssa8795, -58 %.not3705 = icmp ult i8 %5258, -10 br i1 %.not3705, label %.thread7361, label %5259, !prof !3 5259: ; preds = %5257 - %5260 = zext nneg i8 %.lcssa8799 to i64 + %5260 = zext nneg i8 %.lcssa8795 to i64 %5261 = add nsw i64 %5260, -48 %5262 = getelementptr inbounds i8, ptr %.43184.lcssa, i64 -1 br label %5650 @@ -18595,7 +18595,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = .thread7361: ; preds = %5257, %5263 %.131817364 = phi ptr [ %5238, %5263 ], [ %.43184.lcssa, %5257 ] - %5266 = phi i8 [ %5239, %5263 ], [ %.lcssa8799, %5257 ] + %5266 = phi i8 [ %5239, %5263 ], [ %.lcssa8795, %5257 ] %5267 = and i8 %5266, -33 %.not3707.not = icmp eq i8 %5267, 69 br i1 %.not3707.not, label %5268, label %.loopexit4039, !prof !3 @@ -19778,8 +19778,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit.thread .preheader4048thread-pre-split: ; preds = %.preheader4048thread-pre-split.lr.ph, %.preheader4048thread-pre-split - %.9318910199 = phi ptr [ %5923, %.preheader4048thread-pre-split.lr.ph ], [ %5928, %.preheader4048thread-pre-split ] - %5928 = getelementptr inbounds nuw i8, ptr %.9318910199, i64 1 + %.9318910183 = phi ptr [ %5923, %.preheader4048thread-pre-split.lr.ph ], [ %5928, %.preheader4048thread-pre-split ] + %5928 = getelementptr inbounds nuw i8, ptr %.9318910183, i64 1 %.pr7365 = load i8, ptr %5928, align 1, !tbaa !75 %5929 = icmp eq i8 %.pr7365, 48 br i1 %5929, label %.preheader4048thread-pre-split, label %.preheader4048..preheader4047_crit_edge, !llvm.loop !161 @@ -19788,14 +19788,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit896: ; preds = br label %.preheader4047, !llvm.loop !161 .preheader4047: ; preds = %.preheader4048..preheader4047_crit_edge, %.preheader4048.preheader - %.lcssa8795 = phi i8 [ %.pr7365, %.preheader4048..preheader4047_crit_edge ], [ %5924, %.preheader4048.preheader ] + %.lcssa8791 = phi i8 [ %.pr7365, %.preheader4048..preheader4047_crit_edge ], [ %5924, %.preheader4048.preheader ] %.93189.lcssa = phi ptr [ %5928, %.preheader4048..preheader4047_crit_edge ], [ %5923, %.preheader4048.preheader ] - %5930 = add i8 %.lcssa8795, -58 + %5930 = add i8 %.lcssa8791, -58 %.not37435546 = icmp ult i8 %5930, -10 br i1 %.not37435546, label %._crit_edge5550, label %.lr.ph5549 .lr.ph5549: ; preds = %.preheader4047, %.lr.ph5549 - %5931 = phi i8 [ %5937, %.lr.ph5549 ], [ %.lcssa8795, %.preheader4047 ] + %5931 = phi i8 [ %5937, %.lr.ph5549 ], [ %.lcssa8791, %.preheader4047 ] %.0599.i5548 = phi i64 [ %5936, %.lr.ph5549 ], [ 0, %.preheader4047 ] %.1031905547 = phi ptr [ %5932, %.lr.ph5549 ], [ %.93189.lcssa, %.preheader4047 ] %5932 = getelementptr inbounds nuw i8, ptr %.1031905547, i64 1 @@ -21901,7 +21901,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %6964 = and i32 %.sroa.21.2.in.lcssa, 12291 %6965 = icmp eq i32 %6964, 0 %6966 = or i1 %6963, %6965 - br i1 %6966, label %.lr.ph10205, label %.critedge6.i + br i1 %6966, label %.lr.ph10189, label %.critedge6.i .lr.ph5751: ; preds = %.preheader4028, %.lr.ph5751 %.sroa.02382.25750.in = phi i32 [ %.sroa.0.0.copyload.i965, %.lr.ph5751 ], [ %storemerge.i629.lcssa, %.preheader4028 ] @@ -21919,21 +21919,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %6973 = and i1 %6970, %6972 br i1 %6973, label %.lr.ph5751, label %.preheader4027.loopexit, !llvm.loop !178 -.lr.ph5765: ; preds = %.lr.ph10205 +.lr.ph5765: ; preds = %.lr.ph10189 %6974 = and i32 %.sroa.0.0.copyload.i966, 4 %6975 = icmp eq i32 %6974, 0 %6976 = and i32 %.sroa.0.0.copyload.i966, 12291 %6977 = icmp eq i32 %6976, 0 %6978 = or i1 %6975, %6977 - br i1 %6978, label %.lr.ph10205, label %.critedge6.i.loopexit, !llvm.loop !179 - -.lr.ph10205: ; preds = %.lr.ph5765.preheader, %.lr.ph5765 - %.14.i634576110204 = phi ptr [ %6980, %.lr.ph5765 ], [ %.13.i632.lcssa, %.lr.ph5765.preheader ] - %.7.i635576210203 = phi ptr [ %6979, %.lr.ph5765 ], [ %.6.i633.lcssa, %.lr.ph5765.preheader ] - %.sroa.02382.0.insert.insert2406576410202 = phi i32 [ %.sroa.0.0.copyload.i966, %.lr.ph5765 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5765.preheader ] - store i32 %.sroa.02382.0.insert.insert2406576410202, ptr %.7.i635576210203, align 1 - %6979 = getelementptr inbounds nuw i8, ptr %.7.i635576210203, i64 4 - %6980 = getelementptr inbounds nuw i8, ptr %.14.i634576110204, i64 4 + br i1 %6978, label %.lr.ph10189, label %.critedge6.i.loopexit, !llvm.loop !179 + +.lr.ph10189: ; preds = %.lr.ph5765.preheader, %.lr.ph5765 + %.14.i634576110188 = phi ptr [ %6980, %.lr.ph5765 ], [ %.13.i632.lcssa, %.lr.ph5765.preheader ] + %.7.i635576210187 = phi ptr [ %6979, %.lr.ph5765 ], [ %.6.i633.lcssa, %.lr.ph5765.preheader ] + %.sroa.02382.0.insert.insert2406576410186 = phi i32 [ %.sroa.0.0.copyload.i966, %.lr.ph5765 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5765.preheader ] + store i32 %.sroa.02382.0.insert.insert2406576410186, ptr %.7.i635576210187, align 1 + %6979 = getelementptr inbounds nuw i8, ptr %.7.i635576210187, i64 4 + %6980 = getelementptr inbounds nuw i8, ptr %.14.i634576110188, i64 4 %.sroa.0.0.copyload.i966 = load i32, ptr %6980, align 1 %6981 = and i32 %.sroa.0.0.copyload.i966, -1061109512 %6982 = icmp ne i32 %6981, -2139062032 @@ -21942,7 +21942,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %. %or.cond292.i = or i1 %.not289.i, %6982 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph5765, !llvm.loop !179 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10205 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10189 %6984 = trunc i32 %.sroa.0.0.copyload.i966 to i16 br label %.critedge6.i, !llvm.loop !179 @@ -23590,7 +23590,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %7788 = and i32 %.sroa.212663.2.in.lcssa, 12291 %7789 = icmp eq i32 %7788, 0 %7790 = or i1 %7787, %7789 - br i1 %7790, label %.lr.ph10173, label %.critedge6.i714 + br i1 %7790, label %.lr.ph10157, label %.critedge6.i714 .lr.ph5284: ; preds = %.preheader4103, %.lr.ph5284 %.sroa.02615.25283.in = phi i32 [ %.sroa.0.0.copyload.i949, %.lr.ph5284 ], [ %storemerge.i704.lcssa, %.preheader4103 ] @@ -23608,21 +23608,21 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %7797 = and i1 %7794, %7796 br i1 %7797, label %.lr.ph5284, label %.preheader4102.loopexit, !llvm.loop !178 -.lr.ph5298: ; preds = %.lr.ph10173 +.lr.ph5298: ; preds = %.lr.ph10157 %7798 = and i32 %.sroa.0.0.copyload.i950, 4 %7799 = icmp eq i32 %7798, 0 %7800 = and i32 %.sroa.0.0.copyload.i950, 12291 %7801 = icmp eq i32 %7800, 0 %7802 = or i1 %7799, %7801 - br i1 %7802, label %.lr.ph10173, label %.critedge6.i714.loopexit, !llvm.loop !179 - -.lr.ph10173: ; preds = %.lr.ph5298.preheader, %.lr.ph5298 - %.14.i710529410172 = phi ptr [ %7804, %.lr.ph5298 ], [ %.13.i708.lcssa, %.lr.ph5298.preheader ] - %.7.i711529510171 = phi ptr [ %7803, %.lr.ph5298 ], [ %.6.i709.lcssa, %.lr.ph5298.preheader ] - %.sroa.02615.0.insert.insert2639529710170 = phi i32 [ %.sroa.0.0.copyload.i950, %.lr.ph5298 ], [ %.sroa.212663.2.in.lcssa, %.lr.ph5298.preheader ] - store i32 %.sroa.02615.0.insert.insert2639529710170, ptr %.7.i711529510171, align 1 - %7803 = getelementptr inbounds nuw i8, ptr %.7.i711529510171, i64 4 - %7804 = getelementptr inbounds nuw i8, ptr %.14.i710529410172, i64 4 + br i1 %7802, label %.lr.ph10157, label %.critedge6.i714.loopexit, !llvm.loop !179 + +.lr.ph10157: ; preds = %.lr.ph5298.preheader, %.lr.ph5298 + %.14.i710529410156 = phi ptr [ %7804, %.lr.ph5298 ], [ %.13.i708.lcssa, %.lr.ph5298.preheader ] + %.7.i711529510155 = phi ptr [ %7803, %.lr.ph5298 ], [ %.6.i709.lcssa, %.lr.ph5298.preheader ] + %.sroa.02615.0.insert.insert2639529710154 = phi i32 [ %.sroa.0.0.copyload.i950, %.lr.ph5298 ], [ %.sroa.212663.2.in.lcssa, %.lr.ph5298.preheader ] + store i32 %.sroa.02615.0.insert.insert2639529710154, ptr %.7.i711529510155, align 1 + %7803 = getelementptr inbounds nuw i8, ptr %.7.i711529510155, i64 4 + %7804 = getelementptr inbounds nuw i8, ptr %.14.i710529410156, i64 4 %.sroa.0.0.copyload.i950 = load i32, ptr %7804, align 1 %7805 = and i32 %.sroa.0.0.copyload.i950, -1061109512 %7806 = icmp ne i32 %7805, -2139062032 @@ -23631,7 +23631,7 @@ _ZN13duckdb_yyjsonL9read_nullEPPhPNS_10yyjson_valE.exit: ; preds = %7056 %or.cond292.i713 = or i1 %.not289.i712, %7806 br i1 %or.cond292.i713, label %..critedge6.i714.loopexit_crit_edge, label %.lr.ph5298, !llvm.loop !179 -..critedge6.i714.loopexit_crit_edge: ; preds = %.lr.ph10173 +..critedge6.i714.loopexit_crit_edge: ; preds = %.lr.ph10157 %7808 = trunc i32 %.sroa.0.0.copyload.i950 to i16 br label %.critedge6.i714, !llvm.loop !179 @@ -24769,7 +24769,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %8393 = and i32 %.sroa.212546.2.in.lcssa, 12291 %8394 = icmp eq i32 %8393, 0 %8395 = or i1 %8392, %8394 - br i1 %8395, label %.lr.ph10189, label %.critedge6.i672 + br i1 %8395, label %.lr.ph10173, label %.critedge6.i672 .lr.ph5519: ; preds = %.preheader4069, %.lr.ph5519 %.sroa.02498.25518.in = phi i32 [ %.sroa.0.0.copyload.i957, %.lr.ph5519 ], [ %storemerge.i662.lcssa, %.preheader4069 ] @@ -24787,21 +24787,21 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %8402 = and i1 %8399, %8401 br i1 %8402, label %.lr.ph5519, label %.preheader4068.loopexit, !llvm.loop !178 -.lr.ph5533: ; preds = %.lr.ph10189 +.lr.ph5533: ; preds = %.lr.ph10173 %8403 = and i32 %.sroa.0.0.copyload.i958, 4 %8404 = icmp eq i32 %8403, 0 %8405 = and i32 %.sroa.0.0.copyload.i958, 12291 %8406 = icmp eq i32 %8405, 0 %8407 = or i1 %8404, %8406 - br i1 %8407, label %.lr.ph10189, label %.critedge6.i672.loopexit, !llvm.loop !179 - -.lr.ph10189: ; preds = %.lr.ph5533.preheader, %.lr.ph5533 - %.14.i668552910188 = phi ptr [ %8409, %.lr.ph5533 ], [ %.13.i666.lcssa, %.lr.ph5533.preheader ] - %.7.i669553010187 = phi ptr [ %8408, %.lr.ph5533 ], [ %.6.i667.lcssa, %.lr.ph5533.preheader ] - %.sroa.02498.0.insert.insert2522553210186 = phi i32 [ %.sroa.0.0.copyload.i958, %.lr.ph5533 ], [ %.sroa.212546.2.in.lcssa, %.lr.ph5533.preheader ] - store i32 %.sroa.02498.0.insert.insert2522553210186, ptr %.7.i669553010187, align 1 - %8408 = getelementptr inbounds nuw i8, ptr %.7.i669553010187, i64 4 - %8409 = getelementptr inbounds nuw i8, ptr %.14.i668552910188, i64 4 + br i1 %8407, label %.lr.ph10173, label %.critedge6.i672.loopexit, !llvm.loop !179 + +.lr.ph10173: ; preds = %.lr.ph5533.preheader, %.lr.ph5533 + %.14.i668552910172 = phi ptr [ %8409, %.lr.ph5533 ], [ %.13.i666.lcssa, %.lr.ph5533.preheader ] + %.7.i669553010171 = phi ptr [ %8408, %.lr.ph5533 ], [ %.6.i667.lcssa, %.lr.ph5533.preheader ] + %.sroa.02498.0.insert.insert2522553210170 = phi i32 [ %.sroa.0.0.copyload.i958, %.lr.ph5533 ], [ %.sroa.212546.2.in.lcssa, %.lr.ph5533.preheader ] + store i32 %.sroa.02498.0.insert.insert2522553210170, ptr %.7.i669553010171, align 1 + %8408 = getelementptr inbounds nuw i8, ptr %.7.i669553010171, i64 4 + %8409 = getelementptr inbounds nuw i8, ptr %.14.i668552910172, i64 4 %.sroa.0.0.copyload.i958 = load i32, ptr %8409, align 1 %8410 = and i32 %.sroa.0.0.copyload.i958, -1061109512 %8411 = icmp ne i32 %8410, -2139062032 @@ -24810,7 +24810,7 @@ _ZN13duckdb_yyjsonL11read_stringEPPhS0_bPNS_10yyjson_valEPPKc.exit721: ; preds = %or.cond292.i671 = or i1 %.not289.i670, %8411 br i1 %or.cond292.i671, label %..critedge6.i672.loopexit_crit_edge, label %.lr.ph5533, !llvm.loop !179 -..critedge6.i672.loopexit_crit_edge: ; preds = %.lr.ph10189 +..critedge6.i672.loopexit_crit_edge: ; preds = %.lr.ph10173 %8413 = trunc i32 %.sroa.0.0.copyload.i958 to i16 br label %.critedge6.i672, !llvm.loop !179 @@ -25093,8 +25093,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit356.thread .preheader4091thread-pre-split: ; preds = %.preheader4091thread-pre-split.lr.ph, %.preheader4091thread-pre-split - %.4322210180 = phi ptr [ %8515, %.preheader4091thread-pre-split.lr.ph ], [ %8520, %.preheader4091thread-pre-split ] - %8520 = getelementptr inbounds nuw i8, ptr %.4322210180, i64 1 + %.4322210164 = phi ptr [ %8515, %.preheader4091thread-pre-split.lr.ph ], [ %8520, %.preheader4091thread-pre-split ] + %8520 = getelementptr inbounds nuw i8, ptr %.4322210164, i64 1 %.pr7385 = load i8, ptr %8520, align 1, !tbaa !75 %8521 = icmp eq i8 %.pr7385, 48 br i1 %8521, label %.preheader4091thread-pre-split, label %.preheader4091._crit_edge, !prof !156, !llvm.loop !155 @@ -25103,14 +25103,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %8522, !llvm.loop !155 8522: ; preds = %.preheader4091._crit_edge, %.preheader4091.preheader - %.lcssa9023 = phi i8 [ %.pr7385, %.preheader4091._crit_edge ], [ %8516, %.preheader4091.preheader ] + %.lcssa9015 = phi i8 [ %.pr7385, %.preheader4091._crit_edge ], [ %8516, %.preheader4091.preheader ] %.43222.lcssa = phi ptr [ %8520, %.preheader4091._crit_edge ], [ %8515, %.preheader4091.preheader ] - %8523 = add i8 %.lcssa9023, -58 + %8523 = add i8 %.lcssa9015, -58 %.not3577 = icmp ult i8 %8523, -10 br i1 %.not3577, label %.thread7386, label %8524, !prof !3 8524: ; preds = %8522 - %8525 = zext nneg i8 %.lcssa9023 to i64 + %8525 = zext nneg i8 %.lcssa9015 to i64 %8526 = add nsw i64 %8525, -48 %8527 = getelementptr inbounds i8, ptr %.43222.lcssa, i64 -1 br label %8915 @@ -25127,7 +25127,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = .thread7386: ; preds = %8522, %8528 %.132197389 = phi ptr [ %8503, %8528 ], [ %.43222.lcssa, %8522 ] - %8531 = phi i8 [ %8504, %8528 ], [ %.lcssa9023, %8522 ] + %8531 = phi i8 [ %8504, %8528 ], [ %.lcssa9015, %8522 ] %8532 = and i8 %8531, -33 %.not3579.not = icmp eq i8 %8532, 69 br i1 %.not3579.not, label %8533, label %.loopexit4079, !prof !3 @@ -26310,8 +26310,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %_ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit356.thread .preheader4088thread-pre-split: ; preds = %.preheader4088thread-pre-split.lr.ph, %.preheader4088thread-pre-split - %.9322710183 = phi ptr [ %9188, %.preheader4088thread-pre-split.lr.ph ], [ %9193, %.preheader4088thread-pre-split ] - %9193 = getelementptr inbounds nuw i8, ptr %.9322710183, i64 1 + %.9322710167 = phi ptr [ %9188, %.preheader4088thread-pre-split.lr.ph ], [ %9193, %.preheader4088thread-pre-split ] + %9193 = getelementptr inbounds nuw i8, ptr %.9322710167, i64 1 %.pr7390 = load i8, ptr %9193, align 1, !tbaa !75 %9194 = icmp eq i8 %.pr7390, 48 br i1 %9194, label %.preheader4088thread-pre-split, label %.preheader4088..preheader4087_crit_edge, !llvm.loop !161 @@ -26320,14 +26320,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit888: ; preds = br label %.preheader4087, !llvm.loop !161 .preheader4087: ; preds = %.preheader4088..preheader4087_crit_edge, %.preheader4088.preheader - %.lcssa9019 = phi i8 [ %.pr7390, %.preheader4088..preheader4087_crit_edge ], [ %9189, %.preheader4088.preheader ] + %.lcssa9011 = phi i8 [ %.pr7390, %.preheader4088..preheader4087_crit_edge ], [ %9189, %.preheader4088.preheader ] %.93227.lcssa = phi ptr [ %9193, %.preheader4088..preheader4087_crit_edge ], [ %9188, %.preheader4088.preheader ] - %9195 = add i8 %.lcssa9019, -58 + %9195 = add i8 %.lcssa9011, -58 %.not36155317 = icmp ult i8 %9195, -10 br i1 %.not36155317, label %._crit_edge5321, label %.lr.ph5320 .lr.ph5320: ; preds = %.preheader4087, %.lr.ph5320 - %9196 = phi i8 [ %9202, %.lr.ph5320 ], [ %.lcssa9019, %.preheader4087 ] + %9196 = phi i8 [ %9202, %.lr.ph5320 ], [ %.lcssa9011, %.preheader4087 ] %.0599.i3005319 = phi i64 [ %9201, %.lr.ph5320 ], [ 0, %.preheader4087 ] %.1032285318 = phi ptr [ %9197, %.lr.ph5320 ], [ %.93227.lcssa, %.preheader4087 ] %9197 = getelementptr inbounds nuw i8, ptr %.1032285318, i64 1 @@ -28573,8 +28573,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %._crit_edge1111.sink.split .preheader709thread-pre-split: ; preds = %.preheader709thread-pre-split.lr.ph, %.preheader709thread-pre-split - %.41620 = phi ptr [ %109, %.preheader709thread-pre-split.lr.ph ], [ %114, %.preheader709thread-pre-split ] - %114 = getelementptr inbounds nuw i8, ptr %.41620, i64 1 + %.41616 = phi ptr [ %109, %.preheader709thread-pre-split.lr.ph ], [ %114, %.preheader709thread-pre-split ] + %114 = getelementptr inbounds nuw i8, ptr %.41616, i64 1 %.pr = load i8, ptr %114, align 1, !tbaa !75 %115 = icmp eq i8 %.pr, 48 br i1 %115, label %.preheader709thread-pre-split, label %.preheader709._crit_edge, !prof !156, !llvm.loop !155 @@ -28583,14 +28583,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %116, !llvm.loop !155 116: ; preds = %.preheader709._crit_edge, %.preheader709.preheader - %.lcssa1619 = phi i8 [ %.pr, %.preheader709._crit_edge ], [ %110, %.preheader709.preheader ] + %.lcssa1615 = phi i8 [ %.pr, %.preheader709._crit_edge ], [ %110, %.preheader709.preheader ] %.4.lcssa = phi ptr [ %114, %.preheader709._crit_edge ], [ %109, %.preheader709.preheader ] - %117 = add i8 %.lcssa1619, -58 + %117 = add i8 %.lcssa1615, -58 %.not631 = icmp ult i8 %117, -10 br i1 %.not631, label %.thread1240, label %118, !prof !3 118: ; preds = %116 - %119 = zext nneg i8 %.lcssa1619 to i64 + %119 = zext nneg i8 %.lcssa1615 to i64 %120 = add nsw i64 %119, -48 %121 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %509 @@ -28607,7 +28607,7 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 .thread1240: ; preds = %116, %122 %.15511243 = phi ptr [ %97, %122 ], [ %.4.lcssa, %116 ] - %125 = phi i8 [ %98, %122 ], [ %.lcssa1619, %116 ] + %125 = phi i8 [ %98, %122 ], [ %.lcssa1615, %116 ] %126 = and i8 %125, -33 %.not633.not = icmp eq i8 %126, 69 br i1 %.not633.not, label %127, label %.loopexit697, !prof !3 @@ -29790,8 +29790,8 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %._crit_edge1111.sink.split .preheader706thread-pre-split: ; preds = %.preheader706thread-pre-split.lr.ph, %.preheader706thread-pre-split - %.91622 = phi ptr [ %782, %.preheader706thread-pre-split.lr.ph ], [ %787, %.preheader706thread-pre-split ] - %787 = getelementptr inbounds nuw i8, ptr %.91622, i64 1 + %.91618 = phi ptr [ %782, %.preheader706thread-pre-split.lr.ph ], [ %787, %.preheader706thread-pre-split ] + %787 = getelementptr inbounds nuw i8, ptr %.91618, i64 1 %.pr1244 = load i8, ptr %787, align 1, !tbaa !75 %788 = icmp eq i8 %.pr1244, 48 br i1 %788, label %.preheader706thread-pre-split, label %.preheader706..preheader705_crit_edge, !llvm.loop !161 @@ -29800,14 +29800,14 @@ _ZN13duckdb_yyjsonL15read_inf_or_nanEbPPhS1_PNS_10yyjson_valE.exit: ; preds = %3 br label %.preheader705, !llvm.loop !161 .preheader705: ; preds = %.preheader706..preheader705_crit_edge, %.preheader706.preheader - %.lcssa1615 = phi i8 [ %.pr1244, %.preheader706..preheader705_crit_edge ], [ %783, %.preheader706.preheader ] + %.lcssa1611 = phi i8 [ %.pr1244, %.preheader706..preheader705_crit_edge ], [ %783, %.preheader706.preheader ] %.9.lcssa = phi ptr [ %787, %.preheader706..preheader705_crit_edge ], [ %782, %.preheader706.preheader ] - %789 = add i8 %.lcssa1615, -58 + %789 = add i8 %.lcssa1611, -58 %.not669754 = icmp ult i8 %789, -10 br i1 %.not669754, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader705, %.lr.ph - %790 = phi i8 [ %796, %.lr.ph ], [ %.lcssa1615, %.preheader705 ] + %790 = phi i8 [ %796, %.lr.ph ], [ %.lcssa1611, %.preheader705 ] %.0599.i756 = phi i64 [ %795, %.lr.ph ], [ 0, %.preheader705 ] %.10755 = phi ptr [ %791, %.lr.ph ], [ %.9.lcssa, %.preheader705 ] %791 = getelementptr inbounds nuw i8, ptr %.10755, i64 1 @@ -31886,7 +31886,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %1822 = and i32 %.sroa.21.2.in.lcssa, 12291 %1823 = icmp eq i32 %1822, 0 %1824 = or i1 %1821, %1823 - br i1 %1824, label %.lr.ph1628, label %.critedge6.i + br i1 %1824, label %.lr.ph1624, label %.critedge6.i .lr.ph951: ; preds = %.preheader688, %.lr.ph951 %.sroa.0.2950.in = phi i32 [ %.sroa.0.0.copyload.i174, %.lr.ph951 ], [ %storemerge.i156.lcssa, %.preheader688 ] @@ -31904,21 +31904,21 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %1831 = and i1 %1828, %1830 br i1 %1831, label %.lr.ph951, label %.preheader687.loopexit, !llvm.loop !178 -.lr.ph965: ; preds = %.lr.ph1628 +.lr.ph965: ; preds = %.lr.ph1624 %1832 = and i32 %.sroa.0.0.copyload.i175, 4 %1833 = icmp eq i32 %1832, 0 %1834 = and i32 %.sroa.0.0.copyload.i175, 12291 %1835 = icmp eq i32 %1834, 0 %1836 = or i1 %1833, %1835 - br i1 %1836, label %.lr.ph1628, label %.critedge6.i.loopexit, !llvm.loop !179 - -.lr.ph1628: ; preds = %.lr.ph965.preheader, %.lr.ph965 - %.14.i1619611627 = phi ptr [ %1838, %.lr.ph965 ], [ %.13.i159.lcssa, %.lr.ph965.preheader ] - %.7.i1629621626 = phi ptr [ %1837, %.lr.ph965 ], [ %.6.i160.lcssa, %.lr.ph965.preheader ] - %.sroa.0.0.insert.insert4449641625 = phi i32 [ %.sroa.0.0.copyload.i175, %.lr.ph965 ], [ %.sroa.21.2.in.lcssa, %.lr.ph965.preheader ] - store i32 %.sroa.0.0.insert.insert4449641625, ptr %.7.i1629621626, align 1 - %1837 = getelementptr inbounds nuw i8, ptr %.7.i1629621626, i64 4 - %1838 = getelementptr inbounds nuw i8, ptr %.14.i1619611627, i64 4 + br i1 %1836, label %.lr.ph1624, label %.critedge6.i.loopexit, !llvm.loop !179 + +.lr.ph1624: ; preds = %.lr.ph965.preheader, %.lr.ph965 + %.14.i1619611623 = phi ptr [ %1838, %.lr.ph965 ], [ %.13.i159.lcssa, %.lr.ph965.preheader ] + %.7.i1629621622 = phi ptr [ %1837, %.lr.ph965 ], [ %.6.i160.lcssa, %.lr.ph965.preheader ] + %.sroa.0.0.insert.insert4449641621 = phi i32 [ %.sroa.0.0.copyload.i175, %.lr.ph965 ], [ %.sroa.21.2.in.lcssa, %.lr.ph965.preheader ] + store i32 %.sroa.0.0.insert.insert4449641621, ptr %.7.i1629621622, align 1 + %1837 = getelementptr inbounds nuw i8, ptr %.7.i1629621622, i64 4 + %1838 = getelementptr inbounds nuw i8, ptr %.14.i1619611623, i64 4 %.sroa.0.0.copyload.i175 = load i32, ptr %1838, align 1 %1839 = and i32 %.sroa.0.0.copyload.i175, -1061109512 %1840 = icmp ne i32 %1839, -2139062032 @@ -31927,7 +31927,7 @@ _ZN13duckdb_yyjsonL11read_numberEPPhS1_jPNS_10yyjson_valEPPKc.exit: ; preds = %1 %or.cond292.i = or i1 %.not289.i, %1840 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph965, !llvm.loop !179 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1628 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1624 %1842 = trunc i32 %.sroa.0.0.copyload.i175 to i16 br label %.critedge6.i, !llvm.loop !179 @@ -32917,8 +32917,8 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader371thread-pre-split, !llvm.loop !155 .preheader371thread-pre-split: ; preds = %.preheader371thread-pre-split.lr.ph, %.preheader371thread-pre-split - %.4733 = phi ptr [ %94, %.preheader371thread-pre-split.lr.ph ], [ %98, %.preheader371thread-pre-split ] - %98 = getelementptr inbounds nuw i8, ptr %.4733, i64 1 + %.4729 = phi ptr [ %94, %.preheader371thread-pre-split.lr.ph ], [ %98, %.preheader371thread-pre-split ] + %98 = getelementptr inbounds nuw i8, ptr %.4729, i64 1 %.pr = load i8, ptr %98, align 1, !tbaa !75 %99 = icmp eq i8 %.pr, 48 br i1 %99, label %.preheader371thread-pre-split, label %.preheader371._crit_edge, !prof !156, !llvm.loop !155 @@ -32927,14 +32927,14 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %100, !llvm.loop !155 100: ; preds = %.preheader371._crit_edge, %.preheader371.preheader - %.lcssa732 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %95, %.preheader371.preheader ] + %.lcssa728 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %95, %.preheader371.preheader ] %.4.lcssa = phi ptr [ %98, %.preheader371._crit_edge ], [ %94, %.preheader371.preheader ] - %101 = add i8 %.lcssa732, -58 + %101 = add i8 %.lcssa728, -58 %.not308 = icmp ult i8 %101, -10 br i1 %.not308, label %.thread652, label %102, !prof !3 102: ; preds = %100 - %103 = zext nneg i8 %.lcssa732 to i64 + %103 = zext nneg i8 %.lcssa728 to i64 %104 = add nsw i64 %103, -48 %105 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %488 @@ -32946,7 +32946,7 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj .thread652: ; preds = %100, %106 %.1655 = phi ptr [ %82, %106 ], [ %.4.lcssa, %100 ] - %108 = phi i8 [ %83, %106 ], [ %.lcssa732, %100 ] + %108 = phi i8 [ %83, %106 ], [ %.lcssa728, %100 ] %109 = and i8 %108, -33 %.not310.not = icmp eq i8 %109, 69 br i1 %.not310.not, label %110, label %.loopexit, !prof !3 @@ -34073,8 +34073,8 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader368thread-pre-split, !llvm.loop !161 .preheader368thread-pre-split: ; preds = %.preheader368thread-pre-split.lr.ph, %.preheader368thread-pre-split - %.9735 = phi ptr [ %751, %.preheader368thread-pre-split.lr.ph ], [ %755, %.preheader368thread-pre-split ] - %755 = getelementptr inbounds nuw i8, ptr %.9735, i64 1 + %.9731 = phi ptr [ %751, %.preheader368thread-pre-split.lr.ph ], [ %755, %.preheader368thread-pre-split ] + %755 = getelementptr inbounds nuw i8, ptr %.9731, i64 1 %.pr656 = load i8, ptr %755, align 1, !tbaa !75 %756 = icmp eq i8 %.pr656, 48 br i1 %756, label %.preheader368thread-pre-split, label %.preheader368..preheader367_crit_edge, !llvm.loop !161 @@ -34083,14 +34083,14 @@ define noundef ptr @_ZN13duckdb_yyjson18yyjson_read_numberEPKcPNS_10yyjson_valEj br label %.preheader367, !llvm.loop !161 .preheader367: ; preds = %.preheader368..preheader367_crit_edge, %.preheader368.preheader - %.lcssa728 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %752, %.preheader368.preheader ] + %.lcssa724 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %752, %.preheader368.preheader ] %.9.lcssa = phi ptr [ %755, %.preheader368..preheader367_crit_edge ], [ %751, %.preheader368.preheader ] - %757 = add i8 %.lcssa728, -58 + %757 = add i8 %.lcssa724, -58 %.not346379 = icmp ult i8 %757, -10 br i1 %.not346379, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader367, %.lr.ph - %758 = phi i8 [ %764, %.lr.ph ], [ %.lcssa728, %.preheader367 ] + %758 = phi i8 [ %764, %.lr.ph ], [ %.lcssa724, %.preheader367 ] %.0599.i381 = phi i64 [ %763, %.lr.ph ], [ 0, %.preheader367 ] %.10380 = phi ptr [ %759, %.lr.ph ], [ %.9.lcssa, %.preheader367 ] %759 = getelementptr inbounds nuw i8, ptr %.10380, i64 1 diff --git a/bench/fmt/optimized/format-impl-test.ll b/bench/fmt/optimized/format-impl-test.ll index 3f44f425431..14daef16f28 100644 --- a/bench/fmt/optimized/format-impl-test.ll +++ b/bench/fmt/optimized/format-impl-test.ll @@ -34113,16 +34113,16 @@ _ZN3fmt3v116detail9dragonbox37floor_log10_pow2_minus_log10_4_over_3Ei.exit: ; pr %48 = lshr i128 %42, 90 %49 = trunc i128 %48 to i32 %.not.i.i = icmp eq i32 %49, 0 - br i1 %.not.i.i, label %50, label %.preheader191 + br i1 %.not.i.i, label %50, label %.preheader192 50: ; preds = %47 invoke void @_Z23throw_assertion_failurePKc(ptr noundef nonnull @.str.6) to label %.preheader191 unwind label %60 -.preheader191: ; preds = %50, %47 +.preheader192: ; preds = %50, %47 br label %51 -51: ; preds = %.preheader191, %51 +51: ; preds = %.preheader192, %51 %.0140 = phi i32 [ %53, %51 ], [ %49, %.preheader191 ] %.0.i.i = phi i32 [ %55, %51 ], [ 8, %.preheader191 ] %52 = mul i32 %.0140, -1030792151 diff --git a/bench/image-rs/optimized/30755d6iao7ojcvl.ll b/bench/image-rs/optimized/30755d6iao7ojcvl.ll index ec254026e9a..548196cd2ea 100644 --- a/bench/image-rs/optimized/30755d6iao7ojcvl.ll +++ b/bench/image-rs/optimized/30755d6iao7ojcvl.ll @@ -1100,210 +1100,210 @@ define hidden void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension17hb6c705 %.4.extract.trunc = trunc nuw i48 %.4.extract.shift to i16 %9 = and i48 %2, -65535 %or.cond7 = icmp eq i48 %9, 1 - br i1 %or.cond7, label %19, label %10 + br i1 %or.cond7, label %19, label %12 -10: ; preds = %3 +12: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !176) - %11 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %12 = load ptr, ptr %11, align 8, !alias.scope !176, !noundef !13 - %13 = icmp eq ptr %12, null - br i1 %13, label %33, label %14 + %13 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %14 = load ptr, ptr %13, align 8, !alias.scope !176, !noundef !13 + %15 = icmp eq ptr %14, null + br i1 %15, label %35, label %16 -14: ; preds = %10 +16: ; preds = %12 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !179 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hd96ac60c1dd9bdefE.llvm.9832446184049035033(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull inttoptr (i64 154618822659 to ptr)), !noalias !179 - %15 = load i8, ptr %4, align 8, !range !159, !alias.scope !186, !noalias !179, !noundef !13 - %16 = icmp eq i8 %15, 3 - br i1 %16, label %17, label %21 + %17 = load i8, ptr %4, align 8, !range !159, !alias.scope !186, !noalias !179, !noundef !13 + %18 = icmp eq i8 %17, 3 + br i1 %18, label %19, label %23 -17: ; preds = %14 - %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h9f2566cd0eaf386dE.llvm.9832446184049035033"(ptr noalias noundef nonnull align 8 dereferenceable(8) %18), !noalias !179 - br label %21 +19: ; preds = %16 + %20 = getelementptr inbounds nuw i8, ptr %4, i64 8 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h9f2566cd0eaf386dE.llvm.9832446184049035033"(ptr noalias noundef nonnull align 8 dereferenceable(8) %20), !noalias !179 + br label %23 -19: ; preds = %3 +21: ; preds = %3 store i8 2, ptr %0, align 8 - br label %20 + br label %22 -20: ; preds = %85, %65, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", %35, %33, %19 +22: ; preds = %87, %67, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", %37, %35, %21 ret void -21: ; preds = %14, %17 +23: ; preds = %16, %19 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !179 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !189 store i8 33, ptr %6, align 1, !noalias !189 call void @llvm.experimental.noalias.scope.decl(metadata !192) - %22 = load i64, ptr %12, align 8, !alias.scope !192, !noalias !195, !noundef !13 - %23 = getelementptr inbounds nuw i8, ptr %12, i64 16 - %24 = load i64, ptr %23, align 8, !alias.scope !192, !noalias !195, !noundef !13 - %25 = sub i64 %22, %24 - %26 = icmp ugt i64 %25, 1 - br i1 %26, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread": ; preds = %21 - %27 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %28 = load ptr, ptr %27, align 8, !alias.scope !192, !noalias !195, !nonnull !13, !noundef !13 - %29 = getelementptr inbounds i8, ptr %28, i64 %24 - store i8 33, ptr %29, align 1, !noalias !200 - %30 = add i64 %24, 1 - store i64 %30, ptr %23, align 8, !alias.scope !192, !noalias !195 + %24 = load i64, ptr %14, align 8, !alias.scope !192, !noalias !195, !noundef !13 + %25 = getelementptr inbounds nuw i8, ptr %14, i64 16 + %26 = load i64, ptr %25, align 8, !alias.scope !192, !noalias !195, !noundef !13 + %27 = sub i64 %24, %26 + %28 = icmp ugt i64 %27, 1 + br i1 %28, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread": ; preds = %23 + %29 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %30 = load ptr, ptr %29, align 8, !alias.scope !192, !noalias !195, !nonnull !13, !noundef !13 + %31 = getelementptr inbounds i8, ptr %30, i64 %26 + store i8 33, ptr %31, align 1, !noalias !200 + %32 = add i64 %26, 1 + store i64 %32, ptr %25, align 8, !alias.scope !192, !noalias !195 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !189 - br label %34 + br label %36 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit": ; preds = %21 - %31 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef 1), !noalias !201 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit": ; preds = %23 + %33 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %6, i64 noundef 1), !noalias !201 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !189 - %32 = icmp eq ptr %31, null - br i1 %32, label %34, label %35 + %34 = icmp eq ptr %33, null + br i1 %34, label %36, label %37 -33: ; preds = %10 +35: ; preds = %12 store i8 1, ptr %0, align 8 %.sroa.4178.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr inttoptr (i64 154618822659 to ptr), ptr %.sroa.4178.0..sroa_idx, align 8 - br label %20 + br label %22 -34: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" +36: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" %trunc = trunc i48 %2 to i1 br i1 %trunc, label %66, label %36 -35: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" +37: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit" store i8 1, ptr %0, align 8 %.sroa.4181.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %31, ptr %.sroa.4181.0..sroa_idx, align 8 - br label %20 + store ptr %33, ptr %.sroa.4181.0..sroa_idx, align 8 + br label %22 -36: ; preds = %34 +38: ; preds = %36 call void @llvm.lifetime.start.p0(ptr nonnull %8) - %37 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i8 -7, ptr %37, align 8, !alias.scope !202, !noalias !209 - %38 = getelementptr inbounds nuw i8, ptr %8, i64 9 - store i8 4, ptr %38, align 1, !alias.scope !213, !noalias !220 - %39 = getelementptr inbounds nuw i8, ptr %8, i64 10 - store i8 %.1.extract.trunc, ptr %39, align 2, !alias.scope !224, !noalias !231 - %40 = getelementptr inbounds nuw i8, ptr %8, i64 11 - store i16 %.4.extract.trunc, ptr %40, align 1, !alias.scope !235, !noalias !242 + %39 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i8 -7, ptr %39, align 8, !alias.scope !202, !noalias !209 + %40 = getelementptr inbounds nuw i8, ptr %8, i64 9 + store i8 4, ptr %40, align 1, !alias.scope !213, !noalias !220 + %41 = getelementptr inbounds nuw i8, ptr %8, i64 10 + store i8 %.1.extract.trunc, ptr %41, align 2, !alias.scope !224, !noalias !231 + %42 = getelementptr inbounds nuw i8, ptr %8, i64 11 + store i16 %.4.extract.trunc, ptr %42, align 1, !alias.scope !235, !noalias !242 call void @llvm.experimental.noalias.scope.decl(metadata !246) - %41 = getelementptr inbounds nuw i8, ptr %8, i64 13 - store i8 %.sroa.4.sroa.0.0.extract.trunc, ptr %41, align 1, !alias.scope !249, !noalias !254 + %43 = getelementptr inbounds nuw i8, ptr %8, i64 13 + store i8 %.sroa.4.sroa.0.0.extract.trunc, ptr %43, align 1, !alias.scope !249, !noalias !254 store i64 6, ptr %8, align 8, !alias.scope !258, !noalias !260 call void @llvm.experimental.noalias.scope.decl(metadata !262) - %42 = load i64, ptr %12, align 8, !alias.scope !262, !noalias !265, !noundef !13 - %43 = load i64, ptr %23, align 8, !alias.scope !262, !noalias !265, !noundef !13 - %44 = sub i64 %42, %43 - %45 = icmp ugt i64 %44, 6 - br i1 %45, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread": ; preds = %36 - %46 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %47 = load ptr, ptr %46, align 8, !alias.scope !262, !noalias !265, !nonnull !13, !noundef !13 - %48 = getelementptr inbounds i8, ptr %47, i64 %43 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %48, ptr noundef nonnull readonly align 8 dereferenceable(6) %37, i64 6, i1 false), !noalias !272 - %49 = add i64 %43, 6 - store i64 %49, ptr %23, align 8, !alias.scope !262, !noalias !265 - br label %52 + %44 = load i64, ptr %14, align 8, !alias.scope !262, !noalias !265, !noundef !13 + %45 = load i64, ptr %25, align 8, !alias.scope !262, !noalias !265, !noundef !13 + %46 = sub i64 %44, %45 + %47 = icmp ugt i64 %46, 6 + br i1 %47, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread": ; preds = %38 + %48 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %49 = load ptr, ptr %48, align 8, !alias.scope !262, !noalias !265, !nonnull !13, !noundef !13 + %50 = getelementptr inbounds i8, ptr %49, i64 %45 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %50, ptr noundef nonnull readonly align 8 dereferenceable(6) %39, i64 6, i1 false), !noalias !272 + %51 = add i64 %45, 6 + store i64 %51, ptr %25, align 8, !alias.scope !262, !noalias !265 + br label %54 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit": ; preds = %36 - %50 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %37, i64 noundef 6), !noalias !273 - %51 = icmp eq ptr %50, null - br i1 %51, label %52, label %65 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit": ; preds = %38 + %52 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %39, i64 noundef 6), !noalias !273 + %53 = icmp eq ptr %52, null + br i1 %53, label %54, label %67 -52: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" +54: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %53 + br label %55 -53: ; preds = %84, %52 +55: ; preds = %86, %54 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !274 store i8 0, ptr %5, align 1, !noalias !274 call void @llvm.experimental.noalias.scope.decl(metadata !277) - %54 = load i64, ptr %12, align 8, !alias.scope !277, !noalias !280, !noundef !13 - %55 = load i64, ptr %23, align 8, !alias.scope !277, !noalias !280, !noundef !13 - %56 = sub i64 %54, %55 - %57 = icmp ugt i64 %56, 1 - br i1 %57, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread": ; preds = %53 - %58 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %59 = load ptr, ptr %58, align 8, !alias.scope !277, !noalias !280, !nonnull !13, !noundef !13 - %60 = getelementptr inbounds i8, ptr %59, i64 %55 - store i8 0, ptr %60, align 1, !noalias !285 - %61 = add i64 %55, 1 - store i64 %61, ptr %23, align 8, !alias.scope !277, !noalias !280 + %56 = load i64, ptr %14, align 8, !alias.scope !277, !noalias !280, !noundef !13 + %57 = load i64, ptr %25, align 8, !alias.scope !277, !noalias !280, !noundef !13 + %58 = sub i64 %56, %57 + %59 = icmp ugt i64 %58, 1 + br i1 %59, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread": ; preds = %55 + %60 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %61 = load ptr, ptr %60, align 8, !alias.scope !277, !noalias !280, !nonnull !13, !noundef !13 + %62 = getelementptr inbounds i8, ptr %61, i64 %57 + store i8 0, ptr %62, align 1, !noalias !285 + %63 = add i64 %57, 1 + store i64 %63, ptr %25, align 8, !alias.scope !277, !noalias !280 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !274 br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit" -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160": ; preds = %53 - %62 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef 1), !noalias !286 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160": ; preds = %55 + %64 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef 1), !noalias !286 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !274 - %63 = icmp eq ptr %62, null - br i1 %63, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", label %64 + %65 = icmp eq ptr %64, null + br i1 %65, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit", label %66 -64: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" +66: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" %.sroa.43.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %62, ptr %.sroa.43.0..sroa_idx.i, align 8, !alias.scope !287 + store ptr %64, ptr %.sroa.43.0..sroa_idx.i, align 8, !alias.scope !287 br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit" -"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit": ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160", %64 +"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h52037b248420b245E.exit": ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160", %66 %.sink.i = phi i8 [ 1, %64 ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160" ], [ 2, %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17h9b5b746d84772b2cE.llvm.7602948157661992270.exit160.thread" ] store i8 %.sink.i, ptr %0, align 8, !alias.scope !287 - br label %20 + br label %22 -65: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" +67: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit" store i8 1, ptr %0, align 8 %.sroa.4205.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %50, ptr %.sroa.4205.0..sroa_idx, align 8 + store ptr %52, ptr %.sroa.4205.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %20 + br label %22 -66: ; preds = %34 +68: ; preds = %36 call void @llvm.lifetime.start.p0(ptr nonnull %7) - %67 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i8 -1, ptr %67, align 8, !alias.scope !290, !noalias !297 - %68 = getelementptr inbounds nuw i8, ptr %7, i64 9 - store i8 11, ptr %68, align 1, !alias.scope !301, !noalias !308 - %69 = getelementptr inbounds nuw i8, ptr %7, i64 10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(11) %69, ptr noundef nonnull readonly align 1 dereferenceable(11) @anon.f6d9434fcf4bddc9e50dec3b041c07d1.1, i64 11, i1 false), !alias.scope !312, !noalias !319 - %70 = getelementptr inbounds nuw i8, ptr %7, i64 21 - store i8 3, ptr %70, align 1, !alias.scope !323, !noalias !330 - %71 = getelementptr inbounds nuw i8, ptr %7, i64 22 - store i8 1, ptr %71, align 2, !alias.scope !334, !noalias !341 + %69 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store i8 -1, ptr %69, align 8, !alias.scope !290, !noalias !297 + %70 = getelementptr inbounds nuw i8, ptr %7, i64 9 + store i8 11, ptr %70, align 1, !alias.scope !301, !noalias !308 + %71 = getelementptr inbounds nuw i8, ptr %7, i64 10 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(11) %71, ptr noundef nonnull readonly align 1 dereferenceable(11) @anon.f6d9434fcf4bddc9e50dec3b041c07d1.1, i64 11, i1 false), !alias.scope !312, !noalias !319 + %72 = getelementptr inbounds nuw i8, ptr %7, i64 21 + store i8 3, ptr %72, align 1, !alias.scope !323, !noalias !330 + %73 = getelementptr inbounds nuw i8, ptr %7, i64 22 + store i8 1, ptr %73, align 2, !alias.scope !334, !noalias !341 %trunc129 = trunc i48 %.2.extract.shift to i16 - %72 = icmp eq i16 %trunc129, 0 - %.4.extract.trunc. = select i1 %72, i16 %.4.extract.trunc, i16 0 + %74 = icmp eq i16 %trunc129, 0 + %.4.extract.trunc. = select i1 %74, i16 %.4.extract.trunc, i16 0 call void @llvm.experimental.noalias.scope.decl(metadata !345) - %73 = getelementptr inbounds nuw i8, ptr %7, i64 23 - store i16 %.4.extract.trunc., ptr %73, align 1, !alias.scope !348, !noalias !353 + %75 = getelementptr inbounds nuw i8, ptr %7, i64 23 + store i16 %.4.extract.trunc., ptr %75, align 1, !alias.scope !348, !noalias !353 store i64 17, ptr %7, align 8, !alias.scope !357, !noalias !359 call void @llvm.experimental.noalias.scope.decl(metadata !361) - %74 = load i64, ptr %12, align 8, !alias.scope !361, !noalias !364, !noundef !13 - %75 = load i64, ptr %23, align 8, !alias.scope !361, !noalias !364, !noundef !13 - %76 = sub i64 %74, %75 - %77 = icmp ugt i64 %76, 17 - br i1 %77, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" - -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread": ; preds = %66 - %78 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %79 = load ptr, ptr %78, align 8, !alias.scope !361, !noalias !364, !nonnull !13, !noundef !13 - %80 = getelementptr inbounds i8, ptr %79, i64 %75 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %80, ptr noundef nonnull readonly align 8 dereferenceable(17) %67, i64 17, i1 false), !noalias !371 - %81 = add i64 %75, 17 - store i64 %81, ptr %23, align 8, !alias.scope !361, !noalias !364 - br label %84 + %76 = load i64, ptr %14, align 8, !alias.scope !361, !noalias !364, !noundef !13 + %77 = load i64, ptr %25, align 8, !alias.scope !361, !noalias !364, !noundef !13 + %78 = sub i64 %76, %77 + %79 = icmp ugt i64 %78, 17 + br i1 %79, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" + +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread": ; preds = %68 + %80 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %81 = load ptr, ptr %80, align 8, !alias.scope !361, !noalias !364, !nonnull !13, !noundef !13 + %82 = getelementptr inbounds i8, ptr %81, i64 %77 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %82, ptr noundef nonnull readonly align 8 dereferenceable(17) %69, i64 17, i1 false), !noalias !371 + %83 = add i64 %77, 17 + store i64 %83, ptr %25, align 8, !alias.scope !361, !noalias !364 + br label %86 -"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177": ; preds = %66 - %82 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %12, ptr noalias noundef nonnull readonly align 1 %67, i64 noundef 17), !noalias !372 - %83 = icmp eq ptr %82, null - br i1 %83, label %84, label %85 +"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177": ; preds = %68 + %84 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hd8406cb176d99a6fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %69, i64 noundef 17), !noalias !372 + %85 = icmp eq ptr %84, null + br i1 %85, label %86, label %87 -84: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" +86: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177.thread", %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %53 + br label %55 -85: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" +87: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hfe69d63a1f9513c8E.exit177" store i8 1, ptr %0, align 8 %.sroa.4232.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %82, ptr %.sroa.4232.0..sroa_idx, align 8 + store ptr %84, ptr %.sroa.4232.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %20 + br label %22 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll index 10635a9ad04..3681e2a3886 100644 --- a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll +++ b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll @@ -30493,7 +30493,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd %10 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr106drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..cursor..Cursor$LT$$RF$$u5b$u8$u5d$$GT$$GT$$GT$17hd4b148b124532403E"(ptr noalias noundef nonnull align 8 dereferenceable(320) %8) #22 - to label %52 unwind label %50 + to label %52 unwind label %51 11: ; preds = %2 call void @llvm.experimental.noalias.scope.decl(metadata !3985) @@ -30566,7 +30566,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd %26 = getelementptr inbounds nuw i8, ptr %8, i64 96 %27 = load i64, ptr %26, align 8, !range !101, !alias.scope !4008, !noundef !19 %28 = icmp eq i64 %27, -9223372036854775808 - br i1 %28, label %.thread99, label %29 + br i1 %28, label %47, label %29 29: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %8, i64 112 @@ -30610,7 +30610,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 %.sroa.0.0.copyload, ptr %41, align 8 %.sroa.244.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244, i64 63, i1 false) - br label %49 + br label %50 42: ; preds = %29, %29, %33, %37 %spec.select = phi i8 [ 2, %29 ], [ 0, %33 ], [ 1, %37 ], [ 2, %29 ] @@ -30625,11 +30625,11 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 %spec.select, ptr %.sroa.536.0..sroa_idx, align 4 %.sroa.637.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 325 store i8 %46, ptr %.sroa.637.0..sroa_idx, align 1 - br label %48 + br label %49 -.thread99: ; preds = %25 - %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 4, ptr %47, align 8 +47: ; preds = %25 + %48 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 4, ptr %48, align 8 %.sroa.576.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 15 store i8 3, ptr %.sroa.576.0..sroa_idx, align 1 %.sroa.677.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -30638,24 +30638,24 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17hd store i8 1, ptr %.sroa.677.sroa.2.0..sroa.677.0..sroa_idx.sroa_idx, align 1 %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr null, ptr %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx, align 8 - br label %49 + br label %50 -48: ; preds = %49, %42 +49: ; preds = %50, %42 call void @llvm.lifetime.end.p0(ptr nonnull %8) ret void -49: ; preds = %.thread99, %40 +50: ; preds = %47, %40 store i64 -9223372036854775808, ptr %0, align 8 call void @"_ZN4core3ptr106drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..cursor..Cursor$LT$$RF$$u5b$u8$u5d$$GT$$GT$$GT$17hd4b148b124532403E"(ptr noalias noundef nonnull align 8 dereferenceable(320) %8) - br label %48 + br label %49 -50: ; preds = %9 - %51 = landingpad { ptr, i32 } +51: ; preds = %9 + %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #23 unreachable -52: ; preds = %9 +53: ; preds = %9 resume { ptr, i32 } %10 } @@ -30682,7 +30682,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he %10 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr119drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h7aa6f68c4f809ca0E"(ptr noalias noundef nonnull align 8 dereferenceable(344) %8) #22 - to label %52 unwind label %50 + to label %52 unwind label %51 11: ; preds = %2 call void @llvm.experimental.noalias.scope.decl(metadata !4011) @@ -30755,7 +30755,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he %26 = getelementptr inbounds nuw i8, ptr %8, i64 96 %27 = load i64, ptr %26, align 8, !range !101, !alias.scope !4034, !noundef !19 %28 = icmp eq i64 %27, -9223372036854775808 - br i1 %28, label %.thread99, label %29 + br i1 %28, label %47, label %29 29: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %8, i64 112 @@ -30799,7 +30799,7 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 %.sroa.0.0.copyload, ptr %41, align 8 %.sroa.244.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(63) %.sroa.244, i64 63, i1 false) - br label %49 + br label %50 42: ; preds = %29, %29, %33, %37 %spec.select = phi i8 [ 2, %29 ], [ 0, %33 ], [ 1, %37 ], [ 2, %29 ] @@ -30814,11 +30814,11 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 %spec.select, ptr %.sroa.536.0..sroa_idx, align 4 %.sroa.637.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 349 store i8 %46, ptr %.sroa.637.0..sroa_idx, align 1 - br label %48 + br label %49 -.thread99: ; preds = %25 - %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 4, ptr %47, align 8 +47: ; preds = %25 + %48 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i8 4, ptr %48, align 8 %.sroa.576.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 15 store i8 3, ptr %.sroa.576.0..sroa_idx, align 1 %.sroa.677.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -30827,24 +30827,24 @@ define hidden void @"_ZN5image6codecs4jpeg7decoder20JpegDecoder$LT$R$GT$3new17he store i8 1, ptr %.sroa.677.sroa.2.0..sroa.677.0..sroa_idx.sroa_idx, align 1 %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr null, ptr %.sroa.677.sroa.4.0..sroa.677.0..sroa_idx.sroa_idx, align 8 - br label %49 + br label %50 -48: ; preds = %49, %42 +49: ; preds = %50, %42 call void @llvm.lifetime.end.p0(ptr nonnull %8) ret void -49: ; preds = %.thread99, %40 +50: ; preds = %47, %40 store i64 -9223372036854775808, ptr %0, align 8 call void @"_ZN4core3ptr119drop_in_place$LT$jpeg_decoder..decoder..Decoder$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h7aa6f68c4f809ca0E"(ptr noalias noundef nonnull align 8 dereferenceable(344) %8) - br label %48 + br label %49 -50: ; preds = %9 - %51 = landingpad { ptr, i32 } +51: ; preds = %9 + %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #23 unreachable -52: ; preds = %9 +53: ; preds = %9 resume { ptr, i32 } %10 } diff --git a/bench/linux/optimized/i915_hwmon.ll b/bench/linux/optimized/i915_hwmon.ll index 79355aaabae..1bb556414cf 100644 --- a/bench/linux/optimized/i915_hwmon.ll +++ b/bench/linux/optimized/i915_hwmon.ll @@ -853,7 +853,7 @@ define internal i32 @hwm_read(ptr noundef readonly captures(none) %0, i32 nounde %112 = select i1 %110, i1 %111, i1 false br i1 %112, label %113, label %.thread6 -113: ; preds = %96 +113: ; preds = %96 %114 = trunc nuw nsw i128 %109 to i64 %115 = trunc nuw nsw i128 %104 to i64 %116 = load i64, ptr %4, align 8 diff --git a/bench/linux/optimized/memory.ll b/bench/linux/optimized/memory.ll index 754ce4fc0f8..05c4a3532b6 100644 --- a/bench/linux/optimized/memory.ll +++ b/bench/linux/optimized/memory.ll @@ -7610,19 +7610,19 @@ define internal fastcc ptr @pfn_swap_entry_to_page(i64 range(i64 0, 893626756060 %8 = getelementptr %struct.page, ptr %3, i64 %7 %9 = and i64 %0, 8646911284551352320 %10 = icmp ne i64 %9, 8070450532247928832 - %.mask = and i64 %0, 8935141660703064064 - %11 = icmp ne i64 %.mask, 8646911284551352320 - %12 = and i1 %11, %10 + %11 = and i64 %0, 8935141660703064064 + %12 = icmp ne i64 %11, 8646911284551352320 + %12 = and i1 %12, %10 br i1 %12, label %44, label %13 -13: ; preds = %5 +20: ; preds = %5 %14 = getelementptr inbounds nuw i8, ptr %8, i64 8 %15 = load volatile i64, ptr %14, align 8 %16 = and i64 %15, 1 %17 = icmp eq i64 %16, 0 br i1 %17, label %21, label %18, !prof !13 -18: ; preds = %13 +23: ; preds = %13 %19 = add nsw i64 %15, -1 %20 = inttoptr i64 %19 to ptr br label %38 @@ -7631,43 +7631,43 @@ define internal fastcc ptr @pfn_swap_entry_to_page(i64 range(i64 0, 893626756060 callbr void asm sideeffect "1:jmp ${2:l} # objtool NOPs this \0A\09.pushsection __jump_table, \22aw\22 \0A\09 .balign 8 \0A\09.long 1b - . \0A\09.long ${2:l} - . \0A\09 .quad ${0:c} + ${1:c} - .\0A\09.popsection \0A\09", "i,i,!i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @hugetlb_optimize_vmemmap_key, i32 2) #18 to label %38 [label %22], !srcloc !6 -22: ; preds = %21 - %23 = ptrtoint ptr %8 to i64 - %24 = and i64 %23, 4095 - %25 = icmp eq i64 %24, 0 - br i1 %25, label %26, label %37 +24: ; preds = %21 + %25 = ptrtoint ptr %8 to i64 + %26 = and i64 %25, 4095 + %27 = icmp eq i64 %26, 0 + br i1 %27, label %28, label %39 -26: ; preds = %22 - %27 = load volatile i64, ptr %8, align 8 - %28 = and i64 %27, 64 - %29 = icmp eq i64 %28, 0 - br i1 %29, label %37, label %30 +28: ; preds = %24 + %29 = load volatile i64, ptr %8, align 8 + %30 = and i64 %29, 64 + %31 = icmp eq i64 %30, 0 + br i1 %31, label %39, label %32 -30: ; preds = %26 - %31 = getelementptr i8, ptr %8, i64 72 - %32 = load volatile i64, ptr %31, align 8 - %33 = and i64 %32, 1 - %34 = icmp eq i64 %33, 0 - %35 = add nsw i64 %32, -1 - %36 = inttoptr i64 %35 to ptr - br i1 %34, label %37, label %38 +32: ; preds = %28 + %33 = getelementptr i8, ptr %8, i64 72 + %34 = load volatile i64, ptr %33, align 8 + %35 = and i64 %34, 1 + %36 = icmp eq i64 %35, 0 + %37 = add nsw i64 %34, -1 + %38 = inttoptr i64 %37 to ptr + br i1 %36, label %39, label %40 -37: ; preds = %30, %26, %22 - br label %38 +39: ; preds = %32, %28, %24 + br label %40 -38: ; preds = %37, %30, %21, %18 - %39 = phi ptr [ %20, %18 ], [ %36, %30 ], [ %8, %37 ], [ %8, %21 ] - %40 = load volatile i64, ptr %39, align 8 - %41 = and i64 %40, 1 - %42 = icmp eq i64 %41, 0 - br i1 %42, label %43, label %44, !prof !23 +40: ; preds = %39, %32, %21, %23 + %41 = phi ptr [ %20, %18 ], [ %38, %30 ], [ %8, %37 ], [ %8, %21 ] + %42 = load volatile i64, ptr %41, align 8 + %43 = and i64 %42, 1 + %44 = icmp eq i64 %43, 0 + br i1 %44, label %45, label %46, !prof !23 -43: ; preds = %38 +45: ; preds = %40 tail call void asm sideeffect "405: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 405b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 405) #18, !srcloc !59 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.10, i32 466, i32 0, i64 12) #18, !srcloc !60 unreachable -44: ; preds = %38, %5 +46: ; preds = %40, %5 ret ptr %8 } diff --git a/bench/linux/optimized/pci.ll b/bench/linux/optimized/pci.ll index 71b70bf9935..d4f2f7e24a9 100644 --- a/bench/linux/optimized/pci.ll +++ b/bench/linux/optimized/pci.ll @@ -5610,9 +5610,9 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %30 = getelementptr inbounds nuw i8, ptr %0, i64 264 br label %31 -31: ; preds = %145, %22 - %32 = phi i32 [ 0, %22 ], [ %147, %145 ] - %33 = phi i32 [ %26, %22 ], [ %146, %145 ] +31: ; preds = %146, %22 + %32 = phi i32 [ 0, %22 ], [ %148, %145 ] + %33 = phi i32 [ %26, %22 ], [ %147, %145 ] call void @llvm.lifetime.start.p0(ptr nonnull %2) store i32 0, ptr %2, align 4, !annotation !8 call void @llvm.lifetime.start.p0(ptr nonnull %3) @@ -5626,7 +5626,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %38 = and i32 %37, 28 %39 = add nuw nsw i32 %38, 4 %40 = icmp sgt i32 %36, -1 - br i1 %40, label %145, label %41 + br i1 %40, label %146, label %41 41: ; preds = %31 %42 = lshr i32 %36, 4 @@ -5640,7 +5640,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 %50 = trunc i32 %49 to i8 %51 = and i32 %49, 255 %52 = icmp samesign ugt i32 %51, 7 - br i1 %52, label %145, label %53 + br i1 %52, label %146, label %53 53: ; preds = %41 %54 = trunc nuw nsw i32 %43 to i8 @@ -5670,7 +5670,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 73: ; preds = %70 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.75, i32 noundef %43) #28 - br label %145 + br label %146 74: ; preds = %70 switch i8 %50, label %.critedge [ @@ -5689,7 +5689,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 .critedge: ; preds = %74 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.76, i32 noundef %51) #28 - br label %145 + br label %146 77: ; preds = %74, %74, %75, %76 %78 = phi i64 [ 304, %75 ], [ 560, %76 ], [ 8752, %74 ], [ 8752, %74 ] @@ -5752,7 +5752,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 120: ; preds = %115 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.77) #28 - br label %145 + br label %146 121: ; preds = %115 %122 = sub i32 %116, %33 @@ -5761,7 +5761,7 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 124: ; preds = %121 call void (ptr, ptr, ...) @_dev_err(ptr noundef nonnull %29, ptr noundef nonnull @.str.78, i32 noundef %39, i32 noundef %122) #28 - br label %145 + br label %146 125: ; preds = %121 %126 = load ptr, ptr %30, align 8 @@ -5786,41 +5786,41 @@ define dso_local void @pci_ea_init(ptr noundef %0) local_unnamed_addr #4 align 1 136: ; preds = %130 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %145 + br label %146 137: ; preds = %130 br i1 %60, label %138, label %139 -138: ; preds = %137 +139: ; preds = %137 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %145 + br label %146 -139: ; preds = %137 - %140 = icmp samesign ugt i32 %43, 8 - %141 = icmp ne i32 %43, 15 - %142 = and i1 %140, %141 - br i1 %142, label %143, label %144 +140: ; preds = %137 + %141 = icmp samesign ugt i32 %43, 8 + %142 = icmp ne i32 %43, 15 + %143 = and i1 %141, %142 + br i1 %143, label %144, label %145 -143: ; preds = %139 +144: ; preds = %140 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.79, ptr noundef %71, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %145 + br label %146 -144: ; preds = %139 +145: ; preds = %140 call void (ptr, ptr, ...) @_dev_info(ptr noundef nonnull %29, ptr noundef nonnull @.str.80, i32 noundef %43, ptr noundef nonnull %62, i32 noundef %51) #28 - br label %145 + br label %146 -145: ; preds = %144, %143, %138, %136, %124, %120, %.critedge, %73, %41, %31 - %146 = add i32 %39, %33 +146: ; preds = %145, %144, %139, %136, %124, %120, %.critedge, %73, %41, %31 + %147 = add i32 %39, %33 call void @llvm.lifetime.end.p0(ptr nonnull %4) call void @llvm.lifetime.end.p0(ptr nonnull %3) call void @llvm.lifetime.end.p0(ptr nonnull %2) - %147 = add nuw nsw i32 %32, 1 - %148 = load i8, ptr %7, align 1 - %149 = zext i8 %148 to i32 - %150 = icmp samesign ult i32 %147, %149 - br i1 %150, label %31, label %.loopexit, !llvm.loop !53 + %148 = add nuw nsw i32 %32, 1 + %149 = load i8, ptr %7, align 1 + %150 = zext i8 %149 to i32 + %151 = icmp samesign ult i32 %148, %150 + br i1 %151, label %31, label %.loopexit, !llvm.loop !53 -.loopexit: ; preds = %145, %10, %1 +.loopexit: ; preds = %146, %10, %1 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void } diff --git a/bench/mitsuba3/optimized/string.ll b/bench/mitsuba3/optimized/string.ll index 952655e7ecb..e92fd4df1c8 100644 --- a/bench/mitsuba3/optimized/string.ll +++ b/bench/mitsuba3/optimized/string.ll @@ -3770,74 +3770,74 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS br i1 %12, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4, %13 - %.0252448 = phi ptr [ %14, %13 ], [ %6, %4 ] - %.0.copyload65 = load i64, ptr %.0252448, align 1 + %.0252442 = phi ptr [ %14, %13 ], [ %6, %4 ] + %.0.copyload65 = load i64, ptr %.0252442, align 1 %.not = icmp eq i64 %.0.copyload65, 3472328296227680304 br i1 %.not, label %13, label %.lr.ph.._crit_edge.loopexit_crit_edge .lr.ph.._crit_edge.loopexit_crit_edge: ; preds = %.lr.ph - %.pre631 = ptrtoint ptr %.0252448 to i64 + %.pre619 = ptrtoint ptr %.0252442 to i64 br label %._crit_edge 13: ; preds = %.lr.ph - %14 = getelementptr inbounds nuw i8, ptr %.0252448, i64 8 + %14 = getelementptr inbounds nuw i8, ptr %.0252442, i64 8 %15 = ptrtoint ptr %14 to i64 %16 = sub i64 %11, %15 %17 = icmp sgt i64 %16, 7 br i1 %17, label %.lr.ph, label %._crit_edge, !llvm.loop !45 ._crit_edge: ; preds = %13, %.lr.ph.._crit_edge.loopexit_crit_edge, %4 - %.0252.lcssa621.pre-phi = phi i64 [ %7, %4 ], [ %.pre631, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %15, %13 ] - %.0252.lcssa = phi ptr [ %6, %4 ], [ %.0252448, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %14, %13 ] - %.not263453 = icmp eq ptr %.0252.lcssa, %10 - br i1 %.not263453, label %._crit_edge488, label %.lr.ph456.preheader + %.0252.lcssa609.pre-phi = phi i64 [ %7, %4 ], [ %.pre619, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %15, %13 ] + %.0252.lcssa = phi ptr [ %6, %4 ], [ %.0252442, %.lr.ph.._crit_edge.loopexit_crit_edge ], [ %14, %13 ] + %.not263447 = icmp eq ptr %.0252.lcssa, %10 + br i1 %.not263447, label %._crit_edge482, label %.lr.ph450.preheader -.lr.ph456.preheader: ; preds = %._crit_edge +.lr.ph450.preheader: ; preds = %._crit_edge %18 = add i64 %9, %7 - %19 = sub i64 %18, %.0252.lcssa621.pre-phi + %19 = sub i64 %18, %.0252.lcssa609.pre-phi %scevgep = getelementptr i8, ptr %.0252.lcssa, i64 %19 - br label %.lr.ph456 + br label %.lr.ph450 -.lr.ph456: ; preds = %.lr.ph456.preheader, %21 - %.1253454 = phi ptr [ %22, %21 ], [ %.0252.lcssa, %.lr.ph456.preheader ] - %20 = load i8, ptr %.1253454, align 1 +.lr.ph450: ; preds = %.lr.ph450.preheader, %21 + %.1253448 = phi ptr [ %22, %21 ], [ %.0252.lcssa, %.lr.ph456.preheader ] + %20 = load i8, ptr %.1253448, align 1 %.not264 = icmp eq i8 %20, 48 - br i1 %.not264, label %21, label %._crit_edge457 + br i1 %.not264, label %21, label %._crit_edge451 -21: ; preds = %.lr.ph456 - %22 = getelementptr inbounds nuw i8, ptr %.1253454, i64 1 +21: ; preds = %.lr.ph450 + %22 = getelementptr inbounds nuw i8, ptr %.1253448, i64 1 %.not263 = icmp eq ptr %22, %10 - br i1 %.not263, label %._crit_edge457, label %.lr.ph456, !llvm.loop !46 + br i1 %.not263, label %._crit_edge451, label %.lr.ph450, !llvm.loop !46 -._crit_edge457: ; preds = %21, %.lr.ph456 - %.1253.lcssa = phi ptr [ %scevgep, %21 ], [ %.1253454, %.lr.ph456 ] - %.not265486 = icmp eq ptr %.1253.lcssa, %10 - br i1 %.not265486, label %._crit_edge488, label %.preheader391.lr.ph +._crit_edge451: ; preds = %21, %.lr.ph450 + %.1253.lcssa = phi ptr [ %scevgep, %21 ], [ %.1253448, %.lr.ph456 ] + %.not265480 = icmp eq ptr %.1253.lcssa, %10 + br i1 %.not265480, label %._crit_edge482, label %.preheader391.lr.ph -.preheader391.lr.ph: ; preds = %._crit_edge457 +.preheader391.lr.ph: ; preds = %._crit_edge451 %23 = getelementptr inbounds nuw i8, ptr %0, i64 496 br label %.preheader391 .preheader391: ; preds = %.preheader391.lr.ph, %_ZN10fast_float6bigint3addEm.exit326 - %.2254487 = phi ptr [ %.1253.lcssa, %.preheader391.lr.ph ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit326 ] + %.2254481 = phi ptr [ %.1253.lcssa, %.preheader391.lr.ph ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit326 ] %.promoted = load i64, ptr %3, align 8 - %24 = ptrtoint ptr %.2254487 to i64 + %24 = ptrtoint ptr %.2254481 to i64 %25 = sub i64 %11, %24 %26 = icmp slt i64 %25, 8 - br i1 %26, label %.critedge, label %.lr.ph464 + br i1 %26, label %.critedge, label %.lr.ph458 -.lr.ph464: ; preds = %.preheader391, %30 - %.1244463 = phi i64 [ %43, %30 ], [ 0, %.preheader391 ] - %.1246462 = phi i64 [ %45, %30 ], [ 0, %.preheader391 ] - %.3255461 = phi ptr [ %44, %30 ], [ %.2254487, %.preheader391 ] +.lr.ph458: ; preds = %.preheader391, %30 + %.1244457 = phi i64 [ %43, %30 ], [ 0, %.preheader391 ] + %.1246456 = phi i64 [ %45, %30 ], [ 0, %.preheader391 ] + %.3255455 = phi ptr [ %44, %30 ], [ %.2254481, %.preheader391 ] %27 = phi i64 [ %46, %30 ], [ %.promoted, %.preheader391 ] %28 = sub i64 %2, %27 %29 = icmp ugt i64 %28, 7 br i1 %29, label %30, label %.critedge -30: ; preds = %.lr.ph464 - %31 = mul i64 %.1244463, 100000000 - %.0.copyload98 = load i64, ptr %.3255461, align 1 +30: ; preds = %.lr.ph458 + %31 = mul i64 %.1244457, 100000000 + %.0.copyload98 = load i64, ptr %.3255455, align 1 %32 = add i64 %.0.copyload98, -3472328296227680304 %33 = mul i64 %32, 10 %34 = lshr i64 %32, 8 @@ -3850,8 +3850,8 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS %41 = add i64 %40, %37 %42 = lshr i64 %41, 32 %43 = add i64 %42, %31 - %44 = getelementptr inbounds nuw i8, ptr %.3255461, i64 8 - %45 = add nuw nsw i64 %.1246462, 8 + %44 = getelementptr inbounds nuw i8, ptr %.3255455, i64 8 + %45 = add nuw nsw i64 %.1246456, 8 %46 = add i64 %27, 8 store i64 %46, ptr %3, align 8 %47 = ptrtoint ptr %44 to i64 @@ -3859,52 +3859,52 @@ define linkonce_odr hidden void @_ZN10fast_float14parse_mantissaERNS_6bigintERNS %49 = icmp slt i64 %48, 8 %.not276 = icmp eq i64 %45, 16 %or.cond = select i1 %49, i1 true, i1 %.not276 - br i1 %or.cond, label %.critedge, label %.lr.ph464, !llvm.loop !47 + br i1 %or.cond, label %.critedge, label %.lr.ph458, !llvm.loop !47 -.critedge: ; preds = %.lr.ph464, %30, %.preheader391 - %.promoted472 = phi i64 [ %.promoted, %.preheader391 ], [ %46, %30 ], [ %27, %.lr.ph464 ] - %.3255.lcssa = phi ptr [ %.2254487, %.preheader391 ], [ %44, %30 ], [ %.3255461, %.lr.ph464 ] - %.1246.lcssa = phi i64 [ 0, %.preheader391 ], [ %45, %30 ], [ %.1246462, %.lr.ph464 ] - %.1244.lcssa = phi i64 [ 0, %.preheader391 ], [ %43, %30 ], [ %.1244463, %.lr.ph464 ] +.critedge: ; preds = %.lr.ph458, %30, %.preheader391 + %.promoted466 = phi i64 [ %.promoted, %.preheader391 ], [ %46, %30 ], [ %27, %.lr.ph464 ] + %.3255.lcssa = phi ptr [ %.2254481, %.preheader391 ], [ %44, %30 ], [ %.3255455, %.lr.ph464 ] + %.1246.lcssa = phi i64 [ 0, %.preheader391 ], [ %45, %30 ], [ %.1246456, %.lr.ph464 ] + %.1244.lcssa = phi i64 [ 0, %.preheader391 ], [ %43, %30 ], [ %.1244457, %.lr.ph464 ] %50 = icmp ugt i64 %.1246.lcssa, 18 - %.not277473 = icmp eq ptr %.3255.lcssa, %10 - %or.cond285474 = select i1 %50, i1 true, i1 %.not277473 - br i1 %or.cond285474, label %.critedge2, label %.lr.ph478.preheader + %.not277467 = icmp eq ptr %.3255.lcssa, %10 + %or.cond285468 = select i1 %50, i1 true, i1 %.not277467 + br i1 %or.cond285468, label %.critedge2, label %.lr.ph472.preheader -.lr.ph478.preheader: ; preds = %.critedge - %umax = tail call i64 @llvm.umax.i64(i64 %.promoted472, i64 %2) +.lr.ph472.preheader: ; preds = %.critedge + %umax = tail call i64 @llvm.umax.i64(i64 %.promoted466, i64 %2) %51 = add i64 %.1246.lcssa, %umax - %52 = sub i64 %51, %.promoted472 - br label %.lr.ph478 - -.lr.ph478: ; preds = %.lr.ph478.preheader, %54 - %.2477 = phi i64 [ %59, %54 ], [ %.1244.lcssa, %.lr.ph478.preheader ] - %.2247476 = phi i64 [ %61, %54 ], [ %.1246.lcssa, %.lr.ph478.preheader ] - %.4256475 = phi ptr [ %60, %54 ], [ %.3255.lcssa, %.lr.ph478.preheader ] - %53 = phi i64 [ %62, %54 ], [ %.promoted472, %.lr.ph478.preheader ] - %exitcond.not = icmp eq i64 %.2247476, %52 + %52 = sub i64 %51, %.promoted466 + br label %.lr.ph472 + +.lr.ph472: ; preds = %.lr.ph472.preheader, %54 + %.2471 = phi i64 [ %59, %54 ], [ %.1244.lcssa, %.lr.ph478.preheader ] + %.2247470 = phi i64 [ %61, %54 ], [ %.1246.lcssa, %.lr.ph478.preheader ] + %.4256469 = phi ptr [ %60, %54 ], [ %.3255.lcssa, %.lr.ph478.preheader ] + %53 = phi i64 [ %62, %54 ], [ %.promoted466, %.lr.ph478.preheader ] + %exitcond.not = icmp eq i64 %.2247470, %52 br i1 %exitcond.not, label %.critedge2, label %54 -54: ; preds = %.lr.ph478 - %55 = mul i64 %.2477, 10 - %56 = load i8, ptr %.4256475, align 1 +54: ; preds = %.lr.ph472 + %55 = mul i64 %.2471, 10 + %56 = load i8, ptr %.4256469, align 1 %57 = sext i8 %56 to i64 %58 = add i64 %55, -48 %59 = add i64 %58, %57 - %60 = getelementptr inbounds nuw i8, ptr %.4256475, i64 1 - %61 = add i64 %.2247476, 1 + %60 = getelementptr inbounds nuw i8, ptr %.4256469, i64 1 + %61 = add i64 %.2247470, 1 %62 = add nuw i64 %53, 1 store i64 %62, ptr %3, align 8 - %63 = icmp ugt i64 %.2247476, 17 + %63 = icmp ugt i64 %.2247470, 17 %.not277 = icmp eq ptr %60, %10 %or.cond285 = select i1 %63, i1 true, i1 %.not277 - br i1 %or.cond285, label %.critedge2, label %.lr.ph478, !llvm.loop !48 + br i1 %or.cond285, label %.critedge2, label %.lr.ph472, !llvm.loop !48 -.critedge2: ; preds = %.lr.ph478, %54, %.critedge - %64 = phi i64 [ %.promoted472, %.critedge ], [ %62, %54 ], [ %53, %.lr.ph478 ] - %.4256.lcssa = phi ptr [ %.3255.lcssa, %.critedge ], [ %60, %54 ], [ %.4256475, %.lr.ph478 ] +.critedge2: ; preds = %.lr.ph472, %54, %.critedge + %64 = phi i64 [ %.promoted466, %.critedge ], [ %62, %54 ], [ %53, %.lr.ph478 ] + %.4256.lcssa = phi ptr [ %.3255.lcssa, %.critedge ], [ %60, %54 ], [ %.4256469, %.lr.ph478 ] %.2247.lcssa = phi i64 [ %.1246.lcssa, %.critedge ], [ %61, %54 ], [ %52, %.lr.ph478 ] - %.2.lcssa = phi i64 [ %.1244.lcssa, %.critedge ], [ %59, %54 ], [ %.2477, %.lr.ph478 ] + %.2.lcssa = phi i64 [ %.1244.lcssa, %.critedge ], [ %59, %54 ], [ %.2471, %.lr.ph478 ] %65 = icmp eq i64 %64, %2 %66 = load i16, ptr %23, align 8 %.not25.i.i = icmp eq i16 %66, 0 @@ -3990,36 +3990,36 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa %103 = ptrtoint ptr %.4256.lcssa to i64 %104 = sub i64 %11, %103 %105 = icmp sgt i64 %104, 7 - br i1 %105, label %.lr.ph490, label %.preheader388 + br i1 %105, label %.lr.ph484, label %.preheader388 .preheader388: ; preds = %106, %_ZN10fast_float6bigint3addEm.exit %.0187.lcssa = phi ptr [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ], [ %107, %106 ] - %.not278492 = icmp eq ptr %.0187.lcssa, %10 - br i1 %.not278492, label %.loopexit389, label %.lr.ph494 + %.not278486 = icmp eq ptr %.0187.lcssa, %10 + br i1 %.not278486, label %.loopexit389, label %.lr.ph488 -.lr.ph490: ; preds = %_ZN10fast_float6bigint3addEm.exit, %106 - %.0187489 = phi ptr [ %107, %106 ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ] - %.0.copyload150 = load i64, ptr %.0187489, align 1 +.lr.ph484: ; preds = %_ZN10fast_float6bigint3addEm.exit, %106 + %.0187483 = phi ptr [ %107, %106 ], [ %.4256.lcssa, %_ZN10fast_float6bigint3addEm.exit ] + %.0.copyload150 = load i64, ptr %.0187483, align 1 %.not280 = icmp eq i64 %.0.copyload150, 3472328296227680304 br i1 %.not280, label %106, label %.loopexit389 -106: ; preds = %.lr.ph490 - %107 = getelementptr inbounds nuw i8, ptr %.0187489, i64 8 +106: ; preds = %.lr.ph484 + %107 = getelementptr inbounds nuw i8, ptr %.0187483, i64 8 %108 = ptrtoint ptr %107 to i64 %109 = sub i64 %11, %108 %110 = icmp sgt i64 %109, 7 - br i1 %110, label %.lr.ph490, label %.preheader388, !llvm.loop !51 + br i1 %110, label %.lr.ph484, label %.preheader388, !llvm.loop !51 -.lr.ph494: ; preds = %.preheader388, %.lr.ph494 - %.1188493 = phi ptr [ %112, %.lr.ph494 ], [ %.0187.lcssa, %.preheader388 ] - %111 = load i8, ptr %.1188493, align 1 +.lr.ph488: ; preds = %.preheader388, %.lr.ph488 + %.1188487 = phi ptr [ %112, %.lr.ph494 ], [ %.0187.lcssa, %.preheader388 ] + %111 = load i8, ptr %.1188487, align 1 %.not279.not = icmp ne i8 %111, 48 - %112 = getelementptr inbounds nuw i8, ptr %.1188493, i64 1 + %112 = getelementptr inbounds nuw i8, ptr %.1188487, i64 1 %.not278 = icmp eq ptr %112, %10 - %or.cond810 = select i1 %.not279.not, i1 true, i1 %.not278 - br i1 %or.cond810, label %.loopexit389, label %.lr.ph494, !llvm.loop !52 + %or.cond792 = select i1 %.not279.not, i1 true, i1 %.not278 + br i1 %or.cond792, label %.loopexit389, label %.lr.ph488, !llvm.loop !52 -.loopexit389: ; preds = %.lr.ph490, %.lr.ph494, %.preheader388 +.loopexit389: ; preds = %.lr.ph484, %.lr.ph488, %.preheader388 %.0185 = phi i1 [ false, %.preheader388 ], [ %.not279.not, %.lr.ph494 ], [ true, %.lr.ph490 ] %113 = getelementptr inbounds nuw i8, ptr %1, i64 48 %114 = load ptr, ptr %113, align 8 @@ -4032,34 +4032,34 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa %116 = getelementptr inbounds i8, ptr %114, i64 %.sroa.2.0.copyload %117 = ptrtoint ptr %116 to i64 %118 = icmp sgt i64 %.sroa.2.0.copyload, 7 - br i1 %118, label %.lr.ph500, label %.preheader385 + br i1 %118, label %.lr.ph494, label %.preheader385 .preheader385: ; preds = %119, %115 %.0184.lcssa = phi ptr [ %114, %115 ], [ %120, %119 ] - %.not282502 = icmp eq ptr %.0184.lcssa, %116 - br i1 %.not282502, label %.loopexit386, label %.lr.ph504 + %.not282496 = icmp eq ptr %.0184.lcssa, %116 + br i1 %.not282496, label %.loopexit386, label %.lr.ph498 -.lr.ph500: ; preds = %115, %119 - %.0184498 = phi ptr [ %120, %119 ], [ %114, %115 ] - %.0.copyload161 = load i64, ptr %.0184498, align 1 +.lr.ph494: ; preds = %115, %119 + %.0184492 = phi ptr [ %120, %119 ], [ %114, %115 ] + %.0.copyload161 = load i64, ptr %.0184492, align 1 %.not284 = icmp eq i64 %.0.copyload161, 3472328296227680304 br i1 %.not284, label %119, label %.loopexit386.thread -119: ; preds = %.lr.ph500 - %120 = getelementptr inbounds nuw i8, ptr %.0184498, i64 8 +119: ; preds = %.lr.ph494 + %120 = getelementptr inbounds nuw i8, ptr %.0184492, i64 8 %121 = ptrtoint ptr %120 to i64 %122 = sub i64 %117, %121 %123 = icmp sgt i64 %122, 7 - br i1 %123, label %.lr.ph500, label %.preheader385, !llvm.loop !51 + br i1 %123, label %.lr.ph494, label %.preheader385, !llvm.loop !51 -124: ; preds = %.lr.ph504 - %125 = getelementptr inbounds nuw i8, ptr %.1503, i64 1 +124: ; preds = %.lr.ph498 + %125 = getelementptr inbounds nuw i8, ptr %.1497, i64 1 %.not282 = icmp eq ptr %125, %116 - br i1 %.not282, label %.loopexit386, label %.lr.ph504, !llvm.loop !52 + br i1 %.not282, label %.loopexit386, label %.lr.ph498, !llvm.loop !52 -.lr.ph504: ; preds = %.preheader385, %124 - %.1503 = phi ptr [ %125, %124 ], [ %.0184.lcssa, %.preheader385 ] - %126 = load i8, ptr %.1503, align 1 +.lr.ph498: ; preds = %.preheader385, %124 + %.1497 = phi ptr [ %125, %124 ], [ %.0184.lcssa, %.preheader385 ] + %126 = load i8, ptr %.1497, align 1 %.not283.not = icmp eq i8 %126, 48 br i1 %.not283.not, label %124, label %.loopexit386.thread @@ -4069,7 +4069,7 @@ _ZN10fast_float6bigint3addEm.exit: ; preds = %92, %_ZN10fast_floa 127: ; preds = %.loopexit389 br i1 %.0185, label %.loopexit386.thread, label %.loopexit -.loopexit386.thread: ; preds = %.lr.ph500, %.lr.ph504, %.loopexit386, %127 +.loopexit386.thread: ; preds = %.lr.ph494, %.lr.ph498, %.loopexit386, %127 %128 = load i16, ptr %23, align 8 %.not25.i.i292 = icmp eq i16 %128, 0 br i1 %.not25.i.i292, label %_ZN10fast_float6bigint3mulEm.exit301.preheader, label %.lr.ph.i.i293 @@ -4217,16 +4217,16 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i325: ; preds = %.crite _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_float6bigint3mulEm.exit318, %.critedge.i.i323, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i325 %.not265 = icmp eq ptr %.4256.lcssa, %10 - br i1 %.not265, label %._crit_edge488, label %.preheader391, !llvm.loop !53 + br i1 %.not265, label %._crit_edge482, label %.preheader391, !llvm.loop !53 -._crit_edge488: ; preds = %_ZN10fast_float6bigint3addEm.exit326, %._crit_edge, %._crit_edge457 +._crit_edge482: ; preds = %_ZN10fast_float6bigint3addEm.exit326, %._crit_edge, %._crit_edge451 %196 = getelementptr inbounds nuw i8, ptr %1, i64 48 %197 = load ptr, ptr %196, align 8 %198 = ptrtoint ptr %197 to i64 %.not266 = icmp eq ptr %197, null br i1 %.not266, label %.loopexit, label %199 -199: ; preds = %._crit_edge488 +199: ; preds = %._crit_edge482 %200 = getelementptr inbounds nuw i8, ptr %1, i64 56 %201 = load i64, ptr %200, align 8 %202 = getelementptr inbounds i8, ptr %197, i64 %201 @@ -4237,52 +4237,52 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo .preheader384: ; preds = %199 %205 = ptrtoint ptr %202 to i64 %206 = icmp sgt i64 %201, 7 - br i1 %206, label %.lr.ph509, label %._crit_edge510 + br i1 %206, label %.lr.ph503, label %._crit_edge504 -.lr.ph509: ; preds = %.preheader384, %207 - %.6258508 = phi ptr [ %208, %207 ], [ %197, %.preheader384 ] - %.0.copyload = load i64, ptr %.6258508, align 1 +.lr.ph503: ; preds = %.preheader384, %207 + %.6258502 = phi ptr [ %208, %207 ], [ %197, %.preheader384 ] + %.0.copyload = load i64, ptr %.6258502, align 1 %.not267 = icmp eq i64 %.0.copyload, 3472328296227680304 - br i1 %.not267, label %207, label %.lr.ph509.._crit_edge510.loopexit_crit_edge + br i1 %.not267, label %207, label %.lr.ph503.._crit_edge504.loopexit_crit_edge -.lr.ph509.._crit_edge510.loopexit_crit_edge: ; preds = %.lr.ph509 - %.pre = ptrtoint ptr %.6258508 to i64 - br label %._crit_edge510 +.lr.ph503.._crit_edge504.loopexit_crit_edge: ; preds = %.lr.ph503 + %.pre = ptrtoint ptr %.6258502 to i64 + br label %._crit_edge504 -207: ; preds = %.lr.ph509 - %208 = getelementptr inbounds nuw i8, ptr %.6258508, i64 8 +207: ; preds = %.lr.ph503 + %208 = getelementptr inbounds nuw i8, ptr %.6258502, i64 8 %209 = ptrtoint ptr %208 to i64 %210 = sub i64 %205, %209 %211 = icmp sgt i64 %210, 7 - br i1 %211, label %.lr.ph509, label %._crit_edge510, !llvm.loop !45 + br i1 %211, label %.lr.ph503, label %._crit_edge504, !llvm.loop !45 -._crit_edge510: ; preds = %207, %.lr.ph509.._crit_edge510.loopexit_crit_edge, %.preheader384 - %.6258.lcssa622.pre-phi = phi i64 [ %198, %.preheader384 ], [ %.pre, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %209, %207 ] - %.6258.lcssa = phi ptr [ %197, %.preheader384 ], [ %.6258508, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %208, %207 ] - %.not268514 = icmp eq ptr %.6258.lcssa, %202 - br i1 %.not268514, label %.loopexit, label %.lr.ph517.preheader +._crit_edge504: ; preds = %207, %.lr.ph503.._crit_edge504.loopexit_crit_edge, %.preheader384 + %.6258.lcssa610.pre-phi = phi i64 [ %198, %.preheader384 ], [ %.pre, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %209, %207 ] + %.6258.lcssa = phi ptr [ %197, %.preheader384 ], [ %.6258502, %.lr.ph509.._crit_edge510.loopexit_crit_edge ], [ %208, %207 ] + %.not268508 = icmp eq ptr %.6258.lcssa, %202 + br i1 %.not268508, label %.loopexit, label %.lr.ph511.preheader -.lr.ph517.preheader: ; preds = %._crit_edge510 +.lr.ph511.preheader: ; preds = %._crit_edge504 %212 = add i64 %201, %198 - %213 = sub i64 %212, %.6258.lcssa622.pre-phi - %scevgep623 = getelementptr i8, ptr %.6258.lcssa, i64 %213 - br label %.lr.ph517 + %213 = sub i64 %212, %.6258.lcssa610.pre-phi + %scevgep611 = getelementptr i8, ptr %.6258.lcssa, i64 %213 + br label %.lr.ph511 -.lr.ph517: ; preds = %.lr.ph517.preheader, %215 - %.7515 = phi ptr [ %216, %215 ], [ %.6258.lcssa, %.lr.ph517.preheader ] - %214 = load i8, ptr %.7515, align 1 +.lr.ph511: ; preds = %.lr.ph511.preheader, %215 + %.7509 = phi ptr [ %216, %215 ], [ %.6258.lcssa, %.lr.ph517.preheader ] + %214 = load i8, ptr %.7509, align 1 %.not269 = icmp eq i8 %214, 48 br i1 %.not269, label %215, label %.loopexit383 -215: ; preds = %.lr.ph517 - %216 = getelementptr inbounds nuw i8, ptr %.7515, i64 1 +215: ; preds = %.lr.ph511 + %216 = getelementptr inbounds nuw i8, ptr %.7509, i64 1 %.not268 = icmp eq ptr %216, %202 - br i1 %.not268, label %.loopexit383, label %.lr.ph517, !llvm.loop !46 + br i1 %.not268, label %.loopexit383, label %.lr.ph511, !llvm.loop !46 -.loopexit383: ; preds = %.lr.ph517, %215, %199 - %.5257 = phi ptr [ %197, %199 ], [ %.7515, %.lr.ph517 ], [ %scevgep623, %215 ] - %.not270549 = icmp eq ptr %.5257, %202 - br i1 %.not270549, label %.loopexit, label %.preheader381.lr.ph +.loopexit383: ; preds = %.lr.ph511, %215, %199 + %.5257 = phi ptr [ %197, %199 ], [ %.7509, %.lr.ph517 ], [ %scevgep611, %215 ] + %.not270543 = icmp eq ptr %.5257, %202 + br i1 %.not270543, label %.loopexit, label %.preheader381.lr.ph .preheader381.lr.ph: ; preds = %.loopexit383 %217 = ptrtoint ptr %202 to i64 @@ -4290,25 +4290,25 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo br label %.preheader381 .preheader381: ; preds = %.preheader381.lr.ph, %_ZN10fast_float6bigint3addEm.exit379 - %.8550 = phi ptr [ %.5257, %.preheader381.lr.ph ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit379 ] - %.promoted521 = load i64, ptr %3, align 8 - %219 = ptrtoint ptr %.8550 to i64 + %.8544 = phi ptr [ %.5257, %.preheader381.lr.ph ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit379 ] + %.promoted515 = load i64, ptr %3, align 8 + %219 = ptrtoint ptr %.8544 to i64 %220 = sub i64 %217, %219 %221 = icmp slt i64 %220, 8 - br i1 %221, label %.critedge4, label %.lr.ph525 + br i1 %221, label %.critedge4, label %.lr.ph519 -.lr.ph525: ; preds = %.preheader381, %225 - %.5524 = phi i64 [ %238, %225 ], [ 0, %.preheader381 ] - %.5250523 = phi i64 [ %240, %225 ], [ 0, %.preheader381 ] - %.9522 = phi ptr [ %239, %225 ], [ %.8550, %.preheader381 ] - %222 = phi i64 [ %241, %225 ], [ %.promoted521, %.preheader381 ] +.lr.ph519: ; preds = %.preheader381, %225 + %.5518 = phi i64 [ %238, %225 ], [ 0, %.preheader381 ] + %.5250517 = phi i64 [ %240, %225 ], [ 0, %.preheader381 ] + %.9516 = phi ptr [ %239, %225 ], [ %.8544, %.preheader381 ] + %222 = phi i64 [ %241, %225 ], [ %.promoted515, %.preheader381 ] %223 = sub i64 %2, %222 %224 = icmp ugt i64 %223, 7 br i1 %224, label %225, label %.critedge4 -225: ; preds = %.lr.ph525 - %226 = mul i64 %.5524, 100000000 - %.0.copyload82 = load i64, ptr %.9522, align 1 +225: ; preds = %.lr.ph519 + %226 = mul i64 %.5518, 100000000 + %.0.copyload82 = load i64, ptr %.9516, align 1 %227 = add i64 %.0.copyload82, -3472328296227680304 %228 = mul i64 %227, 10 %229 = lshr i64 %227, 8 @@ -4321,8 +4321,8 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo %236 = add i64 %235, %232 %237 = lshr i64 %236, 32 %238 = add i64 %237, %226 - %239 = getelementptr inbounds nuw i8, ptr %.9522, i64 8 - %240 = add nuw nsw i64 %.5250523, 8 + %239 = getelementptr inbounds nuw i8, ptr %.9516, i64 8 + %240 = add nuw nsw i64 %.5250517, 8 %241 = add i64 %222, 8 store i64 %241, ptr %3, align 8 %242 = ptrtoint ptr %239 to i64 @@ -4330,52 +4330,52 @@ _ZN10fast_float6bigint3addEm.exit326: ; preds = %185, %_ZN10fast_flo %244 = icmp slt i64 %243, 8 %.not271 = icmp eq i64 %240, 16 %or.cond286 = select i1 %244, i1 true, i1 %.not271 - br i1 %or.cond286, label %.critedge4, label %.lr.ph525, !llvm.loop !54 + br i1 %or.cond286, label %.critedge4, label %.lr.ph519, !llvm.loop !54 -.critedge4: ; preds = %.lr.ph525, %225, %.preheader381 - %.promoted535 = phi i64 [ %.promoted521, %.preheader381 ], [ %241, %225 ], [ %222, %.lr.ph525 ] - %.9.lcssa = phi ptr [ %.8550, %.preheader381 ], [ %239, %225 ], [ %.9522, %.lr.ph525 ] - %.5250.lcssa = phi i64 [ 0, %.preheader381 ], [ %240, %225 ], [ %.5250523, %.lr.ph525 ] - %.5.lcssa = phi i64 [ 0, %.preheader381 ], [ %238, %225 ], [ %.5524, %.lr.ph525 ] +.critedge4: ; preds = %.lr.ph519, %225, %.preheader381 + %.promoted529 = phi i64 [ %.promoted515, %.preheader381 ], [ %241, %225 ], [ %222, %.lr.ph525 ] + %.9.lcssa = phi ptr [ %.8544, %.preheader381 ], [ %239, %225 ], [ %.9516, %.lr.ph525 ] + %.5250.lcssa = phi i64 [ 0, %.preheader381 ], [ %240, %225 ], [ %.5250517, %.lr.ph525 ] + %.5.lcssa = phi i64 [ 0, %.preheader381 ], [ %238, %225 ], [ %.5518, %.lr.ph525 ] %245 = icmp ugt i64 %.5250.lcssa, 18 - %.not272536 = icmp eq ptr %.9.lcssa, %202 - %or.cond287537 = select i1 %245, i1 true, i1 %.not272536 - br i1 %or.cond287537, label %.critedge6, label %.lr.ph541.preheader - -.lr.ph541.preheader: ; preds = %.critedge4 - %umax624 = tail call i64 @llvm.umax.i64(i64 %.promoted535, i64 %2) - %246 = add i64 %.5250.lcssa, %umax624 - %247 = sub i64 %246, %.promoted535 - br label %.lr.ph541 - -.lr.ph541: ; preds = %.lr.ph541.preheader, %249 - %.6540 = phi i64 [ %254, %249 ], [ %.5.lcssa, %.lr.ph541.preheader ] - %.6251539 = phi i64 [ %256, %249 ], [ %.5250.lcssa, %.lr.ph541.preheader ] - %.10538 = phi ptr [ %255, %249 ], [ %.9.lcssa, %.lr.ph541.preheader ] - %248 = phi i64 [ %257, %249 ], [ %.promoted535, %.lr.ph541.preheader ] - %exitcond625.not = icmp eq i64 %.6251539, %247 - br i1 %exitcond625.not, label %.critedge6, label %249 - -249: ; preds = %.lr.ph541 - %250 = mul i64 %.6540, 10 - %251 = load i8, ptr %.10538, align 1 + %.not272530 = icmp eq ptr %.9.lcssa, %202 + %or.cond287531 = select i1 %245, i1 true, i1 %.not272530 + br i1 %or.cond287531, label %.critedge6, label %.lr.ph535.preheader + +.lr.ph535.preheader: ; preds = %.critedge4 + %umax612 = tail call i64 @llvm.umax.i64(i64 %.promoted529, i64 %2) + %246 = add i64 %.5250.lcssa, %umax612 + %247 = sub i64 %246, %.promoted529 + br label %.lr.ph535 + +.lr.ph535: ; preds = %.lr.ph535.preheader, %249 + %.6534 = phi i64 [ %254, %249 ], [ %.5.lcssa, %.lr.ph541.preheader ] + %.6251533 = phi i64 [ %256, %249 ], [ %.5250.lcssa, %.lr.ph541.preheader ] + %.10532 = phi ptr [ %255, %249 ], [ %.9.lcssa, %.lr.ph541.preheader ] + %248 = phi i64 [ %257, %249 ], [ %.promoted529, %.lr.ph541.preheader ] + %exitcond613.not = icmp eq i64 %.6251533, %247 + br i1 %exitcond613.not, label %.critedge6, label %249 + +249: ; preds = %.lr.ph535 + %250 = mul i64 %.6534, 10 + %251 = load i8, ptr %.10532, align 1 %252 = sext i8 %251 to i64 %253 = add i64 %250, -48 %254 = add i64 %253, %252 - %255 = getelementptr inbounds nuw i8, ptr %.10538, i64 1 - %256 = add i64 %.6251539, 1 + %255 = getelementptr inbounds nuw i8, ptr %.10532, i64 1 + %256 = add i64 %.6251533, 1 %257 = add nuw i64 %248, 1 store i64 %257, ptr %3, align 8 - %258 = icmp ugt i64 %.6251539, 17 + %258 = icmp ugt i64 %.6251533, 17 %.not272 = icmp eq ptr %255, %202 %or.cond287 = select i1 %258, i1 true, i1 %.not272 - br i1 %or.cond287, label %.critedge6, label %.lr.ph541, !llvm.loop !55 + br i1 %or.cond287, label %.critedge6, label %.lr.ph535, !llvm.loop !55 -.critedge6: ; preds = %.lr.ph541, %249, %.critedge4 - %259 = phi i64 [ %.promoted535, %.critedge4 ], [ %257, %249 ], [ %248, %.lr.ph541 ] - %.10.lcssa = phi ptr [ %.9.lcssa, %.critedge4 ], [ %255, %249 ], [ %.10538, %.lr.ph541 ] +.critedge6: ; preds = %.lr.ph535, %249, %.critedge4 + %259 = phi i64 [ %.promoted529, %.critedge4 ], [ %257, %249 ], [ %248, %.lr.ph541 ] + %.10.lcssa = phi ptr [ %.9.lcssa, %.critedge4 ], [ %255, %249 ], [ %.10532, %.lr.ph541 ] %.6251.lcssa = phi i64 [ %.5250.lcssa, %.critedge4 ], [ %256, %249 ], [ %247, %.lr.ph541 ] - %.6.lcssa = phi i64 [ %.5.lcssa, %.critedge4 ], [ %254, %249 ], [ %.6540, %.lr.ph541 ] + %.6.lcssa = phi i64 [ %.5.lcssa, %.critedge4 ], [ %254, %249 ], [ %.6534, %.lr.ph541 ] %260 = icmp eq i64 %259, %2 %261 = load i16, ptr %218, align 8 %.not25.i.i327 = icmp eq i16 %261, 0 @@ -4461,38 +4461,38 @@ _ZN10fast_float6bigint3addEm.exit344: ; preds = %287, %_ZN10fast_flo %298 = ptrtoint ptr %.10.lcssa to i64 %299 = sub i64 %217, %298 %300 = icmp sgt i64 %299, 7 - br i1 %300, label %.lr.ph552, label %.preheader + br i1 %300, label %.lr.ph546, label %.preheader .preheader: ; preds = %301, %_ZN10fast_float6bigint3addEm.exit344 %.0190.lcssa = phi ptr [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ], [ %302, %301 ] - %.not273554 = icmp eq ptr %.0190.lcssa, %202 - br i1 %.not273554, label %.loopexit, label %.lr.ph556 + %.not273548 = icmp eq ptr %.0190.lcssa, %202 + br i1 %.not273548, label %.loopexit, label %.lr.ph550 -.lr.ph552: ; preds = %_ZN10fast_float6bigint3addEm.exit344, %301 - %.0190551 = phi ptr [ %302, %301 ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ] - %.0.copyload139 = load i64, ptr %.0190551, align 1 +.lr.ph546: ; preds = %_ZN10fast_float6bigint3addEm.exit344, %301 + %.0190545 = phi ptr [ %302, %301 ], [ %.10.lcssa, %_ZN10fast_float6bigint3addEm.exit344 ] + %.0.copyload139 = load i64, ptr %.0190545, align 1 %.not275 = icmp eq i64 %.0.copyload139, 3472328296227680304 br i1 %.not275, label %301, label %.critedge289 -301: ; preds = %.lr.ph552 - %302 = getelementptr inbounds nuw i8, ptr %.0190551, i64 8 +301: ; preds = %.lr.ph546 + %302 = getelementptr inbounds nuw i8, ptr %.0190545, i64 8 %303 = ptrtoint ptr %302 to i64 %304 = sub i64 %217, %303 %305 = icmp sgt i64 %304, 7 - br i1 %305, label %.lr.ph552, label %.preheader, !llvm.loop !51 + br i1 %305, label %.lr.ph546, label %.preheader, !llvm.loop !51 -306: ; preds = %.lr.ph556 - %307 = getelementptr inbounds nuw i8, ptr %.1191555, i64 1 +306: ; preds = %.lr.ph550 + %307 = getelementptr inbounds nuw i8, ptr %.1191549, i64 1 %.not273 = icmp eq ptr %307, %202 - br i1 %.not273, label %.loopexit, label %.lr.ph556, !llvm.loop !52 + br i1 %.not273, label %.loopexit, label %.lr.ph550, !llvm.loop !52 -.lr.ph556: ; preds = %.preheader, %306 - %.1191555 = phi ptr [ %307, %306 ], [ %.0190.lcssa, %.preheader ] - %308 = load i8, ptr %.1191555, align 1 +.lr.ph550: ; preds = %.preheader, %306 + %.1191549 = phi ptr [ %307, %306 ], [ %.0190.lcssa, %.preheader ] + %308 = load i8, ptr %.1191549, align 1 %.not274 = icmp eq i8 %308, 48 br i1 %.not274, label %306, label %.critedge289 -.critedge289: ; preds = %.lr.ph552, %.lr.ph556 +.critedge289: ; preds = %.lr.ph546, %.lr.ph550 %309 = load i16, ptr %218, align 8 %.not25.i.i345 = icmp eq i16 %309, 0 br i1 %.not25.i.i345, label %_ZN10fast_float6bigint3mulEm.exit354.preheader, label %.lr.ph.i.i346 @@ -4648,7 +4648,7 @@ _ZN10fast_float6bigint3addEm.exit379: ; preds = %366, %_ZN10fast_flo store i64 %378, ptr %3, align 8 br label %.loopexit -.loopexit: ; preds = %_ZN10fast_float6bigint3addEm.exit379, %306, %.loopexit.sink.split, %._crit_edge510, %.loopexit386, %.loopexit383, %.preheader, %._crit_edge488, %127 +.loopexit: ; preds = %_ZN10fast_float6bigint3addEm.exit379, %306, %.loopexit.sink.split, %._crit_edge504, %.loopexit386, %.loopexit383, %.preheader, %._crit_edge482, %127 ret void } @@ -5165,15 +5165,15 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN10fast_float6bigint4pow5Ej(ptr .preheader: ; preds = %11, %2 %.011.lcssa = phi i32 [ %1, %2 ], [ %12, %11 ] %4 = icmp samesign ugt i32 %.011.lcssa, 26 - br i1 %4, label %.lr.ph37, label %._crit_edge + br i1 %4, label %.lr.ph35, label %._crit_edge -.lr.ph37: ; preds = %.preheader +.lr.ph35: ; preds = %.preheader %5 = getelementptr inbounds nuw i8, ptr %0, i64 496 %6 = load i16, ptr %5, align 8 %7 = icmp eq i16 %6, 0 - br i1 %7, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, label %.lr.ph37.split + br i1 %7, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, label %.lr.ph35.split -_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader: ; preds = %.lr.ph37 +_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader: ; preds = %.lr.ph35 %8 = trunc nuw i32 %.011.lcssa to i8 %.lhs.trunc = add i8 %8, -27 %9 = urem i8 %.lhs.trunc, 27 @@ -5181,22 +5181,22 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader br label %._crit_edge .lr.ph: ; preds = %2, %11 - %.01135 = phi i32 [ %12, %11 ], [ %1, %2 ] + %.01133 = phi i32 [ %12, %11 ], [ %1, %2 ] %10 = tail call noundef zeroext i1 @_ZN10fast_float8long_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE(ptr noundef nonnull align 8 dereferenceable(498) %0, ptr nonnull @_ZZN10fast_float6bigint4pow5EjE16large_power_of_5, i64 5) #21 br i1 %10, label %11, label %_ZN10fast_float9large_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE.exit 11: ; preds = %.lr.ph - %12 = add i32 %.01135, -135 + %12 = add i32 %.01133, -135 %13 = icmp ugt i32 %12, 134 br i1 %13, label %.lr.ph, label %.preheader, !llvm.loop !60 -.lr.ph37.split: ; preds = %.lr.ph37, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread +.lr.ph35.split: ; preds = %.lr.ph35, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread %14 = phi i16 [ %32, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ 1, %.lr.ph37 ] - %.136 = phi i32 [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ %.011.lcssa, %.lr.ph37 ] + %.134 = phi i32 [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ], [ %.011.lcssa, %.lr.ph37 ] %.not25.i = icmp eq i16 %14, 0 br i1 %.not25.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph37.split, %.lr.ph.i +.lr.ph.i: ; preds = %.lr.ph35.split, %.lr.ph.i %.022.i = phi i64 [ %24, %.lr.ph.i ], [ 0, %.lr.ph37.split ] %.01821.i = phi i64 [ %22, %.lr.ph.i ], [ 0, %.lr.ph37.split ] %15 = getelementptr inbounds nuw i64, ptr %0, i64 %.022.i @@ -5232,11 +5232,11 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i: ; preds = %._crit_edge _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_edge.i br i1 %.not.i, label %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, label %_ZN10fast_float9large_mulILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEE.exit -_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread: ; preds = %.lr.ph37.split, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit +_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread: ; preds = %.lr.ph35.split, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit %32 = phi i16 [ 0, %.lr.ph37.split ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ] - %33 = add nsw i32 %.136, -27 + %33 = add nsw i32 %.134, -27 %34 = icmp ugt i32 %33, 26 - br i1 %34, label %.lr.ph37.split, label %._crit_edge, !llvm.loop !61 + br i1 %34, label %.lr.ph35.split, label %._crit_edge, !llvm.loop !61 ._crit_edge: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader, %.preheader %.1.lcssa = phi i32 [ %.011.lcssa, %.preheader ], [ %.zext, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread.us.preheader ], [ %33, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit.thread ] @@ -5320,12 +5320,12 @@ _ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit: ; preds = %3 %8 = shl nuw nsw i16 %.fr, 3 %9 = zext nneg i16 %8 to i64 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 dereferenceable(498) %4, ptr nonnull align 8 %0, i64 %9, i1 false) - %.496..496..496..sroa_idx138 = getelementptr inbounds nuw i8, ptr %4, i64 496 - %.496..496..496. = load i16, ptr %.496..496..496..sroa_idx138, align 8 + %.496..496..496..sroa_idx130 = getelementptr inbounds nuw i8, ptr %4, i64 496 + %.496..496..496. = load i16, ptr %.496..496..496..sroa_idx130, align 8 %.496..fr = freeze i16 %.496..496..496. %10 = add i16 %.496..fr, %.fr - %.496..496..496..sroa_idx139 = getelementptr inbounds nuw i8, ptr %4, i64 496 - store i16 %10, ptr %.496..496..496..sroa_idx139, align 8 + %.496..496..496..sroa_idx131 = getelementptr inbounds nuw i8, ptr %4, i64 496 + store i16 %10, ptr %.496..496..496..sroa_idx131, align 8 %.not = icmp eq i64 %2, 0 br i1 %.not, label %.loopexit, label %11 @@ -5375,9 +5375,9 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_ br i1 %.not.i, label %.critedge.preheader, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit .critedge.preheader: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i, %11 - %.promoted.i81 = phi i16 [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ 0, %11 ] - %.not62 = icmp eq i64 %2, 1 - br i1 %.not62, label %.loopexit, label %.lr.ph + %.promoted.i77 = phi i16 [ %25, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit ], [ %31, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i ], [ 0, %11 ] + %.not60 = icmp eq i64 %2, 1 + br i1 %.not60, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.critedge.preheader %32 = getelementptr inbounds nuw i8, ptr %5, i64 496 @@ -5387,8 +5387,8 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit: ; preds = %._crit_ br i1 %.not.i19, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us - %.01661.us = phi i64 [ %108, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us ], [ 1, %.lr.ph ] - %35 = getelementptr inbounds i64, ptr %1, i64 %.01661.us + %.01659.us = phi i64 [ %108, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us ], [ 1, %.lr.ph ] + %35 = getelementptr inbounds i64, ptr %1, i64 %.01659.us %36 = load i64, ptr %35, align 8 %.not18.us = icmp eq i64 %36, 0 br i1 %.not18.us, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, label %37 @@ -5447,14 +5447,14 @@ _ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us: ; pred %60 = zext i16 %59 to i64 %61 = load i16, ptr %6, align 8 %62 = zext i16 %61 to i64 - %63 = icmp ugt i64 %.01661.us, %62 - %64 = sub nsw i64 %62, %.01661.us + %63 = icmp ugt i64 %.01659.us, %62 + %64 = sub nsw i64 %62, %.01659.us %65 = icmp ult i64 %64, %60 %or.cond.i.us = select i1 %63, i1 true, i1 %65 br i1 %or.cond.i.us, label %66, label %74 66: ; preds = %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us - %67 = add i64 %.01661.us, %60 + %67 = add i64 %.01659.us, %60 %68 = icmp ult i64 %67, 63 br i1 %68, label %69, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit @@ -5476,7 +5476,7 @@ _ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: ; preds = %.lr. br label %74 74: ; preds = %_ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us, %_ZN10fast_float9small_mulILt62EEEbRNS_8stackvecIXT_EEEm.exit29.thread.us - %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.01661.us + %invariant.gep.i.us = getelementptr i64, ptr %0, i64 %.01659.us %.not.i30.us = icmp eq i16 %59, 0 br i1 %.not.i30.us, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, label %.lr.ph.i31.us @@ -5514,7 +5514,7 @@ _ZN10fast_float8stackvecILt62EE10try_resizeEmm.exit.thread.i.us: ; preds = %.lr. br i1 %89, label %91, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us 91: ; preds = %._crit_edge.i32.us - %92 = add i64 %.01661.us, %60 + %92 = add i64 %.01659.us, %60 br label %93 93: ; preds = %101, %91 @@ -5547,19 +5547,19 @@ _ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us: ; preds = %.crite br i1 %105, label %93, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us, !llvm.loop !50 _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread.us: ; preds = %101, %_ZN10fast_float8stackvecILt62EE8try_pushEm.exit.thread.i.i.us, %._crit_edge.i32.us, %74, %.lr.ph.split.us - %108 = add nuw i64 %.01661.us, 1 - %exitcond77.not = icmp eq i64 %108, %2 - br i1 %exitcond77.not, label %.loopexit.loopexit, label %.lr.ph.split.us, !llvm.loop !64 + %108 = add nuw i64 %.01659.us, 1 + %exitcond73.not = icmp eq i64 %108, %2 + br i1 %exitcond73.not, label %.loopexit.loopexit, label %.lr.ph.split.us, !llvm.loop !64 .lr.ph.split: ; preds = %.lr.ph, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread - %.01661 = phi i64 [ %111, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ], [ 1, %.lr.ph ] - %109 = getelementptr inbounds i64, ptr %1, i64 %.01661 + %.01659 = phi i64 [ %111, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ], [ 1, %.lr.ph ] + %109 = getelementptr inbounds i64, ptr %1, i64 %.01659 %110 = load i64, ptr %109, align 8 %.not18 = icmp eq i64 %110, 0 br i1 %.not18, label %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread: ; preds = %.lr.ph.split - %111 = add nuw i64 %.01661, 1 + %111 = add nuw i64 %.01659, 1 %exitcond.not = icmp eq i64 %111, %2 br i1 %exitcond.not, label %.loopexit, label %.lr.ph.split, !llvm.loop !64 @@ -5568,7 +5568,7 @@ _ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.t br label %.loopexit .loopexit: ; preds = %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread, %.loopexit.loopexit, %.critedge.preheader, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit - %.promoted.i = phi i16 [ %.promoted.i.pre, %.loopexit.loopexit ], [ %.promoted.i81, %.critedge.preheader ], [ %.fr, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit ], [ %.promoted.i81, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ] + %.promoted.i = phi i16 [ %.promoted.i.pre, %.loopexit.loopexit ], [ %.promoted.i77, %.critedge.preheader ], [ %.fr, %_ZN10fast_float8stackvecILt62EEC2ENS_4spanImEE.exit ], [ %.promoted.i77, %_ZN10fast_float14large_add_fromILt62EEEbRNS_8stackvecIXT_EEENS_4spanImEEm.exit.thread ] %.not1.i = icmp eq i16 %.promoted.i, 0 br i1 %.not1.i, label %_ZN10fast_float8stackvecILt62EE10try_extendENS_4spanImEE.exit, label %.lr.ph.i33 diff --git a/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll b/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll index 721a413729d..16bc5f41e40 100644 --- a/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll +++ b/bench/pingora-rs/optimized/bvwglp2tpp41rgrf36efmuws6.ll @@ -11220,13 +11220,13 @@ define noalias noundef align 8 ptr @_ZN12pingora_core10connectors2l46BindTo14set %7 = load i16, ptr %6, align 4, !range !1077 %.not13 = icmp eq i16 %7, 0 %or.cond16 = select i1 %.not, i1 %.not13, i1 false - br i1 %or.cond16, label %41, label %8 + br i1 %or.cond16, label %39, label %8 8: ; preds = %2 %9 = trunc i48 %1 to i1 br i1 %9, label %10, label %13 -10: ; preds = %8 +11: ; preds = %8 %11 = icmp eq i16 %.sroa.06.2.extract.trunc, 0 %12 = icmp ult i48 %1, 4294967296 %or.cond = and i1 %12, %11 @@ -11238,101 +11238,101 @@ define noalias noundef align 8 ptr @_ZN12pingora_core10connectors2l46BindTo14set store i16 0, ptr %.sroa.4.0..sroa_idx, align 2 %.sroa.59.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 36 store i16 0, ptr %.sroa.59.0..sroa_idx, align 4 - br label %41 + br label %39 -14: ; preds = %10 +12: ; preds = %10 %.not14 = icmp ne i16 %.sroa.06.2.extract.trunc, 0 - %15 = icmp ult i16 %.sroa.06.2.extract.trunc, %.sroa.06.4.extract.trunc - %or.cond17 = select i1 %.not14, i1 %15, i1 false - br i1 %or.cond17, label %39, label %16 + %13 = icmp ult i16 %.sroa.06.2.extract.trunc, %.sroa.06.4.extract.trunc + %or.cond19 = select i1 %.not14, i1 %13, i1 false + br i1 %or.cond19, label %37, label %14 -16: ; preds = %14 +14: ; preds = %12 call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @"_ZN89_$LT$pingora_error..immut_str..ImmutStr$u20$as$u20$core..convert..From$LT$$RF$str$GT$$GT$4from17h3dd15727f5debf00E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 @anon.6faecb1efa1c25b07169dfca49265c5b.175, i64 noundef 27) - %.sroa.019.0.copyload = load i64, ptr %4, align 8 + %.sroa.021.0.copyload = load i64, ptr %4, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %4) - %17 = invoke noundef i8 @"_ZN76_$LT$pingora_error..RetryType$u20$as$u20$core..convert..From$LT$bool$GT$$GT$4from17h714a125d92dedb15E"(i1 noundef zeroext false) - to label %18 unwind label %31, !noalias !1078 + %15 = invoke noundef i8 @"_ZN76_$LT$pingora_error..RetryType$u20$as$u20$core..convert..From$LT$bool$GT$$GT$4from17h714a125d92dedb15E"(i1 noundef zeroext false) + to label %18 unwind label %29, !noalias !1078 -18: ; preds = %16 +16: ; preds = %14 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !1078 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 - store i16 11, ptr %19, align 8, !noalias !1082 - %20 = getelementptr inbounds nuw i8, ptr %3, i64 65 - store i8 3, ptr %20, align 1, !noalias !1078 - %21 = getelementptr inbounds nuw i8, ptr %3, i64 64 - store i8 %17, ptr %21, align 8, !noalias !1078 - %22 = getelementptr inbounds nuw i8, ptr %3, i64 48 - store ptr null, ptr %22, align 8, !noalias !1078 - store i64 %.sroa.019.0.copyload, ptr %3, align 8, !noalias !1083 - %.sroa.5.0..sroa_idx21 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx21, align 8, !noalias !1083 - %.sroa.6.0..sroa_idx23 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx23, align 8, !noalias !1083 - %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1084 - %24 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCshjvJWTf7CV5_7___rustc12___rust_alloc(i64 noundef range(i64 64, 641) 72, i64 noundef range(i64 8, 129) 8) #31, !noalias !1084 - %25 = icmp eq ptr %24, null - br i1 %25, label %26, label %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit, !prof !20 - -26: ; preds = %18 + %17 = getelementptr inbounds nuw i8, ptr %3, i64 24 + store i16 11, ptr %17, align 8, !noalias !1082 + %18 = getelementptr inbounds nuw i8, ptr %3, i64 65 + store i8 3, ptr %18, align 1, !noalias !1078 + %19 = getelementptr inbounds nuw i8, ptr %3, i64 64 + store i8 %15, ptr %19, align 8, !noalias !1078 + %20 = getelementptr inbounds nuw i8, ptr %3, i64 48 + store ptr null, ptr %20, align 8, !noalias !1078 + store i64 %.sroa.021.0.copyload, ptr %3, align 8, !noalias !1083 + %.sroa.5.0..sroa_idx23 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa_idx23, align 8, !noalias !1083 + %.sroa.6.0..sroa_idx25 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 %.sroa.6.0.copyload, ptr %.sroa.6.0..sroa_idx25, align 8, !noalias !1083 + %21 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1084 + %22 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCshjvJWTf7CV5_7___rustc12___rust_alloc(i64 noundef range(i64 64, 641) 72, i64 noundef range(i64 8, 129) 8) #31, !noalias !1084 + %23 = icmp eq ptr %22, null + br i1 %23, label %24, label %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit, !prof !20 + +24: ; preds = %16 invoke void @_ZN5alloc5alloc18handle_alloc_error17haa66aaa8cfcf3614E(i64 noundef 8, i64 noundef 72) #30 - to label %.noexc.i unwind label %27, !noalias !1078 + to label %.noexc.i unwind label %25, !noalias !1078 -.noexc.i: ; preds = %26 +.noexc.i: ; preds = %24 unreachable -27: ; preds = %26 - %28 = landingpad { ptr, i32 } +25: ; preds = %24 + %26 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr41drop_in_place$LT$pingora_error..Error$GT$17h5bd55f7e9a73bfeeE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %3) #28 - to label %.critedge.i unwind label %29, !noalias !1078 + to label %.critedge.i unwind label %27, !noalias !1078 -29: ; preds = %27 - %30 = landingpad { ptr, i32 } +27: ; preds = %25 + %28 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hccd47ddd364deb23E() #29, !noalias !1078 unreachable -.critedge.i: ; preds = %37, %34, %31, %27 - %eh.lpad-body11.i = phi { ptr, i32 } [ %28, %27 ], [ %32, %31 ], [ %32, %34 ], [ %32, %37 ] +.critedge.i: ; preds = %35, %32, %29, %25 + %eh.lpad-body11.i = phi { ptr, i32 } [ %26, %27 ], [ %32, %31 ], [ %30, %34 ], [ %30, %37 ] resume { ptr, i32 } %eh.lpad-body11.i -31: ; preds = %16 - %32 = landingpad { ptr, i32 } +29: ; preds = %14 + %30 = landingpad { ptr, i32 } cleanup - %33 = icmp eq i64 %.sroa.019.0.copyload, 2 - br i1 %33, label %.critedge.i, label %34 + %31 = icmp eq i64 %.sroa.021.0.copyload, 2 + br i1 %31, label %.critedge.i, label %32 -34: ; preds = %31 - %35 = icmp eq i64 %.sroa.019.0.copyload, 0 - %36 = icmp eq i64 %.sroa.6.0.copyload, 0 - %or.cond25 = select i1 %35, i1 true, i1 %36 - br i1 %or.cond25, label %.critedge.i, label %37 +32: ; preds = %29 + %33 = icmp eq i64 %.sroa.021.0.copyload, 0 + %34 = icmp eq i64 %.sroa.6.0.copyload, 0 + %or.cond27 = select i1 %33, i1 true, i1 %34 + br i1 %or.cond27, label %.critedge.i, label %35 -37: ; preds = %34 - %38 = icmp ne ptr %.sroa.5.0.copyload, null - tail call void @llvm.assume(i1 %38) +35: ; preds = %32 + %36 = icmp ne ptr %.sroa.5.0.copyload, null + tail call void @llvm.assume(i1 %36) tail call void @_RNvCshjvJWTf7CV5_7___rustc14___rust_dealloc(ptr noundef nonnull %.sroa.5.0.copyload, i64 noundef range(i64 1, 0) %.sroa.6.0.copyload, i64 noundef 1) #31, !noalias !1087 br label %.critedge.i -_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit: ; preds = %18 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %24, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false), !noalias !1078 +_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit: ; preds = %16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %22, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false), !noalias !1078 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1078 - br label %41 + br label %39 -39: ; preds = %14 +37: ; preds = %12 store i16 1, ptr %6, align 4 %.sroa.411.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 34 - %40 = trunc nuw i48 %.sroa.06.2.extract.shift to i32 - store i32 %40, ptr %.sroa.411.0..sroa_idx, align 2 - br label %41 + %38 = trunc nuw i48 %.sroa.06.2.extract.shift to i32 + store i32 %38, ptr %.sroa.411.0..sroa_idx, align 2 + br label %39 -41: ; preds = %13, %39, %2, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit - %.sroa.07.0 = phi ptr [ %24, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit ], [ null, %2 ], [ null, %39 ], [ null, %13 ] +39: ; preds = %13, %37, %2, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit + %.sroa.07.0 = phi ptr [ %22, %_ZN13pingora_error5Error6create17h955b51aae75e18f9E.exit ], [ null, %2 ], [ null, %39 ], [ null, %13 ] ret ptr %.sroa.07.0 } diff --git a/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll b/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll index 8b83557c221..436298cefe4 100644 --- a/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll +++ b/bench/pola-rs/optimized/3x7yowofiwoipixvfrx7sq0eo.ll @@ -34877,7 +34877,7 @@ define void @"_ZN101_$LT$polars_expr..expressions..apply..ApplyExpr$u20$as$u20$p call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4215.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4215, i64 24, i1 false) store i128 4, ptr %0, align 16 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.4215) - br label %924 + br label %925 124: ; preds = %117 call void @llvm.lifetime.start.p0(ptr nonnull %101) @@ -35333,7 +35333,7 @@ _ZN11polars_expr11expressions5apply9ApplyExpr23prepare_multiple_inputs17h9ba6c0b i8 2, label %274 ] -default.unreachable331: ; preds = %.lr.ph, %883, %854, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit143.i", %350, %330, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" +default.unreachable331: ; preds = %.lr.ph, %884, %855, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit143.i", %350, %330, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i, %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" unreachable 267: ; preds = %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit69.i" @@ -36691,7 +36691,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E 648: ; preds = %655, %654, %647 call void @llvm.lifetime.end.p0(ptr nonnull %111) - br label %924 + br label %925 649: ; preds = %"_ZN4core3ptr76drop_in_place$LT$$u5b$polars_core..frame..column..Column$u3b$$u20$1$u5d$$GT$17h5c55a8f231941334E.exit", %645 call void @llvm.lifetime.end.p0(ptr nonnull %109) @@ -36704,7 +36704,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E invoke fastcc void @"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E"(ptr noalias noundef align 16 dereferenceable(160) %109) #25 to label %.thread223 unwind label %651 -651: ; preds = %.thread260, %922, %742, %730, %707, %.thread223, %650, %619 +651: ; preds = %.thread260, %923, %742, %730, %707, %.thread223, %650, %619 %652 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24 @@ -36717,7 +36717,7 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E 653: ; preds = %649, %159 call void @llvm.lifetime.end.p0(ptr nonnull %111) - br label %924 + br label %925 654: ; preds = %591, %589, %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i131" call void @llvm.lifetime.end.p0(ptr nonnull %43) @@ -36733,8 +36733,8 @@ _ZN11polars_core5frame6column6Column22as_materialized_series17hf2f3d18b44b41e16E call void @llvm.lifetime.end.p0(ptr nonnull %102) br label %648 -.thread227: ; preds = %.body.i191, %922, %593, %322, %.body.i, %.thread260, %.thread223 - %.pn121.pn = phi { ptr, i32 } [ %.pn121226, %.thread223 ], [ %.pn115263, %.thread260 ], [ %.pn.i, %.body.i ], [ %.pn95171.i, %593 ], [ %.pn93.i, %322 ], [ %923, %922 ], [ %.pn100.i, %.body.i191 ] +.thread227: ; preds = %.body.i191, %923, %593, %322, %.body.i, %.thread260, %.thread223 + %.pn121.pn = phi { ptr, i32 } [ %.pn121226, %.thread223 ], [ %.pn115263, %.thread260 ], [ %.pn.i, %.body.i ], [ %.pn95171.i, %593 ], [ %.pn93.i, %322 ], [ %924, %922 ], [ %.pn100.i, %.body.i191 ] resume { ptr, i32 } %.pn121.pn .thread223: ; preds = %642, %619, %650, %.thread234 @@ -37018,9 +37018,9 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds call void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %101) br label %739 -739: ; preds = %749, %918, %678, %738 +739: ; preds = %749, %919, %678, %738 call void @llvm.lifetime.end.p0(ptr nonnull %101) - br label %924 + br label %925 740: ; preds = %735 call void @llvm.lifetime.end.p0(ptr nonnull %96) @@ -37043,7 +37043,7 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds 744: ; preds = %743, %656 call void @llvm.lifetime.end.p0(ptr nonnull %101) - br label %924 + br label %925 .lr.ph: ; preds = %.lr.ph.preheader, %928 %.sroa.0105.1300 = phi ptr [ %.sroa.0105.1, %928 ], [ %.sroa.0105.1295, %.lr.ph.preheader ] @@ -37083,7 +37083,7 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds %755 = load i8, ptr %754, align 4, !range !2932, !noundef !3 %756 = load i16, ptr %114, align 16, !noundef !3 %757 = invoke noundef zeroext i1 @_ZN11polars_plan5plans7options13FunctionFlags14returns_scalar17he0e1e2dbfb8bcc62E(i16 noundef %756) - to label %.noexc188 unwind label %922 + to label %.noexc188 unwind label %923 .noexc188: ; preds = %._crit_edge.thread br i1 %757, label %"_ZN101_$LT$polars_expr..expressions..apply..ApplyExpr$u20$as$u20$polars_expr..expressions..PhysicalExpr$GT$9is_scalar17hc564b4eea8180f53E.exit", label %758 @@ -37123,27 +37123,27 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds invoke void @_ZN4core6option13unwrap_failed17h4c7f35545a6d0c7eE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.263) #23 to label %776 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -.body.i191: ; preds = %.thread146.i, %.thread135.i, %796, %.loopexit.split-lp.loopexit.split-lp.i, %.loopexit.split-lp.loopexit.i, %.loopexit.i - %.pn100.i = phi { ptr, i32 } [ %.pn97.pn.i, %.thread135.i ], [ %.pn91.i195, %.thread146.i ], [ %797, %796 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit160.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp161.i, %.loopexit.split-lp.loopexit.split-lp.i ] +.body.i191: ; preds = %.thread146.i, %.thread135.i, %797, %.loopexit.split-lp.loopexit.split-lp.i, %.loopexit.split-lp.loopexit.i, %.loopexit.i + %.pn100.i = phi { ptr, i32 } [ %.pn97.pn.i, %.thread135.i ], [ %.pn91.i195, %.thread146.i ], [ %798, %796 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit160.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp161.i, %.loopexit.split-lp.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) #25 - to label %.thread227 unwind label %843, !noalias !4623 + to label %.thread227 unwind label %844, !noalias !4623 -.loopexit.i: ; preds = %847 +.loopexit.i: ; preds = %848 %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -.loopexit.split-lp.loopexit.i: ; preds = %.noexc.i192, %788 +.loopexit.split-lp.loopexit.i: ; preds = %.noexc.i192, %789 %lpad.loopexit160.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -.loopexit.split-lp.loopexit.split-lp.i: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200", %916, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", %842, %839, %801, %780, %775, %771 +.loopexit.split-lp.loopexit.split-lp.i: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200", %917, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", %843, %840, %802, %781, %775, %771 %lpad.loopexit.split-lp161.i = landingpad { ptr, i32 } cleanup br label %.body.i191 -776: ; preds = %882, %867, %775 +776: ; preds = %883, %868, %775 unreachable 777: ; preds = %771 @@ -37151,244 +37151,244 @@ _ZN4core4iter6traits8iterator8Iterator7collect17h7718a8e431bcc22bE.exit: ; preds %779 = icmp eq i128 %778, 0 br i1 %779, label %780, label %782 -780: ; preds = %777 - %781 = getelementptr inbounds nuw i8, ptr %774, i64 16 +781: ; preds = %777 + %782 = getelementptr inbounds nuw i8, ptr %774, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %22), !noalias !4631 - invoke void @_ZN11polars_core5frame6column6Column4list17h6aedea38cb34faf9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %22, ptr noundef nonnull align 16 %781) + invoke void @_ZN11polars_core5frame6column6Column4list17h6aedea38cb34faf9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %22, ptr noundef nonnull align 16 %782) to label %793 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -782: ; preds = %777 - %783 = icmp ne i128 %778, 3 - %.sroa.024.0.i = and i1 %783, %762 - %784 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 - br label %785 +783: ; preds = %777 + %784 = icmp ne i128 %778, 3 + %.sroa.024.0.i = and i1 %784, %762 + %785 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 + br label %786 -785: ; preds = %.noexc104.i, %782 - %786 = phi ptr [ %789, %.noexc104.i ], [ %773, %782 ] - %787 = icmp eq ptr %786, %784 - br i1 %787, label %.preheader, label %788 +786: ; preds = %.noexc104.i, %783 + %787 = phi ptr [ %790, %.noexc104.i ], [ %773, %782 ] + %788 = icmp eq ptr %787, %785 + br i1 %788, label %.preheader, label %789 -788: ; preds = %785 - %789 = getelementptr inbounds nuw i8, ptr %786, i64 272 - %790 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %786) +789: ; preds = %786 + %790 = getelementptr inbounds nuw i8, ptr %787, i64 272 + %791 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %787) to label %.noexc.i192 unwind label %.loopexit.split-lp.loopexit.i, !noalias !4631 -.noexc.i192: ; preds = %788 - %791 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext10is_literal17ha2dbb65b86e73078E(ptr noundef nonnull align 16 %786) +.noexc.i192: ; preds = %789 + %792 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext10is_literal17ha2dbb65b86e73078E(ptr noundef nonnull align 16 %787) to label %.noexc104.i unwind label %.loopexit.split-lp.loopexit.i, !noalias !4631 .noexc104.i: ; preds = %.noexc.i192 - %792 = or i1 %790, %791 - br i1 %792, label %785, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" + %793 = or i1 %791, %792 + br i1 %793, label %786, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" -793: ; preds = %780 +794: ; preds = %781 call void @llvm.experimental.noalias.scope.decl(metadata !4632) - %794 = load i64, ptr %22, align 8, !range !424, !alias.scope !4632, !noalias !4635, !noundef !3 - %.not.i.i206 = icmp eq i64 %794, 17 - br i1 %.not.i.i206, label %801, label %795, !prof !366 + %795 = load i64, ptr %22, align 8, !range !424, !alias.scope !4632, !noalias !4635, !noundef !3 + %.not.i.i206 = icmp eq i64 %795, 17 + br i1 %.not.i.i206, label %802, label %796, !prof !366 -795: ; preds = %793 +796: ; preds = %794 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !4637 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, ptr noundef nonnull align 8 dereferenceable(64) %22, i64 64, i1 false), !noalias !4635 invoke void @_ZN4core6result13unwrap_failed17h730db56f15e0885aE(ptr noalias noundef nonnull readonly align 1 @anon.fb4689afb8eeaa4e0f4173e76b75b56e.116, i64 noundef 43, ptr noundef nonnull align 1 %7, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.115, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.264) #23 - to label %798 unwind label %796, !noalias !4638 + to label %798 unwind label %797, !noalias !4638 -796: ; preds = %795 - %797 = landingpad { ptr, i32 } +797: ; preds = %796 + %798 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$polars_error..PolarsError$GT$17h579ac14c865032a6E"(ptr noalias noundef nonnull align 8 dereferenceable(64) %7) #25 - to label %.body.i191 unwind label %799, !noalias !4638 + to label %.body.i191 unwind label %800, !noalias !4638 -798: ; preds = %795 +799: ; preds = %796 unreachable -799: ; preds = %796 - %800 = landingpad { ptr, i32 } +800: ; preds = %797 + %801 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4638 unreachable -801: ; preds = %793 - %802 = getelementptr inbounds nuw i8, ptr %22, i64 8 - %803 = load ptr, ptr %802, align 8, !alias.scope !4632, !noalias !4635, !nonnull !3, !align !4, !noundef !3 +802: ; preds = %794 + %803 = getelementptr inbounds nuw i8, ptr %22, i64 8 + %804 = load ptr, ptr %803, align 8, !alias.scope !4632, !noalias !4635, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.end.p0(ptr nonnull %22), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %21), !noalias !4631 - %804 = getelementptr inbounds nuw i8, ptr %773, i64 272 - %805 = getelementptr { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 - invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h435b5e9b8e937b9aE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %21, ptr noundef nonnull %804, ptr noundef nonnull %805, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) + %805 = getelementptr inbounds nuw i8, ptr %773, i64 272 + %806 = getelementptr { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %770 + invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h435b5e9b8e937b9aE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %21, ptr noundef nonnull %805, ptr noundef nonnull %806, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) to label %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; preds = %801 +_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; preds = %802 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7.i189) call void @llvm.lifetime.start.p0(ptr nonnull %20), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %19), !noalias !4631 store ptr %21, ptr %19, align 8, !noalias !4631 - %806 = getelementptr inbounds nuw i8, ptr %19, i64 8 - store ptr %768, ptr %806, align 8, !noalias !4631 - %807 = getelementptr inbounds nuw i8, ptr %19, i64 16 - store ptr %753, ptr %807, align 8, !noalias !4631 - invoke void @"_ZN11polars_core13chunked_array4list98_$LT$impl$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$14apply_to_inner17hd7aa65ec4717e7fbE"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %20, ptr noundef nonnull align 8 %803, ptr noundef nonnull align 1 %19, ptr noalias noundef readonly align 8 dereferenceable(48) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.265) - to label %810 unwind label %808, !noalias !4639 - -.thread135.i: ; preds = %.body102.i, %815, %808 - %.pn97.pn.i = phi { ptr, i32 } [ %816, %815 ], [ %809, %808 ], [ %eh.lpad-body103.i, %.body102.i ] + %807 = getelementptr inbounds nuw i8, ptr %19, i64 8 + store ptr %768, ptr %807, align 8, !noalias !4631 + %808 = getelementptr inbounds nuw i8, ptr %19, i64 16 + store ptr %753, ptr %808, align 8, !noalias !4631 + invoke void @"_ZN11polars_core13chunked_array4list98_$LT$impl$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$14apply_to_inner17hd7aa65ec4717e7fbE"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %20, ptr noundef nonnull align 8 %804, ptr noundef nonnull align 1 %19, ptr noalias noundef readonly align 8 dereferenceable(48) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.265) + to label %810 unwind label %809, !noalias !4639 + +.thread135.i: ; preds = %.body102.i, %816, %809 + %.pn97.pn.i = phi { ptr, i32 } [ %817, %815 ], [ %810, %808 ], [ %eh.lpad-body103.i, %.body102.i ] invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) #25 - to label %.body.i191 unwind label %843, !noalias !4639 + to label %.body.i191 unwind label %844, !noalias !4639 -808: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i - %809 = landingpad { ptr, i32 } +809: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i + %810 = landingpad { ptr, i32 } cleanup br label %.thread135.i -810: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i - %811 = load i64, ptr %20, align 8, !range !424, !noalias !4631, !noundef !3 - %.not93.i = icmp eq i64 %811, 17 - %812 = getelementptr inbounds nuw i8, ptr %20, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, ptr noundef nonnull align 8 dereferenceable(56) %812, i64 56, i1 false), !noalias !4631 +811: ; preds = %_ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i + %812 = load i64, ptr %20, align 8, !range !424, !noalias !4631, !noundef !3 + %.not93.i = icmp eq i64 %812, 17 + %813 = getelementptr inbounds nuw i8, ptr %20, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, ptr noundef nonnull align 8 dereferenceable(56) %813, i64 56, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !4631 - br i1 %.not93.i, label %817, label %813 + br i1 %.not93.i, label %818, label %814 -813: ; preds = %810 +814: ; preds = %811 %.sroa.250.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.250.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4640 - %814 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %811, ptr %814, align 16, !alias.scope !4623, !noalias !4640 + %815 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %812, ptr %815, align 16, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i189) - br label %842 + br label %843 -815: ; preds = %837 - %816 = landingpad { ptr, i32 } +816: ; preds = %838 + %817 = landingpad { ptr, i32 } cleanup br label %.thread135.i -817: ; preds = %810 - %818 = getelementptr inbounds nuw i8, ptr %8, i64 16 +818: ; preds = %811 + %819 = getelementptr inbounds nuw i8, ptr %8, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !4631 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %818, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4631 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %819, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.7.i189, i64 56, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7.i189) call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !4631 call void @llvm.experimental.noalias.scope.decl(metadata !4641) - %819 = icmp ult i64 %770, 33909456017848441 - call void @llvm.assume(i1 %819) + %820 = icmp ult i64 %770, 33909456017848441 + call void @llvm.assume(i1 %820) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %18, ptr noundef nonnull align 16 dereferenceable(272) %773, i64 272, i1 false), !noalias !4644 - %820 = add nsw i64 %770, -1 - %821 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %820 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %821, i64 272, i1 false), !noalias !4645 - store i64 %820, ptr %769, align 8, !alias.scope !4647, !noalias !4648 + %821 = add nsw i64 %770, -1 + %822 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %821 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %822, i64 272, i1 false), !noalias !4645 + store i64 %821, ptr %769, align 8, !alias.scope !4647, !noalias !4648 call void @llvm.lifetime.start.p0(ptr nonnull %17), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !4631 store i64 1, ptr %8, align 8, !noalias !4631 - %822 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 1, ptr %822, align 8, !noalias !4631 - %823 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !4649 - %824 = call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 8, 361) 72, i64 noundef range(i64 8, 17) 8) #26, !noalias !4652 - %825 = icmp eq ptr %824, null - br i1 %825, label %826, label %833, !prof !833 - -826: ; preds = %817 + %823 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 1, ptr %823, align 8, !noalias !4631 + %824 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !4649 + %825 = call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 8, 361) 72, i64 noundef range(i64 8, 17) 8) #26, !noalias !4652 + %826 = icmp eq ptr %825, null + br i1 %826, label %827, label %834, !prof !833 + +827: ; preds = %818 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 72) #23 - to label %.noexc107.i unwind label %827, !noalias !4639 + to label %.noexc107.i unwind label %828, !noalias !4639 -.noexc107.i: ; preds = %826 +.noexc107.i: ; preds = %827 unreachable -827: ; preds = %826 - %828 = landingpad { ptr, i32 } +828: ; preds = %827 + %829 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr186drop_in_place$LT$alloc..sync..ArcInner$LT$polars_core..series..implementations..SeriesWrap$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..ListType$GT$$GT$$GT$$GT$17hc5c18a769574821cE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %8) #25 - to label %.body102.i unwind label %829, !noalias !4639 + to label %.body102.i unwind label %830, !noalias !4639 -829: ; preds = %827 - %830 = landingpad { ptr, i32 } +830: ; preds = %828 + %831 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4639 unreachable -831: ; preds = %834, %833 - %832 = landingpad { ptr, i32 } +832: ; preds = %835, %834 + %833 = landingpad { ptr, i32 } cleanup br label %.body102.i -.body102.i: ; preds = %831, %827 - %eh.lpad-body103.i = phi { ptr, i32 } [ %832, %831 ], [ %828, %827 ] +.body102.i: ; preds = %832, %828 + %eh.lpad-body103.i = phi { ptr, i32 } [ %833, %831 ], [ %829, %827 ] invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %18) #25 - to label %.thread135.i unwind label %843, !noalias !4639 + to label %.thread135.i unwind label %844, !noalias !4639 -833: ; preds = %817 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %824, ptr noundef nonnull align 8 dereferenceable(72) %8, i64 72, i1 false), !noalias !4639 +834: ; preds = %818 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %825, ptr noundef nonnull align 8 dereferenceable(72) %8, i64 72, i1 false), !noalias !4639 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !4631 - invoke fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %16, ptr noundef nonnull %824, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.234) - to label %834 unwind label %831, !noalias !4639 + invoke fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %16, ptr noundef nonnull %825, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.234) + to label %834 unwind label %832, !noalias !4639 -834: ; preds = %833 +835: ; preds = %834 invoke void @_ZN11polars_expr11expressions18AggregationContext11with_values17h32f8edd81a82401bE(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %17, ptr noalias noundef nonnull align 16 dereferenceable(272) %18, ptr noalias noundef nonnull align 16 captures(none) dereferenceable(160) %16, i1 noundef zeroext true, ptr noundef align 16 null) - to label %835 unwind label %831, !noalias !4639 + to label %835 unwind label %832, !noalias !4639 -835: ; preds = %834 +836: ; preds = %835 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !4631 - %836 = load i64, ptr %17, align 8, !range !424, !noalias !4631, !noundef !3 - %.not95.i = icmp eq i64 %836, 17 - br i1 %.not95.i, label %839, label %837 + %837 = load i64, ptr %17, align 8, !range !424, !noalias !4631, !noundef !3 + %.not95.i = icmp eq i64 %837, 17 + br i1 %.not95.i, label %840, label %838 -837: ; preds = %835 +838: ; preds = %836 %.sroa.457.0..sroa_idx.i207 = getelementptr inbounds nuw i8, ptr %17, i64 8 %.sroa.457.0.copyload.i = load ptr, ptr %.sroa.457.0..sroa_idx.i207, align 8, !noalias !4631 %.sroa.558.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %17, i64 16 %.sroa.361.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %.sroa.361.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.558.0..sroa_idx.i, i64 48, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !4631 - %838 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %836, ptr %838, align 16, !alias.scope !4623, !noalias !4640 + %839 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %837, ptr %839, align 16, !alias.scope !4623, !noalias !4640 %.sroa.260.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %.sroa.457.0.copyload.i, ptr %.sroa.260.0..sroa_idx.i, align 8, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %18) - to label %841 unwind label %815, !noalias !4639 + to label %841 unwind label %816, !noalias !4639 -839: ; preds = %835 +840: ; preds = %836 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %0, ptr noundef nonnull align 16 dereferenceable(272) %18, i64 272, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !4631 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) to label %840 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 -840: ; preds = %839 +841: ; preds = %840 call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !4631 - br label %918 + br label %919 -841: ; preds = %837 +842: ; preds = %838 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !4631 - br label %842 + br label %843 -842: ; preds = %841, %813 +843: ; preds = %842, %814 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) to label %845 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4639 -843: ; preds = %920, %910, %.thread146.i, %.body102.i, %.thread135.i, %.body.i191 - %844 = landingpad { ptr, i32 } +844: ; preds = %921, %911, %.thread146.i, %.body102.i, %.thread135.i, %.body.i191 + %845 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #24, !noalias !4623 unreachable -845: ; preds = %842 +846: ; preds = %843 call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !4631 - br label %918 + br label %919 -.preheader: ; preds = %785, %.noexc109.i - %846 = phi ptr [ %849, %.noexc109.i ], [ %773, %785 ] - %.not.not.not.i.not.not.i.not.not = icmp ne ptr %846, %784 - br i1 %.not.not.not.i.not.not.i.not.not, label %847, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" +.preheader: ; preds = %786, %.noexc109.i + %847 = phi ptr [ %850, %.noexc109.i ], [ %773, %785 ] + %.not.not.not.i.not.not.i.not.not = icmp ne ptr %847, %785 + br i1 %.not.not.not.i.not.not.i.not.not, label %848, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" -847: ; preds = %.preheader - %848 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %846) +848: ; preds = %.preheader + %849 = invoke noundef zeroext i1 @_ZN11polars_expr11expressions18AggregationContext13is_aggregated17hefd39726094c6e85E(ptr noundef nonnull align 16 %847) to label %.noexc109.i unwind label %.loopexit.i, !noalias !4631 -.noexc109.i: ; preds = %847 - %849 = getelementptr inbounds nuw i8, ptr %846, i64 272 - br i1 %848, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", label %.preheader +.noexc109.i: ; preds = %848 + %850 = getelementptr inbounds nuw i8, ptr %847, i64 272 + br i1 %849, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i": ; preds = %.noexc104.i, %.noexc109.i, %.preheader %.sroa.038.0.i = phi i1 [ %.not.not.not.i.not.not.i.not.not, %.preheader ], [ %.not.not.not.i.not.not.i.not.not, %.noexc109.i ], [ false, %.noexc104.i ] @@ -37396,231 +37396,231 @@ _ZN4core4iter6traits8iterator8Iterator7collect17haec411865a9b8cf0E.exit.i: ; pre call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !4653 store ptr %773, ptr %6, align 8, !alias.scope !4660, !noalias !4664 %.sroa.4.0..sroa_idx131.i = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr %784, ptr %.sroa.4.0..sroa_idx131.i, align 8, !alias.scope !4660, !noalias !4664 + store ptr %785, ptr %.sroa.4.0..sroa_idx131.i, align 8, !alias.scope !4660, !noalias !4664 %.sroa.5132.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %6, i64 16 store i64 0, ptr %.sroa.5132.0..sroa_idx.i, align 8, !alias.scope !4660, !noalias !4664 invoke void @"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h0a7aeb1a4889ce87E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.105) to label %850 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -850: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" +851: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hefc6d801ce5c079eE.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !4653 - %851 = getelementptr inbounds nuw i8, ptr %15, i64 8 - %852 = getelementptr inbounds nuw i8, ptr %15, i64 16 - %853 = load i64, ptr %852, align 8, !noalias !4631, !noundef !3 - %.not84.i193 = icmp eq i64 %853, 0 - br i1 %.not84.i193, label %867, label %854 - -854: ; preds = %850 - %855 = load ptr, ptr %851, align 8, !noalias !4631, !nonnull !3, !noundef !3 - %856 = load i8, ptr %855, align 16, !range !846, !noalias !4631, !noundef !3 - %857 = add nsw i8 %856, -28 - %narrow.i.i194 = call i8 @llvm.umin.i8(i8 %857, i8 2) + %852 = getelementptr inbounds nuw i8, ptr %15, i64 8 + %853 = getelementptr inbounds nuw i8, ptr %15, i64 16 + %854 = load i64, ptr %853, align 8, !noalias !4631, !noundef !3 + %.not84.i193 = icmp eq i64 %854, 0 + br i1 %.not84.i193, label %868, label %855 + +855: ; preds = %851 + %856 = load ptr, ptr %852, align 8, !noalias !4631, !nonnull !3, !noundef !3 + %857 = load i8, ptr %856, align 16, !range !846, !noalias !4631, !noundef !3 + %858 = add nsw i8 %857, -28 + %narrow.i.i194 = call i8 @llvm.umin.i8(i8 %858, i8 2) switch i8 %narrow.i.i194, label %default.unreachable331 [ - i8 0, label %858 - i8 1, label %862 - i8 2, label %865 + i8 0, label %859 + i8 1, label %863 + i8 2, label %866 ] -858: ; preds = %854 - %859 = getelementptr inbounds nuw i8, ptr %855, i64 8 - %860 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %859) - to label %.noexc111.i unwind label %868, !noalias !4631 +859: ; preds = %855 + %860 = getelementptr inbounds nuw i8, ptr %856, i64 8 + %861 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %860) + to label %.noexc111.i unwind label %869, !noalias !4631 -.noexc111.i: ; preds = %858 - %861 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %860) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 +.noexc111.i: ; preds = %859 + %862 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %861) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 -862: ; preds = %854 - %863 = getelementptr inbounds nuw i8, ptr %855, i64 8 - %864 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %863) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 +863: ; preds = %855 + %864 = getelementptr inbounds nuw i8, ptr %856, i64 8 + %865 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %864) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 -865: ; preds = %854 - %866 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %855) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %868, !noalias !4631 +866: ; preds = %855 + %867 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %856) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 unwind label %869, !noalias !4631 -867: ; preds = %850 +868: ; preds = %851 invoke void @_ZN4core9panicking18panic_bounds_check17h0cc3ae16a8cc728fE(i64 noundef 0, i64 noundef 0, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.267) #23 - to label %776 unwind label %868, !noalias !4631 + to label %776 unwind label %869, !noalias !4631 -.thread146.i: ; preds = %920, %910, %894, %868 - %.pn91.i195 = phi { ptr, i32 } [ %869, %868 ], [ %lpad.thr_comm.i201, %920 ], [ %lpad.thr_comm.split-lp.i199, %894 ], [ %911, %910 ] +.thread146.i: ; preds = %921, %911, %895, %869 + %.pn91.i195 = phi { ptr, i32 } [ %870, %868 ], [ %lpad.thr_comm.i201, %920 ], [ %lpad.thr_comm.split-lp.i199, %894 ], [ %912, %910 ] invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #25 - to label %.body.i191 unwind label %843, !noalias !4631 + to label %.body.i191 unwind label %844, !noalias !4631 -868: ; preds = %903, %901, %900, %882, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196, %867, %865, %862, %.noexc111.i, %858 - %869 = landingpad { ptr, i32 } +869: ; preds = %904, %902, %901, %883, %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196, %868, %866, %863, %.noexc111.i, %859 + %870 = landingpad { ptr, i32 } cleanup br label %.thread146.i -_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196: ; preds = %865, %862, %.noexc111.i - %.sroa.0.0.i.i197 = phi i64 [ %861, %.noexc111.i ], [ %864, %862 ], [ %866, %865 ] +_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196: ; preds = %866, %863, %.noexc111.i + %.sroa.0.0.i.i197 = phi i64 [ %862, %.noexc111.i ], [ %865, %862 ], [ %867, %865 ] call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !4631 - %870 = load ptr, ptr %851, align 8, !noalias !4631, !nonnull !3, !noundef !3 - %871 = load i64, ptr %852, align 8, !noalias !4631, !noundef !3 - %872 = getelementptr inbounds nuw i8, ptr %753, i64 32 - %873 = load ptr, ptr %872, align 8, !invariant.load !3, !alias.scope !4628, !noalias !4639, !nonnull !3 - invoke void %873(ptr noalias noundef nonnull sret([160 x i8]) align 16 captures(none) dereferenceable(160) %13, ptr noundef nonnull align 1 %768, ptr noalias noundef nonnull align 16 %870, i64 noundef %871) - to label %874 unwind label %868, !noalias !4631 - -874: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 - %875 = load i8, ptr %13, align 16, !range !2248, !noalias !4631, !noundef !3 - %876 = icmp eq i8 %875, 31 - br i1 %876, label %877, label %880 - -877: ; preds = %874 - %878 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %871 = load ptr, ptr %852, align 8, !noalias !4631, !nonnull !3, !noundef !3 + %872 = load i64, ptr %853, align 8, !noalias !4631, !noundef !3 + %873 = getelementptr inbounds nuw i8, ptr %753, i64 32 + %874 = load ptr, ptr %873, align 8, !invariant.load !3, !alias.scope !4628, !noalias !4639, !nonnull !3 + invoke void %873(ptr noalias noundef nonnull sret([160 x i8]) align 16 captures(none) dereferenceable(160) %13, ptr noundef nonnull align 1 %768, ptr noalias noundef nonnull align 16 %871, i64 noundef %872) + to label %874 unwind label %869, !noalias !4631 + +875: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit.i196 + %876 = load i8, ptr %13, align 16, !range !2248, !noalias !4631, !noundef !3 + %877 = icmp eq i8 %876, 31 + br i1 %877, label %878, label %881 + +878: ; preds = %875 + %879 = getelementptr inbounds nuw i8, ptr %13, i64 8 %.sroa.717.8..sroa_idx.i = getelementptr inbounds nuw i8, ptr %.sroa.717.i, i64 7 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(64) %878, i64 64, i1 false), !noalias !4631 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(64) %879, i64 64, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4631 - %879 = getelementptr inbounds nuw i8, ptr %0, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %879, ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, i64 64, i1 false), !noalias !4640 + %880 = getelementptr inbounds nuw i8, ptr %0, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %880, ptr noundef nonnull align 1 dereferenceable(64) %.sroa.717.8..sroa_idx.i, i64 64, i1 false), !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 br label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" -880: ; preds = %874 +881: ; preds = %875 %.sroa.463.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %13, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(71) %.sroa.717.i, ptr noundef nonnull align 1 dereferenceable(71) %.sroa.463.0..sroa_idx.i, i64 71, i1 false), !noalias !4631 %.sroa.564.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %13, i64 72 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.i, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.564.0..sroa_idx.i, i64 88, i1 false), !noalias !4631 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4631 - %.not85.i = icmp eq i8 %875, 30 - br i1 %.not85.i, label %882, label %881, !prof !833 + %.not85.i = icmp eq i8 %876, 30 + br i1 %.not85.i, label %883, label %882, !prof !833 -881: ; preds = %880 - store i8 %875, ptr %14, align 16, !noalias !4631 +882: ; preds = %881 + store i8 %876, ptr %14, align 16, !noalias !4631 %.sroa.322.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(71) %.sroa.322.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(71) %.sroa.717.i, i64 71, i1 false), !noalias !4631 %.sroa.423.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 72 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.423.i, i64 88, i1 false), !noalias !4631 - br i1 %.sroa.024.0.i, label %883, label %906 + br i1 %.sroa.024.0.i, label %884, label %907 -882: ; preds = %880 +883: ; preds = %881 invoke void @_ZN4core6option13unwrap_failed17h4c7f35545a6d0c7eE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.fb4689afb8eeaa4e0f4173e76b75b56e.268) #23 - to label %776 unwind label %868, !noalias !4631 + to label %776 unwind label %869, !noalias !4631 -883: ; preds = %881 +884: ; preds = %882 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !4631 - %884 = add nsw i8 %875, -28 - %narrow.i117.i = call i8 @llvm.umin.i8(i8 %884, i8 2) + %885 = add nsw i8 %876, -28 + %narrow.i117.i = call i8 @llvm.umin.i8(i8 %885, i8 2) switch i8 %narrow.i117.i, label %default.unreachable331 [ - i8 0, label %885 - i8 1, label %889 - i8 2, label %892 + i8 0, label %886 + i8 1, label %890 + i8 2, label %893 ] -885: ; preds = %883 - %886 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %887 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %886) - to label %.noexc120.i204 unwind label %920, !noalias !4631 +886: ; preds = %884 + %887 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %888 = invoke noundef align 8 dereferenceable(16) ptr @"_ZN92_$LT$polars_core..frame..column..series..SeriesColumn$u20$as$u20$core..ops..deref..Deref$GT$5deref17h160166a383b70c02E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %887) + to label %.noexc120.i204 unwind label %921, !noalias !4631 -.noexc120.i204: ; preds = %885 - %888 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %887) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 +.noexc120.i204: ; preds = %886 + %889 = invoke noundef i64 @"_ZN77_$LT$polars_core..series..Series$u20$as$u20$polars_core..utils..Container$GT$3len17habdd36d2a2b08f6bE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %888) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 -889: ; preds = %883 - %890 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %891 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %890) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 +890: ; preds = %884 + %891 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %892 = invoke noundef i64 @_ZN11polars_core5frame6column11partitioned17PartitionedColumn3len17h01061125d3d26a30E(ptr noundef nonnull align 8 %891) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 -892: ; preds = %883 - %893 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %14) - to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %920, !noalias !4631 +893: ; preds = %884 + %894 = invoke noundef i64 @_ZN11polars_core5frame6column6scalar12ScalarColumn3len17h8538cd196e69e99bE(ptr noundef nonnull align 16 %14) + to label %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i unwind label %921, !noalias !4631 -894: ; preds = %914 +895: ; preds = %915 %lpad.thr_comm.split-lp.i199 = landingpad { ptr, i32 } cleanup br label %.thread146.i -_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i: ; preds = %892, %889, %.noexc120.i204 - %.sroa.0.0.i118.i = phi i64 [ %888, %.noexc120.i204 ], [ %891, %889 ], [ %893, %892 ] +_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i: ; preds = %893, %890, %.noexc120.i204 + %.sroa.0.0.i118.i = phi i64 [ %889, %.noexc120.i204 ], [ %892, %889 ], [ %894, %892 ] invoke fastcc void @_ZN11polars_expr11expressions5apply20check_map_output_len17h8cf048a4265b48f6E(ptr noalias noundef align 8 captures(none) dereferenceable(64) %12, i64 noundef %.sroa.0.0.i.i197, i64 noundef %.sroa.0.0.i118.i, ptr noundef nonnull align 16 %1) - to label %895 unwind label %920, !noalias !4631 + to label %895 unwind label %921, !noalias !4631 -895: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i - %896 = load i64, ptr %12, align 8, !range !424, !noalias !4631, !noundef !3 - %.not86.i = icmp eq i64 %896, 17 - br i1 %.not86.i, label %905, label %.critedge.i203 +896: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i + %897 = load i64, ptr %12, align 8, !range !424, !noalias !4631, !noundef !3 + %.not86.i = icmp eq i64 %897, 17 + br i1 %.not86.i, label %906, label %.critedge.i203 -.critedge.i203: ; preds = %895 +.critedge.i203: ; preds = %896 %.sroa.468.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %12, i64 8 %.sroa.270.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.270.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.468.0..sroa_idx.i, i64 56, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !4631 - %897 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %896, ptr %897, align 16, !alias.scope !4623, !noalias !4640 + %898 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %897, ptr %898, align 16, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 - %898 = load i8, ptr %14, align 16, !range !846, !alias.scope !4665, !noalias !4631, !noundef !3 - %899 = add nsw i8 %898, -28 - %narrow.i125.i = call i8 @llvm.umin.i8(i8 %899, i8 2) + %899 = load i8, ptr %14, align 16, !range !846, !alias.scope !4665, !noalias !4631, !noundef !3 + %900 = add nsw i8 %899, -28 + %narrow.i125.i = call i8 @llvm.umin.i8(i8 %900, i8 2) switch i8 %narrow.i125.i, label %900 [ - i8 0, label %901 - i8 1, label %903 + i8 0, label %902 + i8 1, label %904 ] -900: ; preds = %.critedge.i203 +901: ; preds = %.critedge.i203 invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..scalar..ScalarColumn$GT$17he83dffb4bae0b442E"(ptr noalias noundef nonnull align 16 dereferenceable(160) %14) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 -901: ; preds = %.critedge.i203 - %902 = getelementptr inbounds nuw i8, ptr %14, i64 8 - invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..series..SeriesColumn$GT$17hf6b5133ebcc0e8e2E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %902) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 +902: ; preds = %.critedge.i203 + %903 = getelementptr inbounds nuw i8, ptr %14, i64 8 + invoke void @"_ZN4core3ptr69drop_in_place$LT$polars_core..frame..column..series..SeriesColumn$GT$17hf6b5133ebcc0e8e2E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %903) + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 -903: ; preds = %.critedge.i203 - %904 = getelementptr inbounds nuw i8, ptr %14, i64 8 - invoke void @"_ZN4core3ptr79drop_in_place$LT$polars_core..frame..column..partitioned..PartitionedColumn$GT$17h3ffe55cf616b1175E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %904) - to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %868, !noalias !4631 +904: ; preds = %.critedge.i203 + %905 = getelementptr inbounds nuw i8, ptr %14, i64 8 + invoke void @"_ZN4core3ptr79drop_in_place$LT$polars_core..frame..column..partitioned..PartitionedColumn$GT$17h3ffe55cf616b1175E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %905) + to label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" unwind label %869, !noalias !4631 -905: ; preds = %895 +906: ; preds = %896 call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !4631 - br label %906 + br label %907 -906: ; preds = %881, %905 +907: ; preds = %882, %906 call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !4631 call void @llvm.experimental.noalias.scope.decl(metadata !4668) - %907 = icmp ult i64 %770, 33909456017848441 - call void @llvm.assume(i1 %907) + %908 = icmp ult i64 %770, 33909456017848441 + call void @llvm.assume(i1 %908) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %11, ptr noundef nonnull align 16 dereferenceable(272) %773, i64 272, i1 false), !noalias !4671 - %908 = add nsw i64 %770, -1 - %909 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %908 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %909, i64 272, i1 false), !noalias !4672 - store i64 %908, ptr %769, align 8, !alias.scope !4674, !noalias !4675 + %909 = add nsw i64 %770, -1 + %910 = getelementptr inbounds nuw { { i128, [20 x i64] }, { i64, [9 x i64] }, i8, i8, i8, [13 x i8] }, ptr %773, i64 %909 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %773, ptr noundef nonnull align 16 dereferenceable(272) %910, i64 272, i1 false), !noalias !4672 + store i64 %909, ptr %769, align 8, !alias.scope !4674, !noalias !4675 call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4631 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(160) %9, ptr noundef nonnull align 16 dereferenceable(160) %14, i64 160, i1 false), !noalias !4631 invoke void @_ZN11polars_expr11expressions18AggregationContext20with_values_and_args17he7a46079064dae17E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %10, ptr noalias noundef nonnull align 16 dereferenceable(272) %11, ptr noalias noundef nonnull align 16 captures(none) dereferenceable(160) %9, i1 noundef zeroext %.sroa.038.0.i, ptr noundef align 16 null, i1 noundef zeroext true, i1 noundef zeroext %.sroa.0.0.i) - to label %912 unwind label %910, !noalias !4631 + to label %912 unwind label %911, !noalias !4631 -910: ; preds = %906 - %911 = landingpad { ptr, i32 } +911: ; preds = %907 + %912 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %11) #25 - to label %.thread146.i unwind label %843, !noalias !4631 + to label %.thread146.i unwind label %844, !noalias !4631 -912: ; preds = %906 +913: ; preds = %907 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !4631 - %913 = load i64, ptr %10, align 8, !range !424, !noalias !4631, !noundef !3 - %.not88.i = icmp eq i64 %913, 17 - br i1 %.not88.i, label %916, label %914 + %914 = load i64, ptr %10, align 8, !range !424, !noalias !4631, !noundef !3 + %.not88.i = icmp eq i64 %914, 17 + br i1 %.not88.i, label %917, label %915 -914: ; preds = %912 +915: ; preds = %913 %.sroa.475.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 8 %.sroa.475.0.copyload.i = load ptr, ptr %.sroa.475.0..sroa_idx.i, align 8, !noalias !4631 %.sroa.576.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 %.sroa.379.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %.sroa.379.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.576.0..sroa_idx.i, i64 48, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4631 - %915 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %913, ptr %915, align 16, !alias.scope !4623, !noalias !4640 + %916 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %914, ptr %916, align 16, !alias.scope !4623, !noalias !4640 %.sroa.278.0..sroa_idx.i198 = getelementptr inbounds nuw i8, ptr %0, i64 24 store ptr %.sroa.475.0.copyload.i, ptr %.sroa.278.0..sroa_idx.i198, align 8, !alias.scope !4623, !noalias !4640 store i128 4, ptr %0, align 16, !alias.scope !4623, !noalias !4640 invoke void @"_ZN4core3ptr65drop_in_place$LT$polars_expr..expressions..AggregationContext$GT$17h1eb6da6d4d35656cE"(ptr noalias noundef nonnull align 16 dereferenceable(272) %11) - to label %919 unwind label %894, !noalias !4631 + to label %919 unwind label %895, !noalias !4631 -916: ; preds = %912 +917: ; preds = %913 call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4631 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(272) %0, ptr noundef nonnull align 16 dereferenceable(272) %11, i64 272, i1 false), !noalias !4640 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4631 @@ -37628,43 +37628,43 @@ _ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i: ; preds invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) to label %917 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -917: ; preds = %916 +918: ; preds = %917 call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !4631 - br label %918 + br label %919 -918: ; preds = %921, %917, %845, %840 +919: ; preds = %922, %918, %846, %841 call void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.423.i) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.717.i) call void @llvm.lifetime.end.p0(ptr nonnull %91) br label %739 -919: ; preds = %914 +920: ; preds = %915 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4631 br label %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" -"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200": ; preds = %919, %903, %901, %900, %877 +"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200": ; preds = %920, %904, %902, %901, %878 call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !4631 invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..vec..Vec$LT$polars_core..frame..column..Column$GT$$GT$17ha93f3ab800e119abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) to label %921 unwind label %.loopexit.split-lp.loopexit.split-lp.i, !noalias !4631 -920: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i, %892, %889, %.noexc120.i204, %885 +921: ; preds = %_ZN11polars_core5frame6column6Column3len17h1b65492e8a5a992cE.exit124.i, %893, %890, %.noexc120.i204, %886 %lpad.thr_comm.i201 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E"(ptr noalias noundef align 16 dereferenceable(160) %14) #25 - to label %.thread146.i unwind label %843, !noalias !4631 + to label %.thread146.i unwind label %844, !noalias !4631 -921: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" +922: ; preds = %"_ZN4core3ptr55drop_in_place$LT$polars_core..frame..column..Column$GT$17h7956c44b724cd104E.exit.i200" call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !4631 - br label %918 + br label %919 -922: ; preds = %._crit_edge.thread - %923 = landingpad { ptr, i32 } +923: ; preds = %._crit_edge.thread + %924 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$polars_expr..expressions..AggregationContext$GT$$GT$17h54fdfd309b51ae1fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %91) #25 to label %.thread227 unwind label %651 -924: ; preds = %653, %744, %648, %739, %122 +925: ; preds = %653, %744, %648, %739, %122 ret void 925: ; preds = %.lr.ph diff --git a/bench/postgres/optimized/gindatapage.ll b/bench/postgres/optimized/gindatapage.ll index bddd398d65d..f32a34014d2 100644 --- a/bench/postgres/optimized/gindatapage.ll +++ b/bench/postgres/optimized/gindatapage.ll @@ -44,7 +44,7 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %10 = and i16 %9, 128 %.not = icmp eq i16 %10, 0 %11 = getelementptr inbounds nuw i8, ptr %0, i64 32 - br i1 %.not, label %68, label %12 + br i1 %.not, label %69, label %12 12: ; preds = %3 %13 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -53,7 +53,7 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %16 = add nsw i64 %15, -32 %17 = getelementptr i8, ptr %0, i64 %15 %.not33 = icmp ult i48 %2, 4294967296 - br i1 %.not33, label %63, label %18 + br i1 %.not33, label %64, label %18 18: ; preds = %12 %19 = getelementptr inbounds nuw i8, ptr %0, i64 38 @@ -76,90 +76,90 @@ define dso_local ptr @GinDataLeafPageGetItems(ptr noundef %0, ptr noundef %1, i4 %32 = or disjoint i64 %28, %31 %33 = or disjoint i64 %32, %.sroa.3.0.extract.trunc %.val.i42 = load i16, ptr %.02835, align 2 - %34 = getelementptr i8, ptr %24, i64 10 - %.val5.i43 = load i16, ptr %34, align 2 - %35 = zext i16 %.val.i42 to i64 - %36 = zext i16 %.val5.i43 to i64 - %37 = shl nuw i64 %35, 48 - %38 = shl nuw nsw i64 %36, 32 - %39 = or disjoint i64 %38, %37 - %40 = getelementptr i8, ptr %24, i64 12 - %.val8.i44 = load i16, ptr %40, align 2 - %41 = zext i16 %.val8.i44 to i64 - %42 = or disjoint i64 %39, %41 - %.not3445 = icmp ugt i64 %42, %33 + %35 = getelementptr i8, ptr %24, i64 10 + %.val5.i43 = load i16, ptr %35, align 2 + %36 = zext i16 %.val.i42 to i64 + %37 = zext i16 %.val5.i43 to i64 + %38 = shl nuw i64 %36, 48 + %39 = shl nuw nsw i64 %37, 32 + %40 = or disjoint i64 %39, %38 + %41 = getelementptr i8, ptr %24, i64 12 + %.val8.i44 = load i16, ptr %41, align 2 + %42 = zext i16 %.val8.i44 to i64 + %43 = or disjoint i64 %40, %42 + %.not3445 = icmp ugt i64 %43, %33 br i1 %.not3445, label %.critedge, label %.lr.ph48 -43: ; preds = %.lr.ph48 +44: ; preds = %.lr.ph48 %.val.i = load i16, ptr %.028, align 2 - %44 = getelementptr i8, ptr %58, i64 10 - %.val5.i = load i16, ptr %44, align 2 - %45 = zext i16 %.val.i to i64 - %46 = zext i16 %.val5.i to i64 - %47 = shl nuw i64 %45, 48 - %48 = shl nuw nsw i64 %46, 32 - %49 = or disjoint i64 %48, %47 - %50 = getelementptr i8, ptr %58, i64 12 - %.val8.i = load i16, ptr %50, align 2 - %51 = zext i16 %.val8.i to i64 - %52 = or disjoint i64 %49, %51 - %.not34 = icmp ugt i64 %52, %33 + %45 = getelementptr i8, ptr %59, i64 10 + %.val5.i = load i16, ptr %45, align 2 + %46 = zext i16 %.val.i to i64 + %47 = zext i16 %.val5.i to i64 + %48 = shl nuw i64 %46, 48 + %49 = shl nuw nsw i64 %47, 32 + %50 = or disjoint i64 %49, %48 + %51 = getelementptr i8, ptr %59, i64 12 + %.val8.i = load i16, ptr %51, align 2 + %52 = zext i16 %.val8.i to i64 + %53 = or disjoint i64 %50, %52 + %.not34 = icmp ugt i64 %53, %33 br i1 %.not34, label %.critedge, label %.lr.ph48, !llvm.loop !4 -.lr.ph48: ; preds = %.lr.ph, %43 - %.pn3747 = phi ptr [ %58, %43 ], [ %24, %.lr.ph ] +.lr.ph48: ; preds = %.lr.ph, %44 + %.pn3747 = phi ptr [ %59, %43 ], [ %24, %.lr.ph ] %.0283846 = phi ptr [ %.028, %43 ], [ %.02835, %.lr.ph ] - %53 = getelementptr inbounds nuw i8, ptr %.pn3747, i64 14 - %54 = load i16, ptr %53, align 2 - %55 = zext i16 %54 to i64 - %56 = add nuw nsw i64 %55, 1 - %57 = and i64 %56, 131070 - %58 = getelementptr inbounds nuw i8, ptr %.0283846, i64 %57 - %.028 = getelementptr inbounds nuw i8, ptr %58, i64 8 - %59 = icmp ult ptr %.028, %17 - br i1 %59, label %43, label %..critedge.loopexit_crit_edge, !llvm.loop !4 + %54 = getelementptr inbounds nuw i8, ptr %.pn3747, i64 14 + %55 = load i16, ptr %54, align 2 + %56 = zext i16 %55 to i64 + %57 = add nuw nsw i64 %56, 1 + %58 = and i64 %57, 131070 + %59 = getelementptr inbounds nuw i8, ptr %.0283846, i64 %58 + %.028 = getelementptr inbounds nuw i8, ptr %59, i64 8 + %60 = icmp ult ptr %.028, %17 + br i1 %60, label %44, label %..critedge.loopexit_crit_edge, !llvm.loop !4 ..critedge.loopexit_crit_edge: ; preds = %.lr.ph48 br label %.critedge, !llvm.loop !4 -.critedge: ; preds = %43, %.lr.ph, %..critedge.loopexit_crit_edge, %18 +.critedge: ; preds = %44, %.lr.ph, %..critedge.loopexit_crit_edge, %18 %.130.lcssa = phi ptr [ %11, %18 ], [ %.0283846, %..critedge.loopexit_crit_edge ], [ %11, %.lr.ph ], [ %.0283846, %43 ] - %60 = ptrtoint ptr %17 to i64 - %61 = ptrtoint ptr %.130.lcssa to i64 - %62 = sub i64 %60, %61 - br label %63 + %61 = ptrtoint ptr %17 to i64 + %62 = ptrtoint ptr %.130.lcssa to i64 + %63 = sub i64 %61, %62 + br label %64 -63: ; preds = %.critedge, %12 - %.031 = phi i64 [ %62, %.critedge ], [ %16, %12 ] +64: ; preds = %.critedge, %12 + %.031 = phi i64 [ %63, %.critedge ], [ %16, %12 ] %.029 = phi ptr [ %.130.lcssa, %.critedge ], [ %11, %12 ] %.not32 = icmp eq i64 %.031, 0 - br i1 %.not32, label %67, label %64 + br i1 %.not32, label %68, label %65 -64: ; preds = %63 - %65 = trunc i64 %.031 to i32 - %66 = tail call ptr @ginPostingListDecodeAllSegments(ptr noundef nonnull %.029, i32 noundef %65, ptr noundef %1) #10 - br label %78 +65: ; preds = %64 + %66 = trunc i64 %.031 to i32 + %67 = tail call ptr @ginPostingListDecodeAllSegments(ptr noundef nonnull %.029, i32 noundef %66, ptr noundef %1) #10 + br label %79 -67: ; preds = %63 +68: ; preds = %64 store i32 0, ptr %1, align 4 - br label %78 - -68: ; preds = %3 - %69 = getelementptr inbounds nuw i8, ptr %7, i64 4 - %70 = load i16, ptr %69, align 4 - %71 = zext i16 %70 to i32 - store i32 %71, ptr %1, align 4 - %72 = zext i16 %70 to i64 - %73 = mul nuw nsw i64 %72, 6 - %74 = tail call ptr @palloc(i64 noundef %73) #10 - %75 = load i32, ptr %1, align 4 - %76 = sext i32 %75 to i64 - %77 = mul nsw i64 %76, 6 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 2 %74, ptr nonnull align 2 %11, i64 %77, i1 false) - br label %78 - -78: ; preds = %64, %67, %68 - %.1 = phi ptr [ %74, %68 ], [ %66, %64 ], [ null, %67 ] + br label %79 + +69: ; preds = %3 + %70 = getelementptr inbounds nuw i8, ptr %7, i64 4 + %71 = load i16, ptr %70, align 4 + %72 = zext i16 %71 to i32 + store i32 %72, ptr %1, align 4 + %73 = zext i16 %71 to i64 + %74 = mul nuw nsw i64 %73, 6 + %75 = tail call ptr @palloc(i64 noundef %74) #10 + %76 = load i32, ptr %1, align 4 + %77 = sext i32 %76 to i64 + %78 = mul nsw i64 %77, 6 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 2 %75, ptr nonnull align 2 %11, i64 %78, i1 false) + br label %79 + +79: ; preds = %65, %68, %69 + %.1 = phi ptr [ %75, %68 ], [ %67, %64 ], [ null, %67 ] ret ptr %.1 } diff --git a/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll b/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll index ef865fdd540..275e45b0b27 100644 --- a/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll +++ b/bench/ruff-rs/optimized/b7bzulfx0416fsx8nur737ayt.ll @@ -23218,8 +23218,8 @@ define i40 @"_ZN121_$LT$ruff_workspace..options..Flake8AnnotationsOptions$u20$as %.not26 = icmp eq i8 %.sroa.01.3.extract.trunc, 2 %.sroa.020.0 = select i1 %.not26, i8 %.sroa.07.3.extract.trunc, i8 %.sroa.01.3.extract.trunc %.not27 = icmp eq i40 %.sroa.01.4.extract.shift, 2 - %.sroa.022.0.v = select i1 %.not27, i40 %.sroa.07.4.extract.shift, i40 %.sroa.01.4.extract.shift - %.sroa.513.0.insert.shift = shl nuw i40 %.sroa.022.0.v, 32 + %.sroa.022.0 = select i1 %.not27, i40 %.sroa.07.4.extract.shift, i40 %.sroa.01.4.extract.shift + %.sroa.513.0.insert.shift = shl nuw i40 %.sroa.022.0, 32 %.sroa.412.0.insert.ext = zext i8 %.sroa.020.0 to i40 %.sroa.412.0.insert.shift = shl nuw nsw i40 %.sroa.412.0.insert.ext, 24 %.sroa.412.0.insert.insert = or disjoint i40 %.sroa.412.0.insert.shift, %.sroa.513.0.insert.shift diff --git a/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll b/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll index e8d5ebe346d..39549b1c602 100644 --- a/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll +++ b/bench/rust-analyzer-rs/optimized/2mbx5ptcpq6fo7sc.ll @@ -602,7 +602,7 @@ define hidden noundef range(i8 -1, 2) i8 @"_ZN101_$LT$ra_ap_rustc_pattern_analys %or.cond = and i1 %5, %6 br i1 %or.cond, label %10, label %7 -7: ; preds = %2 +9: ; preds = %2 %8 = trunc nuw nsw i128 %4 to i64 %9 = trunc nuw nsw i128 %3 to i64 %.08 = tail call i8 @llvm.ucmp.i8.i64(i64 %9, i64 %8) @@ -616,7 +616,7 @@ define hidden noundef range(i8 -1, 2) i8 @"_ZN101_$LT$ra_ap_rustc_pattern_analys %.07 = tail call i8 @llvm.ucmp.i8.i128(i128 %12, i128 %14) br label %15 -15: ; preds = %7, %10 +15: ; preds = %9, %10 %.0 = phi i8 [ %.07, %10 ], [ %.08, %7 ] ret i8 %.0 } @@ -17712,14 +17712,14 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 %13 = getelementptr inbounds nuw i8, ptr %3, i64 32 %.promoted = load i128, ptr %3, align 16 - %.promoted79 = load i128, ptr %12, align 16 - %.promoted81 = load i64, ptr %13, align 16 + %.promoted71 = load i128, ptr %12, align 16 + %.promoted73 = load i64, ptr %13, align 16 br label %14 14: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %8 - %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted81, %8 ] - %.sroa.8.sroa.0.0.copyload.i80 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted79, %8 ] - %.sroa.0.0.copyload1.i78 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted, %8 ] + %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted73, %8 ] + %.sroa.8.sroa.0.0.copyload.i72 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted71, %8 ] + %.sroa.0.0.copyload1.i70 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted, %8 ] %16 = phi ptr [ %18, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.promoted.i, %8 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8101) %17 = icmp eq ptr %16, %10 @@ -17741,10 +17741,10 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %12, align 16, !alias.scope !8103, !noalias !8106 %20 = add i64 %15, %.sroa.8.sroa.6.0.copyload.i store i64 %20, ptr %13, align 16, !alias.scope !8103, !noalias !8106 - %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i78 to i64 + %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i70 to i64 %22 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i to i64 %23 = icmp eq i64 %21, %22 - br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", label %35 + br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", label %34 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i": ; preds = %19 %24 = icmp eq i128 %.sroa.0.0.copyload1.i78, 1 @@ -17754,7 +17754,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %spec.select.i.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i.i, i1 %26, i1 false br i1 %spec.select.i.i.i.i.i.i, label %35, label %14 -27: ; preds = %38, %4 +27:; preds = %37, %4 %28 = load i128, ptr %1, align 16, !range !8115, !noundef !4 %.not4 = icmp eq i128 %28, 4 br i1 %.not4, label %53, label %39 @@ -17762,54 +17762,54 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ 29: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !8116 store ptr %6, ptr %5, align 8, !noalias !8116 - %30 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) - to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %31 + %29 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) + to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %30 -31: ; preds = %29 - %32 = landingpad { ptr, i32 } +30: ; preds = %29 + %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %.body unwind label %33 + to label %.body unwind label %32 -33: ; preds = %31 - %34 = landingpad { ptr, i32 } +32: ; preds = %30 + %33 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #65 unreachable "_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %29 invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %38 unwind label %36 + to label %38 unwind label %35 -35: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %19 - %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i78, %19 ] +34: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i", %19 + %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i70, %19 ] store i128 %.sroa.015.0, ptr %0, align 16, !alias.scope !8123 %.sroa.219.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i128 %.sroa.8.sroa.0.0.copyload.i80, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8123 + store i128 %.sroa.8.sroa.0.0.copyload.i72, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 %15, ptr %.sroa.3.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.0.0.copyload1.i, ptr %.sroa.5.0..sroa_idx, align 16, !alias.scope !8123 %.sroa.620.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %.sroa.620.0..sroa_idx, align 16, !alias.scope !8123 - br label %54 + br label %52 -36: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" - %37 = landingpad { ptr, i32 } +35: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" + %36 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %31, %36 - %eh.lpad-body = phi { ptr, i32 } [ %37, %36 ], [ %32, %31 ] +.body: ; preds = %30, %35 + %eh.lpad-body = phi { ptr, i32 } [ %36, %36 ], [ %31, %31 ] store ptr null, ptr %6, align 16 resume { ptr, i32 } %eh.lpad-body -38: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" +37: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !8116 store ptr null, ptr %6, align 16 br label %27 -39: ; preds = %27 +38: ; preds = %27 call void @llvm.experimental.noalias.scope.decl(metadata !8127) call void @llvm.experimental.noalias.scope.decl(metadata !8130) %.sroa.7.0..sroa_idx3.i = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -17817,37 +17817,37 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.7.sroa.6.0.copyload.i = load i64, ptr %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i, align 16, !alias.scope !8132, !noalias !8136 %.promoted55.i = load i128, ptr %3, align 16, !alias.scope !8130, !noalias !8138 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %41 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.promoted57.i = load i128, ptr %40, align 16, !alias.scope !8130, !noalias !8138 - %.promoted59.i = load i64, ptr %41, align 16, !alias.scope !8130, !noalias !8138 - br label %42 + %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %.promoted57.i = load i128, ptr %39, align 16, !alias.scope !8130, !noalias !8138 + %.promoted59.i = load i64, ptr %40, align 16, !alias.scope !8130, !noalias !8138 + br label %41 -42: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", %39 - %43 = phi i64 [ %45, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted59.i, %39 ] +41: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", %38 + %42 = phi i64 [ %44, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted59.i, %39 ] %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted57.i, %39 ] %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %.promoted55.i, %39 ] %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" ], [ %28, %39 ] %.not.i7 = icmp eq i128 %.sroa.01.0.copyload254.i, 3 - br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, label %44 + br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, label %43 -44: ; preds = %42 +43: ; preds = %41 store i128 %.sroa.01.0.copyload254.i, ptr %3, align 16, !alias.scope !8139, !noalias !8142 - store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %40, align 16, !alias.scope !8139, !noalias !8142 - %45 = add i64 %43, %.sroa.7.sroa.6.0.copyload.i - store i64 %45, ptr %41, align 16, !alias.scope !8139, !noalias !8142 - %46 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 - %47 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 - %48 = icmp eq i64 %46, %47 - br i1 %48, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit - -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i": ; preds = %44 - %49 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 - %50 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 - %or.cond.i.i.i.i.i = and i1 %49, %50 + store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %39, align 16, !alias.scope !8139, !noalias !8142 + %44 = add i64 %42, %.sroa.7.sroa.6.0.copyload.i + store i64 %44, ptr %40, align 16, !alias.scope !8139, !noalias !8142 + %45 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 + %46 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 + %47 = icmp eq i64 %45, %46 + br i1 %47, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit + +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i": ; preds = %43 + %48 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 + %49 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 + %or.cond.i.i.i.i.i = and i1 %48, %49 %51 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i %spec.select.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i, i1 %51, i1 false - br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60, label %42 + br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60, label %41 _ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha1a34f747f93770bE.exit.i.i.i" store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 @@ -17857,14 +17857,14 @@ _ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread: store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 br label %53 -_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit: ; preds = %44 +_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit: ; preds = %43 store i128 3, ptr %1, align 16, !alias.scope !8148, !noalias !8136 - %52 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 - br i1 %52, label %53, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + %50 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 + br i1 %50, label %51, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" -53: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, %27 +51: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread, %27 store i128 3, ptr %0, align 16, !alias.scope !8149 - br label %54 + br label %52 "_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60 %.sroa.021.0 = phi i128 [ 1, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit.thread60 ], [ %.sroa.01.0.copyload25456.i, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit ] @@ -17872,14 +17872,14 @@ _ZN4core4iter6traits8iterator8Iterator8try_fold17h34fbc65528f00a7cE.exit: ; pred %.sroa.237.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i128 %.sroa.7.sroa.0.0.copyload58.i, ptr %.sroa.237.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.338.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 %43, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8152 + store i64 %42, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.540.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.01.0.copyload254.i, ptr %.sroa.540.0..sroa_idx, align 16, !alias.scope !8152 %.sroa.641.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %.sroa.641.0..sroa_idx, align 16, !alias.scope !8152 - br label %54 + br label %52 -54: ; preds = %53, %35, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" +52: ; preds = %51, %34, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" ret void } @@ -19136,14 +19136,14 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 %13 = getelementptr inbounds nuw i8, ptr %3, i64 32 %.promoted = load i128, ptr %3, align 16 - %.promoted79 = load i128, ptr %12, align 16 - %.promoted81 = load i64, ptr %13, align 16 + %.promoted71 = load i128, ptr %12, align 16 + %.promoted73 = load i64, ptr %13, align 16 br label %14 14: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %8 - %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted81, %8 ] - %.sroa.8.sroa.0.0.copyload.i80 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted79, %8 ] - %.sroa.0.0.copyload1.i78 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted, %8 ] + %15 = phi i64 [ %20, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted73, %8 ] + %.sroa.8.sroa.0.0.copyload.i72 = phi i128 [ %.sroa.8.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted71, %8 ] + %.sroa.0.0.copyload1.i70 = phi i128 [ %.sroa.0.0.copyload1.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted, %8 ] %16 = phi ptr [ %18, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.promoted.i, %8 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8752) %17 = icmp eq ptr %16, %10 @@ -19165,10 +19165,10 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %12, align 16, !alias.scope !8754, !noalias !8757 %20 = add i64 %15, %.sroa.8.sroa.6.0.copyload.i store i64 %20, ptr %13, align 16, !alias.scope !8754, !noalias !8757 - %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i78 to i64 + %21 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i70 to i64 %22 = trunc nuw nsw i128 %.sroa.0.0.copyload1.i to i64 %23 = icmp eq i64 %21, %22 - br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", label %35 + br i1 %23, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", label %34 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i": ; preds = %19 %24 = icmp eq i128 %.sroa.0.0.copyload1.i78, 1 @@ -19178,7 +19178,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %spec.select.i.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i.i, i1 %26, i1 false br i1 %spec.select.i.i.i.i.i.i, label %35, label %14 -27: ; preds = %38, %4 +27:; preds = %37, %4 %28 = load i128, ptr %1, align 16, !range !8115, !noundef !4 %.not4 = icmp eq i128 %28, 4 br i1 %.not4, label %53, label %39 @@ -19186,54 +19186,54 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ 29: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h220728a10cee0f2eE.exit.i", %14 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !8766 store ptr %6, ptr %5, align 8, !noalias !8766 - %30 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) - to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %31 + %29 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17he18e5d25906e3916E.llvm.450774749160709717(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %6) + to label %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" unwind label %30 -31: ; preds = %29 - %32 = landingpad { ptr, i32 } +30: ; preds = %29 + %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %.body unwind label %33 + to label %.body unwind label %32 -33: ; preds = %31 - %34 = landingpad { ptr, i32 } +32: ; preds = %30 + %33 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #65 unreachable "_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i": ; preds = %29 invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h73ce590d7c49962bE.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %38 unwind label %36 + to label %38 unwind label %35 -35: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %19 - %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i78, %19 ] +34: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i", %19 + %.sroa.015.0 = phi i128 [ 1, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i.i" ], [ %.sroa.0.0.copyload1.i70, %19 ] store i128 %.sroa.015.0, ptr %0, align 16, !alias.scope !8773 %.sroa.219.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i128 %.sroa.8.sroa.0.0.copyload.i80, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8773 + store i128 %.sroa.8.sroa.0.0.copyload.i72, ptr %.sroa.219.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store i64 %15, ptr %.sroa.3.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.0.0.copyload1.i, ptr %.sroa.5.0..sroa_idx, align 16, !alias.scope !8773 %.sroa.620.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.8.sroa.0.0.copyload.i, ptr %.sroa.620.0..sroa_idx, align 16, !alias.scope !8773 - br label %54 + br label %52 -36: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" - %37 = landingpad { ptr, i32 } +35: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" + %36 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %31, %36 - %eh.lpad-body = phi { ptr, i32 } [ %37, %36 ], [ %32, %31 ] +.body: ; preds = %30, %35 + %eh.lpad-body = phi { ptr, i32 } [ %36, %36 ], [ %31, %31 ] store ptr null, ptr %6, align 16 resume { ptr, i32 } %eh.lpad-body -38: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" +37: ; preds = %"_ZN4core3ptr135drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$C$isize$RP$$GT$$GT$17h83416a360fb04cc2E.exit.i" call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !8766 store ptr null, ptr %6, align 16 br label %27 -39: ; preds = %27 +38: ; preds = %27 call void @llvm.experimental.noalias.scope.decl(metadata !8777) call void @llvm.experimental.noalias.scope.decl(metadata !8780) %.sroa.7.0..sroa_idx3.i = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -19241,37 +19241,37 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 %.sroa.7.sroa.6.0.copyload.i = load i64, ptr %.sroa.7.sroa.6.0..sroa.7.0..sroa_idx3.sroa_idx.i, align 16, !alias.scope !8782, !noalias !8786 %.promoted55.i = load i128, ptr %3, align 16, !alias.scope !8780, !noalias !8788 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %41 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.promoted57.i = load i128, ptr %40, align 16, !alias.scope !8780, !noalias !8788 - %.promoted59.i = load i64, ptr %41, align 16, !alias.scope !8780, !noalias !8788 - br label %42 + %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %40 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %.promoted57.i = load i128, ptr %39, align 16, !alias.scope !8780, !noalias !8788 + %.promoted59.i = load i64, ptr %40, align 16, !alias.scope !8780, !noalias !8788 + br label %41 -42: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", %39 - %43 = phi i64 [ %45, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted59.i, %39 ] +41: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", %38 + %42 = phi i64 [ %44, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted59.i, %39 ] %.sroa.7.sroa.0.0.copyload58.i = phi i128 [ %.sroa.7.sroa.0.0.copyload.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted57.i, %39 ] %.sroa.01.0.copyload25456.i = phi i128 [ %.sroa.01.0.copyload254.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %.promoted55.i, %39 ] %.sroa.01.0.copyload254.i = phi i128 [ 3, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" ], [ %28, %39 ] %.not.i7 = icmp eq i128 %.sroa.01.0.copyload254.i, 3 - br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, label %44 + br i1 %.not.i7, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, label %43 -44: ; preds = %42 +43: ; preds = %41 store i128 %.sroa.01.0.copyload254.i, ptr %3, align 16, !alias.scope !8789, !noalias !8792 - store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %40, align 16, !alias.scope !8789, !noalias !8792 - %45 = add i64 %43, %.sroa.7.sroa.6.0.copyload.i - store i64 %45, ptr %41, align 16, !alias.scope !8789, !noalias !8792 - %46 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 - %47 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 - %48 = icmp eq i64 %46, %47 - br i1 %48, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit - -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i": ; preds = %44 - %49 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 - %50 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 - %or.cond.i.i.i.i.i = and i1 %49, %50 + store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %39, align 16, !alias.scope !8789, !noalias !8792 + %44 = add i64 %42, %.sroa.7.sroa.6.0.copyload.i + store i64 %44, ptr %40, align 16, !alias.scope !8789, !noalias !8792 + %45 = trunc nuw nsw i128 %.sroa.01.0.copyload25456.i to i64 + %46 = trunc nuw nsw i128 %.sroa.01.0.copyload254.i to i64 + %47 = icmp eq i64 %45, %46 + br i1 %47, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit + +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i": ; preds = %43 + %48 = icmp eq i128 %.sroa.01.0.copyload25456.i, 1 + %49 = icmp eq i128 %.sroa.01.0.copyload254.i, 1 + %or.cond.i.i.i.i.i = and i1 %48, %49 %51 = icmp ne i128 %.sroa.7.sroa.0.0.copyload58.i, %.sroa.7.sroa.0.0.copyload.i %spec.select.i.i.i.i.i = select i1 %or.cond.i.i.i.i.i, i1 %51, i1 false - br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60, label %42 + br i1 %spec.select.i.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60, label %41 _ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0e499feff6c0eb67E.exit.i.i.i" store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 @@ -19281,14 +19281,14 @@ _ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread: store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 br label %53 -_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit: ; preds = %44 +_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit: ; preds = %43 store i128 3, ptr %1, align 16, !alias.scope !8798, !noalias !8786 - %52 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 - br i1 %52, label %53, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" + %50 = icmp eq i128 %.sroa.01.0.copyload25456.i, 3 + br i1 %50, label %51, label %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" -53: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, %27 +51: ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread, %27 store i128 3, ptr %0, align 16, !alias.scope !8799 - br label %54 + br label %52 "_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11": ; preds = %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60 %.sroa.021.0 = phi i128 [ 1, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit.thread60 ], [ %.sroa.01.0.copyload25456.i, %_ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit ] @@ -19296,14 +19296,14 @@ _ZN4core4iter6traits8iterator8Iterator8try_fold17h0f2452fe39ad772cE.exit: ; pred %.sroa.237.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i128 %.sroa.7.sroa.0.0.copyload58.i, ptr %.sroa.237.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.338.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i64 %43, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8802 + store i64 %42, ptr %.sroa.338.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.540.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 48 store i128 %.sroa.01.0.copyload254.i, ptr %.sroa.540.0..sroa_idx, align 16, !alias.scope !8802 %.sroa.641.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 64 store i128 %.sroa.7.sroa.0.0.copyload.i, ptr %.sroa.641.0..sroa_idx, align 16, !alias.scope !8802 - br label %54 + br label %52 -54: ; preds = %53, %35, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" +52: ; preds = %51, %34, %"_ZN95_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h7184e8cd2d40cb92E.exit11" ret void } @@ -39064,7 +39064,7 @@ define hidden noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut17hbe44b94 %or.cond.i.i = and i1 %6, %7 br i1 %or.cond.i.i, label %11, label %8 -8: ; preds = %3 +10: ; preds = %3 %9 = trunc nuw nsw i128 %5 to i64 %10 = trunc nuw nsw i128 %4 to i64 %.08.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %10, i64 %9) @@ -39078,7 +39078,7 @@ define hidden noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut17hbe44b94 %.07.i.i = tail call i8 @llvm.ucmp.i8.i128(i128 %13, i128 %15) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i": ; preds = %11, %8 +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i": ; preds = %11, %10 %.0.i.i = phi i8 [ %.07.i.i, %11 ], [ %.08.i.i, %8 ] %16 = icmp eq i8 %.0.i.i, 0 br i1 %16, label %19, label %17 @@ -39117,7 +39117,7 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co %or.cond.i.i.i = and i1 %6, %7 br i1 %or.cond.i.i.i, label %11, label %8 -8: ; preds = %3 +10: ; preds = %3 %9 = trunc nuw nsw i128 %5 to i64 %10 = trunc nuw nsw i128 %4 to i64 %.08.i.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %10, i64 %9) @@ -39131,7 +39131,7 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co %.07.i.i.i = tail call i8 @llvm.ucmp.i8.i128(i128 %13, i128 %15) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i": ; preds = %11, %8 +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit.i.i": ; preds = %11, %10 %.0.i.i.i = phi i8 [ %.07.i.i.i, %11 ], [ %.08.i.i.i, %8 ] %16 = icmp eq i8 %.0.i.i.i, 0 br i1 %16, label %19, label %17 @@ -60564,7 +60564,7 @@ define hidden noundef zeroext i1 @"_ZN4core5tuple65_$LT$impl$u20$core..cmp..Part %or.cond.i = and i1 %5, %6 br i1 %or.cond.i, label %10, label %7 -7: ; preds = %2 +9: ; preds = %2 %8 = trunc nuw nsw i128 %4 to i64 %9 = trunc nuw nsw i128 %3 to i64 %.08.i = tail call i8 @llvm.ucmp.i8.i64(i64 %9, i64 %8) @@ -60578,7 +60578,7 @@ define hidden noundef zeroext i1 @"_ZN4core5tuple65_$LT$impl$u20$core..cmp..Part %.07.i = tail call i8 @llvm.ucmp.i8.i128(i128 %12, i128 %14) br label %"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit" -"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit": ; preds = %7, %10 +"_ZN101_$LT$ra_ap_rustc_pattern_analysis..constructor..MaybeInfiniteInt$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h7253e700c31c60d6E.llvm.13094975786070861856.exit": ; preds = %9, %10 %.0.i = phi i8 [ %.07.i, %10 ], [ %.08.i, %7 ] %15 = icmp eq i8 %.0.i, 0 br i1 %15, label %18, label %16 diff --git a/bench/sentencepiece/optimized/repeated_field.ll b/bench/sentencepiece/optimized/repeated_field.ll index 538d2bf719a..e8a09318bb7 100644 --- a/bench/sentencepiece/optimized/repeated_field.ll +++ b/bench/sentencepiece/optimized/repeated_field.ll @@ -13402,11 +13402,11 @@ _ZN6google8protobuf8internal20RepeatedPtrFieldBase5ClearINS0_16RepeatedPtrFieldI %53 = getelementptr inbounds nuw i8, ptr %3, i64 16 %.not.i = icmp ugt i128 %.0.copyload.i.i.i, 18446744073709551615 %54 = load ptr, ptr %3, align 8 - %55 = icmp eq ptr %54, null + %.not.i = icmp eq ptr %54, null %or.cond.i = select i1 %.not.i, i1 %55, i1 false br i1 %or.cond.i, label %56, label %79 -56: ; preds = %52 +56: ; preds = %52 %57 = lshr i128 %.0.copyload.i.i.i, 32 %58 = trunc i128 %57 to i32 %59 = lshr i128 %.0.copyload.i.i.i, 64 diff --git a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll index 62fea7cc094..81dcaead21d 100644 --- a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll +++ b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll @@ -1155,7 +1155,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h %19 = icmp ugt i64 %18, %6 br i1 %19, label %.critedge, label %20 -20: ; preds = %15 +20:; preds = %15 %21 = getelementptr inbounds nuw i8, ptr %4, i64 %17 %.val.i.i.i.i.i.i = load i16, ptr %21, align 1, !alias.scope !172, !noalias !179 %22 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) @@ -1170,27 +1170,27 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h %.val.i.i.i.i.i20.i = load i16, ptr %25, align 1, !alias.scope !184, !noalias !191 %26 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i) %27 = and i16 %26, %22 - %or.cond = icmp eq i16 %27, -1 - br i1 %or.cond, label %.critedge, label %.preheader + %31 = icmp eq i16 %27, -1 + br i1 %31, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread", label %.preheader .preheader: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit" - %.not.i30 = icmp ugt i16 %22, %26 - br i1 %.not.i30, label %.loopexit, label %.lr.ph + %.not.i31 = icmp ugt i16 %22, %26 + br i1 %.not.i31, label %.loopexit, label %.lr.ph -.critedge: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit", %20, %.loopexit, %15, %3 +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.thread": ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit", %20, %.loopexit, %15, %3 ret void .lr.ph: ; preds = %.preheader, %.lr.ph - %.sroa.021.031 = phi i16 [ %spec.select, %.lr.ph ], [ %22, %.preheader ] - %28 = icmp uge i16 %.sroa.021.031, %26 - %not. = xor i1 %28, true - %29 = zext i1 %not. to i16 - %spec.select = add nuw i16 %.sroa.021.031, %29 - %30 = zext i16 %.sroa.021.031 to i32 - tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull %1, ptr nonnull %2, i32 noundef %30) + %.sroa.022.032 = phi i16 [ %spec.select, %.lr.ph ], [ %22, %.preheader ] + %35 = icmp uge i16 %.sroa.022.032, %26 + %not. = xor i1 %35, true + %36 = zext i1 %not. to i16 + %spec.select = add nuw i16 %.sroa.022.032, %36 + %37 = zext i16 %.sroa.022.032 to i32 + tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull %1, ptr nonnull %2, i32 noundef %37) %.not.i = icmp ugt i16 %spec.select, %26 - %or.cond29 = select i1 %28, i1 true, i1 %.not.i - br i1 %or.cond29, label %.loopexit, label %.lr.ph + %or.cond30 = select i1 %35, i1 true, i1 %.not.i + br i1 %or.cond30, label %.loopexit, label %.lr.ph } ; Function Attrs: nonlazybind uwtable @@ -1243,7 +1243,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h8cd33444b i64 8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit ] -default.unreachable72: ; preds = %3 +default.unreachable77: ; preds = %3 unreachable 5: ; preds = %3 @@ -1398,15 +1398,15 @@ default.unreachable72: ; preds = %3 %83 = lshr i64 %80, 1 %84 = and i64 %82, 65535 %85 = and i64 %83, 65535 - br label %86 + br label %.lr.ph -.loopexit.i: ; preds = %.lr.ph.i7, %.preheader.i6 - %exitcond39.not.i = icmp eq i64 %indvars.iv.next, %84 - br i1 %exitcond39.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %86 +.loopexit.i: ; preds = %.lr.ph.i5, %.preheader.i4 + %exitcond60.not = icmp eq i64 %indvars.iv.next, %84 + br i1 %exitcond60.not, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph -86: ; preds = %.loopexit.i, %.lr.ph34.i - %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph34.i ] - %87 = shl nuw nsw i64 %indvars.iv, 1 +.lr.ph: ; preds = %.loopexit.i, %.lr.ph34.i + %.sroa.14.0.i48 = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph34.i ] + %87 = shl nuw nsw i64 %.sroa.14.0.i48, 1 %88 = add nuw nsw i64 %87, 2 %89 = icmp ugt i64 %88, %76 br i1 %89, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %90 @@ -1416,8 +1416,8 @@ default.unreachable72: ; preds = %3 %.val.i.i.i.i.i.i.i3 = load i16, ptr %91, align 1, !alias.scope !245, !noalias !252 %92 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i3) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not.i4 = icmp eq i64 %indvars.iv, %85 - %93 = icmp ugt i64 %88, %80 + %exitcond.not.i4 = icmp eq i64 %.sroa.14.0.i48, %85 + %exitcond.not = icmp ugt i64 %88, %80 %or.cond44.i = or i1 %exitcond.not.i4, %93 br i1 %or.cond44.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" @@ -1426,24 +1426,24 @@ default.unreachable72: ; preds = %3 %.val.i.i.i.i.i20.i.i = load i16, ptr %94, align 1, !alias.scope !257, !noalias !264 %95 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i20.i.i) %96 = and i16 %95, %92 - %or.cond.i5 = icmp eq i16 %96, -1 - br i1 %or.cond.i5, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.preheader.i6 + %or.cond.i3 = icmp eq i16 %96, -1 + br i1 %or.cond.i3, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.preheader.i4 -.preheader.i6: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" - %.not.i30.i = icmp ugt i16 %92, %95 - br i1 %.not.i30.i, label %.loopexit.i, label %.lr.ph.i7 +.preheader.i4: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i" + %.not.i31.i = icmp ugt i16 %92, %95 + br i1 %.not.i31.i, label %.loopexit.i, label %.lr.ph.i5 -.lr.ph.i7: ; preds = %.preheader.i6, %.lr.ph.i7 - %.sroa.021.031.i = phi i16 [ %spec.select.i, %.lr.ph.i7 ], [ %92, %.preheader.i6 ] - %97 = icmp uge i16 %.sroa.021.031.i, %95 +.lr.ph.i5: ; preds = %.preheader.i4, %.lr.ph.i5 + %.sroa.022.032.i = phi i16 [ %spec.select.i, %.lr.ph.i7 ], [ %92, %.preheader.i6 ] + %97 = icmp uge i16 %.sroa.022.032.i, %95 %not..i = xor i1 %97, true %98 = zext i1 %not..i to i16 - %spec.select.i = add nuw i16 %.sroa.021.031.i, %98 - %99 = zext i16 %.sroa.021.031.i to i32 + %spec.select.i = add nuw i16 %.sroa.022.032.i, %98 + %99 = zext i16 %.sroa.022.032.i to i32 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %99), !noalias !239 %.not.i.i = icmp ugt i16 %spec.select.i, %95 - %or.cond29.i = select i1 %97, i1 true, i1 %.not.i.i - br i1 %or.cond29.i, label %.loopexit.i, label %.lr.ph.i7 + %or.cond30.i = select i1 %97, i1 true, i1 %.not.i.i + br i1 %or.cond30.i, label %.loopexit.i, label %.lr.ph.i5 100: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !267) @@ -1451,15 +1451,15 @@ default.unreachable72: ; preds = %3 %102 = load i64, ptr %101, align 8, !alias.scope !267, !noalias !270, !noundef !4 %103 = lshr i64 %102, 1 %104 = trunc i64 %103 to i16 - %.not.i8 = icmp eq i16 %104, 0 - br i1 %.not.i8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i9 + %.not.i6 = icmp eq i16 %104, 0 + br i1 %.not.i6, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i7 -.lr.ph.i9: ; preds = %100 +.lr.ph.i7: ; preds = %100 %105 = getelementptr inbounds nuw i8, ptr %0, i64 24 %106 = load i16, ptr %105, align 8, !alias.scope !267, !noalias !270, !noundef !4 br label %107 -107: ; preds = %114, %.lr.ph.i9 +107: ; preds = %114, %.lr.ph.i7 %.sroa.01.011.i = phi i16 [ 0, %.lr.ph.i9 ], [ %108, %114 ] %108 = add nuw i16 %.sroa.01.011.i, 1 %109 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %106, i16 %.sroa.01.011.i) @@ -1473,8 +1473,8 @@ default.unreachable72: ; preds = %3 br label %114 114: ; preds = %111, %107 - %exitcond.not.i10 = icmp eq i16 %108, %104 - br i1 %exitcond.not.i10, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %107 + %exitcond.not.i8 = icmp eq i16 %108, %104 + br i1 %exitcond.not.i8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %107 115: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !273) @@ -1482,18 +1482,18 @@ default.unreachable72: ; preds = %3 %117 = load i64, ptr %116, align 8, !alias.scope !273, !noalias !276, !noundef !4 %118 = lshr i64 %117, 1 %119 = trunc i64 %118 to i32 - %.not.i11 = icmp eq i32 %119, 0 - br i1 %.not.i11, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i12 + %.not.i9 = icmp eq i32 %119, 0 + br i1 %.not.i9, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph.i10 -.lr.ph.i12: ; preds = %115 +.lr.ph.i10: ; preds = %115 %120 = getelementptr inbounds nuw i8, ptr %0, i64 24 %121 = load i32, ptr %120, align 8, !alias.scope !273, !noalias !276, !noundef !4 br label %122 -122: ; preds = %128, %.lr.ph.i12 - %.sroa.01.011.i13 = phi i32 [ 0, %.lr.ph.i12 ], [ %123, %128 ] - %123 = add nuw i32 %.sroa.01.011.i13, 1 - %124 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %121, i32 %.sroa.01.011.i13) +122: ; preds = %128, %.lr.ph.i10 + %.sroa.01.011.i11 = phi i32 [ 0, %.lr.ph.i12 ], [ %123, %128 ] + %123 = add nuw i32 %.sroa.01.011.i11, 1 + %124 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %121, i32 %.sroa.01.011.i11) %125 = extractvalue { i32, i1 } %124, 1 br i1 %125, label %128, label %126 @@ -1503,8 +1503,8 @@ default.unreachable72: ; preds = %3 br label %128 128: ; preds = %126, %122 - %exitcond.not.i14 = icmp eq i32 %123, %119 - br i1 %exitcond.not.i14, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %122 + %exitcond.not.i12 = icmp eq i32 %123, %119 + br i1 %exitcond.not.i12, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %122 129: ; preds = %3 %130 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1514,15 +1514,15 @@ default.unreachable72: ; preds = %3 %133 = load i64, ptr %132, align 8, !alias.scope !279, !noalias !282, !noundef !4 %134 = udiv i64 %133, 12 %135 = and i64 %134, 4294967295 - %.not.i15 = icmp eq i64 %135, 0 - br i1 %.not.i15, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i + %.not.i13 = icmp eq i64 %135, 0 + br i1 %.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i -.loopexit.i23: ; preds = %.lr.ph.i18, %139 +.loopexit.i21: ; preds = %.lr.ph.i16, %139 %indvars.iv.next33.i = add nuw nsw i64 %indvars.iv32.i, 1 - %exitcond.not.i24 = icmp eq i64 %indvars.iv.next33.i, %135 - br i1 %exitcond.not.i24, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i + %exitcond.not.i22 = icmp eq i64 %indvars.iv.next33.i, %135 + br i1 %exitcond.not.i22, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i -.lr.ph30.i: ; preds = %129, %.loopexit.i23 +.lr.ph30.i: ; preds = %129, %.loopexit.i21 %indvars.iv32.i = phi i64 [ %indvars.iv.next33.i, %.loopexit.i23 ], [ 0, %129 ] %136 = mul nuw nsw i64 %indvars.iv32.i, 12 %137 = add nuw nsw i64 %136, 12 @@ -1531,24 +1531,24 @@ default.unreachable72: ; preds = %3 139: ; preds = %.lr.ph30.i %140 = getelementptr inbounds nuw i8, ptr %131, i64 %136 - %.val.i.i.i.i.i.i.i17 = load i32, ptr %140, align 1, !alias.scope !285, !noalias !296 - %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i17) + %.val.i.i.i.i.i.i.i15 = load i32, ptr %140, align 1, !alias.scope !285, !noalias !296 + %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i15) %142 = getelementptr inbounds nuw i8, ptr %140, i64 4 %.val.i.i.i35.i.i.i.i = load i32, ptr %142, align 1, !alias.scope !301, !noalias !296 %143 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i) %.not.i27.i = icmp ugt i32 %141, %143 - br i1 %.not.i27.i, label %.loopexit.i23, label %.lr.ph.i18 + br i1 %.not.i27.i, label %.loopexit.i21, label %.lr.ph.i16 -.lr.ph.i18: ; preds = %139, %.lr.ph.i18 - %.sroa.015.028.i = phi i32 [ %spec.select.i20, %.lr.ph.i18 ], [ %141, %139 ] +.lr.ph.i16: ; preds = %139, %.lr.ph.i16 + %.sroa.015.028.i = phi i32 [ %spec.select.i18, %.lr.ph.i18 ], [ %141, %139 ] %144 = icmp uge i32 %.sroa.015.028.i, %143 - %not..i19 = xor i1 %144, true - %145 = zext i1 %not..i19 to i32 - %spec.select.i20 = add nuw i32 %.sroa.015.028.i, %145 + %not..i17 = xor i1 %144, true + %145 = zext i1 %not..i17 to i32 + %spec.select.i18 = add nuw i32 %.sroa.015.028.i, %145 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i), !noalias !279 - %.not.i.i21 = icmp ugt i32 %spec.select.i20, %143 - %or.cond.i22 = select i1 %144, i1 true, i1 %.not.i.i21 - br i1 %or.cond.i22, label %.loopexit.i23, label %.lr.ph.i18 + %.not.i.i19 = icmp ugt i32 %spec.select.i18, %143 + %or.cond.i20 = select i1 %144, i1 true, i1 %.not.i.i19 + br i1 %or.cond.i20, label %.loopexit.i21, label %.lr.ph.i16 146: ; preds = %3 %147 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1558,43 +1558,43 @@ default.unreachable72: ; preds = %3 %150 = load i64, ptr %149, align 8, !alias.scope !308, !noalias !311, !noundef !4 %151 = udiv i64 %150, 12 %152 = and i64 %151, 4294967295 - %.not.i25 = icmp eq i64 %152, 0 - br i1 %.not.i25, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i28 + %.not.i23 = icmp eq i64 %152, 0 + br i1 %.not.i23, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i26 -.loopexit.i39: ; preds = %.lr.ph.i33, %156 - %indvars.iv.next33.i40 = add nuw nsw i64 %indvars.iv32.i29, 1 - %exitcond.not.i41 = icmp eq i64 %indvars.iv.next33.i40, %152 - br i1 %exitcond.not.i41, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i28 +.loopexit.i37: ; preds = %.lr.ph.i31, %156 + %indvars.iv.next33.i38 = add nuw nsw i64 %indvars.iv32.i27, 1 + %exitcond.not.i39 = icmp eq i64 %indvars.iv.next33.i38, %152 + br i1 %exitcond.not.i39, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %.lr.ph30.i26 -.lr.ph30.i28: ; preds = %146, %.loopexit.i39 - %indvars.iv32.i29 = phi i64 [ %indvars.iv.next33.i40, %.loopexit.i39 ], [ 0, %146 ] - %153 = mul nuw nsw i64 %indvars.iv32.i29, 12 +.lr.ph30.i26: ; preds = %146, %.loopexit.i37 + %indvars.iv32.i27 = phi i64 [ %indvars.iv.next33.i38, %.loopexit.i39 ], [ 0, %146 ] + %153 = mul nuw nsw i64 %indvars.iv32.i27, 12 %154 = add nuw nsw i64 %153, 12 %155 = icmp ugt i64 %154, %150 br i1 %155, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %156 -156: ; preds = %.lr.ph30.i28 +156: ; preds = %.lr.ph30.i26 %157 = getelementptr inbounds nuw i8, ptr %148, i64 %153 - %.val.i.i.i.i.i.i.i30 = load i32, ptr %157, align 1, !alias.scope !314, !noalias !325 - %158 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i30) + %.val.i.i.i.i.i.i.i28 = load i32, ptr %157, align 1, !alias.scope !314, !noalias !325 + %158 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i28) %159 = getelementptr inbounds nuw i8, ptr %157, i64 4 - %.val.i.i.i35.i.i.i.i31 = load i32, ptr %159, align 1, !alias.scope !330, !noalias !325 - %160 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i31) - %.not.i27.i32 = icmp ugt i32 %158, %160 - br i1 %.not.i27.i32, label %.loopexit.i39, label %.lr.ph.i33 - -.lr.ph.i33: ; preds = %156, %.lr.ph.i33 - %.sroa.015.028.i34 = phi i32 [ %spec.select.i36, %.lr.ph.i33 ], [ %158, %156 ] - %161 = icmp uge i32 %.sroa.015.028.i34, %160 - %not..i35 = xor i1 %161, true - %162 = zext i1 %not..i35 to i32 - %spec.select.i36 = add nuw i32 %.sroa.015.028.i34, %162 - tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i34), !noalias !308 - %.not.i.i37 = icmp ugt i32 %spec.select.i36, %160 - %or.cond.i38 = select i1 %161, i1 true, i1 %.not.i.i37 - br i1 %or.cond.i38, label %.loopexit.i39, label %.lr.ph.i33 - -_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit: ; preds = %.lr.ph30.i28, %.loopexit.i39, %.lr.ph30.i, %.loopexit.i23, %128, %114, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i", %90, %86, %.loopexit.i, %.thread72.i, %53, %50, %39, %34, %30, %29, %.lr.ph.i1, %17, %146, %129, %115, %100, %72, %5, %3, %3 + %.val.i.i.i35.i.i.i.i29 = load i32, ptr %159, align 1, !alias.scope !330, !noalias !325 + %160 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i29) + %.not.i27.i30 = icmp ugt i32 %158, %160 + br i1 %.not.i27.i30, label %.loopexit.i37, label %.lr.ph.i31 + +.lr.ph.i31: ; preds = %156, %.lr.ph.i31 + %.sroa.015.028.i32 = phi i32 [ %spec.select.i34, %.lr.ph.i33 ], [ %158, %156 ] + %161 = icmp uge i32 %.sroa.015.028.i32, %160 + %not..i33 = xor i1 %161, true + %162 = zext i1 %not..i33 to i32 + %spec.select.i34 = add nuw i32 %.sroa.015.028.i32, %162 + tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %.sroa.015.028.i32), !noalias !308 + %.not.i.i35 = icmp ugt i32 %spec.select.i34, %160 + %or.cond.i36 = select i1 %161, i1 true, i1 %.not.i.i35 + br i1 %or.cond.i36, label %.loopexit.i37, label %.lr.ph.i31 + +_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit: ; preds = %.lr.ph30.i26, %.loopexit.i37, %.lr.ph30.i, %.loopexit.i21, %128, %114, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h73ac2b35c11b83c8E.exit.i", %90, %.lr.ph, %.loopexit.i, %.thread72.i, %53, %50, %39, %34, %30, %29, %.lr.ph.i1, %17, %146, %129, %115, %100, %72, %5, %3, %3 ret void } diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index c1608c396b6..cc3db652fe8 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -56238,7 +56238,7 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %9 = alloca { i64, [2 x i64] }, align 8 %10 = alloca { { { i64, ptr, {} }, i64 }, { i64, { i8, [1 x i8] }, [6 x i8] } }, align 8 %11 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.sroa.6.sroa.0.i.i174 = alloca [2 x i64], align 8 + %.sroa.6.sroa.0.i.i175 = alloca [2 x i64], align 8 %12 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %13 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %14 = alloca { { i64, [2 x i64] } }, align 8 @@ -56307,7 +56307,7 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %75 = getelementptr inbounds nuw i8, ptr %0, i64 104 %76 = load i8, ptr %75, align 8, !range !7159, !noundef !4 %.not = icmp eq i8 %76, 6 - br i1 %.not, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245", label %77 + br i1 %.not, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246", label %77 77: ; preds = %2 %78 = getelementptr inbounds nuw i8, ptr %1, i64 184 @@ -56323,20 +56323,20 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. %83 = add nsw i64 %82, -3 %84 = select i1 %81, i64 %83, i64 0 switch i64 %84, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread" [ - i64 0, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" + i64 0, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" i64 1, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" i64 2, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" ] "_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit": ; preds = %80, %80 %85 = trunc nuw i8 %.val146 to i1 - br i1 %85, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread", label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" + br i1 %85, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread", label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" -"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split": ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit", %904, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %93, %.outer._crit_edge +"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split": ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit", %904, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %93, %.outer._crit_edge call void @llvm.lifetime.end.p0(ptr nonnull %74) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246" -"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245": ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split", %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", %2 +"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246": ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split", %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", %2 ret void "_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread": ; preds = %77, %80, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" @@ -56360,13 +56360,13 @@ define internal fastcc void @"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva. 93: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread" call void @llvm.lifetime.end.p0(ptr nonnull %73) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" 94: ; preds = %87 br i1 %.not129, label %339, label %96 95: ; preds = %87 - br i1 %.not129, label %869, label %switch.lookup591 + br i1 %.not129, label %869, label %switch.lookup592 96: ; preds = %94 %97 = getelementptr inbounds nuw i8, ptr %1, i64 648 @@ -56524,7 +56524,7 @@ common.resume: ; preds = %808, %610, %99 _ZN9hayagriva3csl12StyleContext13lookup_locale17h0c7f54e9a24c8c37E.exit.thread: ; preds = %145, %148, %152 call void @llvm.lifetime.end.p0(ptr nonnull %52), !noalias !11659 call void @llvm.lifetime.end.p0(ptr nonnull %59), !noalias !11637 - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" 154: ; preds = %125 call void @llvm.lifetime.start.p0(ptr nonnull %55), !noalias !11637 @@ -57078,8 +57078,8 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %348 = icmp eq i8 %.2.extract.trunc.i, 2 %.036.i = select i1 %348, i8 %.2.extract.trunc13.i, i8 %.2.extract.trunc.i %349 = icmp eq i40 %.4.extract.shift.i, 4 - %.0.v.i = select i1 %349, i40 %.4.extract.shift18.i, i40 %.4.extract.shift.i - %.sroa.525.0.insert.shift.i = shl nuw nsw i40 %.0.v.i, 24 + %.0.i152 = select i1 %349, i40 %.4.extract.shift18.i, i40 %.4.extract.shift.i + %.sroa.525.0.insert.shift.i = shl nuw nsw i40 %.0.i152, 24 %.sroa.424.0.insert.ext.i = zext i8 %.037.i to i40 %.sroa.424.0.insert.shift.i = shl nuw nsw i40 %.sroa.424.0.insert.ext.i, 16 %.sroa.424.0.insert.insert.i = or disjoint i40 %.sroa.424.0.insert.shift.i, %.sroa.525.0.insert.shift.i @@ -57096,7 +57096,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %.sroa.3.0.copyload = phi i32 [ %350, %341 ], [ %.sroa.3.0.copyload.pre, %339 ] %.sroa.093.0.copyload = phi i8 [ %.0.extract.trunc.i, %341 ], [ %.sroa.093.0.copyload.pre, %339 ] %.in = phi i8 [ %342, %341 ], [ %340, %339 ] - %.0119252 = phi ptr [ %.1.i, %341 ], [ null, %339 ] + %.0119253 = phi ptr [ %.1.i, %341 ], [ null, %339 ] %.sroa.043.0 = phi i8 [ %spec.select.i, %341 ], [ 3, %339 ] %.sroa.645.0 = phi i32 [ %.1.extract.trunc, %341 ], [ undef, %339 ] %352 = getelementptr inbounds nuw i8, ptr %1, i64 192 @@ -57118,7 +57118,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. br i1 %.not129, label %364, label %361 361: ; preds = %351 - %362 = getelementptr inbounds nuw i8, ptr %.0119252, i64 105 + %362 = getelementptr inbounds nuw i8, ptr %.0119253, i64 105 %363 = load i8, ptr %362, align 1, !range !7159, !noundef !4 br label %364 @@ -57200,12 +57200,12 @@ switch.lookup: ; preds = %364 br i1 %.not129, label %402, label %399 399: ; preds = %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" - %400 = getelementptr inbounds nuw i8, ptr %.0119252, i64 102 + %400 = getelementptr inbounds nuw i8, ptr %.0119253, i64 102 %401 = load i8, ptr %400, align 2, !range !569, !noundef !4 br label %402 402: ; preds = %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit", %399 - %.0109 = phi ptr [ %.0119252, %399 ], [ %0, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] + %.0109 = phi ptr [ %.0119253, %399 ], [ %0, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] %.0116 = phi i8 [ %401, %399 ], [ 3, %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit" ] %403 = getelementptr i8, ptr %.0109, i64 8 %.0109.val = load ptr, ptr %403, align 8, !nonnull !4, !noundef !4 @@ -57238,7 +57238,7 @@ switch.lookup: ; preds = %364 %419 = getelementptr inbounds { { i64, [2 x i64] }, { { i64, [2 x i64] }, { i64, [2 x i64] } }, i8, i8, { i8, i8, i8, i8, i8 }, i8, i8, [7 x i8] }, ptr %.val148, i64 %.val149 %420 = getelementptr inbounds nuw i8, ptr %74, i64 8 %421 = getelementptr inbounds nuw i8, ptr %74, i64 4 - %.sroa.gep225 = getelementptr inbounds nuw i8, ptr %74, i64 10 + %.sroa.gep226 = getelementptr inbounds nuw i8, ptr %74, i64 10 %.sroa.622.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %21, i64 8 %422 = getelementptr inbounds nuw i8, ptr %1, i64 642 %423 = getelementptr inbounds nuw i8, ptr %1, i64 144 @@ -57272,18 +57272,18 @@ switch.lookup: ; preds = %364 %445 = getelementptr inbounds nuw i8, ptr %33, i64 32 %446 = getelementptr inbounds nuw i8, ptr %33, i64 16 %447 = getelementptr inbounds nuw i8, ptr %33, i64 24 - %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i176 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i177 = getelementptr inbounds nuw i8, ptr %17, i64 16 - %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i178 = getelementptr inbounds nuw i8, ptr %17, i64 24 - %.sroa.0.sroa.2.0..sroa_idx.i179 = getelementptr inbounds nuw i8, ptr %17, i64 32 - %.sroa.0.sroa.3.0..sroa_idx.i180 = getelementptr inbounds nuw i8, ptr %17, i64 40 - %.sroa.2.0..sroa_idx.i181 = getelementptr inbounds nuw i8, ptr %17, i64 48 + %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i177 = getelementptr inbounds nuw i8, ptr %17, i64 8 + %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i178 = getelementptr inbounds nuw i8, ptr %17, i64 16 + %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i179 = getelementptr inbounds nuw i8, ptr %17, i64 24 + %.sroa.0.sroa.2.0..sroa_idx.i180 = getelementptr inbounds nuw i8, ptr %17, i64 32 + %.sroa.0.sroa.3.0..sroa_idx.i181 = getelementptr inbounds nuw i8, ptr %17, i64 40 + %.sroa.2.0..sroa_idx.i182 = getelementptr inbounds nuw i8, ptr %17, i64 48 %448 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %.sroa.4.0..sroa_idx.i.i182 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sroa.6.0..sroa_idx.i.i183 = getelementptr inbounds nuw i8, ptr %11, i64 16 + %.sroa.4.0..sroa_idx.i.i183 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %.sroa.6.0..sroa_idx.i.i184 = getelementptr inbounds nuw i8, ptr %11, i64 16 %449 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sroa.614.24..sroa_idx.i.i184 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sroa.02.sroa.4.0..sroa_idx.i.i185 = getelementptr inbounds nuw i8, ptr %16, i64 16 + %.sroa.614.24..sroa_idx.i.i185 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sroa.02.sroa.4.0..sroa_idx.i.i186 = getelementptr inbounds nuw i8, ptr %16, i64 16 %450 = getelementptr inbounds nuw i8, ptr %8, i64 8 %451 = getelementptr inbounds nuw i8, ptr %8, i64 16 %452 = getelementptr inbounds nuw i8, ptr %19, i64 8 @@ -57303,7 +57303,7 @@ switch.lookup: ; preds = %364 %466 = getelementptr inbounds nuw i8, ptr %13, i64 16 %467 = getelementptr inbounds nuw i8, ptr %12, i64 8 %468 = getelementptr inbounds nuw i8, ptr %12, i64 16 - %.sroa.gep219 = getelementptr inbounds nuw i8, ptr %74, i64 9 + %.sroa.gep220 = getelementptr inbounds nuw i8, ptr %74, i64 9 %469 = getelementptr inbounds nuw i8, ptr %37, i64 8 %470 = getelementptr inbounds nuw i8, ptr %38, i64 8 %471 = getelementptr inbounds nuw i8, ptr %38, i64 16 @@ -57335,21 +57335,21 @@ switch.lookup: ; preds = %364 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.lr.ph, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit - %.0114.ph339 = phi i1 [ true, %.lr.ph.lr.ph ], [ %865, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] - %.sroa.0242.0.ph338 = phi ptr [ %.0109.val, %.lr.ph.lr.ph ], [ %.us-phi314, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] + %.0114.ph340 = phi i1 [ true, %.lr.ph.lr.ph ], [ %865, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] + %.sroa.0243.0.ph339 = phi ptr [ %.0109.val, %.lr.ph.lr.ph ], [ %.us-phi315, %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit ] br i1 %switch, label %.lr.ph.split.us, label %.lr.ph.split.split .lr.ph.split.us: ; preds = %.lr.ph br i1 %410, label %.lr.ph.split.us.split.us, label %.lr.ph.split.us.split .lr.ph.split.us.split.us: ; preds = %.lr.ph.split.us - %490 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0.ph338, i64 88 + %490 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0.ph339, i64 88 br label %.split.us .lr.ph.split.us.split: ; preds = %.lr.ph.split.us, %494 - %.sroa.0242.0313.us = phi ptr [ %491, %494 ], [ %.sroa.0242.0.ph338, %.lr.ph.split.us ] - %491 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313.us, i64 88 - %492 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313.us, i64 73 + %.sroa.0243.0314.us = phi ptr [ %491, %494 ], [ %.sroa.0243.0.ph339, %.lr.ph.split.us ] + %491 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314.us, i64 88 + %492 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314.us, i64 73 %493 = load i8, ptr %492, align 1, !range !566, !noundef !4 %cond = icmp eq i8 %493, 0 br i1 %cond, label %494, label %.split.us @@ -57367,22 +57367,22 @@ switch.lookup: ; preds = %364 store i8 1, ptr %60, align 8 call void @_ZN9hayagriva3csl14WritingContext11commit_elem17h3b1fa942ea201ccfE(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i64 noundef %356, i64 noundef %357, i8 noundef %497, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(16) %60) call void @llvm.lifetime.end.p0(ptr nonnull %60) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" .lr.ph.split.split: ; preds = %.lr.ph, %503 - %.sroa.0242.0313 = phi ptr [ %498, %503 ], [ %.sroa.0242.0.ph338, %.lr.ph ] - %498 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313, i64 88 - %499 = getelementptr inbounds nuw i8, ptr %.sroa.0242.0313, i64 73 + %.sroa.0243.0314 = phi ptr [ %498, %503 ], [ %.sroa.0243.0.ph339, %.lr.ph ] + %498 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314, i64 88 + %499 = getelementptr inbounds nuw i8, ptr %.sroa.0243.0314, i64 73 %500 = load i8, ptr %499, align 1, !range !566, !noundef !4 - %switch340 = icmp samesign ult i8 %500, 2 - br i1 %switch340, label %503, label %.split.us + %switch341 = icmp samesign ult i8 %500, 2 + br i1 %switch341, label %503, label %.split.us .split.us: ; preds = %.lr.ph.split.split, %.lr.ph.split.us.split, %.lr.ph.split.us.split.us - %.us-phi = phi ptr [ %.sroa.0242.0.ph338, %.lr.ph.split.us.split.us ], [ %.sroa.0242.0313.us, %.lr.ph.split.us.split ], [ %.sroa.0242.0313, %.lr.ph.split.split ] - %.us-phi314 = phi ptr [ %490, %.lr.ph.split.us.split.us ], [ %491, %.lr.ph.split.us.split ], [ %498, %.lr.ph.split.split ] + %.us-phi = phi ptr [ %.sroa.0243.0.ph339, %.lr.ph.split.us.split.us ], [ %.sroa.0243.0314.us, %.lr.ph.split.us.split ], [ %.sroa.0243.0314, %.lr.ph.split.split ] + %.us-phi315 = phi ptr [ %490, %.lr.ph.split.us.split.us ], [ %491, %.lr.ph.split.us.split ], [ %498, %.lr.ph.split.split ] %501 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 73 %502 = call noundef i64 @_ZN9hayagriva3csl14WritingContext3len17h79b1b0473df8f2bbE(ptr noundef nonnull align 8 %352) - %or.cond = select i1 %.0114.ph339, i1 true, i1 %.not127 + %or.cond = select i1 %.0114.ph340, i1 true, i1 %.not127 br i1 %or.cond, label %505, label %506 503: ; preds = %.lr.ph.split.split @@ -57414,7 +57414,7 @@ switch.lookup: ; preds = %364 %514 = load i32, ptr %74, align 8, !range !5765, !alias.scope !11877, !noundef !4 %trunc.i = trunc nuw i32 %514 to i1 %515 = load ptr, ptr %420, align 8, !alias.scope !11877, !nonnull !4, !align !11880 - %.0.i153 = select i1 %trunc.i, ptr %421, ptr %515 + %.0.i154 = select i1 %trunc.i, ptr %421, ptr %515 call void @llvm.experimental.noalias.scope.decl(metadata !11866) call void @llvm.experimental.noalias.scope.decl(metadata !11881) call void @llvm.experimental.noalias.scope.decl(metadata !11882) @@ -57437,27 +57437,27 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation br label %522 518: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" - %519 = load i32, ptr %.0.i153, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 + %519 = load i32, ptr %.0.i154, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 %520 = icmp sgt i32 %519, 0 %521 = sub i32 1, %519 %spec.select184.i = select i1 %520, i32 %519, i32 %521 - br label %.thread.i154 + br label %.thread.i155 522: ; preds = %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit", %517 - %.sink528 = phi i64 [ 4, %517 ], [ 6, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] - %.sink = phi ptr [ %420, %517 ], [ %.sroa.gep225, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] + %.sink529 = phi i64 [ 4, %517 ], [ 6, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] + %.sink = phi ptr [ %420, %517 ], [ %.sroa.gep226, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] %.sink206.i = phi i64 [ 5, %517 ], [ 7, %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$6render28_$u7b$$u7b$closure$u7d$$u7d$17h7f9d0abe2b524b5eE.exit" ] - %.sroa.gep223 = getelementptr inbounds nuw i8, ptr %515, i64 %.sink528 - %.0.i153.sroa.sel224 = select i1 %trunc.i, ptr %.sink, ptr %.sroa.gep223 - %.sink207.i = load i8, ptr %.0.i153.sroa.sel224, align 2, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 - %523 = getelementptr inbounds nuw i8, ptr %.0.i153, i64 %.sink206.i + %.sroa.gep224 = getelementptr inbounds nuw i8, ptr %515, i64 %.sink529 + %.0.i154.sroa.sel225 = select i1 %trunc.i, ptr %.sink, ptr %.sroa.gep224 + %.sink207.i = load i8, ptr %.0.i154.sroa.sel225, align 2, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 + %523 = getelementptr inbounds nuw i8, ptr %.0.i154, i64 %.sink206.i %524 = load i8, ptr %523, align 1, !alias.scope !11881, !noalias !11885 %525 = zext i8 %524 to i32 %526 = add nuw nsw i32 %525, 1 %.not183.i = icmp eq i8 %.sink207.i, 0 - br i1 %.not183.i, label %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit, label %.thread.i154 + br i1 %.not183.i, label %_ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit, label %.thread.i155 -.thread.i154: ; preds = %522, %518 +.thread.i155: ; preds = %522, %518 %.sroa.9.1152.i = phi i32 [ %526, %522 ], [ %spec.select184.i, %518 ] store i32 %.sroa.9.1152.i, ptr %43, align 4, !noalias !11884 %527 = load i8, ptr %78, align 8, !range !11633, !alias.scope !11882, !noalias !11886, !noundef !4 @@ -57465,7 +57465,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %529 = icmp eq ptr %..sroa.563.0, null br i1 %529, label %.thread163.i, label %532 -.thread163.i: ; preds = %.thread.i154 +.thread163.i: ; preds = %.thread.i155 %530 = call { i8, i8 } @_ZN12citationberg8DatePart4form17he0e6f97140595101E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %.us-phi), !noalias !11881 %531 = extractvalue { i8, i8 } %530, 0 %.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %.us-phi, i64 74 @@ -57474,7 +57474,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %.sroa.392.0.copyload.pre.i = load i32, ptr %.sroa.392.0..sroa_idx.phi.trans.insert.i, align 1, !alias.scope !11866, !noalias !11869 br label %547 -532: ; preds = %.thread.i154 +532: ; preds = %.thread.i155 %533 = call { i8, i8 } @_ZN12citationberg8DatePart4form17he0e6f97140595101E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) dereferenceable_or_null(88) %..sroa.563.0), !noalias !11881 %534 = extractvalue { i8, i8 } %533, 0 %535 = icmp eq i8 %534, 3 @@ -57486,7 +57486,7 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation br label %.thread156.i .thread156.i: ; preds = %536, %532 - %.pn.i155 = phi { i8, i8 } [ %537, %536 ], [ %533, %532 ] + %.pn.i156 = phi { i8, i8 } [ %537, %536 ], [ %533, %532 ] %.sroa.081.0159.i = phi i8 [ %538, %536 ], [ %534, %532 ] %539 = getelementptr inbounds nuw i8, ptr %..sroa.563.0, i64 74 %.sroa.089.0.copyload.i = load i40, ptr %539, align 2, !alias.scope !11883, !noalias !11887 @@ -57517,8 +57517,8 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %544 = icmp eq i8 %.2.extract.trunc.i.i, 2 %.036.i.i = select i1 %544, i8 %.2.extract.trunc13.i.i, i8 %.2.extract.trunc.i.i %545 = icmp eq i40 %.4.extract.shift.i.i, 4 - %.0.v.i.i = select i1 %545, i40 %.4.extract.shift18.i.i, i40 %.4.extract.shift.i.i - %.sroa.525.0.insert.shift.i.i = shl nuw nsw i40 %.0.v.i.i, 24 + %.0.i.i157 = select i1 %545, i40 %.4.extract.shift18.i.i, i40 %.4.extract.shift.i.i + %.sroa.525.0.insert.shift.i.i = shl nuw nsw i40 %.0.i.i157, 24 %.sroa.424.0.insert.ext.i.i = zext i8 %.037.i.i to i40 %.sroa.424.0.insert.shift.i.i = shl nuw nsw i40 %.sroa.424.0.insert.ext.i.i, 16 %.sroa.424.0.insert.insert.i.i = or disjoint i40 %.sroa.424.0.insert.shift.i.i, %.sroa.525.0.insert.shift.i.i @@ -57534,17 +57534,17 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation 547: ; preds = %.thread156.i, %.thread163.i %.sroa.392.0.copyload.i = phi i32 [ %546, %.thread156.i ], [ %.sroa.392.0.copyload.pre.i, %.thread163.i ] %.sroa.091.0.copyload.i = phi i8 [ %.0.extract.trunc7.i.i, %.thread156.i ], [ %.sroa.091.0.copyload.pre.i, %.thread163.i ] - %.pn.pn.i = phi { i8, i8 } [ %.pn.i155, %.thread156.i ], [ %530, %.thread163.i ] + %.pn.pn.i = phi { i8, i8 } [ %.pn.i156, %.thread156.i ], [ %530, %.thread163.i ] %.sroa.081.0160.i = phi i8 [ %.sroa.081.0159.i, %.thread156.i ], [ %531, %.thread163.i ] %.sroa.617.0.i = phi i32 [ %.1.extract.trunc.i156, %.thread156.i ], [ undef, %.thread163.i ] %.sroa.015.0.i = phi i8 [ %spec.select.i.i, %.thread156.i ], [ 3, %.thread163.i ] %.sroa.584.0162.i = extractvalue { i8, i8 } %.pn.pn.i, 1 %548 = icmp eq i8 %.sroa.015.0.i, 3 - %spec.select.i157 = select i1 %548, i8 %.sroa.091.0.copyload.i, i8 %.sroa.015.0.i + %spec.select.i158 = select i1 %548, i8 %.sroa.091.0.copyload.i, i8 %.sroa.015.0.i %spec.select136.i = select i1 %548, i32 %.sroa.392.0.copyload.i, i32 %.sroa.617.0.i %.sroa.392.0.insert.ext.i = zext i32 %spec.select136.i to i40 %.sroa.392.0.insert.shift.i = shl nuw i40 %.sroa.392.0.insert.ext.i, 8 - %.sroa.091.0.insert.ext.i = zext i8 %spec.select.i157 to i40 + %.sroa.091.0.insert.ext.i = zext i8 %spec.select.i158 to i40 %.sroa.091.0.insert.insert.i = or disjoint i40 %.sroa.392.0.insert.shift.i, %.sroa.091.0.insert.ext.i %549 = call noundef i64 @_ZN9hayagriva3csl14WritingContext11push_format17h807a950b072ff910E(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i40 %.sroa.091.0.insert.insert.i), !range !3699, !noalias !11881 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.622.i) @@ -57584,15 +57584,15 @@ default.unreachable201.i: ; preds = %"_ZN75_$LT$citation %563 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 80 %564 = load i8, ptr %563, align 8, !range !7159, !alias.scope !11866, !noalias !11869, !noundef !4 %565 = icmp eq i8 %562, 6 - %spec.select529 = select i1 %565, i8 %564, i8 %562 + %spec.select530 = select i1 %565, i8 %564, i8 %562 br label %select.unfold.i select.unfold.i: ; preds = %560, %.thread164.i - %566 = phi i8 [ %559, %.thread164.i ], [ %spec.select529, %560 ] + %566 = phi i8 [ %559, %.thread164.i ], [ %spec.select530, %560 ] call void @llvm.experimental.noalias.scope.decl(metadata !11888) - %switch.shifted584 = lshr i8 79, %566 - %switch.lobit585 = trunc i8 %switch.shifted584 to i1 - br i1 %switch.lobit585, label %switch.lookup583, label %567 + %switch.shifted585 = lshr i8 79, %566 + %switch.lobit586 = trunc i8 %switch.shifted585 to i1 + br i1 %switch.lobit586, label %switch.lookup584, label %567 567: ; preds = %select.unfold.i %568 = load ptr, ptr %423, align 8, !alias.scope !11891, !noalias !11886, !nonnull !4, !align !562, !noundef !4 @@ -57644,15 +57644,15 @@ select.unfold.i: ; preds = %560, %.thread164.i 591: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" br label %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i" -switch.lookup583: ; preds = %select.unfold.i - %switch.cast586 = zext i8 %566 to i56 - %switch.shiftamt587 = shl nuw nsw i56 %switch.cast586, 3 - %switch.downshift588 = lshr i56 1688849910726912, %switch.shiftamt587 - %switch.masked589 = trunc i56 %switch.downshift588 to i8 +switch.lookup584: ; preds = %select.unfold.i + %switch.cast587 = zext i8 %566 to i56 + %switch.shiftamt588 = shl nuw nsw i56 %switch.cast587, 3 + %switch.downshift589 = lshr i56 1688849910726912, %switch.shiftamt588 + %switch.masked590 = trunc i56 %switch.downshift589 to i8 br label %"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i" -"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i": ; preds = %switch.lookup583, %591, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %581, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" - %.sink17.i.i = phi i8 [ 6, %591 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" ], [ %566, %588 ], [ %566, %581 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i" ], [ %switch.masked589, %switch.lookup583 ] +"_ZN9hayagriva3csl16Context$LT$T$GT$9push_case17hfc6ed1518e316664E.exit.i": ; preds = %switch.lookup584, %591, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i", %588, %581, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" + %.sink17.i.i = phi i8 [ 6, %591 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hd69d8c3994152053E.llvm.16978709814855407318.exit.thread.i.i" ], [ %566, %588 ], [ %566, %581 ], [ %566, %"_ZN4core6option15Option$LT$T$GT$7or_else17hf3f9dfb2435f9684E.llvm.16978709814855407318.exit.i.i" ], [ %switch.masked590, %switch.lookup583 ] %592 = call noundef range(i64 1, 0) i64 @_ZN9hayagriva3csl14WritingContext9push_case17h6fad8e686d52464eE(ptr noalias noundef nonnull align 8 dereferenceable(456) %352, i8 noundef %.sink17.i.i), !range !3699, !noalias !11881 br i1 %528, label %594, label %593 @@ -57755,7 +57755,7 @@ switch.lookup583: ; preds = %select.unfold.i invoke void @_ZN12citationberg10LocaleCode5en_us17h7b646f6c103c83a8E(ptr noalias noundef nonnull sret({ { { { i64, ptr, {} }, i64 } } }) align 8 captures(none) dereferenceable(24) %18) to label %.lr.ph.i175 unwind label %611, !noalias !11881 -610: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190", %611 +610: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191", %611 %.pn43.i = phi { ptr, i32 } [ %612, %611 ], [ %.pn41.i, %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" ] invoke void @"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #81 to label %common.resume unwind label %796, !noalias !11881 @@ -57765,7 +57765,7 @@ switch.lookup583: ; preds = %select.unfold.i cleanup br label %610 -.lr.ph.i175: ; preds = %608 +.lr.ph.i176: ; preds = %608 %613 = getelementptr inbounds nuw i8, ptr %609, i64 24 %614 = load ptr, ptr %613, align 8, !alias.scope !11920, !noalias !11881, !nonnull !4, !align !562, !noundef !4 %615 = getelementptr inbounds nuw i8, ptr %614, i64 888 @@ -57778,69 +57778,69 @@ switch.lookup583: ; preds = %select.unfold.i %622 = load i64, ptr %621, align 8, !alias.scope !11920, !noalias !11881, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %17), !noalias !11923 store ptr %616, ptr %17, align 8, !noalias !11923 - store i64 %618, ptr %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i176, align 8, !noalias !11923 - store ptr %620, ptr %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i177, align 8, !noalias !11923 - store i64 %622, ptr %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i178, align 8, !noalias !11923 - store i64 2, ptr %.sroa.0.sroa.3.0..sroa_idx.i180, align 8, !noalias !11923 - store i64 0, ptr %.sroa.2.0..sroa_idx.i181, align 8, !noalias !11923 + store i64 %618, ptr %.sroa.0.sroa.0.sroa.2.0..sroa_idx.i177, align 8, !noalias !11923 + store ptr %620, ptr %.sroa.0.sroa.0.sroa.3.0..sroa_idx.i178, align 8, !noalias !11923 + store i64 %622, ptr %.sroa.0.sroa.0.sroa.4.0..sroa_idx.i179, align 8, !noalias !11923 + store i64 2, ptr %.sroa.0.sroa.3.0..sroa_idx.i181, align 8, !noalias !11923 + store i64 0, ptr %.sroa.2.0..sroa_idx.i182, align 8, !noalias !11923 br label %625 -.body.i188: ; preds = %677, %668, %.loopexit.split-lp.i199, %.loopexit.i186 - %.pn.i189 = phi { ptr, i32 } [ %669, %668 ], [ %678, %677 ], [ %lpad.loopexit.i187, %.loopexit.i186 ], [ %lpad.loopexit.split-lp.i200, %.loopexit.split-lp.i199 ] +.body.i189: ; preds = %677, %668, %.loopexit.split-lp.i200, %.loopexit.i187 + %.pn.i190 = phi { ptr, i32 } [ %669, %668 ], [ %678, %677 ], [ %lpad.loopexit.i188, %.loopexit.i186 ], [ %lpad.loopexit.split-lp.i201, %.loopexit.split-lp.i199 ] %623 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" unwind label %796, !noalias !11881 -.loopexit.i186: ; preds = %770, %686, %662, %651, %650 - %lpad.loopexit.i187 = landingpad { ptr, i32 } +.loopexit.i187: ; preds = %770, %686, %662, %651, %650 + %lpad.loopexit.i188 = landingpad { ptr, i32 } cleanup - br label %.body.i188 + br label %.body.i189 -.loopexit.split-lp.i199: ; preds = %719 - %lpad.loopexit.split-lp.i200 = landingpad { ptr, i32 } +.loopexit.split-lp.i200: ; preds = %719 + %lpad.loopexit.split-lp.i201 = landingpad { ptr, i32 } cleanup - br label %.body.i188 + br label %.body.i189 -._crit_edge.i195: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" +._crit_edge.i196: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" %624 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" unwind label %635, !noalias !11881 -625: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", %.lr.ph.i175 +625: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", %.lr.ph.i176 %626 = phi i64 [ 0, %.lr.ph.i175 ], [ %795, %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i" ] %627 = add nuw nsw i64 %626, 1 - store i64 %627, ptr %.sroa.0.sroa.2.0..sroa_idx.i179, align 8, !alias.scope !11924, !noalias !11929 + store i64 %627, ptr %.sroa.0.sroa.2.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929 %628 = getelementptr inbounds nuw { [2 x i64] }, ptr %17, i64 %626 %629 = load ptr, ptr %628, align 8, !alias.scope !11924, !noalias !11929, !nonnull !4, !align !562, !noundef !4 %630 = getelementptr inbounds nuw i8, ptr %628, i64 8 %631 = load i64, ptr %630, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %632 = load i64, ptr %.sroa.2.0..sroa_idx.i181, align 8, !alias.scope !11931, !noalias !11929, !noundef !4 + %632 = load i64, ptr %.sroa.2.0..sroa_idx.i182, align 8, !alias.scope !11931, !noalias !11929, !noundef !4 %633 = add i64 %632, 1 - store i64 %633, ptr %.sroa.2.0..sroa_idx.i181, align 8, !alias.scope !11931, !noalias !11929 + store i64 %633, ptr %.sroa.2.0..sroa_idx.i182, align 8, !alias.scope !11931, !noalias !11929 call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !11923 %634 = icmp eq i64 %632, 0 br i1 %634, label %650, label %651 -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190": ; preds = %635, %.body.i188 - %.pn41.i = phi { ptr, i32 } [ %636, %635 ], [ %.pn.i189, %.body.i188 ] +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191": ; preds = %635, %.body.i189 + %.pn41.i = phi { ptr, i32 } [ %636, %635 ], [ %.pn.i190, %.body.i188 ] invoke void @"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18) #81 to label %610 unwind label %796, !noalias !11881 -635: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203", %._crit_edge.i195 +635: ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204", %._crit_edge.i196 %636 = landingpad { ptr, i32 } cleanup - br label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190" + br label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191" -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i": ; preds = %._crit_edge.i195 +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i": ; preds = %._crit_edge.i196 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !11932 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) to label %.noexc.i196 unwind label %611, !noalias !11881 -.noexc.i196: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" +.noexc.i197: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit47.i" %637 = load i64, ptr %465, align 8, !range !567, !noalias !11932, !noundef !4 - %.not.i.i.i.i.i.i197 = icmp eq i64 %637, 0 - br i1 %.not.i.i.i.i.i.i197, label %643, label %638 + %.not.i.i.i.i.i.i198 = icmp eq i64 %637, 0 + br i1 %.not.i.i.i.i.i.i198, label %643, label %638 -638: ; preds = %.noexc.i196 +638: ; preds = %.noexc.i197 %639 = load i64, ptr %466, align 8, !noalias !11932, !noundef !4 %640 = icmp eq i64 %639, 0 br i1 %640, label %643, label %641 @@ -57850,7 +57850,7 @@ switch.lookup583: ; preds = %select.unfold.i call void @__rust_dealloc(ptr noundef nonnull %642, i64 noundef %639, i64 noundef %637) #83, !noalias !11881 br label %643 -643: ; preds = %641, %638, %.noexc.i196 +643: ; preds = %641, %638, %.noexc.i197 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !11932 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !11943 @@ -57877,11 +57877,11 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: 650: ; preds = %625 call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !11923 invoke void @_ZN12citationberg10LocaleCode10parse_base17h9267f7607f7d2246E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) - to label %652 unwind label %.loopexit.i186, !noalias !11881 + to label %652 unwind label %.loopexit.i187, !noalias !11881 651: ; preds = %625 invoke void @_ZN12citationberg10LocaleCode8fallback17h83c19825268df75bE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) - to label %.thread166.i191 unwind label %.loopexit.i186, !noalias !11881 + to label %.thread166.i191 unwind label %.loopexit.i187, !noalias !11881 652: ; preds = %650 %653 = load i64, ptr %15, align 8, !range !568, !noalias !11923, !noundef !4 @@ -57903,7 +57903,7 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: %660 = select i1 %659, i64 %658, i64 1 switch i64 %660, label %661 [ i64 0, label %662 - i64 1, label %.thread.i.i206 + i64 1, label %.thread.i.i207 ] 661: ; preds = %656 @@ -57912,10 +57912,10 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: 662: ; preds = %656 %663 = load <2 x i8>, ptr %448, align 8, !alias.scope !11957, !noalias !11959 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6.sroa.0.i.i174) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6.sroa.0.i.i175) call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !11961 %664 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6a68132a218671f8E"(i64 noundef 2, i1 noundef zeroext false) - to label %.noexc51.i unwind label %.loopexit.i186, !noalias !11881 + to label %.noexc51.i unwind label %.loopexit.i187, !noalias !11881 .noexc51.i: ; preds = %662 %665 = extractvalue { i64, ptr } %664, 0 @@ -57924,8 +57924,8 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: call void @llvm.assume(i1 %667), !noalias !11881 store <2 x i8> %663, ptr %666, align 1, !noalias !11962 store i64 %665, ptr %11, align 8, !noalias !11961 - store ptr %666, ptr %.sroa.4.0..sroa_idx.i.i182, align 8, !noalias !11961 - store i64 2, ptr %.sroa.6.0..sroa_idx.i.i183, align 8, !noalias !11961 + store ptr %666, ptr %.sroa.4.0..sroa_idx.i.i183, align 8, !noalias !11961 + store i64 2, ptr %.sroa.6.0..sroa_idx.i.i184, align 8, !noalias !11961 call void @llvm.experimental.noalias.scope.decl(metadata !11963), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !11966), !noalias !11881 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !11968 @@ -57940,14 +57940,14 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread: 670: ; preds = %.noexc51.i %671 = load i64, ptr %9, align 8, !range !26, !noalias !11968, !noundef !4 - %trunc.i.i.i208 = trunc nuw i64 %671 to i1 - br i1 %trunc.i.i.i208, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 + %trunc.i.i.i209 = trunc nuw i64 %671 to i1 + br i1 %trunc.i.i.i209, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214, label %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210 -_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209: ; preds = %670 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, ptr noundef nonnull align 8 dereferenceable(16) %11, i64 16, i1 false), !alias.scope !11971, !noalias !11961 +_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210: ; preds = %670 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, ptr noundef nonnull align 8 dereferenceable(16) %11, i64 16, i1 false), !alias.scope !11971, !noalias !11961 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !11968 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !11961 - br label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210" + br label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211" 672: ; preds = %668 %673 = landingpad { ptr, i32 } @@ -57955,24 +57955,24 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11970 unreachable -_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213: ; preds = %670 +_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214: ; preds = %670 %674 = load i64, ptr %449, align 8, !noalias !11968 - %.sroa.614.24.copyload.i.i214 = load i64, ptr %.sroa.614.24..sroa_idx.i.i184, align 8, !noalias !11968 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.4.0..sroa_idx.i.i182, i64 16, i1 false), !noalias !11961 + %.sroa.614.24.copyload.i.i215 = load i64, ptr %.sroa.614.24..sroa_idx.i.i185, align 8, !noalias !11968 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.4.0..sroa_idx.i.i183, i64 16, i1 false), !noalias !11961 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !11968 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !11961 %675 = icmp eq i64 %665, -9223372036854775808 - br i1 %675, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210", label %676 + br i1 %675, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211", label %676 -676: ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213 +676: ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214 call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !11972 store i64 %665, ptr %10, align 8, !noalias !11976 - %.sroa.6.0..sroa_idx8.i.i215 = getelementptr inbounds nuw i8, ptr %10, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx8.i.i215, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, i64 16, i1 false), !noalias !11976 - %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i216 = getelementptr inbounds nuw i8, ptr %10, i64 24 - store i64 %674, ptr %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i216, align 8, !noalias !11976 - %.sroa.8.0..sroa_idx.i.i217 = getelementptr inbounds nuw i8, ptr %10, i64 32 - store i64 %.sroa.614.24.copyload.i.i214, ptr %.sroa.8.0..sroa_idx.i.i217, align 8, !noalias !11976 + %.sroa.6.0..sroa_idx8.i.i216 = getelementptr inbounds nuw i8, ptr %10, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx8.i.i216, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, i64 16, i1 false), !noalias !11976 + %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i217 = getelementptr inbounds nuw i8, ptr %10, i64 24 + store i64 %674, ptr %.sroa.6.sroa.6.0..sroa.6.0..sroa_idx8.sroa_idx.i.i217, align 8, !noalias !11976 + %.sroa.8.0..sroa_idx.i.i218 = getelementptr inbounds nuw i8, ptr %10, i64 32 + store i64 %.sroa.614.24.copyload.i.i215, ptr %.sroa.8.0..sroa_idx.i.i218, align 8, !noalias !11976 invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.43c633cc9d0c07b847282a0596e0d119.199, i64 noundef 43, ptr noundef nonnull align 1 %10, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.200, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.772) #80 to label %679 unwind label %677, !noalias !11977 @@ -57991,18 +57991,18 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11977 unreachable -"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210": ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 - %.sroa.6.sroa.6.0.i.i211 = phi i64 [ %674, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213 ], [ 2, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i174, i64 16, i1 false), !noalias !11960 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6.sroa.0.i.i174) - store i64 %.sroa.6.sroa.6.0.i.i211, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i185, align 8, !alias.scope !11954, !noalias !11960 +"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211": ; preds = %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i214, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i210 + %.sroa.6.sroa.6.0.i.i212 = phi i64 [ %674, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.i.i213 ], [ 2, %_ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318.exit.thread.i.i209 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.sroa.0.i.i175, i64 16, i1 false), !noalias !11960 + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6.sroa.0.i.i175) + store i64 %.sroa.6.sroa.6.0.i.i212, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i186, align 8, !alias.scope !11954, !noalias !11960 br label %682 -.thread.i.i206: ; preds = %656 +.thread.i.i207: ; preds = %656 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false), !noalias !11923 br label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i" -682: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i210", %661 +682: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h8a3eb06d61acf17aE.exit.i.i211", %661 %683 = icmp sgt i64 %657, -9223372036854775806 %684 = icmp eq i64 %657, -9223372036854775807 %685 = or i1 %683, %684 @@ -58011,28 +58011,28 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 686: ; preds = %682 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !11978 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14) - to label %.noexc52.i unwind label %.loopexit.i186, !noalias !11881 + to label %.noexc52.i unwind label %.loopexit.i187, !noalias !11881 .noexc52.i: ; preds = %686 %687 = load i64, ptr %450, align 8, !range !567, !noalias !11978, !noundef !4 %.not.i.i.i.i.i50.i = icmp eq i64 %687, 0 - br i1 %.not.i.i.i.i.i50.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", label %688 + br i1 %.not.i.i.i.i.i50.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", label %688 688: ; preds = %.noexc52.i %689 = load i64, ptr %451, align 8, !noalias !11978, !noundef !4 %690 = icmp eq i64 %689, 0 - br i1 %690, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", label %691 + br i1 %690, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", label %691 691: ; preds = %688 %692 = load ptr, ptr %8, align 8, !noalias !11978, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %692, i64 noundef %689, i64 noundef %687) #83, !noalias !11987 - br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212" + br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212": ; preds = %691, %688, %.noexc52.i +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213": ; preds = %691, %688, %.noexc52.i call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !11978 br label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i" -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i212", %682, %.thread.i.i206 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h60e740d7fa3bd4a4E.exit.i": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h91029dacccfeb0acE.exit.i.i213", %682, %.thread.i.i207 call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !11923 br label %693 @@ -58041,25 +58041,25 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. call void @llvm.experimental.noalias.scope.decl(metadata !11988), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !11991), !noalias !11881 %694 = icmp eq i64 %631, 0 - br i1 %694, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", label %.lr.ph.i.i.i192 + br i1 %694, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", label %.lr.ph.i.i.i193 -.thread166.i191: ; preds = %651 +.thread166.i192: ; preds = %651 %695 = icmp eq i64 %631, 0 - br i1 %695, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i", label %.lr.ph.i.i.i192 + br i1 %695, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i", label %.lr.ph.i.i.i193 -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i": ; preds = %.thread166.i191 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i": ; preds = %.thread166.i192 %696 = load i64, ptr %16, align 8, !range !567, !noalias !11923, !noundef !4 %.not36106168.i = icmp eq i64 %696, -9223372036854775808 br i1 %.not36106168.i, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i", label %770 -.lr.ph.i.i.i192: ; preds = %.thread166.i191, %693 +.lr.ph.i.i.i193: ; preds = %.thread166.i192, %693 %.idx.i167.pn.i = mul nsw i64 %631, 200 %697 = getelementptr inbounds i8, ptr %629, i64 %.idx.i167.pn.i %698 = load i64, ptr %453, align 8, !alias.scope !11991, !noalias !11993 %699 = load ptr, ptr %452, align 8, !alias.scope !11991, !noalias !11993, !nonnull !4 - br label %.lr.ph.split.split.i.i.i193 + br label %.lr.ph.split.split.i.i.i194 -.lr.ph.split.split.i.i.i193: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", %.lr.ph.i.i.i192 +.lr.ph.split.split.i.i.i194: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", %.lr.ph.i.i.i193 %700 = phi ptr [ %701, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" ], [ %629, %.lr.ph.i.i.i192 ] %701 = getelementptr inbounds nuw i8, ptr %700, i64 200 %702 = getelementptr inbounds nuw i8, ptr %700, i64 24 @@ -58067,7 +58067,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %704 = icmp eq i64 %703, -9223372036854775808 br i1 %704, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i", label %705 -705: ; preds = %.lr.ph.split.split.i.i.i193 +705: ; preds = %.lr.ph.split.split.i.i.i194 call void @llvm.experimental.noalias.scope.decl(metadata !11998), !noalias !11881 %706 = getelementptr inbounds nuw i8, ptr %700, i64 40 %707 = load i64, ptr %706, align 8, !alias.scope !12001, !noalias !12002, !noundef !4 @@ -58077,52 +58077,52 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 708: ; preds = %705 %709 = getelementptr inbounds nuw i8, ptr %700, i64 32 %710 = load ptr, ptr %709, align 8, !alias.scope !12001, !noalias !12002, !nonnull !4, !noundef !4 - %bcmp.i.i.i.i.i.i204 = call i32 @bcmp(ptr nonnull readonly align 1 %710, ptr nonnull readonly align 1 %699, i64 %698), !alias.scope !12004, !noalias !12008 - %711 = icmp eq i32 %bcmp.i.i.i.i.i.i204, 0 + %bcmp.i.i.i.i.i.i205 = call i32 @bcmp(ptr nonnull readonly align 1 %710, ptr nonnull readonly align 1 %699, i64 %698), !alias.scope !12004, !noalias !12008 + %711 = icmp eq i32 %bcmp.i.i.i.i.i.i205, 0 br i1 %711, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i", label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" -"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i": ; preds = %708, %705, %.lr.ph.split.split.i.i.i193 +"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i": ; preds = %708, %705, %.lr.ph.split.split.i.i.i194 %712 = icmp eq ptr %701, %697 - br i1 %712, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i", label %.lr.ph.split.split.i.i.i193 + br i1 %712, label %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i", label %.lr.ph.split.split.i.i.i194 "_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i": ; preds = %708 %713 = getelementptr i8, ptr %700, i64 192 %.val.i.i = load i8, ptr %713, align 8, !range !569, !alias.scope !11988, !noalias !12009, !noundef !4 %714 = icmp eq i8 %.val.i.i, 3 %715 = select i1 %714, i8 0, i8 %.val.i.i - %.pre.i205 = load i64, ptr %16, align 8, !range !567, !alias.scope !12010, !noalias !11923 + %.pre.i206 = load i64, ptr %16, align 8, !range !567, !alias.scope !12010, !noalias !11923 br label %716 716: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" - %717 = phi i64 [ %.pre.i205, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] + %717 = phi i64 [ %.pre.i206, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %726, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] %.1.in.i = phi i8 [ %715, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.i" ], [ %744, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.i" ], [ %769, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.i" ], [ %779, %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit80.i" ] call void @llvm.experimental.noalias.scope.decl(metadata !12010), !noalias !11881 %718 = icmp eq i64 %717, -9223372036854775808 - br i1 %718, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203", label %719 + br i1 %718, label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204", label %719 719: ; preds = %716 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !12013 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16) - to label %.noexc54.i unwind label %.loopexit.split-lp.i199, !noalias !11881 + to label %.noexc54.i unwind label %.loopexit.split-lp.i200, !noalias !11881 .noexc54.i: ; preds = %719 %720 = load i64, ptr %459, align 8, !range !567, !noalias !12013, !noundef !4 - %.not.i.i.i.i.i.i.i201 = icmp eq i64 %720, 0 - br i1 %.not.i.i.i.i.i.i.i201, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", label %721 + %.not.i.i.i.i.i.i.i202 = icmp eq i64 %720, 0 + br i1 %.not.i.i.i.i.i.i.i202, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", label %721 721: ; preds = %.noexc54.i %722 = load i64, ptr %460, align 8, !noalias !12013, !noundef !4 %723 = icmp eq i64 %722, 0 - br i1 %723, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", label %724 + br i1 %723, label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", label %724 724: ; preds = %721 %725 = load ptr, ptr %7, align 8, !noalias !12013, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %725, i64 noundef %722, i64 noundef %720) #83, !noalias !11881 - br label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202" + br label %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203" -"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202": ; preds = %724, %721, %.noexc54.i +"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203": ; preds = %724, %721, %.noexc54.i call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !12013 - br label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203" + br label %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204" "_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i": ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hdc44bf6aac59019aE.exit.thread.i.i.i" %726 = load i64, ptr %16, align 8, !range !567, !noalias !11923, !noundef !4 @@ -58132,7 +58132,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. .lr.ph.i.i56.i: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit.thread.i" call void @llvm.experimental.noalias.scope.decl(metadata !12024), !noalias !11881 call void @llvm.experimental.noalias.scope.decl(metadata !12027), !noalias !11881 - %727 = load i64, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i185, align 8, !alias.scope !12027, !noalias !12029 + %727 = load i64, ptr %.sroa.02.sroa.4.0..sroa_idx.i.i186, align 8, !alias.scope !12027, !noalias !12029 %728 = load ptr, ptr %454, align 8, !alias.scope !12027, !noalias !12029, !nonnull !4 br label %.lr.ph.split.split.i.i57.i @@ -58235,7 +58235,7 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. 770: ; preds = %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i" call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !12076 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16) - to label %.noexc83.i unwind label %.loopexit.i186, !noalias !11881 + to label %.noexc83.i unwind label %.loopexit.i187, !noalias !11881 .noexc83.i: ; preds = %770 %771 = load i64, ptr %457, align 8, !range !567, !noalias !12076, !noundef !4 @@ -58263,12 +58263,12 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. %779 = select i1 %778, i8 0, i8 %.val.i79.i br label %716 -"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i202", %716 +"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i.i203", %716 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !11923 %780 = invoke { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17he74698a1c7ced74aE.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) to label %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i" unwind label %635, !noalias !11881 -"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i": ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i203" +"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit86.i": ; preds = %"_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit.i204" call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !11923 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !12090 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) @@ -58310,12 +58310,12 @@ _ZN5alloc6string6String9from_utf817hb627e4dac46cdebcE.llvm.16978709814855407318. "_ZN4core3ptr73drop_in_place$LT$core..option..Option$LT$citationberg..LocaleCode$GT$$GT$17ha69f0f05114b0559E.llvm.16978709814855407318.exit84.i": ; preds = %"_ZN4core3ptr45drop_in_place$LT$citationberg..LocaleCode$GT$17h4a72a82d759df18dE.exit.i82.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit74.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.i", %"_ZN9hayagriva3csl12StyleContext13lookup_locale28_$u7b$$u7b$closure$u7d$$u7d$17h1169a43477c63d5eE.exit64.thread.thread.thread.i" call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !11923 - %794 = load i64, ptr %.sroa.0.sroa.3.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %795 = load i64, ptr %.sroa.0.sroa.2.0..sroa_idx.i179, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 - %.not.not.i.i.i194 = icmp eq i64 %794, %795 - br i1 %.not.not.i.i.i194, label %._crit_edge.i195, label %625 + %794 = load i64, ptr %.sroa.0.sroa.3.0..sroa_idx.i181, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 + %795 = load i64, ptr %.sroa.0.sroa.2.0..sroa_idx.i180, align 8, !alias.scope !11924, !noalias !11929, !noundef !4 + %.not.not.i.i.i195 = icmp eq i64 %794, %795 + br i1 %.not.not.i.i.i195, label %._crit_edge.i196, label %625 -796: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i190", %.body.i188, %610 +796: ; preds = %"_ZN4core3ptr150drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..array..iter..IntoIter$LT$$RF$$u5b$citationberg..Locale$u5d$$C$2_usize$GT$$GT$$GT$17h74789c03211f5be3E.exit.i191", %.body.i189, %610 %797 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #82, !noalias !11881 @@ -58328,16 +58328,16 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br i1 %798, label %599, label %799 799: ; preds = %_ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit.thread, %_ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit, %605 - %.sroa.gep218 = getelementptr inbounds nuw i8, ptr %515, i64 4 - %.0.i153.sroa.sel = select i1 %trunc.i, ptr %420, ptr %.sroa.gep218 - %800 = load i8, ptr %.0.i153.sroa.sel, align 4, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 + %.sroa.gep219 = getelementptr inbounds nuw i8, ptr %515, i64 4 + %.0.i154.sroa.sel = select i1 %trunc.i, ptr %420, ptr %.sroa.gep219 + %800 = load i8, ptr %.0.i154.sroa.sel, align 4, !range !23, !alias.scope !11881, !noalias !11885, !noundef !4 %trunc134.i = trunc nuw i8 %800 to i1 br i1 %trunc134.i, label %801, label %.thread168.i 801: ; preds = %799 - %.sroa.gep220 = getelementptr inbounds nuw i8, ptr %515, i64 5 - %.0.i153.sroa.sel221 = select i1 %trunc.i, ptr %.sroa.gep219, ptr %.sroa.gep220 - %802 = load i8, ptr %.0.i153.sroa.sel221, align 1, !alias.scope !11881, !noalias !11885 + %.sroa.gep221 = getelementptr inbounds nuw i8, ptr %515, i64 5 + %.0.i154.sroa.sel222 = select i1 %trunc.i, ptr %.sroa.gep220, ptr %.sroa.gep221 + %802 = load i8, ptr %.0.i154.sroa.sel222, align 1, !alias.scope !11881, !noalias !11885 %803 = icmp ugt i8 %802, 11 br i1 %803, label %.thread168.i, label %804 @@ -58402,7 +58402,7 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.43c633cc9d0c07b847282a0596e0d119.199, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.198, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.43c633cc9d0c07b847282a0596e0d119.852) #80 to label %.noexc.i159 unwind label %.loopexit.split-lp, !noalias !11881 -.noexc.i159: ; preds = %815 +.noexc.i160: ; preds = %815 unreachable "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143.i": ; preds = %814 @@ -58583,7 +58583,7 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br label %857 857: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit140.i" - %858 = load i32, ptr %.0.i153, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 + %858 = load i32, ptr %.0.i154, align 4, !alias.scope !11881, !noalias !11885, !noundef !4 %859 = icmp slt i32 %858, 1000 br i1 %859, label %.sink.split.i, label %594 @@ -58594,8 +58594,8 @@ _ZN9hayagriva3csl12StyleContext13lookup_locale17h59c29cbcc5e28672E.exit: ; preds br label %594 .thread166.i: ; preds = %861, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit141.i", %844, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit142.i", %837, %"_ZN4core3ptr48drop_in_place$LT$citationberg..OrdinalLookup$GT$17hbbfb5ebfd8ac4735E.exit.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit145.i", %594 - %.not.i158 = icmp eq i64 %.sroa.020.0.i, 0 - br i1 %.not.i158, label %863, label %862 + %.not.i159 = icmp eq i64 %.sroa.020.0.i, 0 + br i1 %.not.i159, label %863, label %862 861: ; preds = %594 call fastcc void @_ZN9hayagriva3csl9rendering29render_year_suffix_implicitly17h9f91b50bfb3905b2E(ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !11881 @@ -58619,14 +58619,14 @@ _ZN9hayagriva3csl9rendering16render_date_part17h7920b33967244e96E.exit: ; preds call void @llvm.lifetime.end.p0(ptr nonnull %22) %864 = call noundef i64 @_ZN9hayagriva3csl14WritingContext3len17h79b1b0473df8f2bbE(ptr noundef nonnull align 8 %352) %865 = icmp eq i64 %502, %864 - %866 = icmp eq ptr %.us-phi314, %405 + %866 = icmp eq ptr %.us-phi315, %405 br i1 %866, label %.outer._crit_edge, label %.lr.ph -switch.lookup591: ; preds = %95 +switch.lookup592: ; preds = %95 %867 = getelementptr inbounds nuw i8, ptr %0, i64 102 %868 = load i8, ptr %867, align 2, !range !569, !noundef !4 - %switch.masked595 = icmp ne i8 %868, 0 - %switch.masked599 = icmp samesign ugt i8 %868, 1 + %switch.masked596 = icmp ne i8 %868, 0 + %switch.masked600 = icmp samesign ugt i8 %868, 1 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread" 869: ; preds = %95 @@ -58645,8 +58645,8 @@ switch.lookup591: ; preds = %95 877: ; preds = %875 %878 = getelementptr inbounds nuw i8, ptr %876, i64 88 %879 = getelementptr i8, ptr %876, i64 73 - %.val.i161 = load i8, ptr %879, align 1, !range !566, !noalias !12145, !noundef !4 - %880 = icmp eq i8 %.val.i161, 2 + %.val.i162 = load i8, ptr %879, align 1, !range !566, !noalias !12145, !noundef !4 + %880 = icmp eq i8 %.val.i162, 2 br i1 %880, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader", label %875 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader": ; preds = %875, %877 @@ -58654,14 +58654,14 @@ switch.lookup591: ; preds = %95 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader", %882 %881 = phi ptr [ %883, %882 ], [ %871, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit.preheader" ] - %.not.not.not.i163.not.not.not.not.not = icmp ne ptr %881, %874 - br i1 %.not.not.not.i163.not.not.not.not.not, label %882, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" + %.not.not.not.i164.not.not.not.not.not = icmp ne ptr %881, %874 + br i1 %.not.not.not.i164.not.not.not.not.not, label %882, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" 882: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit" %883 = getelementptr inbounds nuw i8, ptr %881, i64 88 %884 = getelementptr i8, ptr %881, i64 73 - %.val.i164 = load i8, ptr %884, align 1, !range !566, !noalias !12148, !noundef !4 - %885 = icmp eq i8 %.val.i164, 1 + %.val.i165 = load i8, ptr %884, align 1, !range !566, !noalias !12148, !noundef !4 + %885 = icmp eq i8 %.val.i165, 1 br i1 %885, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1756e07fc92f487aE.exit", %882 @@ -58669,34 +58669,34 @@ switch.lookup591: ; preds = %95 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader", %887 %886 = phi ptr [ %888, %887 ], [ %871, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit.preheader" ] - %.not.not.not.i166.not.not.not.not.not.not = icmp ne ptr %886, %874 - br i1 %.not.not.not.i166.not.not.not.not.not.not, label %887, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" + %.not.not.not.i167.not.not.not.not.not.not = icmp ne ptr %886, %874 + br i1 %.not.not.not.i167.not.not.not.not.not.not, label %887, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" 887: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" %888 = getelementptr inbounds nuw i8, ptr %886, i64 88 %889 = getelementptr i8, ptr %886, i64 73 - %.val.i167 = load i8, ptr %889, align 1, !range !566, !noalias !12151, !noundef !4 - %890 = icmp eq i8 %.val.i167, 0 + %.val.i168 = load i8, ptr %889, align 1, !range !566, !noalias !12151, !noundef !4 + %890 = icmp eq i8 %.val.i168, 0 br i1 %890, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit": ; preds = %887, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h12a0ff62b3335000E.exit" br i1 %.not.not.not.i.not, label %891, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread" 891: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" - br i1 %.not.not.not.i163.not.not.not.not.not, label %905, label %904 + br i1 %.not.not.not.i164.not.not.not.not.not, label %905, label %904 -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread": ; preds = %switch.lookup591, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" - %.0117264 = phi i1 [ %.not.not.not.i163.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked595, %switch.lookup591 ] - %.0120262 = phi i1 [ %.not.not.not.i166.not.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked599, %switch.lookup591 ] +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit.thread": ; preds = %switch.lookup592, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" + %.0117265 = phi i1 [ %.not.not.not.i164.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked596, %switch.lookup591 ] + %.0120263 = phi i1 [ %.not.not.not.i167.not.not.not.not.not.not, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h1ead2a024765bf27E.exit" ], [ %switch.masked600, %switch.lookup591 ] call void @llvm.lifetime.start.p0(ptr nonnull %72) call void @llvm.lifetime.start.p0(ptr nonnull %71) %892 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12154, !noundef !4 - %trunc.i168 = trunc nuw i32 %892 to i1 + %trunc.i169 = trunc nuw i32 %892 to i1 %893 = getelementptr inbounds nuw i8, ptr %74, i64 8 %894 = load ptr, ptr %893, align 8, !alias.scope !12154, !nonnull !4, !align !11880 %895 = getelementptr inbounds nuw i8, ptr %74, i64 4 - %.0.i169 = select i1 %trunc.i168, ptr %895, ptr %894 - store ptr %.0.i169, ptr %71, align 8 + %.0.i170 = select i1 %trunc.i169, ptr %895, ptr %894 + store ptr %.0.i170, ptr %71, align 8 %896 = getelementptr inbounds nuw i8, ptr %71, i64 8 store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h499aad881c3f5dc5E", ptr %896, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %70) @@ -58736,29 +58736,29 @@ switch.lookup591: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %70) call void @llvm.lifetime.end.p0(ptr nonnull %71) call fastcc void @_ZN9hayagriva3csl9rendering29render_year_suffix_implicitly17h9f91b50bfb3905b2E(ptr noalias noundef align 8 dereferenceable(664) %1) - br i1 %.0117264, label %905, label %904 + br i1 %.0117265, label %905, label %904 904: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144", %891 - %.0120261265 = phi i1 [ %.0120262, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i166.not.not.not.not.not.not, %891 ] - br i1 %.0120261265, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + %.0120262266 = phi i1 [ %.0120263, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i167.not.not.not.not.not.not, %891 ] + br i1 %.0120262266, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" 905: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144", %891 - %.0120261266 = phi i1 [ %.0120262, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i166.not.not.not.not.not.not, %891 ] + %.0120262267 = phi i1 [ %.0120263, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit144" ], [ %.not.not.not.i167.not.not.not.not.not.not, %891 ] call void @llvm.lifetime.start.p0(ptr nonnull %69) call void @llvm.lifetime.start.p0(ptr nonnull %68) call void @llvm.lifetime.start.p0(ptr nonnull %67) %906 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12157, !noundef !4 - %trunc.i170 = trunc nuw i32 %906 to i1 + %trunc.i171 = trunc nuw i32 %906 to i1 %907 = getelementptr inbounds nuw i8, ptr %74, i64 8 %908 = load ptr, ptr %907, align 8, !alias.scope !12157, !nonnull !4, !align !11880 - %.sroa.gep231 = getelementptr inbounds nuw i8, ptr %908, i64 4 - %.0.i171.sroa.sel232 = select i1 %trunc.i170, ptr %907, ptr %.sroa.gep231 - %909 = load i8, ptr %.0.i171.sroa.sel232, align 4, !range !23, !noundef !4 + %.sroa.gep232 = getelementptr inbounds nuw i8, ptr %908, i64 4 + %.0.i172.sroa.sel233 = select i1 %trunc.i171, ptr %907, ptr %.sroa.gep232 + %909 = load i8, ptr %.0.i172.sroa.sel233, align 4, !range !23, !noundef !4 %trunc = trunc nuw i8 %909 to i1 - %.sroa.gep228 = getelementptr inbounds nuw i8, ptr %74, i64 9 - %.sroa.gep229 = getelementptr inbounds nuw i8, ptr %908, i64 5 - %.0.i171.sroa.sel = select i1 %trunc.i170, ptr %.sroa.gep228, ptr %.sroa.gep229 - %910 = load i8, ptr %.0.i171.sroa.sel, align 1 + %.sroa.gep229 = getelementptr inbounds nuw i8, ptr %74, i64 9 + %.sroa.gep230 = getelementptr inbounds nuw i8, ptr %908, i64 5 + %.0.i172.sroa.sel = select i1 %trunc.i171, ptr %.sroa.gep229, ptr %.sroa.gep230 + %910 = load i8, ptr %.0.i172.sroa.sel, align 1 %911 = zext i8 %910 to i32 %912 = add nuw nsw i32 %911, 1 %spec.select140 = select i1 %trunc, i32 %912, i32 0 @@ -58803,25 +58803,25 @@ switch.lookup591: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %66) call void @llvm.lifetime.end.p0(ptr nonnull %67) call void @llvm.lifetime.end.p0(ptr nonnull %68) - br i1 %.0120261266, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + br i1 %.0120262267, label %921, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" 921: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h530d178225a0875aE.exit143", %904 call void @llvm.lifetime.start.p0(ptr nonnull %65) call void @llvm.lifetime.start.p0(ptr nonnull %64) call void @llvm.lifetime.start.p0(ptr nonnull %63) %922 = load i32, ptr %74, align 8, !range !5765, !alias.scope !12160, !noundef !4 - %trunc.i172 = trunc nuw i32 %922 to i1 + %trunc.i173 = trunc nuw i32 %922 to i1 %923 = getelementptr inbounds nuw i8, ptr %74, i64 8 %924 = load ptr, ptr %923, align 8, !alias.scope !12160, !nonnull !4, !align !11880 - %.sroa.gep235 = getelementptr inbounds nuw i8, ptr %74, i64 10 - %.sroa.gep236 = getelementptr inbounds nuw i8, ptr %924, i64 6 - %.0.i173.sroa.sel237 = select i1 %trunc.i172, ptr %.sroa.gep235, ptr %.sroa.gep236 - %925 = load i8, ptr %.0.i173.sroa.sel237, align 2, !range !23, !noundef !4 + %.sroa.gep236 = getelementptr inbounds nuw i8, ptr %74, i64 10 + %.sroa.gep237 = getelementptr inbounds nuw i8, ptr %924, i64 6 + %.0.i174.sroa.sel238 = select i1 %trunc.i173, ptr %.sroa.gep236, ptr %.sroa.gep237 + %925 = load i8, ptr %.0.i174.sroa.sel238, align 2, !range !23, !noundef !4 %trunc131 = trunc nuw i8 %925 to i1 - %.sroa.gep233 = getelementptr inbounds nuw i8, ptr %74, i64 11 - %.sroa.gep234 = getelementptr inbounds nuw i8, ptr %924, i64 7 - %.0.i173.sroa.sel = select i1 %trunc.i172, ptr %.sroa.gep233, ptr %.sroa.gep234 - %926 = load i8, ptr %.0.i173.sroa.sel, align 1 + %.sroa.gep234 = getelementptr inbounds nuw i8, ptr %74, i64 11 + %.sroa.gep235 = getelementptr inbounds nuw i8, ptr %924, i64 7 + %.0.i174.sroa.sel = select i1 %trunc.i173, ptr %.sroa.gep234, ptr %.sroa.gep235 + %926 = load i8, ptr %.0.i174.sroa.sel, align 1 %927 = zext i8 %926 to i32 %928 = add nuw nsw i32 %927, 1 %spec.select142 = select i1 %trunc131, i32 %928, i32 0 @@ -58866,7 +58866,7 @@ switch.lookup591: ; preds = %95 call void @llvm.lifetime.end.p0(ptr nonnull %62) call void @llvm.lifetime.end.p0(ptr nonnull %63) call void @llvm.lifetime.end.p0(ptr nonnull %64) - br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread245.sink.split" + br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit.thread246.sink.split" } ; Function Attrs: inlinehint nonlazybind uwtable @@ -82334,7 +82334,7 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1292, %.not38.i = icmp eq i8 %1305, 3 %.sroa.5.0.i = select i1 %.not38.i, i8 0, i8 %1305 %.not40.i = icmp eq i8 %1309, 4 - %.sroa.536.0.insert.shift.i = select i1 %.not40.i, i40 0, i40 %.sroa.7140.0.insert.shift + %.sroa.6.0.i = select i1 %.not40.i, i40 0, i40 %.sroa.7140.0.insert.shift %.sroa.435.0.insert.ext.i = zext nneg i8 %.sroa.5.0.i to i40 %.sroa.435.0.insert.shift.i = shl nuw nsw i40 %.sroa.435.0.insert.ext.i, 24 %.sroa.435.0.insert.insert.i = or disjoint i40 %.sroa.536.0.insert.shift.i, %.sroa.435.0.insert.shift.i diff --git a/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll b/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll index 8aa9a935e56..a4d47f6c63c 100644 --- a/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll +++ b/bench/typst-rs/optimized/4p46tkw2iv8zjgza.ll @@ -275,90 +275,90 @@ define internal fastcc void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension %or.cond7 = icmp eq i48 %5, 1 br i1 %or.cond7, label %15, label %6 -6: ; preds = %3 +8: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !52) - %7 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %8 = load ptr, ptr %7, align 8, !alias.scope !52, !noundef !7 - %9 = icmp eq ptr %8, null - br i1 %9, label %41, label %10 + %9 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %10 = load ptr, ptr %9, align 8, !alias.scope !52, !noundef !7 + %11 = icmp eq ptr %10, null + br i1 %11, label %43, label %12 -10: ; preds = %6 +12: ; preds = %8 call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !55 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17ha4fed7327d8484b9E.llvm.17057414408856058071(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull inttoptr (i64 154618822659 to ptr)), !noalias !55 - %11 = load i8, ptr %4, align 8, !range !15, !alias.scope !62, !noalias !55, !noundef !7 - %12 = icmp eq i8 %11, 3 - br i1 %12, label %13, label %17 + %13 = load i8, ptr %4, align 8, !range !15, !alias.scope !62, !noalias !55, !noundef !7 + %14 = icmp eq i8 %13, 3 + br i1 %14, label %15, label %19 -13: ; preds = %10 - %14 = getelementptr inbounds nuw i8, ptr %4, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17he959ce38eed87d40E.llvm.17057414408856058071"(ptr noalias noundef nonnull align 8 dereferenceable(8) %14), !noalias !55 - br label %17 +15: ; preds = %12 + %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17he959ce38eed87d40E.llvm.17057414408856058071"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16), !noalias !55 + br label %19 -15: ; preds = %3 +17: ; preds = %3 store i8 2, ptr %0, align 8 - br label %16 + br label %18 -16: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163", %41, %15 +18: ; preds = %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163", %43, %17 ret void -17: ; preds = %10, %13 +19: ; preds = %12, %15 call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !55 - %18 = getelementptr inbounds nuw i8, ptr %8, i64 24 - %19 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %20 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.promoted.i.i = load i64, ptr %18, align 8, !alias.scope !65, !noalias !72 + %20 = getelementptr inbounds nuw i8, ptr %10, i64 24 + %21 = getelementptr inbounds nuw i8, ptr %10, i64 16 + %22 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.promoted.i.i = load i64, ptr %20, align 8, !alias.scope !65, !noalias !72 call void @llvm.experimental.noalias.scope.decl(metadata !82) call void @llvm.experimental.noalias.scope.decl(metadata !83) - %21 = call i64 @llvm.uadd.sat.i64(i64 %.promoted.i.i, i64 range(i64 1, 0) 1) - %22 = load i64, ptr %8, align 8, !alias.scope !84, !noalias !87, !noundef !7 - %23 = icmp ugt i64 %21, %22 - %.pre19.i.i = load i64, ptr %19, align 8, !alias.scope !84, !noalias !87 - br i1 %23, label %24, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - -24: ; preds = %17 - %25 = sub i64 %21, %.pre19.i.i - %26 = sub i64 %22, %.pre19.i.i - %27 = icmp ugt i64 %25, %26 - br i1 %27, label %28, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + %23 = call i64 @llvm.uadd.sat.i64(i64 %.promoted.i.i, i64 range(i64 1, 0) 1) + %24 = load i64, ptr %10, align 8, !alias.scope !84, !noalias !87, !noundef !7 + %25 = icmp ugt i64 %23, %24 + %.pre19.i.i = load i64, ptr %21, align 8, !alias.scope !84, !noalias !87 + br i1 %25, label %26, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" -28: ; preds = %24 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i, i64 noundef %25), !noalias !87 - %.pre.i.i = load i64, ptr %19, align 8, !alias.scope !84, !noalias !87 +26: ; preds = %19 + %27 = sub i64 %23, %.pre19.i.i + %28 = sub i64 %24, %.pre19.i.i + %29 = icmp ugt i64 %27, %28 + br i1 %29, label %30, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + +30: ; preds = %26 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i, i64 noundef %27), !noalias !87 + %.pre.i.i = load i64, ptr %21, align 8, !alias.scope !84, !noalias !87 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i": ; preds = %28, %24, %17 - %29 = phi i64 [ %.pre.i.i, %28 ], [ %.pre19.i.i, %24 ], [ %.pre19.i.i, %17 ] - %30 = icmp ugt i64 %.promoted.i.i, %29 - br i1 %30, label %.lr.ph.preheader.i.i.i.i.us.i.i, label %34 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i": ; preds = %30, %26, %19 + %31 = phi i64 [ %.pre.i.i, %28 ], [ %.pre19.i.i, %24 ], [ %.pre19.i.i, %17 ] + %32 = icmp ugt i64 %.promoted.i.i, %31 + br i1 %32, label %.lr.ph.preheader.i.i.i.i.us.i.i, label %36 .lr.ph.preheader.i.i.i.i.us.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - %31 = sub nuw i64 %.promoted.i.i, %29 - %32 = load ptr, ptr %20, align 8, !alias.scope !89, !noalias !87, !nonnull !7, !noundef !7 - %33 = getelementptr inbounds i8, ptr %32, i64 %29 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %33, i8 0, i64 %31, i1 false), !alias.scope !92, !noalias !87 - store i64 %.promoted.i.i, ptr %19, align 8, !alias.scope !84, !noalias !87 - br label %34 + %33 = sub nuw i64 %.promoted.i.i, %31 + %34 = load ptr, ptr %22, align 8, !alias.scope !89, !noalias !87, !nonnull !7, !noundef !7 + %35 = getelementptr inbounds i8, ptr %34, i64 %31 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %35, i8 0, i64 %33, i1 false), !alias.scope !92, !noalias !87 + store i64 %.promoted.i.i, ptr %21, align 8, !alias.scope !84, !noalias !87 + br label %36 + +36: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" + %37 = load ptr, ptr %22, align 8, !alias.scope !95, !noalias !96, !nonnull !7, !noundef !7 + %38 = getelementptr inbounds i8, ptr %37, i64 %.promoted.i.i + store i8 33, ptr %38, align 1, !noalias !97 + %39 = add i64 %.promoted.i.i, 1 + %40 = load i64, ptr %21, align 8, !alias.scope !95, !noalias !96, !noundef !7 + %41 = icmp ugt i64 %39, %40 + br i1 %41, label %42, label %42 -34: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i" - %35 = load ptr, ptr %20, align 8, !alias.scope !95, !noalias !96, !nonnull !7, !noundef !7 - %36 = getelementptr inbounds i8, ptr %35, i64 %.promoted.i.i - store i8 33, ptr %36, align 1, !noalias !97 - %37 = add i64 %.promoted.i.i, 1 - %38 = load i64, ptr %19, align 8, !alias.scope !95, !noalias !96, !noundef !7 - %39 = icmp ugt i64 %37, %38 - br i1 %39, label %40, label %42 - -40: ; preds = %34 - store i64 %37, ptr %19, align 8, !alias.scope !95, !noalias !96 +42: ; preds = %36 + store i64 %39, ptr %21, align 8, !alias.scope !95, !noalias !96 br label %42 -41: ; preds = %6 +43: ; preds = %8 store i8 1, ptr %0, align 8 %.sroa.4185.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr inttoptr (i64 154618822659 to ptr), ptr %.sroa.4185.0..sroa_idx, align 8 - br label %16 + br label %18 -42: ; preds = %40, %34 +53: ; preds = %40, %34 %.pre19.i.i.i180 = phi i64 [ %37, %40 ], [ %38, %34 ] store i64 %37, ptr %18, align 8, !alias.scope !65, !noalias !72 %trunc = trunc i48 %2 to i1 @@ -382,73 +382,73 @@ define internal fastcc void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i": ; preds = %51, %47, %43 - %52 = phi i64 [ %.pre.i.i.i, %51 ], [ %.pre19.i.i.i180, %47 ], [ %.pre19.i.i.i180, %43 ] - %53 = icmp ugt i64 %37, %52 - br i1 %53, label %.lr.ph.preheader.i.i.i.i.us.i.i.i, label %57 + %54 = phi i64 [ %.pre.i.i.i, %51 ], [ %.pre19.i.i.i180, %47 ], [ %.pre19.i.i.i180, %43 ] + %55 = icmp ugt i64 %39, %54 + br i1 %55, label %.lr.ph.preheader.i.i.i.i.us.i.i.i, label %59 .lr.ph.preheader.i.i.i.i.us.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" - %54 = sub nuw i64 %37, %52 - %55 = load ptr, ptr %20, align 8, !alias.scope !120, !noalias !107, !nonnull !7, !noundef !7 - %56 = getelementptr inbounds i8, ptr %55, i64 %52 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %56, i8 0, i64 %54, i1 false), !alias.scope !123, !noalias !107 - store i64 %37, ptr %19, align 8, !alias.scope !98, !noalias !107 - br label %57 + %56 = sub nuw i64 %39, %54 + %57 = load ptr, ptr %22, align 8, !alias.scope !120, !noalias !107, !nonnull !7, !noundef !7 + %58 = getelementptr inbounds i8, ptr %57, i64 %54 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %58, i8 0, i64 %56, i1 false), !alias.scope !123, !noalias !107 + store i64 %39, ptr %21, align 8, !alias.scope !98, !noalias !107 + br label %59 -57: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" - %58 = load ptr, ptr %20, align 8, !alias.scope !126, !noalias !127, !nonnull !7, !noundef !7 - %59 = getelementptr inbounds i8, ptr %58, i64 %37 - store i8 -7, ptr %59, align 1, !noalias !128 - %.sroa.11.8..sroa_idx249 = getelementptr inbounds nuw i8, ptr %59, i64 1 +59: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i" + %60 = load ptr, ptr %22, align 8, !alias.scope !126, !noalias !127, !nonnull !7, !noundef !7 + %61 = getelementptr inbounds i8, ptr %60, i64 %39 + store i8 -7, ptr %61, align 1, !noalias !128 + %.sroa.11.8..sroa_idx249 = getelementptr inbounds nuw i8, ptr %61, i64 1 store i8 4, ptr %.sroa.11.8..sroa_idx249, align 1, !noalias !128 - %.sroa.12.8..sroa_idx251 = getelementptr inbounds nuw i8, ptr %59, i64 2 + %.sroa.12.8..sroa_idx251 = getelementptr inbounds nuw i8, ptr %61, i64 2 store i8 %.1.extract.trunc, ptr %.sroa.12.8..sroa_idx251, align 1, !noalias !128 - %.sroa.13.8..sroa_idx253 = getelementptr inbounds nuw i8, ptr %59, i64 3 + %.sroa.13.8..sroa_idx253 = getelementptr inbounds nuw i8, ptr %61, i64 3 store i16 %.4.extract.trunc, ptr %.sroa.13.8..sroa_idx253, align 1, !noalias !128 - %.sroa.14.8..sroa_idx255 = getelementptr inbounds nuw i8, ptr %59, i64 5 + %.sroa.14.8..sroa_idx255 = getelementptr inbounds nuw i8, ptr %61, i64 5 store i8 %.sroa.3.sroa.0.0.extract.trunc, ptr %.sroa.14.8..sroa_idx255, align 1, !noalias !128 - %60 = add i64 %.promoted.i.i, 7 - %61 = load i64, ptr %19, align 8, !alias.scope !126, !noalias !127, !noundef !7 - %62 = icmp ugt i64 %60, %61 - br i1 %62, label %.sink.split, label %63 - -.sink.split: ; preds = %57, %99 - %.sink = phi i64 [ %102, %99 ], [ %60, %57 ] - store i64 %.sink, ptr %19, align 8, !noalias !7 - br label %63 - -63: ; preds = %.sink.split, %99, %57 - %storemerge = phi i64 [ %60, %57 ], [ %102, %99 ], [ %.sink, %.sink.split ] - %.pre19.i.i159 = phi i64 [ %61, %57 ], [ %103, %99 ], [ %.sink, %.sink.split ] - store i64 %storemerge, ptr %18, align 8, !noalias !7 + %62 = add i64 %.promoted.i.i, 7 + %63 = load i64, ptr %21, align 8, !alias.scope !126, !noalias !127, !noundef !7 + %64 = icmp ugt i64 %62, %63 + br i1 %64, label %.sink.split, label %65 + +.sink.split: ; preds = %59, %101 + %.sink = phi i64 [ %104, %99 ], [ %62, %57 ] + store i64 %.sink, ptr %21, align 8, !noalias !7 + br label %65 + +65: ; preds = %.sink.split, %101, %59 + %storemerge = phi i64 [ %62, %57 ], [ %104, %99 ], [ %.sink, %.sink.split ] + %.pre19.i.i159 = phi i64 [ %63, %57 ], [ %105, %99 ], [ %.sink, %.sink.split ] + store i64 %storemerge, ptr %20, align 8, !noalias !7 call void @llvm.experimental.noalias.scope.decl(metadata !129) call void @llvm.experimental.noalias.scope.decl(metadata !132) - %64 = call i64 @llvm.uadd.sat.i64(i64 %storemerge, i64 range(i64 1, 0) 1) - %65 = load i64, ptr %8, align 8, !alias.scope !134, !noalias !141, !noundef !7 - %66 = icmp ugt i64 %64, %65 - br i1 %66, label %67, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - -67: ; preds = %63 - %68 = sub i64 %64, %.pre19.i.i159 - %69 = sub i64 %65, %.pre19.i.i159 - %70 = icmp ugt i64 %68, %69 - br i1 %70, label %71, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - -71: ; preds = %67 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i159, i64 noundef %68), !noalias !141 - %.pre.i.i162 = load i64, ptr %19, align 8, !alias.scope !134, !noalias !141 + %66 = call i64 @llvm.uadd.sat.i64(i64 %storemerge, i64 range(i64 1, 0) 1) + %67 = load i64, ptr %10, align 8, !alias.scope !134, !noalias !141, !noundef !7 + %68 = icmp ugt i64 %66, %67 + br i1 %68, label %69, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" + +69: ; preds = %65 + %70 = sub i64 %66, %.pre19.i.i159 + %71 = sub i64 %67, %.pre19.i.i159 + %72 = icmp ugt i64 %70, %71 + br i1 %72, label %73, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" + +73: ; preds = %69 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i159, i64 noundef %70), !noalias !141 + %.pre.i.i162 = load i64, ptr %21, align 8, !alias.scope !134, !noalias !141 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160": ; preds = %71, %67, %63 - %72 = phi i64 [ %.pre.i.i162, %71 ], [ %.pre19.i.i159, %67 ], [ %.pre19.i.i159, %63 ] - %73 = icmp ugt i64 %storemerge, %72 - br i1 %73, label %.lr.ph.preheader.i.i.i.i.us.i.i161, label %77 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160": ; preds = %73, %69, %65 + %74 = phi i64 [ %.pre.i.i162, %71 ], [ %.pre19.i.i159, %67 ], [ %.pre19.i.i159, %63 ] + %75 = icmp ugt i64 %storemerge, %74 + br i1 %75, label %.lr.ph.preheader.i.i.i.i.us.i.i161, label %77 .lr.ph.preheader.i.i.i.i.us.i.i161: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" - %74 = sub nuw i64 %storemerge, %72 - %75 = load ptr, ptr %20, align 8, !alias.scope !151, !noalias !141, !nonnull !7, !noundef !7 - %76 = getelementptr inbounds i8, ptr %75, i64 %72 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %76, i8 0, i64 %74, i1 false), !alias.scope !154, !noalias !141 - store i64 %storemerge, ptr %19, align 8, !alias.scope !134, !noalias !141 + %76 = sub nuw i64 %storemerge, %74 + %77 = load ptr, ptr %22, align 8, !alias.scope !151, !noalias !141, !nonnull !7, !noundef !7 + %78 = getelementptr inbounds i8, ptr %77, i64 %74 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %78, i8 0, i64 %76, i1 false), !alias.scope !154, !noalias !141 + store i64 %storemerge, ptr %21, align 8, !alias.scope !134, !noalias !141 br label %77 77: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i161, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i160" @@ -460,66 +460,66 @@ define internal fastcc void @"_ZN3gif7encoder16Encoder$LT$W$GT$15write_extension %82 = icmp ugt i64 %80, %81 br i1 %82, label %83, label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163" -83: ; preds = %77 - store i64 %80, ptr %19, align 8, !alias.scope !157, !noalias !158 +79: ; preds = %77 + store i64 %80, ptr %21, align 8, !alias.scope !157, !noalias !158 br label %"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163" "_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$$RF$mut$u20$W$GT$9write_all17hb6911dba0d5832f9E.llvm.1563996087720595280.exit163": ; preds = %77, %83 - store i64 %80, ptr %18, align 8, !alias.scope !160, !noalias !161 + store i64 %80, ptr %20, align 8, !alias.scope !160, !noalias !161 store i8 2, ptr %0, align 8, !alias.scope !162 - br label %16 + br label %18 -84: ; preds = %42 +86: ; preds = %42 %trunc128 = trunc i48 %.2.extract.shift to i16 - %85 = icmp eq i16 %trunc128, 0 - %.4.extract.trunc. = select i1 %85, i16 %.4.extract.trunc, i16 0 - %86 = call i64 @llvm.uadd.sat.i64(i64 %37, i64 range(i64 1, 0) 17) - %87 = load i64, ptr %8, align 8, !alias.scope !165, !noalias !174, !noundef !7 - %88 = icmp ugt i64 %86, %87 - br i1 %88, label %89, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - -89: ; preds = %84 - %90 = sub i64 %86, %.pre19.i.i.i180 - %91 = sub i64 %87, %.pre19.i.i.i180 - %92 = icmp ugt i64 %90, %91 - br i1 %92, label %93, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - -93: ; preds = %89 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %.pre19.i.i.i180, i64 noundef %90), !noalias !174 - %.pre.i.i.i183 = load i64, ptr %19, align 8, !alias.scope !165, !noalias !174 + %87 = icmp eq i16 %trunc128, 0 + %.4.extract.trunc. = select i1 %87, i16 %.4.extract.trunc, i16 0 + %88 = call i64 @llvm.uadd.sat.i64(i64 %39, i64 range(i64 1, 0) 17) + %89 = load i64, ptr %10, align 8, !alias.scope !165, !noalias !174, !noundef !7 + %90 = icmp ugt i64 %88, %89 + br i1 %90, label %91, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + +91: ; preds = %86 + %92 = sub i64 %88, %.pre19.i.i.i180 + %93 = sub i64 %89, %.pre19.i.i.i180 + %94 = icmp ugt i64 %92, %93 + br i1 %94, label %95, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + +95: ; preds = %91 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h6e62e7f32b5be7dfE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %.pre19.i.i.i180, i64 noundef %92), !noalias !174 + %.pre.i.i.i183 = load i64, ptr %21, align 8, !alias.scope !165, !noalias !174 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181": ; preds = %93, %89, %84 - %94 = phi i64 [ %.pre.i.i.i183, %93 ], [ %.pre19.i.i.i180, %89 ], [ %.pre19.i.i.i180, %84 ] - %95 = icmp ugt i64 %37, %94 - br i1 %95, label %.lr.ph.preheader.i.i.i.i.us.i.i.i182, label %99 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181": ; preds = %95, %91, %86 + %96 = phi i64 [ %.pre.i.i.i183, %93 ], [ %.pre19.i.i.i180, %89 ], [ %.pre19.i.i.i180, %84 ] + %97 = icmp ugt i64 %39, %96 + br i1 %97, label %.lr.ph.preheader.i.i.i.i.us.i.i.i182, label %101 .lr.ph.preheader.i.i.i.i.us.i.i.i182: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - %96 = sub nuw i64 %37, %94 - %97 = load ptr, ptr %20, align 8, !alias.scope !187, !noalias !174, !nonnull !7, !noundef !7 - %98 = getelementptr inbounds i8, ptr %97, i64 %94 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %98, i8 0, i64 %96, i1 false), !alias.scope !190, !noalias !174 - store i64 %37, ptr %19, align 8, !alias.scope !165, !noalias !174 - br label %99 - -99: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i182, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" - %100 = load ptr, ptr %20, align 8, !alias.scope !193, !noalias !194, !nonnull !7, !noundef !7 - %101 = getelementptr inbounds i8, ptr %100, i64 %37 - store i8 -1, ptr %101, align 1, !noalias !195 - %.sroa.12259.8..sroa_idx260 = getelementptr inbounds nuw i8, ptr %101, i64 1 + %98 = sub nuw i64 %39, %96 + %99 = load ptr, ptr %22, align 8, !alias.scope !187, !noalias !174, !nonnull !7, !noundef !7 + %100 = getelementptr inbounds i8, ptr %99, i64 %96 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %100, i8 0, i64 %98, i1 false), !alias.scope !190, !noalias !174 + store i64 %39, ptr %21, align 8, !alias.scope !165, !noalias !174 + br label %101 + +101: ; preds = %.lr.ph.preheader.i.i.i.i.us.i.i.i182, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h0ce58aa4c4950ee8E.exit.i.i.i.us.i.i.i181" + %102 = load ptr, ptr %22, align 8, !alias.scope !193, !noalias !194, !nonnull !7, !noundef !7 + %103 = getelementptr inbounds i8, ptr %102, i64 %39 + store i8 -1, ptr %103, align 1, !noalias !195 + %.sroa.12259.8..sroa_idx260 = getelementptr inbounds nuw i8, ptr %103, i64 1 store i8 11, ptr %.sroa.12259.8..sroa_idx260, align 1, !noalias !195 - %.sroa.13262.8..sroa_idx263 = getelementptr inbounds nuw i8, ptr %101, i64 2 + %.sroa.13262.8..sroa_idx263 = getelementptr inbounds nuw i8, ptr %103, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(11) %.sroa.13262.8..sroa_idx263, ptr noundef nonnull align 1 dereferenceable(11) @anon.34ad03ac7dbb51fd0fc21b39122f0032.15, i64 11, i1 false) - %.sroa.14264.8..sroa_idx265 = getelementptr inbounds nuw i8, ptr %101, i64 13 + %.sroa.14264.8..sroa_idx265 = getelementptr inbounds nuw i8, ptr %103, i64 13 store i8 3, ptr %.sroa.14264.8..sroa_idx265, align 1, !noalias !195 - %.sroa.15267.8..sroa_idx268 = getelementptr inbounds nuw i8, ptr %101, i64 14 + %.sroa.15267.8..sroa_idx268 = getelementptr inbounds nuw i8, ptr %103, i64 14 store i8 1, ptr %.sroa.15267.8..sroa_idx268, align 1, !noalias !195 - %.sroa.16.8..sroa_idx270 = getelementptr inbounds nuw i8, ptr %101, i64 15 + %.sroa.16.8..sroa_idx270 = getelementptr inbounds nuw i8, ptr %103, i64 15 store i16 %.4.extract.trunc., ptr %.sroa.16.8..sroa_idx270, align 1, !noalias !195 - %102 = add i64 %.promoted.i.i, 18 - %103 = load i64, ptr %19, align 8, !alias.scope !193, !noalias !194, !noundef !7 - %104 = icmp ugt i64 %102, %103 - br i1 %104, label %.sink.split, label %63 + %104 = add i64 %.promoted.i.i, 18 + %105 = load i64, ptr %21, align 8, !alias.scope !193, !noalias !194, !noundef !7 + %106 = icmp ugt i64 %104, %105 + br i1 %106, label %.sink.split, label %65 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll index d92460c662a..340c995be14 100644 --- a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll +++ b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll @@ -2271,9 +2271,9 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h .loopexit: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit", %.preheader %exitcond36.not = icmp eq i16 %24, %11 - br i1 %exitcond36.not, label %.critedge, label %16 + br i1 %exitcond36.not, label %.critedge, label %28 -16: ; preds = %.lr.ph31, %.loopexit +28: ; preds = %.lr.ph31, %.loopexit %.sroa.14.030 = phi i16 [ 0, %.lr.ph31 ], [ %24, %.loopexit ] %17 = zext i16 %.sroa.14.030 to i64 %18 = shl nuw nsw i64 %17, 1 @@ -2281,7 +2281,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h %20 = icmp ugt i64 %19, %5 br i1 %20, label %.critedge, label %21 -21: ; preds = %16 +21: ; preds = %16 %22 = getelementptr inbounds nuw i8, ptr %3, i64 %18 %.val.i.i.i.i.i.i = load i16, ptr %22, align 1, !alias.scope !252, !noalias !259 %23 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i) @@ -2300,44 +2300,44 @@ define hidden void @_ZN10ttf_parser6tables4cmap7format49Subtable410codepoints17h br i1 %or.cond, label %.critedge, label %.preheader .preheader: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit" - %.not.i27 = icmp ugt i16 %23, %27 - br i1 %.not.i27, label %.loopexit, label %.lr.ph.preheader + %.not.i28 = icmp ugt i16 %23, %27 + br i1 %.not.i28, label %.loopexit, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.preheader %.pre = load i64, ptr %14, align 8, !alias.scope !274 br label %.lr.ph -.critedge: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit", %21, %.loopexit, %16, %2 +"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.thread": ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit", %21, %.loopexit, %16, %2 ret void .lr.ph: ; preds = %.lr.ph.preheader, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" - %29 = phi i64 [ %40, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %.pre, %.lr.ph.preheader ] - %.sroa.018.028 = phi i16 [ %spec.select, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %23, %.lr.ph.preheader ] - %30 = icmp uge i16 %.sroa.018.028, %27 - %not. = xor i1 %30, true - %31 = zext i1 %not. to i16 - %spec.select = add nuw i16 %.sroa.018.028, %31 - %32 = zext i16 %.sroa.018.028 to i32 - %33 = load i64, ptr %1, align 8, !alias.scope !274, !noundef !4 - %34 = icmp eq i64 %29, %33 - br i1 %34, label %35, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" - -35: ; preds = %.lr.ph - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) + %36 = phi i64 [ %47, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %.pre, %.lr.ph.preheader ] + %.sroa.019.029 = phi i16 [ %spec.select, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" ], [ %23, %.lr.ph.preheader ] + %37 = icmp uge i16 %.sroa.019.029, %27 + %not. = xor i1 %37, true + %38 = zext i1 %not. to i16 + %spec.select = add nuw i16 %.sroa.019.029, %38 + %39 = zext i16 %.sroa.019.029 to i32 + %40 = load i64, ptr %1, align 8, !alias.scope !274, !noundef !4 + %41 = icmp eq i64 %36, %40 + br i1 %41, label %42, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" + +42: ; preds = %.lr.ph + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %36) %.pre.i.i = load i64, ptr %14, align 8, !alias.scope !274 br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit": ; preds = %.lr.ph, %35 - %36 = phi i64 [ %.pre.i.i, %35 ], [ %29, %.lr.ph ] - %37 = load ptr, ptr %15, align 8, !alias.scope !274, !nonnull !4, !noundef !4 - %38 = getelementptr inbounds i32, ptr %37, i64 %36 - store i32 %32, ptr %38, align 4 - %39 = load i64, ptr %14, align 8, !alias.scope !274, !noundef !4 - %40 = add i64 %39, 1 - store i64 %40, ptr %14, align 8, !alias.scope !274 +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit": ; preds = %.lr.ph, %42 + %43 = phi i64 [ %.pre.i.i, %35 ], [ %36, %.lr.ph ] + %44 = load ptr, ptr %15, align 8, !alias.scope !274, !nonnull !4, !noundef !4 + %45 = getelementptr inbounds i32, ptr %44, i64 %43 + store i32 %39, ptr %45, align 4 + %46 = load i64, ptr %14, align 8, !alias.scope !274, !noundef !4 + %47 = add i64 %46, 1 + store i64 %47, ptr %14, align 8, !alias.scope !274 %.not.i = icmp ugt i16 %spec.select, %27 - %or.cond26 = select i1 %30, i1 true, i1 %.not.i - br i1 %or.cond26, label %.loopexit, label %.lr.ph + %or.cond27 = select i1 %37, i1 true, i1 %.not.i + br i1 %or.cond27, label %.loopexit, label %.lr.ph } ; Function Attrs: nonlazybind uwtable @@ -2410,7 +2410,7 @@ define hidden void @_ZN10ttf_parser6tables4cmap8Subtable10codepoints17h70a4d7b0c i64 8, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit ] -default.unreachable77: ; preds = %2 +default.unreachable85: ; preds = %2 unreachable 5: ; preds = %2 @@ -2490,26 +2490,26 @@ default.unreachable77: ; preds = %2 %47 = getelementptr inbounds nuw i8, ptr %1, i64 8 %48 = and i64 %44, 65535 %49 = and i64 %45, 65535 - br label %50 + br label %.lr.ph42 .loopexit.i: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2", %.preheader.i - %exitcond36.not.i = icmp eq i64 %indvars.iv.next, %48 - br i1 %exitcond36.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %50 + %exitcond58.not = icmp eq i64 %indvars.iv.next, %48 + br i1 %exitcond58.not, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph42 -50: ; preds = %.loopexit.i, %.lr.ph31.i - %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph31.i ] - %51 = shl nuw nsw i64 %indvars.iv, 1 +.lr.ph42: ; preds = %.loopexit.i, %.lr.ph31.i + %.sroa.14.0.i41 = phi i64 [ %indvars.iv.next, %.loopexit.i ], [ 0, %.lr.ph31.i ] + %51 = shl nuw nsw i64 %.sroa.14.0.i41, 1 %52 = add nuw nsw i64 %51, 2 %53 = icmp ugt i64 %52, %38 br i1 %53, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %54 54: ; preds = %50 %55 = getelementptr inbounds nuw i8, ptr %36, i64 %51 - %.val.i.i.i.i.i.i.i = load i16, ptr %55, align 1, !alias.scope !293, !noalias !300 + %.val.i.i.i.i.i.i.i = load i28, ptr %55, align 1, !alias.scope !293, !noalias !300 %56 = tail call i16 @llvm.bswap.i16(i16 %.val.i.i.i.i.i.i.i) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv, %49 - %57 = icmp ugt i64 %52, %42 + %exitcond.not.i = icmp eq i64 %.sroa.14.0.i41, %49 + %exitcond57.not = icmp ugt i64 %52, %42 %or.cond42.i = or i1 %exitcond.not.i, %57 br i1 %or.cond42.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i" @@ -2522,8 +2522,8 @@ default.unreachable77: ; preds = %2 br i1 %or.cond.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.preheader.i .preheader.i: ; preds = %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i" - %.not.i27.i = icmp ugt i16 %56, %59 - br i1 %.not.i27.i, label %.loopexit.i, label %.lr.ph.preheader.i + %.not.i28.i = icmp ugt i16 %56, %59 + br i1 %.not.i28.i, label %.loopexit.i, label %.lr.ph.preheader.i .lr.ph.preheader.i: ; preds = %.preheader.i %.pre.i = load i64, ptr %46, align 8, !alias.scope !315, !noalias !288 @@ -2531,12 +2531,12 @@ default.unreachable77: ; preds = %2 .lr.ph.i1: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2", %.lr.ph.preheader.i %61 = phi i64 [ %72, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %.pre.i, %.lr.ph.preheader.i ] - %.sroa.018.028.i = phi i16 [ %spec.select.i, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %56, %.lr.ph.preheader.i ] - %62 = icmp uge i16 %.sroa.018.028.i, %59 + %.sroa.019.029.i = phi i16 [ %spec.select.i, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" ], [ %56, %.lr.ph.preheader.i ] + %62 = icmp uge i16 %.sroa.019.029.i, %59 %not..i = xor i1 %62, true %63 = zext i1 %not..i to i16 - %spec.select.i = add nuw i16 %.sroa.018.028.i, %63 - %64 = zext i16 %.sroa.018.028.i to i32 + %spec.select.i = add nuw i16 %.sroa.019.029.i, %63 + %64 = zext i16 %.sroa.019.029.i to i32 %65 = load i64, ptr %1, align 8, !alias.scope !315, !noalias !288, !noundef !4 %66 = icmp eq i64 %61, %65 br i1 %66, label %67, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i2" @@ -2555,8 +2555,8 @@ default.unreachable77: ; preds = %2 %72 = add i64 %71, 1 store i64 %72, ptr %46, align 8, !alias.scope !315, !noalias !288 %.not.i.i = icmp ugt i16 %spec.select.i, %59 - %or.cond26.i = select i1 %62, i1 true, i1 %.not.i.i - br i1 %or.cond26.i, label %.loopexit.i, label %.lr.ph.i1 + %or.cond27.i = select i1 %62, i1 true, i1 %.not.i.i + br i1 %or.cond27.i, label %.loopexit.i, label %.lr.ph.i1 73: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !318) @@ -2565,17 +2565,17 @@ default.unreachable77: ; preds = %2 %75 = load i64, ptr %74, align 8, !alias.scope !318, !noalias !321, !noundef !4 %76 = lshr i64 %75, 1 %77 = trunc i64 %76 to i16 - %.not.i4 = icmp eq i16 %77, 0 - br i1 %.not.i4, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i5 + %.not.i = icmp eq i16 %77, 0 + br i1 %.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i4 -.lr.ph.i5: ; preds = %73 +.lr.ph.i4: ; preds = %73 %78 = getelementptr inbounds nuw i8, ptr %0, i64 24 %79 = load i16, ptr %78, align 8, !alias.scope !318, !noalias !321, !noundef !4 %80 = getelementptr inbounds nuw i8, ptr %1, i64 16 %81 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %82 -82: ; preds = %98, %.lr.ph.i5 +82: ; preds = %98, %.lr.ph.i4 %.sroa.01.010.i = phi i16 [ 0, %.lr.ph.i5 ], [ %83, %98 ] %83 = add nuw i16 %.sroa.01.010.i, 1 %84 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %79, i16 %.sroa.01.010.i) @@ -2588,15 +2588,15 @@ default.unreachable77: ; preds = %2 %89 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318, !noundef !4 %90 = load i64, ptr %1, align 8, !alias.scope !323, !noalias !318, !noundef !4 %91 = icmp eq i64 %89, %90 - br i1 %91, label %92, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6" + br i1 %91, label %92, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5" 92: ; preds = %88 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %89), !noalias !318 - %.pre.i.i.i8 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6" + %.pre.i.i.i6 = load i64, ptr %80, align 8, !alias.scope !323, !noalias !318 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6": ; preds = %92, %88 - %93 = phi i64 [ %.pre.i.i.i8, %92 ], [ %89, %88 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5": ; preds = %92, %88 + %93 = phi i64 [ %.pre.i.i.i6, %92 ], [ %89, %88 ] %94 = load ptr, ptr %81, align 8, !alias.scope !323, !noalias !318, !nonnull !4, !noundef !4 %95 = getelementptr inbounds i32, ptr %94, i64 %93 store i32 %87, ptr %95, align 4, !noalias !318 @@ -2605,9 +2605,9 @@ default.unreachable77: ; preds = %2 store i64 %97, ptr %80, align 8, !alias.scope !323, !noalias !318 br label %98 -98: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i6", %82 - %exitcond.not.i7 = icmp eq i16 %83, %77 - br i1 %exitcond.not.i7, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %82 +98: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i5", %82 + %exitcond.not.i = icmp eq i16 %83, %77 + br i1 %exitcond.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %82 99: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !326) @@ -2616,20 +2616,20 @@ default.unreachable77: ; preds = %2 %101 = load i64, ptr %100, align 8, !alias.scope !326, !noalias !329, !noundef !4 %102 = lshr i64 %101, 1 %103 = trunc i64 %102 to i32 - %.not.i9 = icmp eq i32 %103, 0 - br i1 %.not.i9, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i10 + %.not.i7 = icmp eq i32 %103, 0 + br i1 %.not.i7, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph.i8 -.lr.ph.i10: ; preds = %99 +.lr.ph.i8: ; preds = %99 %104 = getelementptr inbounds nuw i8, ptr %0, i64 24 %105 = load i32, ptr %104, align 8, !alias.scope !326, !noalias !329, !noundef !4 %106 = getelementptr inbounds nuw i8, ptr %1, i64 16 %107 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %108 -108: ; preds = %123, %.lr.ph.i10 - %.sroa.01.010.i11 = phi i32 [ 0, %.lr.ph.i10 ], [ %109, %123 ] - %109 = add nuw i32 %.sroa.01.010.i11, 1 - %110 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %105, i32 %.sroa.01.010.i11) +108: ; preds = %123, %.lr.ph.i8 + %.sroa.01.010.i9 = phi i32 [ 0, %.lr.ph.i10 ], [ %109, %123 ] + %109 = add nuw i32 %.sroa.01.010.i9, 1 + %110 = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %105, i32 %.sroa.01.010.i9) %111 = extractvalue { i32, i1 } %110, 1 %112 = extractvalue { i32, i1 } %110, 0 br i1 %111, label %123, label %113 @@ -2638,15 +2638,15 @@ default.unreachable77: ; preds = %2 %114 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326, !noundef !4 %115 = load i64, ptr %1, align 8, !alias.scope !331, !noalias !326, !noundef !4 %116 = icmp eq i64 %114, %115 - br i1 %116, label %117, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12" + br i1 %116, label %117, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10" 117: ; preds = %113 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %114), !noalias !326 - %.pre.i.i.i14 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12" + %.pre.i.i.i12 = load i64, ptr %106, align 8, !alias.scope !331, !noalias !326 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12": ; preds = %117, %113 - %118 = phi i64 [ %.pre.i.i.i14, %117 ], [ %114, %113 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10": ; preds = %117, %113 + %118 = phi i64 [ %.pre.i.i.i12, %117 ], [ %114, %113 ] %119 = load ptr, ptr %107, align 8, !alias.scope !331, !noalias !326, !nonnull !4, !noundef !4 %120 = getelementptr inbounds i32, ptr %119, i64 %118 store i32 %112, ptr %120, align 4, !noalias !326 @@ -2655,9 +2655,9 @@ default.unreachable77: ; preds = %2 store i64 %122, ptr %106, align 8, !alias.scope !331, !noalias !326 br label %123 -123: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i12", %108 - %exitcond.not.i13 = icmp eq i32 %109, %103 - br i1 %exitcond.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %108 +123: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i10", %108 + %exitcond.not.i11 = icmp eq i32 %109, %103 + br i1 %exitcond.not.i11, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %108 124: ; preds = %2 %125 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2668,20 +2668,20 @@ default.unreachable77: ; preds = %2 %128 = load i64, ptr %127, align 8, !alias.scope !334, !noalias !337, !noundef !4 %129 = udiv i64 %128, 12 %130 = and i64 %129, 4294967295 - %.not.i15 = icmp eq i64 %130, 0 - br i1 %.not.i15, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph28.i + %.not.i13 = icmp eq i64 %130, 0 + br i1 %.not.i13, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %.lr.ph28.i .lr.ph28.i: ; preds = %124 %131 = getelementptr inbounds nuw i8, ptr %1, i64 16 %132 = getelementptr inbounds nuw i8, ptr %1, i64 8 br label %133 -.loopexit.i25: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22", %137 +.loopexit.i23: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20", %137 %indvars.iv.next31.i = add nuw nsw i64 %indvars.iv30.i, 1 - %exitcond.not.i26 = icmp eq i64 %indvars.iv.next31.i, %130 - br i1 %exitcond.not.i26, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %133 + %exitcond.not.i24 = icmp eq i64 %indvars.iv.next31.i, %130 + br i1 %exitcond.not.i24, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit, label %133 -133: ; preds = %.loopexit.i25, %.lr.ph28.i +133: ; preds = %.loopexit.i23, %.lr.ph28.i %indvars.iv30.i = phi i64 [ 0, %.lr.ph28.i ], [ %indvars.iv.next31.i, %.loopexit.i25 ] %134 = mul nuw nsw i64 %indvars.iv30.i, 12 %135 = add nuw nsw i64 %134, 12 @@ -2690,45 +2690,45 @@ default.unreachable77: ; preds = %2 137: ; preds = %133 %138 = getelementptr inbounds nuw i8, ptr %126, i64 %134 - %.val.i.i.i.i.i.i.i16 = load i32, ptr %138, align 1, !alias.scope !339, !noalias !350 - %139 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i16) + %.val.i.i.i.i.i.i.i14 = load i32, ptr %138, align 1, !alias.scope !339, !noalias !350 + %139 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i.i.i.i.i14) %140 = getelementptr inbounds nuw i8, ptr %138, i64 4 %.val.i.i.i35.i.i.i.i = load i32, ptr %140, align 1, !alias.scope !355, !noalias !350 %141 = tail call i32 @llvm.bswap.i32(i32 %.val.i.i.i35.i.i.i.i) %.not.i25.i = icmp ugt i32 %139, %141 - br i1 %.not.i25.i, label %.loopexit.i25, label %.lr.ph.preheader.i17 + br i1 %.not.i25.i, label %.loopexit.i23, label %.lr.ph.preheader.i15 -.lr.ph.preheader.i17: ; preds = %137 - %.pre.i18 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 - br label %.lr.ph.i19 +.lr.ph.preheader.i15: ; preds = %137 + %.pre.i16 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 + br label %.lr.ph.i17 -.lr.ph.i19: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22", %.lr.ph.preheader.i17 - %142 = phi i64 [ %152, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %.pre.i18, %.lr.ph.preheader.i17 ] - %.sroa.013.026.i = phi i32 [ %spec.select.i21, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %139, %.lr.ph.preheader.i17 ] +.lr.ph.i17: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20", %.lr.ph.preheader.i15 + %142 = phi i64 [ %152, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %.pre.i16, %.lr.ph.preheader.i17 ] + %.sroa.013.026.i = phi i32 [ %spec.select.i19, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" ], [ %139, %.lr.ph.preheader.i17 ] %143 = icmp uge i32 %.sroa.013.026.i, %141 - %not..i20 = xor i1 %143, true - %144 = zext i1 %not..i20 to i32 - %spec.select.i21 = add nuw i32 %.sroa.013.026.i, %144 + %not..i18 = xor i1 %143, true + %144 = zext i1 %not..i18 to i32 + %spec.select.i19 = add nuw i32 %.sroa.013.026.i, %144 %145 = load i64, ptr %1, align 8, !alias.scope !362, !noalias !334, !noundef !4 %146 = icmp eq i64 %142, %145 - br i1 %146, label %147, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" + br i1 %146, label %147, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" -147: ; preds = %.lr.ph.i19 +147: ; preds = %.lr.ph.i17 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %142), !noalias !334 - %.pre.i.i.i27 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 - br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22" + %.pre.i.i.i25 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334 + br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i22": ; preds = %147, %.lr.ph.i19 - %148 = phi i64 [ %.pre.i.i.i27, %147 ], [ %142, %.lr.ph.i19 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.exit.i20": ; preds = %147, %.lr.ph.i17 + %148 = phi i64 [ %.pre.i.i.i25, %147 ], [ %142, %.lr.ph.i19 ] %149 = load ptr, ptr %132, align 8, !alias.scope !362, !noalias !334, !nonnull !4, !noundef !4 %150 = getelementptr inbounds i32, ptr %149, i64 %148 store i32 %.sroa.013.026.i, ptr %150, align 4, !noalias !334 %151 = load i64, ptr %131, align 8, !alias.scope !362, !noalias !334, !noundef !4 %152 = add i64 %151, 1 store i64 %152, ptr %131, align 8, !alias.scope !362, !noalias !334 - %.not.i.i23 = icmp ugt i32 %spec.select.i21, %141 - %or.cond.i24 = select i1 %143, i1 true, i1 %.not.i.i23 - br i1 %or.cond.i24, label %.loopexit.i25, label %.lr.ph.i19 + %.not.i.i21 = icmp ugt i32 %spec.select.i19, %141 + %or.cond.i22 = select i1 %143, i1 true, i1 %.not.i.i21 + br i1 %or.cond.i22, label %.loopexit.i23, label %.lr.ph.i17 153: ; preds = %2 %154 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2752,8 +2752,8 @@ default.unreachable77: ; preds = %2 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %._crit_edge.i - %indvars.iv46 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next47, %._crit_edge.i ] - %164 = mul nuw nsw i64 %indvars.iv46, 12 + %indvars.iv51 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next52, %._crit_edge.i ] + %164 = mul nuw nsw i64 %indvars.iv51, 12 %165 = add nuw nsw i64 %164, 12 %166 = icmp ugt i64 %165, %157 br i1 %166, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit, label %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i" @@ -2761,27 +2761,27 @@ default.unreachable77: ; preds = %2 "_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i": ; preds = %.lr.ph %167 = getelementptr inbounds nuw i8, ptr %155, i64 %164 call void @"_ZN103_$LT$ttf_parser..tables..cmap..format12..SequentialMapGroup$u20$as$u20$ttf_parser..parser..FromData$GT$5parse17hccf98e39eb683be3E.llvm.4930786928582598558"(ptr noalias noundef nonnull sret({ i32, [3 x i32] }) align 4 captures(none) dereferenceable(16) %3, ptr noalias noundef nonnull readonly align 1 %167, i64 noundef 12), !noalias !371 - %.pre.i28 = load i32, ptr %3, align 4, !range !177, !noalias !370 - %168 = trunc nuw i32 %.pre.i28 to i1 + %.pre.i26 = load i32, ptr %3, align 4, !range !177, !noalias !370 + %168 = trunc nuw i32 %.pre.i26 to i1 br i1 %168, label %169, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit 169: ; preds = %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i" %170 = load i32, ptr %159, align 4, !noalias !370, !noundef !4 %171 = load i32, ptr %160, align 4, !noalias !370, !noundef !4 %.not.i15.i = icmp ugt i32 %170, %171 - br i1 %.not.i15.i, label %._crit_edge.i, label %.lr.ph.preheader.i29 + br i1 %.not.i15.i, label %._crit_edge.i, label %.lr.ph.preheader.i27 -.lr.ph.preheader.i29: ; preds = %169 +.lr.ph.preheader.i27: ; preds = %169 %.pre17.i = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 - br label %.lr.ph.i30 + br label %.lr.ph.i28 -.lr.ph.i30: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %.lr.ph.preheader.i29 +.lr.ph.i28: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %.lr.ph.preheader.i27 %172 = phi i64 [ %182, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %.pre17.i, %.lr.ph.preheader.i29 ] - %.sroa.09.016.i = phi i32 [ %spec.select.i32, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %170, %.lr.ph.preheader.i29 ] + %.sroa.09.016.i = phi i32 [ %spec.select.i30, %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" ], [ %170, %.lr.ph.preheader.i29 ] %173 = icmp uge i32 %.sroa.09.016.i, %171 - %not..i31 = xor i1 %173, true - %174 = zext i1 %not..i31 to i32 - %spec.select.i32 = add nuw i32 %.sroa.09.016.i, %174 + %not..i29 = xor i1 %173, true + %174 = zext i1 %not..i29 to i32 + %spec.select.i30 = add nuw i32 %.sroa.09.016.i, %174 %175 = load i64, ptr %1, align 8, !alias.scope !374, !noalias !377, !noundef !4 %176 = icmp eq i64 %172, %175 br i1 %176, label %177, label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" @@ -2789,32 +2789,32 @@ default.unreachable77: ; preds = %2 ._crit_edge.i: ; preds = %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i", %169 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !370 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !370 - %indvars.iv.next47 = add nuw nsw i64 %indvars.iv46, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next47, %wide.trip.count + %indvars.iv.next52 = add nuw nsw i64 %indvars.iv51, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next52, %wide.trip.count br i1 %exitcond.not, label %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit, label %.lr.ph -177: ; preds = %.lr.ph.i30 +177: ; preds = %.lr.ph.i28 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17h54283bb0aa945bd1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %172), !noalias !377 - %.pre.i.i.i35 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 + %.pre.i.i.i33 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377 br label %"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i" -"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i": ; preds = %177, %.lr.ph.i30 - %178 = phi i64 [ %.pre.i.i.i35, %177 ], [ %172, %.lr.ph.i30 ] +"_ZN5typst4text4font4book8FontInfo8from_ttf28_$u7b$$u7b$closure$u7d$$u7d$17h0310702bb3c7057cE.llvm.4930786928582598558.exit.i": ; preds = %177, %.lr.ph.i28 + %178 = phi i64 [ %.pre.i.i.i33, %177 ], [ %172, %.lr.ph.i30 ] %179 = load ptr, ptr %162, align 8, !alias.scope !374, !noalias !377, !nonnull !4, !noundef !4 %180 = getelementptr inbounds i32, ptr %179, i64 %178 store i32 %.sroa.09.016.i, ptr %180, align 4, !noalias !377 %181 = load i64, ptr %161, align 8, !alias.scope !374, !noalias !377, !noundef !4 %182 = add i64 %181, 1 store i64 %182, ptr %161, align 8, !alias.scope !374, !noalias !377 - %.not.i.i33 = icmp ugt i32 %spec.select.i32, %171 - %or.cond.i34 = select i1 %173, i1 true, i1 %.not.i.i33 - br i1 %or.cond.i34, label %._crit_edge.i, label %.lr.ph.i30 + %.not.i.i31 = icmp ugt i32 %spec.select.i30, %171 + %or.cond.i32 = select i1 %173, i1 true, i1 %.not.i.i31 + br i1 %or.cond.i32, label %._crit_edge.i, label %.lr.ph.i28 _ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit: ; preds = %"_ZN10ttf_parser6parser20LazyArray32$LT$T$GT$3get17hcc70db792b3b02dcE.llvm.4930786928582598558.exit.i", %.lr.ph, %._crit_edge.i, %153 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !370 br label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit -_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit: ; preds = %133, %.loopexit.i25, %123, %98, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i", %54, %50, %.loopexit.i, %29, %124, %99, %73, %34, %5, %2, %2, %31, %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit +_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h8ecb1b8256e97c6cE.llvm.5857379167208991996.exit: ; preds = %133, %.loopexit.i23, %123, %98, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9128279ea8f5c291E.exit.i", %54, %50, %.loopexit.i, %29, %124, %99, %73, %34, %5, %2, %2, %31, %_ZN10ttf_parser6tables4cmap8format1310Subtable1310codepoints17h43ad9547795223d0E.exit ret void } diff --git a/bench/yyjson/optimized/yyjson.ll b/bench/yyjson/optimized/yyjson.ll index df3a0bc9121..8209429ac64 100644 --- a/bench/yyjson/optimized/yyjson.ll +++ b/bench/yyjson/optimized/yyjson.ll @@ -8465,8 +8465,8 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %read_number.exit430.thread .preheader4258thread-pre-split: ; preds = %.preheader4258thread-pre-split.lr.ph, %.preheader4258thread-pre-split - %.4334610364 = phi ptr [ %312, %.preheader4258thread-pre-split.lr.ph ], [ %317, %.preheader4258thread-pre-split ] - %317 = getelementptr inbounds nuw i8, ptr %.4334610364, i64 1 + %.4334610348 = phi ptr [ %312, %.preheader4258thread-pre-split.lr.ph ], [ %317, %.preheader4258thread-pre-split ] + %317 = getelementptr inbounds nuw i8, ptr %.4334610348, i64 1 %.pr = load i8, ptr %317, align 1, !tbaa !75 %318 = icmp eq i8 %.pr, 48 br i1 %318, label %.preheader4258thread-pre-split, label %.preheader4258._crit_edge, !prof !154, !llvm.loop !153 @@ -8475,14 +8475,14 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %319, !llvm.loop !153 319: ; preds = %.preheader4258._crit_edge, %.preheader4258.preheader - %.lcssa9631 = phi i8 [ %.pr, %.preheader4258._crit_edge ], [ %313, %.preheader4258.preheader ] + %.lcssa9619 = phi i8 [ %.pr, %.preheader4258._crit_edge ], [ %313, %.preheader4258.preheader ] %.43346.lcssa = phi ptr [ %317, %.preheader4258._crit_edge ], [ %312, %.preheader4258.preheader ] - %320 = add i8 %.lcssa9631, -58 + %320 = add i8 %.lcssa9619, -58 %.not4064 = icmp ult i8 %320, -10 br i1 %.not4064, label %.thread7462, label %321, !prof !4 321: ; preds = %319 - %322 = zext nneg i8 %.lcssa9631 to i64 + %322 = zext nneg i8 %.lcssa9619 to i64 %323 = add nsw i64 %322, -48 %324 = getelementptr inbounds i8, ptr %.43346.lcssa, i64 -1 br label %713 @@ -8499,7 +8499,7 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 .thread7462: ; preds = %319, %325 %.133437465 = phi ptr [ %300, %325 ], [ %.43346.lcssa, %319 ] - %328 = phi i8 [ %301, %325 ], [ %.lcssa9631, %319 ] + %328 = phi i8 [ %301, %325 ], [ %.lcssa9619, %319 ] %329 = and i8 %328, -33 %.not4066.not = icmp eq i8 %329, 69 br i1 %.not4066.not, label %330, label %.loopexit4246, !prof !4 @@ -9687,8 +9687,8 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %read_number.exit430.thread .preheader4255thread-pre-split: ; preds = %.preheader4255thread-pre-split.lr.ph, %.preheader4255thread-pre-split - %.9335110367 = phi ptr [ %988, %.preheader4255thread-pre-split.lr.ph ], [ %993, %.preheader4255thread-pre-split ] - %993 = getelementptr inbounds nuw i8, ptr %.9335110367, i64 1 + %.9335110351 = phi ptr [ %988, %.preheader4255thread-pre-split.lr.ph ], [ %993, %.preheader4255thread-pre-split ] + %993 = getelementptr inbounds nuw i8, ptr %.9335110351, i64 1 %.pr7466 = load i8, ptr %993, align 1, !tbaa !75 %994 = icmp eq i8 %.pr7466, 48 br i1 %994, label %.preheader4255thread-pre-split, label %.preheader4255..preheader4254_crit_edge, !llvm.loop !160 @@ -9697,14 +9697,14 @@ read_inf_or_nan.exit841.thread: ; preds = %263, %288, %289, %2 br label %.preheader4254, !llvm.loop !160 .preheader4254: ; preds = %.preheader4255..preheader4254_crit_edge, %.preheader4255.preheader - %.lcssa9627 = phi i8 [ %.pr7466, %.preheader4255..preheader4254_crit_edge ], [ %989, %.preheader4255.preheader ] + %.lcssa9615 = phi i8 [ %.pr7466, %.preheader4255..preheader4254_crit_edge ], [ %989, %.preheader4255.preheader ] %.93351.lcssa = phi ptr [ %993, %.preheader4255..preheader4254_crit_edge ], [ %988, %.preheader4255.preheader ] - %995 = add i8 %.lcssa9627, -58 + %995 = add i8 %.lcssa9615, -58 %.not41025069 = icmp ult i8 %995, -10 br i1 %.not41025069, label %._crit_edge5073, label %.lr.ph5072 .lr.ph5072: ; preds = %.preheader4254, %.lr.ph5072 - %996 = phi i8 [ %1002, %.lr.ph5072 ], [ %.lcssa9627, %.preheader4254 ] + %996 = phi i8 [ %1002, %.lr.ph5072 ], [ %.lcssa9615, %.preheader4254 ] %.0595.i3745071 = phi i64 [ %1001, %.lr.ph5072 ], [ 0, %.preheader4254 ] %.1033525070 = phi ptr [ %997, %.lr.ph5072 ], [ %.93351.lcssa, %.preheader4254 ] %997 = getelementptr inbounds nuw i8, ptr %.1033525070, i64 1 @@ -11822,7 +11822,7 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %2034 = and i32 %.sroa.212904.2.in.lcssa, 12291 %2035 = icmp eq i32 %2034, 0 %2036 = or i1 %2033, %2035 - br i1 %2036, label %.lr.ph10373, label %.critedge6.i721 + br i1 %2036, label %.lr.ph10357, label %.critedge6.i721 .lr.ph5274: ; preds = %.preheader4234, %.lr.ph5274 %.sroa.02856.25273.in = phi i32 [ %.sroa.0.0.copyload.i896, %.lr.ph5274 ], [ %storemerge.i711.lcssa, %.preheader4234 ] @@ -11840,21 +11840,21 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %2043 = and i1 %2040, %2042 br i1 %2043, label %.lr.ph5274, label %.preheader4233.loopexit, !llvm.loop !177 -.lr.ph5288: ; preds = %.lr.ph10373 +.lr.ph5288: ; preds = %.lr.ph10357 %2044 = and i32 %.sroa.0.0.copyload.i897, 4 %2045 = icmp eq i32 %2044, 0 %2046 = and i32 %.sroa.0.0.copyload.i897, 12291 %2047 = icmp eq i32 %2046, 0 %2048 = or i1 %2045, %2047 - br i1 %2048, label %.lr.ph10373, label %.critedge6.i721.loopexit, !llvm.loop !178 - -.lr.ph10373: ; preds = %.lr.ph5288.preheader, %.lr.ph5288 - %.14.i717528410372 = phi ptr [ %2050, %.lr.ph5288 ], [ %.13.i715.lcssa, %.lr.ph5288.preheader ] - %.7.i718528510371 = phi ptr [ %2049, %.lr.ph5288 ], [ %.6.i716.lcssa, %.lr.ph5288.preheader ] - %.sroa.02856.0.insert.insert2880528710370 = phi i32 [ %.sroa.0.0.copyload.i897, %.lr.ph5288 ], [ %.sroa.212904.2.in.lcssa, %.lr.ph5288.preheader ] - store i32 %.sroa.02856.0.insert.insert2880528710370, ptr %.7.i718528510371, align 1 - %2049 = getelementptr inbounds nuw i8, ptr %.7.i718528510371, i64 4 - %2050 = getelementptr inbounds nuw i8, ptr %.14.i717528410372, i64 4 + br i1 %2048, label %.lr.ph10357, label %.critedge6.i721.loopexit, !llvm.loop !178 + +.lr.ph10357: ; preds = %.lr.ph5288.preheader, %.lr.ph5288 + %.14.i717528410356 = phi ptr [ %2050, %.lr.ph5288 ], [ %.13.i715.lcssa, %.lr.ph5288.preheader ] + %.7.i718528510355 = phi ptr [ %2049, %.lr.ph5288 ], [ %.6.i716.lcssa, %.lr.ph5288.preheader ] + %.sroa.02856.0.insert.insert2880528710354 = phi i32 [ %.sroa.0.0.copyload.i897, %.lr.ph5288 ], [ %.sroa.212904.2.in.lcssa, %.lr.ph5288.preheader ] + store i32 %.sroa.02856.0.insert.insert2880528710354, ptr %.7.i718528510355, align 1 + %2049 = getelementptr inbounds nuw i8, ptr %.7.i718528510355, i64 4 + %2050 = getelementptr inbounds nuw i8, ptr %.14.i717528410356, i64 4 %.sroa.0.0.copyload.i897 = load i32, ptr %2050, align 1 %2051 = and i32 %.sroa.0.0.copyload.i897, -1061109512 %2052 = icmp ne i32 %2051, -2139062032 @@ -11863,7 +11863,7 @@ read_number.exit430: ; preds = %.loopexit4246, %504 %or.cond292.i720 = or i1 %.not289.i719, %2052 br i1 %or.cond292.i720, label %..critedge6.i721.loopexit_crit_edge, label %.lr.ph5288, !llvm.loop !178 -..critedge6.i721.loopexit_crit_edge: ; preds = %.lr.ph10373 +..critedge6.i721.loopexit_crit_edge: ; preds = %.lr.ph10357 %2054 = trunc i32 %.sroa.0.0.copyload.i897 to i16 br label %.critedge6.i721, !llvm.loop !178 @@ -12497,18 +12497,18 @@ read_null.exit820: ; preds = %2124 br label %.preheader4324.sink.split .preheader4324.sink.split: ; preds = %123, %4926, %._crit_edge5038, %2319 - %.sink10422 = phi ptr [ %2320, %2319 ], [ %4923, %._crit_edge5038 ], [ %4927, %4926 ], [ %95, %123 ] + %.sink10406 = phi ptr [ %2320, %2319 ], [ %4923, %._crit_edge5038 ], [ %4927, %4926 ], [ %95, %123 ] %.0625.i.ph.ph = phi ptr [ %.23621.i, %2319 ], [ %.20645.i.ph, %._crit_edge5038 ], [ %.20645.i.ph, %4926 ], [ %114, %123 ] %.0598.i.ph.ph = phi ptr [ %.23621.i, %2319 ], [ %.21619.i.ph, %._crit_edge5038 ], [ %.21619.i.ph, %4926 ], [ %114, %123 ] %.0572.i.ph.ph = phi ptr [ %.22594.i, %2319 ], [ %.20592.i.ph, %._crit_edge5038 ], [ %.20592.i.ph, %4926 ], [ %113, %123 ] %.0555.i.ph.ph = phi ptr [ %.23.i, %2319 ], [ %.21.i.ph, %._crit_edge5038 ], [ %.21.i.ph, %4926 ], [ %111, %123 ] %.0547.i.ph.ph = phi i64 [ 0, %2319 ], [ %.6553.i.ph, %._crit_edge5038 ], [ %.6553.i.ph, %4926 ], [ 0, %123 ] %.0546.i.ph.ph = phi i64 [ %.14.i, %2319 ], [ %.13.i.ph, %._crit_edge5038 ], [ %.13.i.ph, %4926 ], [ %109, %123 ] - store ptr %.sink10422, ptr %21, align 8, !tbaa !86 + store ptr %.sink10406, ptr %21, align 8, !tbaa !86 br label %.preheader4324 .preheader4324: ; preds = %.preheader4324.sink.split, %2312, %123 - %.promoted46666867 = phi ptr [ %88, %123 ], [ %storemerge705.i, %2312 ], [ %.sink10422, %.preheader4324.sink.split ] + %.promoted46666867 = phi ptr [ %88, %123 ], [ %storemerge705.i, %2312 ], [ %.sink10406, %.preheader4324.sink.split ] %.0625.i.ph = phi ptr [ %114, %123 ], [ %.23621.i, %2312 ], [ %.0625.i.ph.ph, %.preheader4324.sink.split ] %.0598.i.ph = phi ptr [ %114, %123 ], [ %.23621.i, %2312 ], [ %.0598.i.ph.ph, %.preheader4324.sink.split ] %.0572.i.ph = phi ptr [ %113, %123 ], [ %.22594.i, %2312 ], [ %.0572.i.ph.ph, %.preheader4324.sink.split ] @@ -13719,7 +13719,7 @@ read_null.exit820: ; preds = %2124 %2926 = and i32 %.sroa.213138.2.in.lcssa, 12291 %2927 = icmp eq i32 %2926, 0 %2928 = or i1 %2925, %2927 - br i1 %2928, label %.lr.ph10342, label %.critedge6.i805 + br i1 %2928, label %.lr.ph10326, label %.critedge6.i805 .lr.ph4779: ; preds = %.preheader4311, %.lr.ph4779 %.sroa.03090.24778.in = phi i32 [ %.sroa.0.0.copyload.i880, %.lr.ph4779 ], [ %storemerge.i795.lcssa, %.preheader4311 ] @@ -13737,21 +13737,21 @@ read_null.exit820: ; preds = %2124 %2935 = and i1 %2932, %2934 br i1 %2935, label %.lr.ph4779, label %.preheader4310.loopexit, !llvm.loop !177 -.lr.ph4793: ; preds = %.lr.ph10342 +.lr.ph4793: ; preds = %.lr.ph10326 %2936 = and i32 %.sroa.0.0.copyload.i881, 4 %2937 = icmp eq i32 %2936, 0 %2938 = and i32 %.sroa.0.0.copyload.i881, 12291 %2939 = icmp eq i32 %2938, 0 %2940 = or i1 %2937, %2939 - br i1 %2940, label %.lr.ph10342, label %.critedge6.i805.loopexit, !llvm.loop !178 - -.lr.ph10342: ; preds = %.lr.ph4793.preheader, %.lr.ph4793 - %.14.i801478910341 = phi ptr [ %2942, %.lr.ph4793 ], [ %.13.i799.lcssa, %.lr.ph4793.preheader ] - %.7.i802479010340 = phi ptr [ %2941, %.lr.ph4793 ], [ %.6.i800.lcssa, %.lr.ph4793.preheader ] - %.sroa.03090.0.insert.insert3114479210339 = phi i32 [ %.sroa.0.0.copyload.i881, %.lr.ph4793 ], [ %.sroa.213138.2.in.lcssa, %.lr.ph4793.preheader ] - store i32 %.sroa.03090.0.insert.insert3114479210339, ptr %.7.i802479010340, align 1 - %2941 = getelementptr inbounds nuw i8, ptr %.7.i802479010340, i64 4 - %2942 = getelementptr inbounds nuw i8, ptr %.14.i801478910341, i64 4 + br i1 %2940, label %.lr.ph10326, label %.critedge6.i805.loopexit, !llvm.loop !178 + +.lr.ph10326: ; preds = %.lr.ph4793.preheader, %.lr.ph4793 + %.14.i801478910325 = phi ptr [ %2942, %.lr.ph4793 ], [ %.13.i799.lcssa, %.lr.ph4793.preheader ] + %.7.i802479010324 = phi ptr [ %2941, %.lr.ph4793 ], [ %.6.i800.lcssa, %.lr.ph4793.preheader ] + %.sroa.03090.0.insert.insert3114479210323 = phi i32 [ %.sroa.0.0.copyload.i881, %.lr.ph4793 ], [ %.sroa.213138.2.in.lcssa, %.lr.ph4793.preheader ] + store i32 %.sroa.03090.0.insert.insert3114479210323, ptr %.7.i802479010324, align 1 + %2941 = getelementptr inbounds nuw i8, ptr %.7.i802479010324, i64 4 + %2942 = getelementptr inbounds nuw i8, ptr %.14.i801478910325, i64 4 %.sroa.0.0.copyload.i881 = load i32, ptr %2942, align 1 %2943 = and i32 %.sroa.0.0.copyload.i881, -1061109512 %2944 = icmp ne i32 %2943, -2139062032 @@ -13760,7 +13760,7 @@ read_null.exit820: ; preds = %2124 %or.cond292.i804 = or i1 %.not289.i803, %2944 br i1 %or.cond292.i804, label %..critedge6.i805.loopexit_crit_edge, label %.lr.ph4793, !llvm.loop !178 -..critedge6.i805.loopexit_crit_edge: ; preds = %.lr.ph10342 +..critedge6.i805.loopexit_crit_edge: ; preds = %.lr.ph10326 %2946 = trunc i32 %.sroa.0.0.copyload.i881 to i16 br label %.critedge6.i805, !llvm.loop !178 @@ -14910,7 +14910,7 @@ read_string.exit812: ; preds = %.split.loop.exit471 %3532 = and i32 %.sroa.213021.2.in.lcssa, 12291 %3533 = icmp eq i32 %3532, 0 %3534 = or i1 %3531, %3533 - br i1 %3534, label %.lr.ph10357, label %.critedge6.i763 + br i1 %3534, label %.lr.ph10341, label %.critedge6.i763 .lr.ph5014: ; preds = %.preheader4276, %.lr.ph5014 %.sroa.02973.25013.in = phi i32 [ %.sroa.0.0.copyload.i888, %.lr.ph5014 ], [ %storemerge.i753.lcssa, %.preheader4276 ] @@ -14928,21 +14928,21 @@ read_string.exit812: ; preds = %.split.loop.exit471 %3541 = and i1 %3538, %3540 br i1 %3541, label %.lr.ph5014, label %.preheader4275.loopexit, !llvm.loop !177 -.lr.ph5028: ; preds = %.lr.ph10357 +.lr.ph5028: ; preds = %.lr.ph10341 %3542 = and i32 %.sroa.0.0.copyload.i889, 4 %3543 = icmp eq i32 %3542, 0 %3544 = and i32 %.sroa.0.0.copyload.i889, 12291 %3545 = icmp eq i32 %3544, 0 %3546 = or i1 %3543, %3545 - br i1 %3546, label %.lr.ph10357, label %.critedge6.i763.loopexit, !llvm.loop !178 - -.lr.ph10357: ; preds = %.lr.ph5028.preheader, %.lr.ph5028 - %.14.i759502410356 = phi ptr [ %3548, %.lr.ph5028 ], [ %.13.i757.lcssa, %.lr.ph5028.preheader ] - %.7.i760502510355 = phi ptr [ %3547, %.lr.ph5028 ], [ %.6.i758.lcssa, %.lr.ph5028.preheader ] - %.sroa.02973.0.insert.insert2997502710354 = phi i32 [ %.sroa.0.0.copyload.i889, %.lr.ph5028 ], [ %.sroa.213021.2.in.lcssa, %.lr.ph5028.preheader ] - store i32 %.sroa.02973.0.insert.insert2997502710354, ptr %.7.i760502510355, align 1 - %3547 = getelementptr inbounds nuw i8, ptr %.7.i760502510355, i64 4 - %3548 = getelementptr inbounds nuw i8, ptr %.14.i759502410356, i64 4 + br i1 %3546, label %.lr.ph10341, label %.critedge6.i763.loopexit, !llvm.loop !178 + +.lr.ph10341: ; preds = %.lr.ph5028.preheader, %.lr.ph5028 + %.14.i759502410340 = phi ptr [ %3548, %.lr.ph5028 ], [ %.13.i757.lcssa, %.lr.ph5028.preheader ] + %.7.i760502510339 = phi ptr [ %3547, %.lr.ph5028 ], [ %.6.i758.lcssa, %.lr.ph5028.preheader ] + %.sroa.02973.0.insert.insert2997502710338 = phi i32 [ %.sroa.0.0.copyload.i889, %.lr.ph5028 ], [ %.sroa.213021.2.in.lcssa, %.lr.ph5028.preheader ] + store i32 %.sroa.02973.0.insert.insert2997502710338, ptr %.7.i760502510339, align 1 + %3547 = getelementptr inbounds nuw i8, ptr %.7.i760502510339, i64 4 + %3548 = getelementptr inbounds nuw i8, ptr %.14.i759502410340, i64 4 %.sroa.0.0.copyload.i889 = load i32, ptr %3548, align 1 %3549 = and i32 %.sroa.0.0.copyload.i889, -1061109512 %3550 = icmp ne i32 %3549, -2139062032 @@ -14951,7 +14951,7 @@ read_string.exit812: ; preds = %.split.loop.exit471 %or.cond292.i762 = or i1 %.not289.i761, %3550 br i1 %or.cond292.i762, label %..critedge6.i763.loopexit_crit_edge, label %.lr.ph5028, !llvm.loop !178 -..critedge6.i763.loopexit_crit_edge: ; preds = %.lr.ph10357 +..critedge6.i763.loopexit_crit_edge: ; preds = %.lr.ph10341 %3552 = trunc i32 %.sroa.0.0.copyload.i889 to i16 br label %.critedge6.i763, !llvm.loop !178 @@ -15184,8 +15184,8 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %read_number.exit535.thread .preheader4298thread-pre-split: ; preds = %.preheader4298thread-pre-split.lr.ph, %.preheader4298thread-pre-split - %.4327010348 = phi ptr [ %3632, %.preheader4298thread-pre-split.lr.ph ], [ %3637, %.preheader4298thread-pre-split ] - %3637 = getelementptr inbounds nuw i8, ptr %.4327010348, i64 1 + %.4327010332 = phi ptr [ %3632, %.preheader4298thread-pre-split.lr.ph ], [ %3637, %.preheader4298thread-pre-split ] + %3637 = getelementptr inbounds nuw i8, ptr %.4327010332, i64 1 %.pr7485 = load i8, ptr %3637, align 1, !tbaa !75 %3638 = icmp eq i8 %.pr7485, 48 br i1 %3638, label %.preheader4298thread-pre-split, label %.preheader4298._crit_edge, !prof !154, !llvm.loop !153 @@ -15194,14 +15194,14 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %3639, !llvm.loop !153 3639: ; preds = %.preheader4298._crit_edge, %.preheader4298.preheader - %.lcssa9997 = phi i8 [ %.pr7485, %.preheader4298._crit_edge ], [ %3633, %.preheader4298.preheader ] + %.lcssa9981 = phi i8 [ %.pr7485, %.preheader4298._crit_edge ], [ %3633, %.preheader4298.preheader ] %.43270.lcssa = phi ptr [ %3637, %.preheader4298._crit_edge ], [ %3632, %.preheader4298.preheader ] - %3640 = add i8 %.lcssa9997, -58 + %3640 = add i8 %.lcssa9981, -58 %.not3934 = icmp ult i8 %3640, -10 br i1 %.not3934, label %.thread7486, label %3641, !prof !4 3641: ; preds = %3639 - %3642 = zext nneg i8 %.lcssa9997 to i64 + %3642 = zext nneg i8 %.lcssa9981 to i64 %3643 = add nsw i64 %3642, -48 %3644 = getelementptr inbounds i8, ptr %.43270.lcssa, i64 -1 br label %4033 @@ -15218,7 +15218,7 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, .thread7486: ; preds = %3639, %3645 %.132677489 = phi ptr [ %3620, %3645 ], [ %.43270.lcssa, %3639 ] - %3648 = phi i8 [ %3621, %3645 ], [ %.lcssa9997, %3639 ] + %3648 = phi i8 [ %3621, %3645 ], [ %.lcssa9981, %3639 ] %3649 = and i8 %3648, -33 %.not3936.not = icmp eq i8 %3649, 69 br i1 %.not3936.not, label %3650, label %.loopexit4286, !prof !4 @@ -16406,8 +16406,8 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %read_number.exit535.thread .preheader4295thread-pre-split: ; preds = %.preheader4295thread-pre-split.lr.ph, %.preheader4295thread-pre-split - %.9327510351 = phi ptr [ %4308, %.preheader4295thread-pre-split.lr.ph ], [ %4313, %.preheader4295thread-pre-split ] - %4313 = getelementptr inbounds nuw i8, ptr %.9327510351, i64 1 + %.9327510335 = phi ptr [ %4308, %.preheader4295thread-pre-split.lr.ph ], [ %4313, %.preheader4295thread-pre-split ] + %4313 = getelementptr inbounds nuw i8, ptr %.9327510335, i64 1 %.pr7490 = load i8, ptr %4313, align 1, !tbaa !75 %4314 = icmp eq i8 %.pr7490, 48 br i1 %4314, label %.preheader4295thread-pre-split, label %.preheader4295..preheader4294_crit_edge, !llvm.loop !160 @@ -16416,14 +16416,14 @@ read_inf_or_nan.exit.thread: ; preds = %3583, %3608, %3609, br label %.preheader4294, !llvm.loop !160 .preheader4294: ; preds = %.preheader4295..preheader4294_crit_edge, %.preheader4295.preheader - %.lcssa9993 = phi i8 [ %.pr7490, %.preheader4295..preheader4294_crit_edge ], [ %4309, %.preheader4295.preheader ] + %.lcssa9977 = phi i8 [ %.pr7490, %.preheader4295..preheader4294_crit_edge ], [ %4309, %.preheader4295.preheader ] %.93275.lcssa = phi ptr [ %4313, %.preheader4295..preheader4294_crit_edge ], [ %4308, %.preheader4295.preheader ] - %4315 = add i8 %.lcssa9993, -58 + %4315 = add i8 %.lcssa9977, -58 %.not39724812 = icmp ult i8 %4315, -10 br i1 %.not39724812, label %._crit_edge4816, label %.lr.ph4815 .lr.ph4815: ; preds = %.preheader4294, %.lr.ph4815 - %4316 = phi i8 [ %4322, %.lr.ph4815 ], [ %.lcssa9993, %.preheader4294 ] + %4316 = phi i8 [ %4322, %.lr.ph4815 ], [ %.lcssa9977, %.preheader4294 ] %.0595.i4794814 = phi i64 [ %4321, %.lr.ph4815 ], [ 0, %.preheader4294 ] %.1032764813 = phi ptr [ %4317, %.lr.ph4815 ], [ %.93275.lcssa, %.preheader4294 ] %4317 = getelementptr inbounds nuw i8, ptr %.1032764813, i64 1 @@ -18673,8 +18673,8 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %read_number.exit.thread .preheader4163thread-pre-split: ; preds = %.preheader4163thread-pre-split.lr.ph, %.preheader4163thread-pre-split - %.410406 = phi ptr [ %5234, %.preheader4163thread-pre-split.lr.ph ], [ %5239, %.preheader4163thread-pre-split ] - %5239 = getelementptr inbounds nuw i8, ptr %.410406, i64 1 + %.410390 = phi ptr [ %5234, %.preheader4163thread-pre-split.lr.ph ], [ %5239, %.preheader4163thread-pre-split ] + %5239 = getelementptr inbounds nuw i8, ptr %.410390, i64 1 %.pr7510 = load i8, ptr %5239, align 1, !tbaa !75 %5240 = icmp eq i8 %.pr7510, 48 br i1 %5240, label %.preheader4163thread-pre-split, label %.preheader4163._crit_edge, !prof !154, !llvm.loop !153 @@ -18683,14 +18683,14 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %5241, !llvm.loop !153 5241: ; preds = %.preheader4163._crit_edge, %.preheader4163.preheader - %.lcssa9007 = phi i8 [ %.pr7510, %.preheader4163._crit_edge ], [ %5235, %.preheader4163.preheader ] + %.lcssa9003 = phi i8 [ %.pr7510, %.preheader4163._crit_edge ], [ %5235, %.preheader4163.preheader ] %.4.lcssa = phi ptr [ %5239, %.preheader4163._crit_edge ], [ %5234, %.preheader4163.preheader ] - %5242 = add i8 %.lcssa9007, -58 + %5242 = add i8 %.lcssa9003, -58 %.not3823 = icmp ult i8 %5242, -10 br i1 %.not3823, label %.thread7511, label %5243, !prof !4 5243: ; preds = %5241 - %5244 = zext nneg i8 %.lcssa9007 to i64 + %5244 = zext nneg i8 %.lcssa9003 to i64 %5245 = add nsw i64 %5244, -48 %5246 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %5635 @@ -18707,7 +18707,7 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, .thread7511: ; preds = %5241, %5247 %.132627514 = phi ptr [ %5222, %5247 ], [ %.4.lcssa, %5241 ] - %5250 = phi i8 [ %5223, %5247 ], [ %.lcssa9007, %5241 ] + %5250 = phi i8 [ %5223, %5247 ], [ %.lcssa9003, %5241 ] %5251 = and i8 %5250, -33 %.not3825.not = icmp eq i8 %5251, 69 br i1 %.not3825.not, label %5252, label %.loopexit4151, !prof !4 @@ -19895,8 +19895,8 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %read_number.exit.thread .preheader4160thread-pre-split: ; preds = %.preheader4160thread-pre-split.lr.ph, %.preheader4160thread-pre-split - %.910409 = phi ptr [ %5910, %.preheader4160thread-pre-split.lr.ph ], [ %5915, %.preheader4160thread-pre-split ] - %5915 = getelementptr inbounds nuw i8, ptr %.910409, i64 1 + %.910393 = phi ptr [ %5910, %.preheader4160thread-pre-split.lr.ph ], [ %5915, %.preheader4160thread-pre-split ] + %5915 = getelementptr inbounds nuw i8, ptr %.910393, i64 1 %.pr7515 = load i8, ptr %5915, align 1, !tbaa !75 %5916 = icmp eq i8 %.pr7515, 48 br i1 %5916, label %.preheader4160thread-pre-split, label %.preheader4160..preheader4159_crit_edge, !llvm.loop !160 @@ -19905,14 +19905,14 @@ read_inf_or_nan.exit855.thread: ; preds = %5185, %5210, %5211, br label %.preheader4159, !llvm.loop !160 .preheader4159: ; preds = %.preheader4160..preheader4159_crit_edge, %.preheader4160.preheader - %.lcssa9003 = phi i8 [ %.pr7515, %.preheader4160..preheader4159_crit_edge ], [ %5911, %.preheader4160.preheader ] + %.lcssa8999 = phi i8 [ %.pr7515, %.preheader4160..preheader4159_crit_edge ], [ %5911, %.preheader4160.preheader ] %.9.lcssa = phi ptr [ %5915, %.preheader4160..preheader4159_crit_edge ], [ %5910, %.preheader4160.preheader ] - %5917 = add i8 %.lcssa9003, -58 + %5917 = add i8 %.lcssa8999, -58 %.not38615658 = icmp ult i8 %5917, -10 br i1 %.not38615658, label %._crit_edge5662, label %.lr.ph5661 .lr.ph5661: ; preds = %.preheader4159, %.lr.ph5661 - %5918 = phi i8 [ %5924, %.lr.ph5661 ], [ %.lcssa9003, %.preheader4159 ] + %5918 = phi i8 [ %5924, %.lr.ph5661 ], [ %.lcssa8999, %.preheader4159 ] %.0595.i5660 = phi i64 [ %5923, %.lr.ph5661 ], [ 0, %.preheader4159 ] %.105659 = phi ptr [ %5919, %.lr.ph5661 ], [ %.9.lcssa, %.preheader4159 ] %5919 = getelementptr inbounds nuw i8, ptr %.105659, i64 1 @@ -22024,7 +22024,7 @@ read_number.exit: ; preds = %.loopexit4151, %542 %6954 = and i32 %.sroa.21.2.in.lcssa, 12291 %6955 = icmp eq i32 %6954, 0 %6956 = or i1 %6953, %6955 - br i1 %6956, label %.lr.ph10415, label %.critedge6.i + br i1 %6956, label %.lr.ph10399, label %.critedge6.i .lr.ph5863: ; preds = %.preheader4140, %.lr.ph5863 %.sroa.02506.25862.in = phi i32 [ %.sroa.0.0.copyload.i920, %.lr.ph5863 ], [ %storemerge.i594.lcssa, %.preheader4140 ] @@ -22042,21 +22042,21 @@ read_number.exit: ; preds = %.loopexit4151, %542 %6963 = and i1 %6960, %6962 br i1 %6963, label %.lr.ph5863, label %.preheader4139.loopexit, !llvm.loop !177 -.lr.ph5877: ; preds = %.lr.ph10415 +.lr.ph5877: ; preds = %.lr.ph10399 %6964 = and i32 %.sroa.0.0.copyload.i921, 4 %6965 = icmp eq i32 %6964, 0 %6966 = and i32 %.sroa.0.0.copyload.i921, 12291 %6967 = icmp eq i32 %6966, 0 %6968 = or i1 %6965, %6967 - br i1 %6968, label %.lr.ph10415, label %.critedge6.i.loopexit, !llvm.loop !178 - -.lr.ph10415: ; preds = %.lr.ph5877.preheader, %.lr.ph5877 - %.14.i599587310414 = phi ptr [ %6970, %.lr.ph5877 ], [ %.13.i597.lcssa, %.lr.ph5877.preheader ] - %.7.i600587410413 = phi ptr [ %6969, %.lr.ph5877 ], [ %.6.i598.lcssa, %.lr.ph5877.preheader ] - %.sroa.02506.0.insert.insert2530587610412 = phi i32 [ %.sroa.0.0.copyload.i921, %.lr.ph5877 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5877.preheader ] - store i32 %.sroa.02506.0.insert.insert2530587610412, ptr %.7.i600587410413, align 1 - %6969 = getelementptr inbounds nuw i8, ptr %.7.i600587410413, i64 4 - %6970 = getelementptr inbounds nuw i8, ptr %.14.i599587310414, i64 4 + br i1 %6968, label %.lr.ph10399, label %.critedge6.i.loopexit, !llvm.loop !178 + +.lr.ph10399: ; preds = %.lr.ph5877.preheader, %.lr.ph5877 + %.14.i599587310398 = phi ptr [ %6970, %.lr.ph5877 ], [ %.13.i597.lcssa, %.lr.ph5877.preheader ] + %.7.i600587410397 = phi ptr [ %6969, %.lr.ph5877 ], [ %.6.i598.lcssa, %.lr.ph5877.preheader ] + %.sroa.02506.0.insert.insert2530587610396 = phi i32 [ %.sroa.0.0.copyload.i921, %.lr.ph5877 ], [ %.sroa.21.2.in.lcssa, %.lr.ph5877.preheader ] + store i32 %.sroa.02506.0.insert.insert2530587610396, ptr %.7.i600587410397, align 1 + %6969 = getelementptr inbounds nuw i8, ptr %.7.i600587410397, i64 4 + %6970 = getelementptr inbounds nuw i8, ptr %.14.i599587310398, i64 4 %.sroa.0.0.copyload.i921 = load i32, ptr %6970, align 1 %6971 = and i32 %.sroa.0.0.copyload.i921, -1061109512 %6972 = icmp ne i32 %6971, -2139062032 @@ -22065,7 +22065,7 @@ read_number.exit: ; preds = %.loopexit4151, %542 %or.cond292.i = or i1 %.not289.i, %6972 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph5877, !llvm.loop !178 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10415 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph10399 %6974 = trunc i32 %.sroa.0.0.copyload.i921 to i16 br label %.critedge6.i, !llvm.loop !178 @@ -23708,7 +23708,7 @@ read_null.exit: ; preds = %7044 %7772 = and i32 %.sroa.212787.2.in.lcssa, 12291 %7773 = icmp eq i32 %7772, 0 %7774 = or i1 %7771, %7773 - br i1 %7774, label %.lr.ph10383, label %.critedge6.i679 + br i1 %7774, label %.lr.ph10367, label %.critedge6.i679 .lr.ph5396: ; preds = %.preheader4215, %.lr.ph5396 %.sroa.02739.25395.in = phi i32 [ %.sroa.0.0.copyload.i904, %.lr.ph5396 ], [ %storemerge.i669.lcssa, %.preheader4215 ] @@ -23726,21 +23726,21 @@ read_null.exit: ; preds = %7044 %7781 = and i1 %7778, %7780 br i1 %7781, label %.lr.ph5396, label %.preheader4214.loopexit, !llvm.loop !177 -.lr.ph5410: ; preds = %.lr.ph10383 +.lr.ph5410: ; preds = %.lr.ph10367 %7782 = and i32 %.sroa.0.0.copyload.i905, 4 %7783 = icmp eq i32 %7782, 0 %7784 = and i32 %.sroa.0.0.copyload.i905, 12291 %7785 = icmp eq i32 %7784, 0 %7786 = or i1 %7783, %7785 - br i1 %7786, label %.lr.ph10383, label %.critedge6.i679.loopexit, !llvm.loop !178 - -.lr.ph10383: ; preds = %.lr.ph5410.preheader, %.lr.ph5410 - %.14.i675540610382 = phi ptr [ %7788, %.lr.ph5410 ], [ %.13.i673.lcssa, %.lr.ph5410.preheader ] - %.7.i676540710381 = phi ptr [ %7787, %.lr.ph5410 ], [ %.6.i674.lcssa, %.lr.ph5410.preheader ] - %.sroa.02739.0.insert.insert2763540910380 = phi i32 [ %.sroa.0.0.copyload.i905, %.lr.ph5410 ], [ %.sroa.212787.2.in.lcssa, %.lr.ph5410.preheader ] - store i32 %.sroa.02739.0.insert.insert2763540910380, ptr %.7.i676540710381, align 1 - %7787 = getelementptr inbounds nuw i8, ptr %.7.i676540710381, i64 4 - %7788 = getelementptr inbounds nuw i8, ptr %.14.i675540610382, i64 4 + br i1 %7786, label %.lr.ph10367, label %.critedge6.i679.loopexit, !llvm.loop !178 + +.lr.ph10367: ; preds = %.lr.ph5410.preheader, %.lr.ph5410 + %.14.i675540610366 = phi ptr [ %7788, %.lr.ph5410 ], [ %.13.i673.lcssa, %.lr.ph5410.preheader ] + %.7.i676540710365 = phi ptr [ %7787, %.lr.ph5410 ], [ %.6.i674.lcssa, %.lr.ph5410.preheader ] + %.sroa.02739.0.insert.insert2763540910364 = phi i32 [ %.sroa.0.0.copyload.i905, %.lr.ph5410 ], [ %.sroa.212787.2.in.lcssa, %.lr.ph5410.preheader ] + store i32 %.sroa.02739.0.insert.insert2763540910364, ptr %.7.i676540710365, align 1 + %7787 = getelementptr inbounds nuw i8, ptr %.7.i676540710365, i64 4 + %7788 = getelementptr inbounds nuw i8, ptr %.14.i675540610366, i64 4 %.sroa.0.0.copyload.i905 = load i32, ptr %7788, align 1 %7789 = and i32 %.sroa.0.0.copyload.i905, -1061109512 %7790 = icmp ne i32 %7789, -2139062032 @@ -23749,7 +23749,7 @@ read_null.exit: ; preds = %7044 %or.cond292.i678 = or i1 %.not289.i677, %7790 br i1 %or.cond292.i678, label %..critedge6.i679.loopexit_crit_edge, label %.lr.ph5410, !llvm.loop !178 -..critedge6.i679.loopexit_crit_edge: ; preds = %.lr.ph10383 +..critedge6.i679.loopexit_crit_edge: ; preds = %.lr.ph10367 %7792 = trunc i32 %.sroa.0.0.copyload.i905 to i16 br label %.critedge6.i679, !llvm.loop !178 @@ -24888,7 +24888,7 @@ read_string.exit686: ; preds = %.split.loop.exit533 %8376 = and i32 %.sroa.212670.2.in.lcssa, 12291 %8377 = icmp eq i32 %8376, 0 %8378 = or i1 %8375, %8377 - br i1 %8378, label %.lr.ph10399, label %.critedge6.i637 + br i1 %8378, label %.lr.ph10383, label %.critedge6.i637 .lr.ph5631: ; preds = %.preheader4181, %.lr.ph5631 %.sroa.02622.25630.in = phi i32 [ %.sroa.0.0.copyload.i912, %.lr.ph5631 ], [ %storemerge.i627.lcssa, %.preheader4181 ] @@ -24906,21 +24906,21 @@ read_string.exit686: ; preds = %.split.loop.exit533 %8385 = and i1 %8382, %8384 br i1 %8385, label %.lr.ph5631, label %.preheader4180.loopexit, !llvm.loop !177 -.lr.ph5645: ; preds = %.lr.ph10399 +.lr.ph5645: ; preds = %.lr.ph10383 %8386 = and i32 %.sroa.0.0.copyload.i913, 4 %8387 = icmp eq i32 %8386, 0 %8388 = and i32 %.sroa.0.0.copyload.i913, 12291 %8389 = icmp eq i32 %8388, 0 %8390 = or i1 %8387, %8389 - br i1 %8390, label %.lr.ph10399, label %.critedge6.i637.loopexit, !llvm.loop !178 - -.lr.ph10399: ; preds = %.lr.ph5645.preheader, %.lr.ph5645 - %.14.i633564110398 = phi ptr [ %8392, %.lr.ph5645 ], [ %.13.i631.lcssa, %.lr.ph5645.preheader ] - %.7.i634564210397 = phi ptr [ %8391, %.lr.ph5645 ], [ %.6.i632.lcssa, %.lr.ph5645.preheader ] - %.sroa.02622.0.insert.insert2646564410396 = phi i32 [ %.sroa.0.0.copyload.i913, %.lr.ph5645 ], [ %.sroa.212670.2.in.lcssa, %.lr.ph5645.preheader ] - store i32 %.sroa.02622.0.insert.insert2646564410396, ptr %.7.i634564210397, align 1 - %8391 = getelementptr inbounds nuw i8, ptr %.7.i634564210397, i64 4 - %8392 = getelementptr inbounds nuw i8, ptr %.14.i633564110398, i64 4 + br i1 %8390, label %.lr.ph10383, label %.critedge6.i637.loopexit, !llvm.loop !178 + +.lr.ph10383: ; preds = %.lr.ph5645.preheader, %.lr.ph5645 + %.14.i633564110382 = phi ptr [ %8392, %.lr.ph5645 ], [ %.13.i631.lcssa, %.lr.ph5645.preheader ] + %.7.i634564210381 = phi ptr [ %8391, %.lr.ph5645 ], [ %.6.i632.lcssa, %.lr.ph5645.preheader ] + %.sroa.02622.0.insert.insert2646564410380 = phi i32 [ %.sroa.0.0.copyload.i913, %.lr.ph5645 ], [ %.sroa.212670.2.in.lcssa, %.lr.ph5645.preheader ] + store i32 %.sroa.02622.0.insert.insert2646564410380, ptr %.7.i634564210381, align 1 + %8391 = getelementptr inbounds nuw i8, ptr %.7.i634564210381, i64 4 + %8392 = getelementptr inbounds nuw i8, ptr %.14.i633564110382, i64 4 %.sroa.0.0.copyload.i913 = load i32, ptr %8392, align 1 %8393 = and i32 %.sroa.0.0.copyload.i913, -1061109512 %8394 = icmp ne i32 %8393, -2139062032 @@ -24929,7 +24929,7 @@ read_string.exit686: ; preds = %.split.loop.exit533 %or.cond292.i636 = or i1 %.not289.i635, %8394 br i1 %or.cond292.i636, label %..critedge6.i637.loopexit_crit_edge, label %.lr.ph5645, !llvm.loop !178 -..critedge6.i637.loopexit_crit_edge: ; preds = %.lr.ph10399 +..critedge6.i637.loopexit_crit_edge: ; preds = %.lr.ph10383 %8396 = trunc i32 %.sroa.0.0.copyload.i913 to i16 br label %.critedge6.i637, !llvm.loop !178 @@ -25162,8 +25162,8 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %read_number.exit325.thread .preheader4203thread-pre-split: ; preds = %.preheader4203thread-pre-split.lr.ph, %.preheader4203thread-pre-split - %.4330810390 = phi ptr [ %8476, %.preheader4203thread-pre-split.lr.ph ], [ %8481, %.preheader4203thread-pre-split ] - %8481 = getelementptr inbounds nuw i8, ptr %.4330810390, i64 1 + %.4330810374 = phi ptr [ %8476, %.preheader4203thread-pre-split.lr.ph ], [ %8481, %.preheader4203thread-pre-split ] + %8481 = getelementptr inbounds nuw i8, ptr %.4330810374, i64 1 %.pr7535 = load i8, ptr %8481, align 1, !tbaa !75 %8482 = icmp eq i8 %.pr7535, 48 br i1 %8482, label %.preheader4203thread-pre-split, label %.preheader4203._crit_edge, !prof !154, !llvm.loop !153 @@ -25172,14 +25172,14 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %8483, !llvm.loop !153 8483: ; preds = %.preheader4203._crit_edge, %.preheader4203.preheader - %.lcssa9232 = phi i8 [ %.pr7535, %.preheader4203._crit_edge ], [ %8477, %.preheader4203.preheader ] + %.lcssa9224 = phi i8 [ %.pr7535, %.preheader4203._crit_edge ], [ %8477, %.preheader4203.preheader ] %.43308.lcssa = phi ptr [ %8481, %.preheader4203._crit_edge ], [ %8476, %.preheader4203.preheader ] - %8484 = add i8 %.lcssa9232, -58 + %8484 = add i8 %.lcssa9224, -58 %.not3696 = icmp ult i8 %8484, -10 br i1 %.not3696, label %.thread7536, label %8485, !prof !4 8485: ; preds = %8483 - %8486 = zext nneg i8 %.lcssa9232 to i64 + %8486 = zext nneg i8 %.lcssa9224 to i64 %8487 = add nsw i64 %8486, -48 %8488 = getelementptr inbounds i8, ptr %.43308.lcssa, i64 -1 br label %8877 @@ -25196,7 +25196,7 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, .thread7536: ; preds = %8483, %8489 %.133057539 = phi ptr [ %8464, %8489 ], [ %.43308.lcssa, %8483 ] - %8492 = phi i8 [ %8465, %8489 ], [ %.lcssa9232, %8483 ] + %8492 = phi i8 [ %8465, %8489 ], [ %.lcssa9224, %8483 ] %8493 = and i8 %8492, -33 %.not3698.not = icmp eq i8 %8493, 69 br i1 %.not3698.not, label %8494, label %.loopexit4191, !prof !4 @@ -26384,8 +26384,8 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %read_number.exit325.thread .preheader4200thread-pre-split: ; preds = %.preheader4200thread-pre-split.lr.ph, %.preheader4200thread-pre-split - %.9331310393 = phi ptr [ %9152, %.preheader4200thread-pre-split.lr.ph ], [ %9157, %.preheader4200thread-pre-split ] - %9157 = getelementptr inbounds nuw i8, ptr %.9331310393, i64 1 + %.9331310377 = phi ptr [ %9152, %.preheader4200thread-pre-split.lr.ph ], [ %9157, %.preheader4200thread-pre-split ] + %9157 = getelementptr inbounds nuw i8, ptr %.9331310377, i64 1 %.pr7540 = load i8, ptr %9157, align 1, !tbaa !75 %9158 = icmp eq i8 %.pr7540, 48 br i1 %9158, label %.preheader4200thread-pre-split, label %.preheader4200..preheader4199_crit_edge, !llvm.loop !160 @@ -26394,14 +26394,14 @@ read_inf_or_nan.exit848.thread: ; preds = %8427, %8452, %8453, br label %.preheader4199, !llvm.loop !160 .preheader4199: ; preds = %.preheader4200..preheader4199_crit_edge, %.preheader4200.preheader - %.lcssa9228 = phi i8 [ %.pr7540, %.preheader4200..preheader4199_crit_edge ], [ %9153, %.preheader4200.preheader ] + %.lcssa9220 = phi i8 [ %.pr7540, %.preheader4200..preheader4199_crit_edge ], [ %9153, %.preheader4200.preheader ] %.93313.lcssa = phi ptr [ %9157, %.preheader4200..preheader4199_crit_edge ], [ %9152, %.preheader4200.preheader ] - %9159 = add i8 %.lcssa9228, -58 + %9159 = add i8 %.lcssa9220, -58 %.not37345429 = icmp ult i8 %9159, -10 br i1 %.not37345429, label %._crit_edge5433, label %.lr.ph5432 .lr.ph5432: ; preds = %.preheader4199, %.lr.ph5432 - %9160 = phi i8 [ %9166, %.lr.ph5432 ], [ %.lcssa9228, %.preheader4199 ] + %9160 = phi i8 [ %9166, %.lr.ph5432 ], [ %.lcssa9220, %.preheader4199 ] %.0595.i2695431 = phi i64 [ %9165, %.lr.ph5432 ], [ 0, %.preheader4199 ] %.1033145430 = phi ptr [ %9161, %.lr.ph5432 ], [ %.93313.lcssa, %.preheader4199 ] %9161 = getelementptr inbounds nuw i8, ptr %.1033145430, i64 1 @@ -28733,8 +28733,8 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.thread581._crit_edge.sink.split .preheader736thread-pre-split: ; preds = %.preheader736thread-pre-split.lr.ph, %.preheader736thread-pre-split - %.41643 = phi ptr [ %93, %.preheader736thread-pre-split.lr.ph ], [ %98, %.preheader736thread-pre-split ] - %98 = getelementptr inbounds nuw i8, ptr %.41643, i64 1 + %.41639 = phi ptr [ %93, %.preheader736thread-pre-split.lr.ph ], [ %98, %.preheader736thread-pre-split ] + %98 = getelementptr inbounds nuw i8, ptr %.41639, i64 1 %.pr = load i8, ptr %98, align 1, !tbaa !75 %99 = icmp eq i8 %.pr, 48 br i1 %99, label %.preheader736thread-pre-split, label %.preheader736._crit_edge, !prof !154, !llvm.loop !153 @@ -28743,14 +28743,14 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %100, !llvm.loop !153 100: ; preds = %.preheader736._crit_edge, %.preheader736.preheader - %.lcssa1642 = phi i8 [ %.pr, %.preheader736._crit_edge ], [ %94, %.preheader736.preheader ] + %.lcssa1638 = phi i8 [ %.pr, %.preheader736._crit_edge ], [ %94, %.preheader736.preheader ] %.4.lcssa = phi ptr [ %98, %.preheader736._crit_edge ], [ %93, %.preheader736.preheader ] - %101 = add i8 %.lcssa1642, -58 + %101 = add i8 %.lcssa1638, -58 %.not623 = icmp ult i8 %101, -10 br i1 %.not623, label %.thread, label %102, !prof !4 102: ; preds = %100 - %103 = zext nneg i8 %.lcssa1642 to i64 + %103 = zext nneg i8 %.lcssa1638 to i64 %104 = add nsw i64 %103, -48 %105 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %490 @@ -28766,7 +28766,7 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, .thread: ; preds = %100, %106 %.15791258 = phi ptr [ %81, %106 ], [ %.4.lcssa, %100 ] - %109 = phi i8 [ %82, %106 ], [ %.lcssa1642, %100 ] + %109 = phi i8 [ %82, %106 ], [ %.lcssa1638, %100 ] %110 = and i8 %109, -33 %.not625.not = icmp eq i8 %110, 69 br i1 %.not625.not, label %111, label %.loopexit724, !prof !4 @@ -29918,8 +29918,8 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.thread581._crit_edge.sink.split .preheader733thread-pre-split: ; preds = %.preheader733thread-pre-split.lr.ph, %.preheader733thread-pre-split - %.91645 = phi ptr [ %756, %.preheader733thread-pre-split.lr.ph ], [ %761, %.preheader733thread-pre-split ] - %761 = getelementptr inbounds nuw i8, ptr %.91645, i64 1 + %.91641 = phi ptr [ %756, %.preheader733thread-pre-split.lr.ph ], [ %761, %.preheader733thread-pre-split ] + %761 = getelementptr inbounds nuw i8, ptr %.91641, i64 1 %.pr1259 = load i8, ptr %761, align 1, !tbaa !75 %762 = icmp eq i8 %.pr1259, 48 br i1 %762, label %.preheader733thread-pre-split, label %.preheader733..preheader732_crit_edge, !llvm.loop !160 @@ -29928,14 +29928,14 @@ read_inf_or_nan.exit.thread: ; preds = %44, %69, %70, %73, br label %.preheader732, !llvm.loop !160 .preheader732: ; preds = %.preheader733..preheader732_crit_edge, %.preheader733.preheader - %.lcssa1638 = phi i8 [ %.pr1259, %.preheader733..preheader732_crit_edge ], [ %757, %.preheader733.preheader ] + %.lcssa1634 = phi i8 [ %.pr1259, %.preheader733..preheader732_crit_edge ], [ %757, %.preheader733.preheader ] %.9.lcssa = phi ptr [ %761, %.preheader733..preheader732_crit_edge ], [ %756, %.preheader733.preheader ] - %763 = add i8 %.lcssa1638, -58 + %763 = add i8 %.lcssa1634, -58 %.not661781 = icmp ult i8 %763, -10 br i1 %.not661781, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader732, %.lr.ph - %764 = phi i8 [ %770, %.lr.ph ], [ %.lcssa1638, %.preheader732 ] + %764 = phi i8 [ %770, %.lr.ph ], [ %.lcssa1634, %.preheader732 ] %.0595.i783 = phi i64 [ %769, %.lr.ph ], [ 0, %.preheader732 ] %.10782 = phi ptr [ %765, %.lr.ph ], [ %.9.lcssa, %.preheader732 ] %765 = getelementptr inbounds nuw i8, ptr %.10782, i64 1 @@ -31988,7 +31988,7 @@ read_number.exit: ; preds = %1238, %978 %1788 = and i32 %.sroa.21.2.in.lcssa, 12291 %1789 = icmp eq i32 %1788, 0 %1790 = or i1 %1787, %1789 - br i1 %1790, label %.lr.ph1651, label %.critedge6.i + br i1 %1790, label %.lr.ph1647, label %.critedge6.i .lr.ph978: ; preds = %.preheader715, %.lr.ph978 %.sroa.0.2977.in = phi i32 [ %.sroa.0.0.copyload.i203, %.lr.ph978 ], [ %storemerge.i186.lcssa, %.preheader715 ] @@ -32006,21 +32006,21 @@ read_number.exit: ; preds = %1238, %978 %1797 = and i1 %1794, %1796 br i1 %1797, label %.lr.ph978, label %.preheader714.loopexit, !llvm.loop !177 -.lr.ph992: ; preds = %.lr.ph1651 +.lr.ph992: ; preds = %.lr.ph1647 %1798 = and i32 %.sroa.0.0.copyload.i204, 4 %1799 = icmp eq i32 %1798, 0 %1800 = and i32 %.sroa.0.0.copyload.i204, 12291 %1801 = icmp eq i32 %1800, 0 %1802 = or i1 %1799, %1801 - br i1 %1802, label %.lr.ph1651, label %.critedge6.i.loopexit, !llvm.loop !178 - -.lr.ph1651: ; preds = %.lr.ph992.preheader, %.lr.ph992 - %.14.i1919881650 = phi ptr [ %1804, %.lr.ph992 ], [ %.13.i189.lcssa, %.lr.ph992.preheader ] - %.7.i1929891649 = phi ptr [ %1803, %.lr.ph992 ], [ %.6.i190.lcssa, %.lr.ph992.preheader ] - %.sroa.0.0.insert.insert4729911648 = phi i32 [ %.sroa.0.0.copyload.i204, %.lr.ph992 ], [ %.sroa.21.2.in.lcssa, %.lr.ph992.preheader ] - store i32 %.sroa.0.0.insert.insert4729911648, ptr %.7.i1929891649, align 1 - %1803 = getelementptr inbounds nuw i8, ptr %.7.i1929891649, i64 4 - %1804 = getelementptr inbounds nuw i8, ptr %.14.i1919881650, i64 4 + br i1 %1802, label %.lr.ph1647, label %.critedge6.i.loopexit, !llvm.loop !178 + +.lr.ph1647: ; preds = %.lr.ph992.preheader, %.lr.ph992 + %.14.i1919881646 = phi ptr [ %1804, %.lr.ph992 ], [ %.13.i189.lcssa, %.lr.ph992.preheader ] + %.7.i1929891645 = phi ptr [ %1803, %.lr.ph992 ], [ %.6.i190.lcssa, %.lr.ph992.preheader ] + %.sroa.0.0.insert.insert4729911644 = phi i32 [ %.sroa.0.0.copyload.i204, %.lr.ph992 ], [ %.sroa.21.2.in.lcssa, %.lr.ph992.preheader ] + store i32 %.sroa.0.0.insert.insert4729911644, ptr %.7.i1929891645, align 1 + %1803 = getelementptr inbounds nuw i8, ptr %.7.i1929891645, i64 4 + %1804 = getelementptr inbounds nuw i8, ptr %.14.i1919881646, i64 4 %.sroa.0.0.copyload.i204 = load i32, ptr %1804, align 1 %1805 = and i32 %.sroa.0.0.copyload.i204, -1061109512 %1806 = icmp ne i32 %1805, -2139062032 @@ -32029,7 +32029,7 @@ read_number.exit: ; preds = %1238, %978 %or.cond292.i = or i1 %.not289.i, %1806 br i1 %or.cond292.i, label %..critedge6.i.loopexit_crit_edge, label %.lr.ph992, !llvm.loop !178 -..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1651 +..critedge6.i.loopexit_crit_edge: ; preds = %.lr.ph1647 %1808 = trunc i32 %.sroa.0.0.copyload.i204 to i16 br label %.critedge6.i, !llvm.loop !178 @@ -33036,8 +33036,8 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader371thread-pre-split, !llvm.loop !153 .preheader371thread-pre-split: ; preds = %.preheader371thread-pre-split.lr.ph, %.preheader371thread-pre-split - %.4736 = phi ptr [ %80, %.preheader371thread-pre-split.lr.ph ], [ %84, %.preheader371thread-pre-split ] - %84 = getelementptr inbounds nuw i8, ptr %.4736, i64 1 + %.4732 = phi ptr [ %80, %.preheader371thread-pre-split.lr.ph ], [ %84, %.preheader371thread-pre-split ] + %84 = getelementptr inbounds nuw i8, ptr %.4732, i64 1 %.pr = load i8, ptr %84, align 1, !tbaa !75 %85 = icmp eq i8 %.pr, 48 br i1 %85, label %.preheader371thread-pre-split, label %.preheader371._crit_edge, !prof !154, !llvm.loop !153 @@ -33046,14 +33046,14 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %86, !llvm.loop !153 86: ; preds = %.preheader371._crit_edge, %.preheader371.preheader - %.lcssa735 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %81, %.preheader371.preheader ] + %.lcssa731 = phi i8 [ %.pr, %.preheader371._crit_edge ], [ %81, %.preheader371.preheader ] %.4.lcssa = phi ptr [ %84, %.preheader371._crit_edge ], [ %80, %.preheader371.preheader ] - %87 = add i8 %.lcssa735, -58 + %87 = add i8 %.lcssa731, -58 %.not309 = icmp ult i8 %87, -10 br i1 %.not309, label %.thread652, label %88, !prof !4 88: ; preds = %86 - %89 = zext nneg i8 %.lcssa735 to i64 + %89 = zext nneg i8 %.lcssa731 to i64 %90 = add nsw i64 %89, -48 %91 = getelementptr inbounds i8, ptr %.4.lcssa, i64 -1 br label %475 @@ -33065,7 +33065,7 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 .thread652: ; preds = %86, %92 %.1655 = phi ptr [ %68, %92 ], [ %.4.lcssa, %86 ] - %94 = phi i8 [ %69, %92 ], [ %.lcssa735, %86 ] + %94 = phi i8 [ %69, %92 ], [ %.lcssa731, %86 ] %95 = and i8 %94, -33 %.not311.not = icmp eq i8 %95, 69 br i1 %.not311.not, label %96, label %.loopexit, !prof !4 @@ -34197,8 +34197,8 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader368thread-pre-split, !llvm.loop !160 .preheader368thread-pre-split: ; preds = %.preheader368thread-pre-split.lr.ph, %.preheader368thread-pre-split - %.9738 = phi ptr [ %740, %.preheader368thread-pre-split.lr.ph ], [ %744, %.preheader368thread-pre-split ] - %744 = getelementptr inbounds nuw i8, ptr %.9738, i64 1 + %.9734 = phi ptr [ %740, %.preheader368thread-pre-split.lr.ph ], [ %744, %.preheader368thread-pre-split ] + %744 = getelementptr inbounds nuw i8, ptr %.9734, i64 1 %.pr656 = load i8, ptr %744, align 1, !tbaa !75 %745 = icmp eq i8 %.pr656, 48 br i1 %745, label %.preheader368thread-pre-split, label %.preheader368..preheader367_crit_edge, !llvm.loop !160 @@ -34207,14 +34207,14 @@ read_inf_or_nan.exit: ; preds = %read_inf.exit, %63 br label %.preheader367, !llvm.loop !160 .preheader367: ; preds = %.preheader368..preheader367_crit_edge, %.preheader368.preheader - %.lcssa731 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %741, %.preheader368.preheader ] + %.lcssa727 = phi i8 [ %.pr656, %.preheader368..preheader367_crit_edge ], [ %741, %.preheader368.preheader ] %.9.lcssa = phi ptr [ %744, %.preheader368..preheader367_crit_edge ], [ %740, %.preheader368.preheader ] - %746 = add i8 %.lcssa731, -58 + %746 = add i8 %.lcssa727, -58 %.not347379 = icmp ult i8 %746, -10 br i1 %.not347379, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader367, %.lr.ph - %747 = phi i8 [ %753, %.lr.ph ], [ %.lcssa731, %.preheader367 ] + %747 = phi i8 [ %753, %.lr.ph ], [ %.lcssa727, %.preheader367 ] %.0595.i381 = phi i64 [ %752, %.lr.ph ], [ 0, %.preheader367 ] %.10380 = phi ptr [ %748, %.lr.ph ], [ %.9.lcssa, %.preheader367 ] %748 = getelementptr inbounds nuw i8, ptr %.10380, i64 1