From fb44d061da869b84cae24b2a489b511fa572b2b0 Mon Sep 17 00:00:00 2001 From: andjo403 <844398+andjo403@users.noreply.github.com> Date: Sat, 23 Aug 2025 18:16:56 +0800 Subject: [PATCH 1/3] pre-commit: PR155087 --- 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 c5409e09ef4..0cbc7fa5b17 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/155087 export COMPTIME_MODE=0 # Please rebase manually From d2b825d013c4d071b91ad2dfa7a8ccc3d2c037be Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 Aug 2025 10:32:55 +0000 Subject: [PATCH 2/3] pre-commit: Update --- .../optimized/91ojamjedp83lpe0pc0cw0okj.ll | 404 ++++++------- .../optimized/aa0f6okxl6jzwxndw38ja55fd.ll | 348 +++++------ bench/typst-rs/optimized/2i78fvbm4wocuesi.ll | 539 +++++++++--------- 3 files changed, 645 insertions(+), 646 deletions(-) diff --git a/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll b/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll index 2c355f136d6..b2aaf4fd0fb 100644 --- a/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll +++ b/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll @@ -224127,8 +224127,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !43175 unreachable -common.resume: ; preds = %39, %19, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %19 ], [ %lpad.thr_comm.split-lp, %39 ] +common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit: ; preds = %3 @@ -224137,82 +224137,83 @@ _ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %22 unwind label %19 + to label %20 unwind label %switch.early.test -19: ; preds = %28, %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } +switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit, %26 + %lpad.thr_comm = landingpad { ptr, i32 } cleanup - %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 - %21 = and i8 %20, 1 - %or.cond30.not = icmp eq i8 %21, 0 - br i1 %or.cond30.not, label %common.resume, label %39 + %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %19, label %37 [ + i8 2, label %common.resume + i8 0, label %common.resume + ] -22: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit - %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %24 - i8 0, label %31 +20: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit + %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %22 + i8 0, label %29 ] -24: ; preds = %22 - %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %27 = icmp eq ptr %26, null - br i1 %27, label %28, label %35, !prof !8 +22: ; preds = %20 + %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %33, !prof !8 -28: ; preds = %24 +26: ; preds = %22 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %19 + to label %.noexc unwind label %switch.early.test -.noexc: ; preds = %28 +.noexc: ; preds = %26 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 - %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 + %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %38 + br label %36 -31: ; preds = %22 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %33, ptr %34, align 1 - br label %38 +29: ; preds = %20 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %31, ptr %32, align 1 + br label %36 -35: ; preds = %24 - store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 - %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 - store i64 0, ptr %36, align 8 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %37, align 8 +33: ; preds = %22 + store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 + %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 0, ptr %34, align 8 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %35, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %38 + br label %36 -38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 - %.sink = phi i8 [ 0, %31 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %35 ] +36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 + %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -39: ; preds = %19 - %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 - to label %common.resume unwind label %41 +37: ; preds = %switch.early.test + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 + to label %common.resume unwind label %39 -41: ; preds = %39 - %42 = landingpad { ptr, i32 } +39: ; preds = %37 + %40 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -230038,8 +230039,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !43448 unreachable -common.resume: ; preds = %39, %19, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %19 ], [ %lpad.thr_comm.split-lp, %39 ] +common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit: ; preds = %3 @@ -230048,82 +230049,83 @@ _ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %22 unwind label %19 + to label %20 unwind label %switch.early.test -19: ; preds = %28, %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } +switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit, %26 + %lpad.thr_comm = landingpad { ptr, i32 } cleanup - %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 - %21 = and i8 %20, 1 - %or.cond30.not = icmp eq i8 %21, 0 - br i1 %or.cond30.not, label %common.resume, label %39 + %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %19, label %37 [ + i8 2, label %common.resume + i8 0, label %common.resume + ] -22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit - %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %24 - i8 0, label %31 +20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit + %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %22 + i8 0, label %29 ] -24: ; preds = %22 - %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %27 = icmp eq ptr %26, null - br i1 %27, label %28, label %35, !prof !8 +22: ; preds = %20 + %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %33, !prof !8 -28: ; preds = %24 +26: ; preds = %22 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %19 + to label %.noexc unwind label %switch.early.test -.noexc: ; preds = %28 +.noexc: ; preds = %26 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 - %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 + %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %38 + br label %36 -31: ; preds = %22 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %33, ptr %34, align 1 - br label %38 +29: ; preds = %20 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %31, ptr %32, align 1 + br label %36 -35: ; preds = %24 - store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 - %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 - store i64 0, ptr %36, align 8 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %37, align 8 +33: ; preds = %22 + store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 + %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 0, ptr %34, align 8 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %35, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %38 + br label %36 -38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 - %.sink = phi i8 [ 0, %31 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %35 ] +36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 + %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -39: ; preds = %19 - %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 - to label %common.resume unwind label %41 +37: ; preds = %switch.early.test + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 + to label %common.resume unwind label %39 -41: ; preds = %39 - %42 = landingpad { ptr, i32 } +39: ; preds = %37 + %40 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -254693,8 +254695,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !44563 unreachable -common.resume: ; preds = %39, %19, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %19 ], [ %lpad.thr_comm.split-lp, %39 ] +common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit: ; preds = %3 @@ -254703,82 +254705,83 @@ _ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %22 unwind label %19 + to label %20 unwind label %switch.early.test -19: ; preds = %28, %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } +switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit, %26 + %lpad.thr_comm = landingpad { ptr, i32 } cleanup - %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 - %21 = and i8 %20, 1 - %or.cond30.not = icmp eq i8 %21, 0 - br i1 %or.cond30.not, label %common.resume, label %39 + %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %19, label %37 [ + i8 2, label %common.resume + i8 0, label %common.resume + ] -22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit - %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %24 - i8 0, label %31 +20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit + %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %22 + i8 0, label %29 ] -24: ; preds = %22 - %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %27 = icmp eq ptr %26, null - br i1 %27, label %28, label %35, !prof !8 +22: ; preds = %20 + %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %33, !prof !8 -28: ; preds = %24 +26: ; preds = %22 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %19 + to label %.noexc unwind label %switch.early.test -.noexc: ; preds = %28 +.noexc: ; preds = %26 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 - %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 + %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %38 + br label %36 -31: ; preds = %22 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %33, ptr %34, align 1 - br label %38 +29: ; preds = %20 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %31, ptr %32, align 1 + br label %36 -35: ; preds = %24 - store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 - %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 - store i64 0, ptr %36, align 8 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %37, align 8 +33: ; preds = %22 + store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 + %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 0, ptr %34, align 8 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %35, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %38 + br label %36 -38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 - %.sink = phi i8 [ 0, %31 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %35 ] +36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 + %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -39: ; preds = %19 - %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 - to label %common.resume unwind label %41 +37: ; preds = %switch.early.test + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 + to label %common.resume unwind label %39 -41: ; preds = %39 - %42 = landingpad { ptr, i32 } +39: ; preds = %37 + %40 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -271092,8 +271095,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !45343 unreachable -common.resume: ; preds = %39, %19, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %19 ], [ %lpad.thr_comm.split-lp, %39 ] +common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit: ; preds = %3 @@ -271102,82 +271105,83 @@ _ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %22 unwind label %19 + to label %20 unwind label %switch.early.test -19: ; preds = %28, %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } +switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit, %26 + %lpad.thr_comm = landingpad { ptr, i32 } cleanup - %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 - %21 = and i8 %20, 1 - %or.cond30.not = icmp eq i8 %21, 0 - br i1 %or.cond30.not, label %common.resume, label %39 + %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %19, label %37 [ + i8 2, label %common.resume + i8 0, label %common.resume + ] -22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit - %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %24 - i8 0, label %31 +20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit + %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %22 + i8 0, label %29 ] -24: ; preds = %22 - %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %27 = icmp eq ptr %26, null - br i1 %27, label %28, label %35, !prof !8 +22: ; preds = %20 + %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %33, !prof !8 -28: ; preds = %24 +26: ; preds = %22 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %19 + to label %.noexc unwind label %switch.early.test -.noexc: ; preds = %28 +.noexc: ; preds = %26 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 - %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 + %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %38 + br label %36 -31: ; preds = %22 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %33, ptr %34, align 1 - br label %38 +29: ; preds = %20 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %31, ptr %32, align 1 + br label %36 -35: ; preds = %24 - store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 - %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 - store i64 0, ptr %36, align 8 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %37, align 8 +33: ; preds = %22 + store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 + %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 0, ptr %34, align 8 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %35, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %38 + br label %36 -38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 - %.sink = phi i8 [ 0, %31 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %35 ] +36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 + %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -39: ; preds = %19 - %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 - to label %common.resume unwind label %41 +37: ; preds = %switch.early.test + %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 + to label %common.resume unwind label %39 -41: ; preds = %39 - %42 = landingpad { ptr, i32 } +39: ; preds = %37 + %40 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable diff --git a/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll b/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll index 906d451de0f..88ec3a3d5e3 100644 --- a/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll +++ b/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll @@ -5185,7 +5185,7 @@ define hidden noundef zeroext i1 @_ZN11quinn_proto10connection4mtud12MtuDiscover %16 = alloca [48 x i8], align 8 %17 = alloca [24 x i8], align 8 %.not = icmp eq i8 %1, 2 - br i1 %.not, label %18, label %112 + br i1 %.not, label %18, label %109 18: ; preds = %4 %19 = getelementptr inbounds nuw i8, ptr %0, i64 64 @@ -5194,171 +5194,175 @@ define hidden noundef zeroext i1 @_ZN11quinn_proto10connection4mtud12MtuDiscover br i1 %.not89, label %.thread, label %21 21: ; preds = %18 - %22 = add nsw i64 %20, -2 - %23 = icmp ugt i64 %22, 2 - %24 = icmp ne i64 %22, 1 - tail call void @llvm.assume(i1 %24) - %25 = trunc nuw i64 %20 to i1 - %or.cond.i = select i1 %23, i1 %25, i1 false - %26 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %27 = load i64, ptr %26, align 8, !alias.scope !298 - %28 = icmp eq i64 %27, %2 - %or.cond8.i = select i1 %or.cond.i, i1 %28, i1 false - br i1 %or.cond8.i, label %29, label %.thread - -29: ; preds = %21 - store i64 0, ptr %19, align 8, !alias.scope !298 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 80 - store i64 0, ptr %30, align 8, !alias.scope !298 - %31 = getelementptr inbounds nuw i8, ptr %0, i64 94 - %32 = load i16, ptr %31, align 2, !alias.scope !298, !noundef !3 - %33 = getelementptr inbounds nuw i8, ptr %0, i64 144 - store i16 %32, ptr %33, align 8 - %34 = load atomic i64, ptr @_ZN12tracing_core8metadata9MAX_LEVEL17h9e420ea5df983dc6E monotonic, align 8 - %.not91 = icmp eq i64 %34, 5 - br i1 %.not91, label %.critedge, label %40 + %22 = icmp ne i64 %20, 3 + tail call void @llvm.assume(i1 %22) + %23 = getelementptr inbounds nuw i8, ptr %0, i64 72 + %24 = load i64, ptr %23, align 8, !alias.scope !298 + %.fr.i = freeze i64 %24 + %25 = icmp eq i64 %.fr.i, %2 + br i1 %25, label %switch.early.test.i, label %.thread + +switch.early.test.i: ; preds = %21 + switch i64 %20, label %26 [ + i64 4, label %.thread + i64 3, label %.thread + i64 2, label %.thread + i64 0, label %.thread + ] -.thread: ; preds = %21, %18 +26: ; preds = %switch.early.test.i + store i64 0, ptr %19, align 8, !alias.scope !298 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 80 + store i64 0, ptr %27, align 8, !alias.scope !298 + %28 = getelementptr inbounds nuw i8, ptr %0, i64 94 + %29 = load i16, ptr %28, align 2, !alias.scope !298, !noundef !3 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 144 + store i16 %29, ptr %30, align 8 + %31 = load atomic i64, ptr @_ZN12tracing_core8metadata9MAX_LEVEL17h9e420ea5df983dc6E monotonic, align 8 + %.not91 = icmp eq i64 %31, 5 + br i1 %.not91, label %.critedge, label %37 + +.thread: ; preds = %21, %switch.early.test.i, %switch.early.test.i, %switch.early.test.i, %switch.early.test.i, %18 tail call void @llvm.experimental.noalias.scope.decl(metadata !301) call void @llvm.lifetime.start.p0(ptr nonnull %5) store i16 %3, ptr %5, align 2, !noalias !301 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 56 - %36 = load i16, ptr %35, align 8, !alias.scope !301, !noundef !3 - %.not.i = icmp ugt i16 %3, %36 - br i1 %.not.i, label %37, label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit - -37: ; preds = %.thread - store i16 %3, ptr %35, align 8, !alias.scope !301 - %38 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store i64 %2, ptr %38, align 8, !alias.scope !301 - %39 = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6retain17h0160155d9a2a770dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39, ptr noalias noundef nonnull readonly align 2 dereferenceable(2) %5) + %32 = getelementptr inbounds nuw i8, ptr %0, i64 56 + %33 = load i16, ptr %32, align 8, !alias.scope !301, !noundef !3 + %.not.i = icmp ugt i16 %3, %33 + br i1 %.not.i, label %34, label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit + +34: ; preds = %.thread + store i16 %3, ptr %32, align 8, !alias.scope !301 + %35 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store i64 %2, ptr %35, align 8, !alias.scope !301 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6retain17h0160155d9a2a770dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %36, ptr noalias noundef nonnull readonly align 2 dereferenceable(2) %5) br label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit -_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit: ; preds = %.thread, %37 +_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit: ; preds = %.thread, %34 call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %112 + br label %109 -40: ; preds = %29 - %41 = icmp ult i64 %34, 5 - tail call void @llvm.assume(i1 %41) - %42 = icmp eq i64 %34, 0 - br i1 %42, label %43, label %.critedge +37: ; preds = %26 + %38 = icmp ult i64 %31, 5 + tail call void @llvm.assume(i1 %38) + %39 = icmp eq i64 %31, 0 + br i1 %39, label %40, label %.critedge -43: ; preds = %40 - %44 = load atomic i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, i64 16) monotonic, align 8 - switch i8 %44, label %45 [ +40: ; preds = %37 + %41 = load atomic i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, i64 16) monotonic, align 8 + switch i8 %41, label %42 [ i8 0, label %.critedge i8 1, label %.thread107 i8 2, label %.thread107 ], !prof !58 -45: ; preds = %43 - %46 = tail call noundef i8 @_ZN12tracing_core8callsite15DefaultCallsite8register17h2255f81eb7667e37E(ptr noundef nonnull align 8 @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E) - %47 = icmp eq i8 %46, 0 - br i1 %47, label %.critedge, label %.thread107 +42: ; preds = %40 + %43 = tail call noundef i8 @_ZN12tracing_core8callsite15DefaultCallsite8register17h2255f81eb7667e37E(ptr noundef nonnull align 8 @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E) + %44 = icmp eq i8 %43, 0 + br i1 %44, label %.critedge, label %.thread107 -.thread107: ; preds = %43, %43, %45 - %.sroa.06.0109 = phi i8 [ %46, %45 ], [ %44, %43 ], [ %44, %43 ] - %48 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %49 = tail call noundef zeroext i1 @_ZN7tracing15__macro_support12__is_enabled17h79c82975f1d755d5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %48, i8 noundef %.sroa.06.0109) - br i1 %49, label %50, label %.critedge +.thread107: ; preds = %40, %40, %42 + %.sroa.06.0109 = phi i8 [ %43, %42 ], [ %41, %40 ], [ %41, %40 ] + %45 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %46 = tail call noundef zeroext i1 @_ZN7tracing15__macro_support12__is_enabled17h79c82975f1d755d5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %45, i8 noundef %.sroa.06.0109) + br i1 %46, label %47, label %.critedge -50: ; preds = %.thread107 +47: ; preds = %.thread107 call void @llvm.lifetime.start.p0(ptr nonnull %17) - %51 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %52 = getelementptr inbounds nuw i8, ptr %51, i64 48 - %53 = load ptr, ptr %52, align 8, !nonnull !3, !align !4, !noundef !3 - %54 = getelementptr inbounds nuw i8, ptr %51, i64 56 - %55 = load i64, ptr %54, align 8, !noundef !3 - %56 = getelementptr inbounds nuw i8, ptr %51, i64 64 - %57 = load ptr, ptr %56, align 8, !nonnull !3, !align !9, !noundef !3 - %58 = getelementptr inbounds nuw i8, ptr %51, i64 72 - %59 = load ptr, ptr %58, align 8, !nonnull !3, !align !4, !noundef !3 + %48 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %49 = getelementptr inbounds nuw i8, ptr %48, i64 48 + %50 = load ptr, ptr %49, align 8, !nonnull !3, !align !4, !noundef !3 + %51 = getelementptr inbounds nuw i8, ptr %48, i64 56 + %52 = load i64, ptr %51, align 8, !noundef !3 + %53 = getelementptr inbounds nuw i8, ptr %48, i64 64 + %54 = load ptr, ptr %53, align 8, !nonnull !3, !align !9, !noundef !3 + %55 = getelementptr inbounds nuw i8, ptr %48, i64 72 + %56 = load ptr, ptr %55, align 8, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %16) call void @llvm.lifetime.start.p0(ptr nonnull %15) - %.not92 = icmp eq i64 %55, 0 - br i1 %.not92, label %108, label %103 - -.critedge: ; preds = %43, %29, %45, %.thread107, %40 - %60 = load atomic i8, ptr @_ZN12tracing_core10dispatcher6EXISTS17h4bd33b52b8179ae2E monotonic, align 1 - %61 = icmp eq i8 %60, 0 - br i1 %61, label %62, label %99 - -62: ; preds = %.critedge - %63 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17h8c83adbf44bff488E monotonic, align 8 - %64 = icmp ult i64 %63, 6 - tail call void @llvm.assume(i1 %64) - %65 = icmp samesign ugt i64 %63, 4 - br i1 %65, label %66, label %99 - -66: ; preds = %62 - %67 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %68 = getelementptr inbounds nuw i8, ptr %67, i64 32 - %69 = load ptr, ptr %68, align 8, !nonnull !3, !align !9, !noundef !3 - %70 = getelementptr inbounds nuw i8, ptr %67, i64 40 - %71 = load i64, ptr %70, align 8, !noundef !3 + %.not92 = icmp eq i64 %52, 0 + br i1 %.not92, label %105, label %100 + +.critedge: ; preds = %40, %26, %42, %.thread107, %37 + %57 = load atomic i8, ptr @_ZN12tracing_core10dispatcher6EXISTS17h4bd33b52b8179ae2E monotonic, align 1 + %58 = icmp eq i8 %57, 0 + br i1 %58, label %59, label %96 + +59: ; preds = %.critedge + %60 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17h8c83adbf44bff488E monotonic, align 8 + %61 = icmp ult i64 %60, 6 + tail call void @llvm.assume(i1 %61) + %62 = icmp samesign ugt i64 %60, 4 + br i1 %62, label %63, label %96 + +63: ; preds = %59 + %64 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %65 = getelementptr inbounds nuw i8, ptr %64, i64 32 + %66 = load ptr, ptr %65, align 8, !nonnull !3, !align !9, !noundef !3 + %67 = getelementptr inbounds nuw i8, ptr %64, i64 40 + %68 = load i64, ptr %67, align 8, !noundef !3 store i64 5, ptr %12, align 8 %.sroa.530.0..sroa_idx31 = getelementptr inbounds nuw i8, ptr %12, i64 8 - store ptr %69, ptr %.sroa.530.0..sroa_idx31, align 8 + store ptr %66, ptr %.sroa.530.0..sroa_idx31, align 8 %.sroa.633.0..sroa_idx34 = getelementptr inbounds nuw i8, ptr %12, i64 16 - store i64 %71, ptr %.sroa.633.0..sroa_idx34, align 8 - %72 = tail call { ptr, ptr } @_ZN3log6logger17hee1dafc15e2b57e5E() - %73 = extractvalue { ptr, ptr } %72, 0 - %74 = extractvalue { ptr, ptr } %72, 1 - %75 = getelementptr inbounds nuw i8, ptr %74, i64 24 - %76 = load ptr, ptr %75, align 8, !invariant.load !3, !nonnull !3 - %77 = call noundef zeroext i1 %76(ptr noundef align 1 %73, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) - br i1 %77, label %78, label %99 - -78: ; preds = %66 + store i64 %68, ptr %.sroa.633.0..sroa_idx34, align 8 + %69 = tail call { ptr, ptr } @_ZN3log6logger17hee1dafc15e2b57e5E() + %70 = extractvalue { ptr, ptr } %69, 0 + %71 = extractvalue { ptr, ptr } %69, 1 + %72 = getelementptr inbounds nuw i8, ptr %71, i64 24 + %73 = load ptr, ptr %72, align 8, !invariant.load !3, !nonnull !3 + %74 = call noundef zeroext i1 %73(ptr noundef align 1 %70, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) + br i1 %74, label %75, label %96 + +75: ; preds = %63 call void @llvm.lifetime.start.p0(ptr nonnull %11) - %79 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %80 = getelementptr inbounds nuw i8, ptr %79, i64 48 - %81 = load ptr, ptr %80, align 8, !nonnull !3, !align !4, !noundef !3 - %82 = getelementptr inbounds nuw i8, ptr %79, i64 56 - %83 = load i64, ptr %82, align 8, !noundef !3 - %84 = getelementptr inbounds nuw i8, ptr %79, i64 64 - %85 = load ptr, ptr %84, align 8, !nonnull !3, !align !9, !noundef !3 - %86 = getelementptr inbounds nuw i8, ptr %79, i64 72 - %87 = load ptr, ptr %86, align 8, !nonnull !3, !align !4, !noundef !3 + %76 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %77 = getelementptr inbounds nuw i8, ptr %76, i64 48 + %78 = load ptr, ptr %77, align 8, !nonnull !3, !align !4, !noundef !3 + %79 = getelementptr inbounds nuw i8, ptr %76, i64 56 + %80 = load i64, ptr %79, align 8, !noundef !3 + %81 = getelementptr inbounds nuw i8, ptr %76, i64 64 + %82 = load ptr, ptr %81, align 8, !nonnull !3, !align !9, !noundef !3 + %83 = getelementptr inbounds nuw i8, ptr %76, i64 72 + %84 = load ptr, ptr %83, align 8, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %9) - %.not95 = icmp eq i64 %83, 0 - br i1 %.not95, label %93, label %88 + %.not95 = icmp eq i64 %80, 0 + br i1 %.not95, label %90, label %85 -88: ; preds = %78 +85: ; preds = %75 %.sroa.641.0..sroa_idx42 = getelementptr inbounds nuw i8, ptr %9, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.641.0..sroa_idx42, ptr noundef nonnull align 8 dereferenceable(24) %82, i64 24, i1 false) - store ptr %81, ptr %9, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.641.0..sroa_idx42, ptr noundef nonnull align 8 dereferenceable(24) %79, i64 24, i1 false) + store ptr %78, ptr %9, align 8 %.sroa.641.sroa.4.0..sroa.641.0..sroa_idx42.sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 32 store i64 0, ptr %.sroa.641.sroa.4.0..sroa.641.0..sroa_idx42.sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr @anon.42c61ef3774b54ef40e69522abedb007.108, ptr %8, align 8 - %89 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 1, ptr %89, align 8 - %90 = getelementptr inbounds nuw i8, ptr %8, i64 32 - store ptr null, ptr %90, align 8 - %91 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %91, align 8 - %92 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store i64 0, ptr %92, align 8 + %86 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 1, ptr %86, align 8 + %87 = getelementptr inbounds nuw i8, ptr %8, i64 32 + store ptr null, ptr %87, align 8 + %88 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr inttoptr (i64 8 to ptr), ptr %88, align 8 + %89 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store i64 0, ptr %89, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %7) - %.not121 = icmp eq i64 %83, 1 - br i1 %.not121, label %98, label %94, !prof !22 + %.not121 = icmp eq i64 %80, 1 + br i1 %.not121, label %95, label %91, !prof !22 -93: ; preds = %78 +90: ; preds = %75 call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -94: ; preds = %88 - store ptr %81, ptr %7, align 8 +91: ; preds = %85 + store ptr %78, ptr %7, align 8 %.sroa.650.0..sroa_idx51 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %83, ptr %.sroa.650.0..sroa_idx51, align 8 + store i64 %80, ptr %.sroa.650.0..sroa_idx51, align 8 %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %85, ptr %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 + store ptr %82, ptr %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 - store ptr %87, ptr %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 + store ptr %84, ptr %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 %.sroa.650.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 store i64 1, ptr %.sroa.650.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 store ptr %9, ptr %10, align 8 @@ -5366,73 +5370,73 @@ _ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habead store ptr %8, ptr %.sroa.437.0..sroa_idx, align 8 %.sroa.538.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 16 store ptr @anon.42c61ef3774b54ef40e69522abedb007.64, ptr %.sroa.538.0..sroa_idx, align 8 - %95 = getelementptr inbounds nuw i8, ptr %10, i64 24 - store ptr %7, ptr %95, align 8 + %92 = getelementptr inbounds nuw i8, ptr %10, i64 24 + store ptr %7, ptr %92, align 8 %.sroa.446.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 32 - store ptr %33, ptr %.sroa.446.0..sroa_idx, align 8 + store ptr %30, ptr %.sroa.446.0..sroa_idx, align 8 %.sroa.547.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 40 store ptr @anon.42c61ef3774b54ef40e69522abedb007.109, ptr %.sroa.547.0..sroa_idx, align 8 store ptr %10, ptr %11, align 8 - %96 = getelementptr inbounds nuw i8, ptr %11, i64 8 - store i64 2, ptr %96, align 8 - %97 = getelementptr inbounds nuw i8, ptr %11, i64 16 - store ptr %80, ptr %97, align 8 + %93 = getelementptr inbounds nuw i8, ptr %11, i64 8 + store i64 2, ptr %93, align 8 + %94 = getelementptr inbounds nuw i8, ptr %11, i64 16 + store ptr %77, ptr %94, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false) - call void @_ZN7tracing15__macro_support13__tracing_log17hfcd250a03a6c4879E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %67, ptr noundef nonnull align 1 %73, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %74, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) + call void @_ZN7tracing15__macro_support13__tracing_log17hfcd250a03a6c4879E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %64, ptr noundef nonnull align 1 %70, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %71, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %9) call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.end.p0(ptr nonnull %11) - br label %99 + br label %96 -98: ; preds = %88 +95: ; preds = %85 call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -99: ; preds = %66, %94, %62, %.critedge, %109 - %100 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %100, align 8, !alias.scope !304 - %101 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store i16 %3, ptr %101, align 8, !alias.scope !304 - %102 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store i64 %2, ptr %102, align 8, !alias.scope !304 - br label %112 +96: ; preds = %63, %91, %59, %.critedge, %106 + %97 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %97, align 8, !alias.scope !304 + %98 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store i16 %3, ptr %98, align 8, !alias.scope !304 + %99 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store i64 %2, ptr %99, align 8, !alias.scope !304 + br label %109 -103: ; preds = %50 +100: ; preds = %47 %.sroa.6.0..sroa_idx16 = getelementptr inbounds nuw i8, ptr %15, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.0..sroa_idx16, ptr noundef nonnull align 8 dereferenceable(24) %54, i64 24, i1 false) - store ptr %53, ptr %15, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.0..sroa_idx16, ptr noundef nonnull align 8 dereferenceable(24) %51, i64 24, i1 false) + store ptr %50, ptr %15, align 8 %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx16.sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 32 store i64 0, ptr %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx16.sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %14) store ptr @anon.42c61ef3774b54ef40e69522abedb007.108, ptr %14, align 8 - %104 = getelementptr inbounds nuw i8, ptr %14, i64 8 - store i64 1, ptr %104, align 8 - %105 = getelementptr inbounds nuw i8, ptr %14, i64 32 - store ptr null, ptr %105, align 8 - %106 = getelementptr inbounds nuw i8, ptr %14, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %106, align 8 - %107 = getelementptr inbounds nuw i8, ptr %14, i64 24 - store i64 0, ptr %107, align 8 + %101 = getelementptr inbounds nuw i8, ptr %14, i64 8 + store i64 1, ptr %101, align 8 + %102 = getelementptr inbounds nuw i8, ptr %14, i64 32 + store ptr null, ptr %102, align 8 + %103 = getelementptr inbounds nuw i8, ptr %14, i64 16 + store ptr inttoptr (i64 8 to ptr), ptr %103, align 8 + %104 = getelementptr inbounds nuw i8, ptr %14, i64 24 + store i64 0, ptr %104, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %13) - %.not120 = icmp eq i64 %55, 1 - br i1 %.not120, label %111, label %109, !prof !22 + %.not120 = icmp eq i64 %52, 1 + br i1 %.not120, label %108, label %106, !prof !22 -108: ; preds = %50 +105: ; preds = %47 tail call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -109: ; preds = %103 - store ptr %53, ptr %13, align 8 +106: ; preds = %100 + store ptr %50, ptr %13, align 8 %.sroa.624.0..sroa_idx25 = getelementptr inbounds nuw i8, ptr %13, i64 8 - store i64 %55, ptr %.sroa.624.0..sroa_idx25, align 8 + store i64 %52, ptr %.sroa.624.0..sroa_idx25, align 8 %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 16 - store ptr %57, ptr %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 + store ptr %54, ptr %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 24 - store ptr %59, ptr %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 + store ptr %56, ptr %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 %.sroa.624.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 32 store i64 1, ptr %.sroa.624.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 store ptr %15, ptr %16, align 8 @@ -5440,31 +5444,31 @@ _ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habead store ptr %14, ptr %.sroa.412.0..sroa_idx, align 8 %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 16 store ptr @anon.42c61ef3774b54ef40e69522abedb007.64, ptr %.sroa.513.0..sroa_idx, align 8 - %110 = getelementptr inbounds nuw i8, ptr %16, i64 24 - store ptr %13, ptr %110, align 8 + %107 = getelementptr inbounds nuw i8, ptr %16, i64 24 + store ptr %13, ptr %107, align 8 %.sroa.420.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 32 - store ptr %33, ptr %.sroa.420.0..sroa_idx, align 8 + store ptr %30, ptr %.sroa.420.0..sroa_idx, align 8 %.sroa.521.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 40 store ptr @anon.42c61ef3774b54ef40e69522abedb007.109, ptr %.sroa.521.0..sroa_idx, align 8 store ptr %16, ptr %17, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 8 store i64 2, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.510.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 16 - store ptr %52, ptr %.sroa.510.0..sroa_idx, align 8 + store ptr %49, ptr %.sroa.510.0..sroa_idx, align 8 call fastcc void @"_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked28_$u7b$$u7b$closure$u7d$$u7d$17hda4d59af355d8497E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %17) call void @llvm.lifetime.end.p0(ptr nonnull %17) call void @llvm.lifetime.end.p0(ptr nonnull %13) call void @llvm.lifetime.end.p0(ptr nonnull %14) call void @llvm.lifetime.end.p0(ptr nonnull %15) call void @llvm.lifetime.end.p0(ptr nonnull %16) - br label %99 + br label %96 -111: ; preds = %103 +108: ; preds = %100 tail call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -112: ; preds = %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit, %99, %4 - %.sroa.0.0 = phi i1 [ false, %4 ], [ true, %99 ], [ false, %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit ] +109: ; preds = %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit, %96, %4 + %.sroa.0.0 = phi i1 [ false, %4 ], [ true, %96 ], [ false, %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit ] ret i1 %.sroa.0.0 } diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index 8a33008bf3d..ef1e9e1af34 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -70665,7 +70665,7 @@ define internal fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRender %10 = load i64, ptr %0, align 8, !range !2537, !noundef !4 %11 = xor i64 %10, -9223372036854775808 %12 = tail call i64 @llvm.umin.i64(i64 %11, i64 6) - switch i64 %12, label %default.unreachable100 [ + switch i64 %12, label %default.unreachable115 [ i64 0, label %13 i64 1, label %51 i64 2, label %68 @@ -70675,7 +70675,7 @@ define internal fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRender i64 6, label %124 ] -default.unreachable100: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %4 +default.unreachable115: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %4 unreachable 13: ; preds = %4 @@ -70883,8 +70883,8 @@ default.unreachable100: ; preds = %_ZN4core4iter8adapt 102: ; preds = %95 %103 = call noundef align 8 dereferenceable_or_null(24) ptr @_ZN12citationberg5Names10substitute17h8f0eb5d0aeb3be32E(ptr noalias noundef nonnull readonly align 8 dereferenceable(216) %83) - %.not.i79 = icmp eq ptr %103, null - br i1 %.not.i79, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", label %104 + %.not.i88 = icmp eq ptr %103, null + br i1 %.not.i88, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", label %104 104: ; preds = %102 %105 = getelementptr inbounds nuw i8, ptr %103, i64 8 @@ -70939,10 +70939,10 @@ default.unreachable100: ; preds = %_ZN4core4iter8adapt %127 = getelementptr inbounds nuw i8, ptr %6, i64 16 br label %128 -128: ; preds = %158, %124 - %.sroa.026.0 = phi i64 [ %.sroa.026.0.copyload, %124 ], [ %.sroa.026.145.ph, %158 ] - %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %124 ], [ %.sroa.6.147.ph, %158 ] - %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %124 ], [ %.sroa.8.1.ph, %158 ] +128: ; preds = %.loopexit66, %124 + %.sroa.026.0 = phi i64 [ %.sroa.026.0.copyload, %124 ], [ %.sroa.026.145.ph, %.loopexit66 ] + %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %124 ], [ %.sroa.6.147.ph, %.loopexit66 ] + %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %124 ], [ %.sroa.8.1.ph, %.loopexit66 ] %trunc.i.i = trunc nuw i64 %.sroa.026.0 to i1 br i1 %trunc.i.i, label %129, label %130 @@ -70965,7 +70965,7 @@ default.unreachable100: ; preds = %_ZN4core4iter8adapt %135 = getelementptr inbounds nuw i8, ptr %0, i64 200 %136 = load i64, ptr %135, align 8, !range !567, !alias.scope !14614, !noalias !14621, !noundef !4 %137 = icmp eq i64 %136, -9223372036854775808 - br i1 %137, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %148 + br i1 %137, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %147 _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i: ; preds = %129, %133 %.sroa.6.147.ph = phi ptr [ %.sroa.6.1.ph, %133 ], [ null, %129 ] @@ -70979,84 +70979,81 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i: ; pr store ptr %1, ptr %125, align 8, !noalias !14619 store i8 0, ptr %126, align 8, !noalias !14619 store i64 0, ptr %127, align 8, !noalias !14619 - switch i8 %139, label %default.unreachable100 [ + switch i8 %139, label %default.unreachable115 [ i8 0, label %.preheader.i.i - i8 1, label %.preheader3.i.i - i8 2, label %.preheader4.i.i + i8 1, label %.preheader2.i.i + i8 2, label %.preheader3.i.i ] .preheader.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader.i.i %140 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 - %141 = and i8 %140, 1 - %or.cond.not.i.i.i.i = icmp eq i8 %141, 0 - br i1 %or.cond.not.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i.i, label %.preheader.i.i + switch i8 %140, label %.preheader.i.i [ + i8 2, label %.loopexit + i8 0, label %.loopexit66 + ] -_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i.i: ; preds = %.preheader.i.i - %.not.i.not.i.i.i = icmp eq i8 %140, 2 - br i1 %.not.i.not.i.i.i, label %159, label %158 +.preheader2.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader2.i.i + %141 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 + %.not.i.i.i.i = icmp ne i8 %141, 2 + %142 = trunc nuw i8 %141 to i1 + %not..not.i.i.i.i = xor i1 %.not.i.i.i.i, true + %143 = select i1 %not..not.i.i.i.i, i1 true, i1 %142 + br i1 %143, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader2.i.i .preheader3.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader3.i.i - %142 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 - %.not.i.i.i.i = icmp ne i8 %142, 2 - %143 = trunc nuw i8 %142 to i1 - %not..not.i.i.i.i = xor i1 %.not.i.i.i.i, true - %144 = select i1 %not..not.i.i.i.i, i1 true, i1 %143 - br i1 %144, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader3.i.i - -.preheader4.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader4.i.i - %145 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 - %.not.i.not.i2.i.i = icmp eq i8 %145, 2 - %146 = trunc nuw i8 %145 to i1 - %147 = select i1 %.not.i.not.i2.i.i, i1 true, i1 %146 - br i1 %147, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader4.i.i - -_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i: ; preds = %.preheader4.i.i, %.preheader3.i.i - %.0.in.i.i = phi i1 [ %.not.i.i.i.i, %.preheader3.i.i ], [ %.not.i.not.i2.i.i, %.preheader4.i.i ] - br i1 %.0.in.i.i, label %159, label %158 - -148: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" - %149 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %150 = load ptr, ptr %149, align 8, !alias.scope !14614, !noalias !14621, !nonnull !4, !noundef !4 - %151 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %152 = load i64, ptr %151, align 8, !alias.scope !14614, !noalias !14621, !noundef !4 - %153 = getelementptr inbounds { i64, [30 x i64] }, ptr %150, i64 %152 - br label %154 - -154: ; preds = %155, %148 - %.sroa.027.0 = phi ptr [ %150, %148 ], [ %156, %155 ] - %.not70.not.not.not = icmp ne ptr %.sroa.027.0, %153 - br i1 %.not70.not.not.not, label %155, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit + %144 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 + %.not.i.not.i.i.i = icmp eq i8 %144, 2 + %145 = trunc nuw i8 %144 to i1 + %146 = select i1 %.not.i.not.i.i.i, i1 true, i1 %145 + br i1 %146, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader3.i.i + +_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i: ; preds = %.preheader3.i.i, %.preheader2.i.i + %.0.in.i.i = phi i1 [ %.not.i.i.i.i, %.preheader2.i.i ], [ %.not.i.not.i.i.i, %.preheader3.i.i ] + br i1 %.0.in.i.i, label %.loopexit, label %.loopexit66 + +147: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" + %148 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %149 = load ptr, ptr %148, align 8, !alias.scope !14614, !noalias !14621, !nonnull !4, !noundef !4 + %150 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %151 = load i64, ptr %150, align 8, !alias.scope !14614, !noalias !14621, !noundef !4 + %152 = getelementptr inbounds { i64, [30 x i64] }, ptr %149, i64 %151 + br label %153 -155: ; preds = %154 - %156 = getelementptr inbounds nuw i8, ptr %.sroa.027.0, i64 248 - %157 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.027.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14622 - br i1 %157, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %154 +153: ; preds = %154, %147 + %.sroa.027.0 = phi ptr [ %149, %147 ], [ %155, %154 ] + %.not73.not.not.not = icmp ne ptr %.sroa.027.0, %152 + br i1 %.not73.not.not.not, label %154, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit + +154: ; preds = %153 + %155 = getelementptr inbounds nuw i8, ptr %.sroa.027.0, i64 248 + %156 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.027.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14622 + br i1 %156, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %153 -158: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i +.loopexit66: ; preds = %.preheader.i.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !14619 br label %128 -159: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i +.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, %.preheader.i.i call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !14619 - %160 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 8 - %161 = load ptr, ptr %160, align 8, !nonnull !4, !noundef !4 - %162 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 16 - %163 = load i64, ptr %162, align 8, !noundef !4 - %164 = getelementptr inbounds { i64, [30 x i64] }, ptr %161, i64 %163 - br label %165 + %157 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 8 + %158 = load ptr, ptr %157, align 8, !nonnull !4, !noundef !4 + %159 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 16 + %160 = load i64, ptr %159, align 8, !noundef !4 + %161 = getelementptr inbounds { i64, [30 x i64] }, ptr %158, i64 %160 + br label %162 -165: ; preds = %166, %159 - %.sroa.029.0 = phi ptr [ %161, %159 ], [ %167, %166 ] - %.not.not.not.not = icmp ne ptr %.sroa.029.0, %164 - br i1 %.not.not.not.not, label %166, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit +162: ; preds = %163, %.loopexit + %.sroa.029.0 = phi ptr [ %158, %.loopexit ], [ %164, %163 ] + %.not.not.not.not = icmp ne ptr %.sroa.029.0, %161 + br i1 %.not.not.not.not, label %163, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit -166: ; preds = %165 - %167 = getelementptr inbounds nuw i8, ptr %.sroa.029.0, i64 248 - %168 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.029.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14629 - br i1 %168, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %165 +163: ; preds = %162 + %164 = getelementptr inbounds nuw i8, ptr %.sroa.029.0, i64 248 + %165 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.029.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14629 + br i1 %165, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %162 -_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit: ; preds = %166, %165, %155, %154, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" - %.1.i12 = phi i1 [ false, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" ], [ %.not70.not.not.not, %154 ], [ %.not70.not.not.not, %155 ], [ %.not.not.not.not, %165 ], [ %.not.not.not.not, %166 ] +_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit: ; preds = %163, %162, %154, %153, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" + %.1.i12 = phi i1 [ false, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" ], [ %.not73.not.not.not, %153 ], [ %.not73.not.not.not, %154 ], [ %.not.not.not.not, %162 ], [ %.not.not.not.not, %163 ] call void @llvm.lifetime.end.p0(ptr nonnull %7) br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" @@ -89240,10 +89237,10 @@ define internal fastcc void @_ZN9hayagriva3csl9rendering15choose_children17h04c8 %8 = getelementptr inbounds nuw i8, ptr %4, i64 16 br label %9 -9: ; preds = %40, %3 - %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %3 ], [ %.sroa.6.129.ph, %40 ] - %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %3 ], [ %.sroa.0.131.ph, %40 ] - %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %3 ], [ %.sroa.8.1.ph, %40 ] +9: ; preds = %.loopexit41, %3 + %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %3 ], [ %.sroa.6.129.ph, %.loopexit41 ] + %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %3 ], [ %.sroa.0.131.ph, %.loopexit41 ] + %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %3 ], [ %.sroa.8.1.ph, %.loopexit41 ] %trunc.i = trunc nuw i64 %.sroa.0.0 to i1 br i1 %trunc.i, label %10, label %11 @@ -89266,7 +89263,7 @@ define internal fastcc void @_ZN9hayagriva3csl9rendering15choose_children17h04c8 %16 = getelementptr inbounds nuw i8, ptr %0, i64 200 %17 = load i64, ptr %16, align 8, !range !567, !noundef !4 %18 = icmp eq i64 %17, -9223372036854775808 - br i1 %18, label %39, label %29 + br i1 %18, label %38, label %28 _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; preds = %10, %14 %.sroa.0.131.ph = phi i64 [ 0, %14 ], [ 1, %10 ] @@ -89282,8 +89279,8 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; pred store i64 0, ptr %8, align 8 switch i8 %20, label %default.unreachable [ i8 0, label %.preheader.i - i8 1, label %.preheader3.i - i8 2, label %.preheader4.i + i8 1, label %.preheader2.i + i8 2, label %.preheader3.i ] default.unreachable: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit @@ -89291,74 +89288,71 @@ default.unreachable: ; preds = %_ZN4core4iter8adapt .preheader.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader.i %21 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 - %22 = and i8 %21, 1 - %or.cond.not.i.i.i = icmp eq i8 %22, 0 - br i1 %or.cond.not.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, label %.preheader.i - -_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i: ; preds = %.preheader.i - %.not.i.not.i.i = icmp eq i8 %21, 2 - br i1 %.not.i.not.i.i, label %41, label %40 + switch i8 %21, label %.preheader.i [ + i8 2, label %.loopexit + i8 0, label %.loopexit41 + ] -.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i - %23 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 - %.not.i.i.i = icmp ne i8 %23, 2 - %24 = trunc nuw i8 %23 to i1 +.preheader2.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader2.i + %22 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 + %.not.i.i.i = icmp ne i8 %22, 2 + %23 = trunc nuw i8 %22 to i1 %not..not.i.i.i = xor i1 %.not.i.i.i, true - %25 = select i1 %not..not.i.i.i, i1 true, i1 %24 - br i1 %25, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i + %24 = select i1 %not..not.i.i.i, i1 true, i1 %23 + br i1 %24, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader2.i -.preheader4.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader4.i - %26 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 - %.not.i.not.i2.i = icmp eq i8 %26, 2 - %27 = trunc nuw i8 %26 to i1 - %28 = select i1 %.not.i.not.i2.i, i1 true, i1 %27 - br i1 %28, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader4.i +.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i + %25 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 + %.not.i.not.i.i = icmp eq i8 %25, 2 + %26 = trunc nuw i8 %25 to i1 + %27 = select i1 %.not.i.not.i.i, i1 true, i1 %26 + br i1 %27, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i -_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader4.i, %.preheader3.i - %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader3.i ], [ %.not.i.not.i2.i, %.preheader4.i ] - br i1 %.0.in.i, label %41, label %40 +_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader3.i, %.preheader2.i + %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i.i, %.preheader3.i ] + br i1 %.0.in.i, label %.loopexit, label %.loopexit41 -29: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %30 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %31 = load ptr, ptr %30, align 8, !nonnull !4, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %33 = load i64, ptr %32, align 8, !noundef !4 - %34 = getelementptr inbounds nuw i8, ptr %2, i64 224 - %35 = load i64, ptr %34, align 8, !range !567, !alias.scope !18558, !noalias !18561, !noundef !4 - %36 = icmp eq i64 %35, -9223372036854775808 - %37 = getelementptr inbounds nuw i8, ptr %2, i64 232 - %..val.i = load ptr, ptr %37, align 8, !alias.scope !18558, !noalias !18561, !nonnull !4 - %38 = getelementptr inbounds nuw i8, ptr %2, i64 240 - %..val2.i = load i64, ptr %38, align 8, !alias.scope !18558, !noalias !18561 - %.sroa.3.0.i = select i1 %36, i64 undef, i64 %..val2.i - %.sroa.0.0.i = select i1 %36, ptr null, ptr %..val.i - tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %31, i64 noundef %33, ptr noalias noundef readonly align 1 %.sroa.0.0.i, i64 %.sroa.3.0.i, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18566 - br label %39 +28: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %29 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %30 = load ptr, ptr %29, align 8, !nonnull !4, !noundef !4 + %31 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %32 = load i64, ptr %31, align 8, !noundef !4 + %33 = getelementptr inbounds nuw i8, ptr %2, i64 224 + %34 = load i64, ptr %33, align 8, !range !567, !alias.scope !18558, !noalias !18561, !noundef !4 + %35 = icmp eq i64 %34, -9223372036854775808 + %36 = getelementptr inbounds nuw i8, ptr %2, i64 232 + %..val.i = load ptr, ptr %36, align 8, !alias.scope !18558, !noalias !18561, !nonnull !4 + %37 = getelementptr inbounds nuw i8, ptr %2, i64 240 + %..val2.i = load i64, ptr %37, align 8, !alias.scope !18558, !noalias !18561 + %.sroa.3.0.i = select i1 %35, i64 undef, i64 %..val2.i + %.sroa.0.0.i = select i1 %35, ptr null, ptr %..val.i + tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %30, i64 noundef %32, ptr noalias noundef readonly align 1 %.sroa.0.0.i, i64 %.sroa.3.0.i, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18566 + br label %38 -39: ; preds = %29, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit", %41 +38: ; preds = %28, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit", %.loopexit ret void -40: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +.loopexit41: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit call void @llvm.lifetime.end.p0(ptr nonnull %4) br label %9 -41: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i call void @llvm.lifetime.end.p0(ptr nonnull %4) - %42 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 8 - %43 = load ptr, ptr %42, align 8, !nonnull !4, !noundef !4 - %44 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 16 - %45 = load i64, ptr %44, align 8, !noundef !4 - %46 = getelementptr inbounds nuw i8, ptr %2, i64 224 - %47 = load i64, ptr %46, align 8, !range !567, !alias.scope !18567, !noalias !18570, !noundef !4 - %48 = icmp eq i64 %47, -9223372036854775808 - %49 = getelementptr inbounds nuw i8, ptr %2, i64 232 - %..val.i21 = load ptr, ptr %49, align 8, !alias.scope !18567, !noalias !18570, !nonnull !4 - %50 = getelementptr inbounds nuw i8, ptr %2, i64 240 - %..val2.i22 = load i64, ptr %50, align 8, !alias.scope !18567, !noalias !18570 - %.sroa.3.0.i23 = select i1 %48, i64 undef, i64 %..val2.i22 - %.sroa.0.0.i24 = select i1 %48, ptr null, ptr %..val.i21 - tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %43, i64 noundef %45, ptr noalias noundef readonly align 1 %.sroa.0.0.i24, i64 %.sroa.3.0.i23, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18575 - br label %39 + %39 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 8 + %40 = load ptr, ptr %39, align 8, !nonnull !4, !noundef !4 + %41 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 16 + %42 = load i64, ptr %41, align 8, !noundef !4 + %43 = getelementptr inbounds nuw i8, ptr %2, i64 224 + %44 = load i64, ptr %43, align 8, !range !567, !alias.scope !18567, !noalias !18570, !noundef !4 + %45 = icmp eq i64 %44, -9223372036854775808 + %46 = getelementptr inbounds nuw i8, ptr %2, i64 232 + %..val.i21 = load ptr, ptr %46, align 8, !alias.scope !18567, !noalias !18570, !nonnull !4 + %47 = getelementptr inbounds nuw i8, ptr %2, i64 240 + %..val2.i22 = load i64, ptr %47, align 8, !alias.scope !18567, !noalias !18570 + %.sroa.3.0.i23 = select i1 %45, i64 undef, i64 %..val2.i22 + %.sroa.0.0.i24 = select i1 %45, ptr null, ptr %..val.i21 + tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %40, i64 noundef %42, ptr noalias noundef readonly align 1 %.sroa.0.0.i24, i64 %.sroa.3.0.i23, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18575 + br label %38 } ; Function Attrs: nonlazybind uwtable @@ -89378,10 +89372,10 @@ define hidden range(i40 0, -252) i40 @_ZN9hayagriva3csl9rendering15choose_childr %7 = getelementptr inbounds nuw i8, ptr %3, i64 16 br label %8 -8: ; preds = %62, %2 - %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %2 ], [ %.sroa.8.1.ph, %62 ] - %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %2 ], [ %.sroa.6.197.ph, %62 ] - %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %2 ], [ %.sroa.0.19399.ph, %62 ] +8: ; preds = %.loopexit114, %2 + %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %2 ], [ %.sroa.8.1.ph, %.loopexit114 ] + %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %2 ], [ %.sroa.6.197.ph, %.loopexit114 ] + %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %2 ], [ %.sroa.0.19399.ph, %.loopexit114 ] %trunc.i = trunc nuw i64 %.sroa.0.0 to i1 br i1 %trunc.i, label %9, label %10 @@ -89404,7 +89398,7 @@ define hidden range(i40 0, -252) i40 @_ZN9hayagriva3csl9rendering15choose_childr %15 = getelementptr inbounds nuw i8, ptr %0, i64 200 %16 = load i64, ptr %15, align 8, !range !567, !noundef !4 %17 = icmp eq i64 %16, -9223372036854775808 - br i1 %17, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %28 + br i1 %17, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %27 _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; preds = %9, %13 %.sroa.0.19399.ph = phi i64 [ 0, %13 ], [ 1, %9 ] @@ -89418,172 +89412,169 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; pred store ptr %1, ptr %5, align 8 store i8 0, ptr %6, align 8 store i64 0, ptr %7, align 8 - switch i8 %19, label %default.unreachable155 [ + switch i8 %19, label %default.unreachable167 [ i8 0, label %.preheader.i - i8 1, label %.preheader3.i - i8 2, label %.preheader4.i + i8 1, label %.preheader2.i + i8 2, label %.preheader3.i ] -default.unreachable155: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit +default.unreachable167: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit unreachable .preheader.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader.i %20 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 - %21 = and i8 %20, 1 - %or.cond.not.i.i.i = icmp eq i8 %21, 0 - br i1 %or.cond.not.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, label %.preheader.i - -_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i: ; preds = %.preheader.i - %.not.i.not.i.i = icmp eq i8 %20, 2 - br i1 %.not.i.not.i.i, label %63, label %62 + switch i8 %20, label %.preheader.i [ + i8 2, label %.loopexit + i8 0, label %.loopexit114 + ] -.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i - %22 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 - %.not.i.i.i = icmp ne i8 %22, 2 - %23 = trunc nuw i8 %22 to i1 +.preheader2.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader2.i + %21 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 + %.not.i.i.i = icmp ne i8 %21, 2 + %22 = trunc nuw i8 %21 to i1 %not..not.i.i.i = xor i1 %.not.i.i.i, true - %24 = select i1 %not..not.i.i.i, i1 true, i1 %23 - br i1 %24, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i + %23 = select i1 %not..not.i.i.i, i1 true, i1 %22 + br i1 %23, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader2.i -.preheader4.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader4.i - %25 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 - %.not.i.not.i2.i = icmp eq i8 %25, 2 - %26 = trunc nuw i8 %25 to i1 - %27 = select i1 %.not.i.not.i2.i, i1 true, i1 %26 - br i1 %27, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader4.i +.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i + %24 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 + %.not.i.not.i.i = icmp eq i8 %24, 2 + %25 = trunc nuw i8 %24 to i1 + %26 = select i1 %.not.i.not.i.i, i1 true, i1 %25 + br i1 %26, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i -_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader4.i, %.preheader3.i - %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader3.i ], [ %.not.i.not.i2.i, %.preheader4.i ] - br i1 %.0.in.i, label %63, label %62 +_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader3.i, %.preheader2.i + %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i.i, %.preheader3.i ] + br i1 %.0.in.i, label %.loopexit, label %.loopexit114 -28: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %29 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %30 = load ptr, ptr %29, align 8, !nonnull !4, !noundef !4 - %31 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %32 = load i64, ptr %31, align 8, !noundef !4 - %.idx138 = mul nsw i64 %32, 248 - %33 = getelementptr inbounds i8, ptr %30, i64 %.idx138 - %34 = icmp eq i64 %32, 0 - br i1 %34, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph132 - -.lr.ph132: ; preds = %28, %.lr.ph132 - %.sroa.6.0.i131 = phi i8 [ %.sroa.631.0.extract.trunc.i, %.lr.ph132 ], [ 0, %28 ] - %.sroa.5.0.i130 = phi i8 [ %.sroa.530.0.extract.trunc.i, %.lr.ph132 ], [ 0, %28 ] - %.sroa.412.0.i129 = phi i8 [ %.sroa.429.0.extract.trunc.i, %.lr.ph132 ], [ 0, %28 ] - %.sroa.08.0.i128 = phi i8 [ %.sroa.028.0.extract.trunc.i, %.lr.ph132 ], [ 0, %28 ] - %.0.i35127 = phi i1 [ %38, %.lr.ph132 ], [ false, %28 ] - %.sroa.090.0126 = phi ptr [ %35, %.lr.ph132 ], [ %30, %28 ] - %35 = getelementptr inbounds nuw i8, ptr %.sroa.090.0126, i64 248 - %36 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.090.0126, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) - %.1.extract.shift.i = lshr i40 %36, 8 - %37 = trunc i40 %36 to i1 - %38 = or i1 %.0.i35127, %37 - %39 = trunc nuw i8 %.sroa.08.0.i128 to i1 - %.not.i75 = icmp eq i8 %.sroa.412.0.i129, 0 - %.not21.i = icmp eq i8 %.sroa.5.0.i130, 0 - %.not22.i = icmp eq i8 %.sroa.6.0.i131, 0 - %40 = trunc i40 %.1.extract.shift.i to i8 - %41 = and i8 %40, 1 - %.sroa.028.0.extract.trunc.i = select i1 %39, i8 1, i8 %41 - %42 = lshr i40 %36, 16 - %43 = trunc i40 %42 to i8 - %44 = and i8 %43, 1 - %.sroa.429.0.extract.trunc.i = select i1 %.not.i75, i8 %44, i8 1 - %45 = lshr i40 %36, 24 - %46 = trunc i40 %45 to i8 - %47 = and i8 %46, 1 - %.sroa.530.0.extract.trunc.i = select i1 %.not21.i, i8 %47, i8 1 - %sum.shift113 = lshr i40 %36, 32 - %48 = trunc nuw i40 %sum.shift113 to i8 - %49 = and i8 %48, 1 - %.sroa.631.0.extract.trunc.i = select i1 %.not22.i, i8 %49, i8 1 - %50 = icmp eq ptr %35, %33 - br i1 %50, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", label %.lr.ph132 - -"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit": ; preds = %.lr.ph132 - %51 = zext nneg i8 %.sroa.631.0.extract.trunc.i to i32 - %52 = shl nuw nsw i32 %51, 24 - %53 = zext nneg i8 %.sroa.530.0.extract.trunc.i to i32 - %54 = shl nuw nsw i32 %53, 16 - %55 = or disjoint i32 %52, %54 - %56 = zext nneg i8 %.sroa.429.0.extract.trunc.i to i32 - %57 = shl nuw nsw i32 %56, 8 - %58 = or disjoint i32 %55, %57 - %59 = zext nneg i8 %.sroa.028.0.extract.trunc.i to i32 - %60 = or disjoint i32 %58, %59 - %61 = zext i1 %38 to i8 +27: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %28 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %29 = load ptr, ptr %28, align 8, !nonnull !4, !noundef !4 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %31 = load i64, ptr %30, align 8, !noundef !4 + %.idx142 = mul nsw i64 %31, 248 + %32 = getelementptr inbounds i8, ptr %29, i64 %.idx142 + %33 = icmp eq i64 %31, 0 + br i1 %33, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph136 + +.lr.ph136: ; preds = %27, %.lr.ph136 + %.sroa.6.0.i135 = phi i8 [ %.sroa.631.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] + %.sroa.5.0.i134 = phi i8 [ %.sroa.530.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] + %.sroa.412.0.i133 = phi i8 [ %.sroa.429.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] + %.sroa.08.0.i132 = phi i8 [ %.sroa.028.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] + %.0.i35131 = phi i1 [ %37, %.lr.ph136 ], [ false, %27 ] + %.sroa.090.0130 = phi ptr [ %34, %.lr.ph136 ], [ %29, %27 ] + %34 = getelementptr inbounds nuw i8, ptr %.sroa.090.0130, i64 248 + %35 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.090.0130, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) + %.1.extract.shift.i = lshr i40 %35, 8 + %36 = trunc i40 %35 to i1 + %37 = or i1 %.0.i35131, %36 + %38 = trunc nuw i8 %.sroa.08.0.i132 to i1 + %.not.i75 = icmp eq i8 %.sroa.412.0.i133, 0 + %.not21.i = icmp eq i8 %.sroa.5.0.i134, 0 + %.not22.i = icmp eq i8 %.sroa.6.0.i135, 0 + %39 = trunc i40 %.1.extract.shift.i to i8 + %40 = and i8 %39, 1 + %.sroa.028.0.extract.trunc.i = select i1 %38, i8 1, i8 %40 + %41 = lshr i40 %35, 16 + %42 = trunc i40 %41 to i8 + %43 = and i8 %42, 1 + %.sroa.429.0.extract.trunc.i = select i1 %.not.i75, i8 %43, i8 1 + %44 = lshr i40 %35, 24 + %45 = trunc i40 %44 to i8 + %46 = and i8 %45, 1 + %.sroa.530.0.extract.trunc.i = select i1 %.not21.i, i8 %46, i8 1 + %sum.shift113 = lshr i40 %35, 32 + %47 = trunc nuw i40 %sum.shift113 to i8 + %48 = and i8 %47, 1 + %.sroa.631.0.extract.trunc.i = select i1 %.not22.i, i8 %48, i8 1 + %49 = icmp eq ptr %34, %32 + br i1 %49, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", label %.lr.ph136 + +"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit": ; preds = %.lr.ph136 + %50 = zext nneg i8 %.sroa.631.0.extract.trunc.i to i32 + %51 = shl nuw nsw i32 %50, 24 + %52 = zext nneg i8 %.sroa.530.0.extract.trunc.i to i32 + %53 = shl nuw nsw i32 %52, 16 + %54 = or disjoint i32 %51, %53 + %55 = zext nneg i8 %.sroa.429.0.extract.trunc.i to i32 + %56 = shl nuw nsw i32 %55, 8 + %57 = or disjoint i32 %54, %56 + %58 = zext nneg i8 %.sroa.028.0.extract.trunc.i to i32 + %59 = or disjoint i32 %57, %58 + %60 = zext i1 %37 to i8 br label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit" -"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit": ; preds = %63, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", %28, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %.sroa.4.1 = phi i32 [ undef, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %28 ], [ %60, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %63 ], [ %95, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] - %.sroa.0.1 = phi i8 [ 2, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %28 ], [ %61, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %63 ], [ %96, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] +"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit": ; preds = %.loopexit, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", %27, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %.sroa.4.1 = phi i32 [ undef, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %27 ], [ %59, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %92, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] + %.sroa.0.1 = phi i8 [ 2, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %27 ], [ %60, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %93, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] %.sroa.4.0.insert.ext = zext i32 %.sroa.4.1 to i40 %.sroa.4.0.insert.shift = shl nuw i40 %.sroa.4.0.insert.ext, 8 %.sroa.0.0.insert.ext = zext nneg i8 %.sroa.0.1 to i40 %.sroa.0.0.insert.insert = or disjoint i40 %.sroa.4.0.insert.shift, %.sroa.0.0.insert.ext ret i40 %.sroa.0.0.insert.insert -62: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +.loopexit114: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit call void @llvm.lifetime.end.p0(ptr nonnull %3) br label %8 -63: ; preds = %_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i call void @llvm.lifetime.end.p0(ptr nonnull %3) - %64 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 8 - %65 = load ptr, ptr %64, align 8, !nonnull !4, !noundef !4 - %66 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 16 - %67 = load i64, ptr %66, align 8, !noundef !4 - %.idx = mul nsw i64 %67, 248 - %68 = getelementptr inbounds i8, ptr %65, i64 %.idx - %69 = icmp eq i64 %67, 0 - br i1 %69, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph - -.lr.ph: ; preds = %63, %.lr.ph - %.sroa.6.0.i40121 = phi i8 [ %.sroa.631.0.extract.trunc.i59, %.lr.ph ], [ 0, %63 ] - %.sroa.5.0.i39120 = phi i8 [ %.sroa.530.0.extract.trunc.i57, %.lr.ph ], [ 0, %63 ] - %.sroa.412.0.i38119 = phi i8 [ %.sroa.429.0.extract.trunc.i55, %.lr.ph ], [ 0, %63 ] - %.sroa.08.0.i37118 = phi i8 [ %.sroa.028.0.extract.trunc.i53, %.lr.ph ], [ 0, %63 ] - %.0.i36117 = phi i1 [ %73, %.lr.ph ], [ false, %63 ] - %.sroa.091.0116 = phi ptr [ %70, %.lr.ph ], [ %65, %63 ] - %70 = getelementptr inbounds nuw i8, ptr %.sroa.091.0116, i64 248 - %71 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.091.0116, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) - %.1.extract.shift.i41 = lshr i40 %71, 8 - %72 = trunc i40 %71 to i1 - %73 = or i1 %.0.i36117, %72 - %74 = trunc nuw i8 %.sroa.08.0.i37118 to i1 - %.not.i79 = icmp eq i8 %.sroa.412.0.i38119, 0 - %.not21.i81 = icmp eq i8 %.sroa.5.0.i39120, 0 - %.not22.i83 = icmp eq i8 %.sroa.6.0.i40121, 0 - %75 = trunc i40 %.1.extract.shift.i41 to i8 + %61 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 8 + %62 = load ptr, ptr %61, align 8, !nonnull !4, !noundef !4 + %63 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 16 + %64 = load i64, ptr %63, align 8, !noundef !4 + %.idx = mul nsw i64 %64, 248 + %65 = getelementptr inbounds i8, ptr %62, i64 %.idx + %66 = icmp eq i64 %64, 0 + br i1 %66, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph + +.lr.ph: ; preds = %.loopexit, %.lr.ph + %.sroa.6.0.i40125 = phi i8 [ %.sroa.631.0.extract.trunc.i59, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.5.0.i39124 = phi i8 [ %.sroa.530.0.extract.trunc.i57, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.412.0.i38123 = phi i8 [ %.sroa.429.0.extract.trunc.i55, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.08.0.i37122 = phi i8 [ %.sroa.028.0.extract.trunc.i53, %.lr.ph ], [ 0, %.loopexit ] + %.0.i36121 = phi i1 [ %70, %.lr.ph ], [ false, %.loopexit ] + %.sroa.091.0120 = phi ptr [ %67, %.lr.ph ], [ %62, %.loopexit ] + %67 = getelementptr inbounds nuw i8, ptr %.sroa.091.0120, i64 248 + %68 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.091.0120, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) + %.1.extract.shift.i41 = lshr i40 %68, 8 + %69 = trunc i40 %68 to i1 + %70 = or i1 %.0.i36121, %69 + %71 = trunc nuw i8 %.sroa.08.0.i37122 to i1 + %.not.i79 = icmp eq i8 %.sroa.412.0.i38123, 0 + %.not21.i81 = icmp eq i8 %.sroa.5.0.i39124, 0 + %.not22.i83 = icmp eq i8 %.sroa.6.0.i40125, 0 + %72 = trunc i40 %.1.extract.shift.i41 to i8 + %73 = and i8 %72, 1 + %.sroa.028.0.extract.trunc.i53 = select i1 %71, i8 1, i8 %73 + %74 = lshr i40 %68, 16 + %75 = trunc i40 %74 to i8 %76 = and i8 %75, 1 - %.sroa.028.0.extract.trunc.i53 = select i1 %74, i8 1, i8 %76 - %77 = lshr i40 %71, 16 + %.sroa.429.0.extract.trunc.i55 = select i1 %.not.i79, i8 %76, i8 1 + %77 = lshr i40 %68, 24 %78 = trunc i40 %77 to i8 %79 = and i8 %78, 1 - %.sroa.429.0.extract.trunc.i55 = select i1 %.not.i79, i8 %79, i8 1 - %80 = lshr i40 %71, 24 - %81 = trunc i40 %80 to i8 - %82 = and i8 %81, 1 - %.sroa.530.0.extract.trunc.i57 = select i1 %.not21.i81, i8 %82, i8 1 - %sum.shift = lshr i40 %71, 32 - %83 = trunc nuw i40 %sum.shift to i8 - %84 = and i8 %83, 1 - %.sroa.631.0.extract.trunc.i59 = select i1 %.not22.i83, i8 %84, i8 1 - %85 = icmp eq ptr %70, %68 - br i1 %85, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", label %.lr.ph + %.sroa.530.0.extract.trunc.i57 = select i1 %.not21.i81, i8 %79, i8 1 + %sum.shift = lshr i40 %68, 32 + %80 = trunc nuw i40 %sum.shift to i8 + %81 = and i8 %80, 1 + %.sroa.631.0.extract.trunc.i59 = select i1 %.not22.i83, i8 %81, i8 1 + %82 = icmp eq ptr %67, %65 + br i1 %82, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", label %.lr.ph "_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit": ; preds = %.lr.ph - %86 = zext nneg i8 %.sroa.631.0.extract.trunc.i59 to i32 - %87 = shl nuw nsw i32 %86, 24 - %88 = zext nneg i8 %.sroa.530.0.extract.trunc.i57 to i32 - %89 = shl nuw nsw i32 %88, 16 + %83 = zext nneg i8 %.sroa.631.0.extract.trunc.i59 to i32 + %84 = shl nuw nsw i32 %83, 24 + %85 = zext nneg i8 %.sroa.530.0.extract.trunc.i57 to i32 + %86 = shl nuw nsw i32 %85, 16 + %87 = or disjoint i32 %84, %86 + %88 = zext nneg i8 %.sroa.429.0.extract.trunc.i55 to i32 + %89 = shl nuw nsw i32 %88, 8 %90 = or disjoint i32 %87, %89 - %91 = zext nneg i8 %.sroa.429.0.extract.trunc.i55 to i32 - %92 = shl nuw nsw i32 %91, 8 - %93 = or disjoint i32 %90, %92 - %94 = zext nneg i8 %.sroa.028.0.extract.trunc.i53 to i32 - %95 = or disjoint i32 %93, %94 - %96 = zext i1 %73 to i8 + %91 = zext nneg i8 %.sroa.028.0.extract.trunc.i53 to i32 + %92 = or disjoint i32 %90, %91 + %93 = zext i1 %70 to i8 br label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit" } From bd4f32bdb46179d00feab60943c31018af6b3a02 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 Aug 2025 10:32:58 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- .../optimized/91ojamjedp83lpe0pc0cw0okj.ll | 376 ++++++++-------- .../optimized/aa0f6okxl6jzwxndw38ja55fd.ll | 294 ++++++------- bench/typst-rs/optimized/2i78fvbm4wocuesi.ll | 410 +++++++++--------- 3 files changed, 540 insertions(+), 540 deletions(-) diff --git a/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll b/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll index b2aaf4fd0fb..f8eba6dec95 100644 --- a/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll +++ b/bench/pola-rs/optimized/91ojamjedp83lpe0pc0cw0okj.ll @@ -224127,8 +224127,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !43175 unreachable -common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] +common.resume: ; preds = %39, %19, %19, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm.split-lp, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit: ; preds = %3 @@ -224137,83 +224137,83 @@ _ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %20 unwind label %switch.early.test + to label %20 unwind label %19 -switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit, %26 - %lpad.thr_comm = landingpad { ptr, i32 } +19: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit, %26 + %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %19, label %37 [ + %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %20, label %37 [ i8 2, label %common.resume i8 0, label %common.resume ] -20: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit - %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %22 - i8 0, label %29 +22: ; preds = %_ZN4pyo36marker6Python13allow_threads17ha4eadf5e18767995E.exit + %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %24 + i8 0, label %31 ] -22: ; preds = %20 - %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %25 = icmp eq ptr %24, null - br i1 %25, label %26, label %33, !prof !8 +24: ; preds = %22 + %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %27 = icmp eq ptr %26, null + br i1 %27, label %28, label %35, !prof !8 -26: ; preds = %22 +28: ; preds = %24 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %switch.early.test + to label %.noexc unwind label %19 -.noexc: ; preds = %26 +.noexc: ; preds = %28 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %36 + br label %38 -29: ; preds = %20 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %31, ptr %32, align 1 - br label %36 +31: ; preds = %22 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %33, ptr %34, align 1 + br label %38 -33: ; preds = %22 - store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 - %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 0, ptr %34, align 8 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %35, align 8 +35: ; preds = %24 + store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 + %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 + store i64 0, ptr %36, align 8 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %37, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %36 + br label %38 -36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 +38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -37: ; preds = %switch.early.test - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 - to label %common.resume unwind label %39 +39: ; preds = %19 + %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 + to label %common.resume unwind label %41 -39: ; preds = %37 - %40 = landingpad { ptr, i32 } +41: ; preds = %39 + %42 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -230039,8 +230039,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !43448 unreachable -common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] +common.resume: ; preds = %39, %19, %19, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm.split-lp, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit: ; preds = %3 @@ -230049,83 +230049,83 @@ _ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %20 unwind label %switch.early.test + to label %20 unwind label %19 -switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit, %26 - %lpad.thr_comm = landingpad { ptr, i32 } +19: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit, %26 + %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %19, label %37 [ + %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %20, label %37 [ i8 2, label %common.resume i8 0, label %common.resume ] -20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit - %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %22 - i8 0, label %29 +22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h75729dd57d958d30E.exit + %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %24 + i8 0, label %31 ] -22: ; preds = %20 - %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %25 = icmp eq ptr %24, null - br i1 %25, label %26, label %33, !prof !8 +24: ; preds = %22 + %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %27 = icmp eq ptr %26, null + br i1 %27, label %28, label %35, !prof !8 -26: ; preds = %22 +28: ; preds = %24 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %switch.early.test + to label %.noexc unwind label %19 -.noexc: ; preds = %26 +.noexc: ; preds = %28 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %36 + br label %38 -29: ; preds = %20 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %31, ptr %32, align 1 - br label %36 +31: ; preds = %22 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %33, ptr %34, align 1 + br label %38 -33: ; preds = %22 - store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 - %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 0, ptr %34, align 8 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %35, align 8 +35: ; preds = %24 + store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 + %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 + store i64 0, ptr %36, align 8 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %37, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %36 + br label %38 -36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 +38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -37: ; preds = %switch.early.test - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 - to label %common.resume unwind label %39 +39: ; preds = %19 + %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 + to label %common.resume unwind label %41 -39: ; preds = %37 - %40 = landingpad { ptr, i32 } +41: ; preds = %39 + %42 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -254695,8 +254695,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !44563 unreachable -common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] +common.resume: ; preds = %39, %19, %19, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm.split-lp, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit: ; preds = %3 @@ -254705,83 +254705,83 @@ _ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %20 unwind label %switch.early.test + to label %20 unwind label %19 -switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit, %26 - %lpad.thr_comm = landingpad { ptr, i32 } +19: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit, %26 + %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %19, label %37 [ + %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %20, label %37 [ i8 2, label %common.resume i8 0, label %common.resume ] -20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit - %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %22 - i8 0, label %29 +22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h7394c46fa6918883E.exit + %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %24 + i8 0, label %31 ] -22: ; preds = %20 - %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %25 = icmp eq ptr %24, null - br i1 %25, label %26, label %33, !prof !8 +24: ; preds = %22 + %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %27 = icmp eq ptr %26, null + br i1 %27, label %28, label %35, !prof !8 -26: ; preds = %22 +28: ; preds = %24 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %switch.early.test + to label %.noexc unwind label %19 -.noexc: ; preds = %26 +.noexc: ; preds = %28 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %36 + br label %38 -29: ; preds = %20 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %31, ptr %32, align 1 - br label %36 +31: ; preds = %22 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %33, ptr %34, align 1 + br label %38 -33: ; preds = %22 - store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 - %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 0, ptr %34, align 8 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %35, align 8 +35: ; preds = %24 + store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 + %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 + store i64 0, ptr %36, align 8 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %37, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %36 + br label %38 -36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 +38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -37: ; preds = %switch.early.test - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 - to label %common.resume unwind label %39 +39: ; preds = %19 + %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 + to label %common.resume unwind label %41 -39: ; preds = %37 - %40 = landingpad { ptr, i32 } +41: ; preds = %39 + %42 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable @@ -271095,8 +271095,8 @@ define hidden void @"_ZN77_$LT$pyo3..marker..Python$u20$as$u20$polars_python..ut call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36, !noalias !45343 unreachable -common.resume: ; preds = %37, %switch.early.test, %switch.early.test, %13 - %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm, %37 ] +common.resume: ; preds = %39, %19, %19, %13 + %common.resume.op = phi { ptr, i32 } [ %14, %13 ], [ %lpad.thr_comm.split-lp, %switch.early.test ], [ %lpad.thr_comm, %switch.early.test ], [ %lpad.thr_comm.split-lp, %37 ] resume { ptr, i32 } %common.resume.op _ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit: ; preds = %3 @@ -271105,83 +271105,83 @@ _ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit: ; preds = %3 %17 = extractvalue { i64, i64 } %8, 1 %18 = extractvalue { i64, i64 } %8, 0 invoke void @_ZN13polars_python7timeout21cancel_polars_timeout17hcaff76b77bc1047bE(i64 noundef %18, i64 %17) - to label %20 unwind label %switch.early.test + to label %20 unwind label %19 -switch.early.test: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit, %26 - %lpad.thr_comm = landingpad { ptr, i32 } +19: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit, %26 + %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %19 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %19, label %37 [ + %20 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %20, label %37 [ i8 2, label %common.resume i8 0, label %common.resume ] -20: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit - %21 = load i8, ptr %7, align 8, !range !114, !noundef !4 - switch i8 %21, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ - i8 2, label %22 - i8 0, label %29 +22: ; preds = %_ZN4pyo36marker6Python13allow_threads17h88a1554b2211763dE.exit + %23 = load i8, ptr %7, align 8, !range !114, !noundef !4 + switch i8 %23, label %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" [ + i8 2, label %24 + i8 0, label %31 ] -22: ; preds = %20 - %23 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %24 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 - %25 = icmp eq ptr %24, null - br i1 %25, label %26, label %33, !prof !8 +24: ; preds = %22 + %25 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %26 = call noalias noundef align 8 dereferenceable_or_null(16) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 1, 0) 16, i64 noundef range(i64 1, -9223372036854775807) 8) #34 + %27 = icmp eq ptr %26, null + br i1 %27, label %28, label %35, !prof !8 -26: ; preds = %22 +28: ; preds = %24 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 16) #35 - to label %.noexc unwind label %switch.early.test + to label %.noexc unwind label %19 -.noexc: ; preds = %26 +.noexc: ; preds = %28 unreachable -"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %20 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %27, i64 56, i1 false) +"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit": ; preds = %22 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %29, i64 56, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @"_ZN97_$LT$polars_python..error..PyPolarsErr$u20$as$u20$core..convert..From$LT$pyo3..err..PyErr$GT$$GT$4from17h9b7dc8eceb7332d0E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(56) %6) - %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %28, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @"_ZN13polars_python5error107_$LT$impl$u20$core..convert..From$LT$polars_python..error..PyPolarsErr$GT$$u20$for$u20$pyo3..err..PyErr$GT$4from17hef0a4426a544c11dE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %5) call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %36 + br label %38 -29: ; preds = %20 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %31 = load i8, ptr %30, align 1, !range !5, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 1 - store i8 %31, ptr %32, align 1 - br label %36 +31: ; preds = %22 + %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %33 = load i8, ptr %32, align 1, !range !5, !noundef !4 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 1 + store i8 %33, ptr %34, align 1 + br label %38 -33: ; preds = %22 - store ptr inttoptr (i64 1 to ptr), ptr %24, align 8 - %34 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 0, ptr %34, align 8 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 1, ptr %35, align 8 +35: ; preds = %24 + store ptr inttoptr (i64 1 to ptr), ptr %26, align 8 + %36 = getelementptr inbounds nuw i8, ptr %26, i64 8 + store i64 0, ptr %36, align 8 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 1, ptr %37, align 8 %.sroa.08.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr null, ptr %.sroa.08.sroa.0.sroa.4.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %24, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 + store ptr %26, ptr %.sroa.08.sroa.0.sroa.5.0..sroa_idx, align 8 %.sroa.08.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr @anon.2827f42532b38868dc47d304c7179013.2093, ptr %.sroa.08.sroa.0.sroa.6.0..sroa_idx, align 8 %.sroa.08.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %.sroa.08.sroa.4.0..sroa_idx, i8 0, i64 20, i1 false) - br label %36 + br label %38 -36: ; preds = %29, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %33 +38: ; preds = %31, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit", %35 %.sink = phi i8 [ 0, %29 ], [ 1, %"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h08956d6c372522cfE.exit" ], [ 1, %33 ] store i8 %.sink, ptr %0, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %7) ret void -37: ; preds = %switch.early.test - %38 = getelementptr inbounds nuw i8, ptr %7, i64 8 - invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %38) #33 - to label %common.resume unwind label %39 +39: ; preds = %19 + %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 + invoke void @"_ZN4core3ptr37drop_in_place$LT$pyo3..err..PyErr$GT$17h110dae5bd1435350E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %40) #33 + to label %common.resume unwind label %41 -39: ; preds = %37 - %40 = landingpad { ptr, i32 } +41: ; preds = %39 + %42 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h6c71d900efd8fbf6E() #36 unreachable diff --git a/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll b/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll index 88ec3a3d5e3..20d76c66cd5 100644 --- a/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll +++ b/bench/quinn-rs/optimized/aa0f6okxl6jzwxndw38ja55fd.ll @@ -5185,7 +5185,7 @@ define hidden noundef zeroext i1 @_ZN11quinn_proto10connection4mtud12MtuDiscover %16 = alloca [48 x i8], align 8 %17 = alloca [24 x i8], align 8 %.not = icmp eq i8 %1, 2 - br i1 %.not, label %18, label %109 + br i1 %.not, label %18, label %112 18: ; preds = %4 %19 = getelementptr inbounds nuw i8, ptr %0, i64 64 @@ -5202,7 +5202,7 @@ define hidden noundef zeroext i1 @_ZN11quinn_proto10connection4mtud12MtuDiscover %25 = icmp eq i64 %.fr.i, %2 br i1 %25, label %switch.early.test.i, label %.thread -switch.early.test.i: ; preds = %21 +switch.early.test.i:; preds = %21 switch i64 %20, label %26 [ i64 4, label %.thread i64 3, label %.thread @@ -5210,7 +5210,7 @@ switch.early.test.i: ; preds = %21 i64 0, label %.thread ] -26: ; preds = %switch.early.test.i +.thread: ; preds = %switch.early.test.i store i64 0, ptr %19, align 8, !alias.scope !298 %27 = getelementptr inbounds nuw i8, ptr %0, i64 80 store i64 0, ptr %27, align 8, !alias.scope !298 @@ -5226,143 +5226,143 @@ switch.early.test.i: ; preds = %21 tail call void @llvm.experimental.noalias.scope.decl(metadata !301) call void @llvm.lifetime.start.p0(ptr nonnull %5) store i16 %3, ptr %5, align 2, !noalias !301 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 56 - %33 = load i16, ptr %32, align 8, !alias.scope !301, !noundef !3 - %.not.i = icmp ugt i16 %3, %33 - br i1 %.not.i, label %34, label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit - -34: ; preds = %.thread - store i16 %3, ptr %32, align 8, !alias.scope !301 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store i64 %2, ptr %35, align 8, !alias.scope !301 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6retain17h0160155d9a2a770dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %36, ptr noalias noundef nonnull readonly align 2 dereferenceable(2) %5) + %35 = getelementptr inbounds nuw i8, ptr %0, i64 56 + %36 = load i16, ptr %35, align 8, !alias.scope !301, !noundef !3 + %.not.i = icmp ugt i16 %3, %36 + br i1 %.not.i, label %37, label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit + +37: ; preds = %.thread + store i16 %3, ptr %35, align 8, !alias.scope !301 + %38 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store i64 %2, ptr %38, align 8, !alias.scope !301 + %39 = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6retain17h0160155d9a2a770dE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %39, ptr noalias noundef nonnull readonly align 2 dereferenceable(2) %5) br label %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit -_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit: ; preds = %.thread, %34 +_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit: ; preds = %.thread, %37 call void @llvm.lifetime.end.p0(ptr nonnull %5) - br label %109 + br label %112 -37: ; preds = %26 - %38 = icmp ult i64 %31, 5 - tail call void @llvm.assume(i1 %38) - %39 = icmp eq i64 %31, 0 - br i1 %39, label %40, label %.critedge +40: ; preds = %26 + %41 = icmp ult i64 %31, 5 + tail call void @llvm.assume(i1 %41) + %42 = icmp eq i64 %31, 0 + br i1 %42, label %43, label %.critedge -40: ; preds = %37 - %41 = load atomic i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, i64 16) monotonic, align 8 - switch i8 %41, label %42 [ +43: ; preds = %40 + %44 = load atomic i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, i64 16) monotonic, align 8 + switch i8 %44, label %42 [ i8 0, label %.critedge i8 1, label %.thread107 i8 2, label %.thread107 ], !prof !58 -42: ; preds = %40 - %43 = tail call noundef i8 @_ZN12tracing_core8callsite15DefaultCallsite8register17h2255f81eb7667e37E(ptr noundef nonnull align 8 @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E) - %44 = icmp eq i8 %43, 0 - br i1 %44, label %.critedge, label %.thread107 +45: ; preds = %43 + %46 = tail call noundef i8 @_ZN12tracing_core8callsite15DefaultCallsite8register17h2255f81eb7667e37E(ptr noundef nonnull align 8 @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E) + %47 = icmp eq i8 %46, 0 + br i1 %47, label %.critedge, label %.thread107 -.thread107: ; preds = %40, %40, %42 - %.sroa.06.0109 = phi i8 [ %43, %42 ], [ %41, %40 ], [ %41, %40 ] - %45 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %46 = tail call noundef zeroext i1 @_ZN7tracing15__macro_support12__is_enabled17h79c82975f1d755d5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %45, i8 noundef %.sroa.06.0109) - br i1 %46, label %47, label %.critedge +.thread107: ; preds = %43, %43, %45 + %.sroa.06.0109 = phi i8 [ %46, %42 ], [ %44, %40 ], [ %44, %40 ] + %48 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %49 = tail call noundef zeroext i1 @_ZN7tracing15__macro_support12__is_enabled17h79c82975f1d755d5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %48, i8 noundef %.sroa.06.0109) + br i1 %49, label %50, label %.critedge -47: ; preds = %.thread107 +50: ; preds = %.thread107 call void @llvm.lifetime.start.p0(ptr nonnull %17) - %48 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %49 = getelementptr inbounds nuw i8, ptr %48, i64 48 - %50 = load ptr, ptr %49, align 8, !nonnull !3, !align !4, !noundef !3 - %51 = getelementptr inbounds nuw i8, ptr %48, i64 56 - %52 = load i64, ptr %51, align 8, !noundef !3 - %53 = getelementptr inbounds nuw i8, ptr %48, i64 64 - %54 = load ptr, ptr %53, align 8, !nonnull !3, !align !9, !noundef !3 - %55 = getelementptr inbounds nuw i8, ptr %48, i64 72 - %56 = load ptr, ptr %55, align 8, !nonnull !3, !align !4, !noundef !3 + %51 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %52 = getelementptr inbounds nuw i8, ptr %51, i64 48 + %53 = load ptr, ptr %52, align 8, !nonnull !3, !align !4, !noundef !3 + %54 = getelementptr inbounds nuw i8, ptr %51, i64 56 + %55 = load i64, ptr %54, align 8, !noundef !3 + %56 = getelementptr inbounds nuw i8, ptr %51, i64 64 + %57 = load ptr, ptr %56, align 8, !nonnull !3, !align !9, !noundef !3 + %58 = getelementptr inbounds nuw i8, ptr %51, i64 72 + %59 = load ptr, ptr %58, align 8, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %16) call void @llvm.lifetime.start.p0(ptr nonnull %15) - %.not92 = icmp eq i64 %52, 0 - br i1 %.not92, label %105, label %100 - -.critedge: ; preds = %40, %26, %42, %.thread107, %37 - %57 = load atomic i8, ptr @_ZN12tracing_core10dispatcher6EXISTS17h4bd33b52b8179ae2E monotonic, align 1 - %58 = icmp eq i8 %57, 0 - br i1 %58, label %59, label %96 - -59: ; preds = %.critedge - %60 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17h8c83adbf44bff488E monotonic, align 8 - %61 = icmp ult i64 %60, 6 - tail call void @llvm.assume(i1 %61) - %62 = icmp samesign ugt i64 %60, 4 - br i1 %62, label %63, label %96 - -63: ; preds = %59 - %64 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %65 = getelementptr inbounds nuw i8, ptr %64, i64 32 - %66 = load ptr, ptr %65, align 8, !nonnull !3, !align !9, !noundef !3 - %67 = getelementptr inbounds nuw i8, ptr %64, i64 40 - %68 = load i64, ptr %67, align 8, !noundef !3 + %.not92 = icmp eq i64 %55, 0 + br i1 %.not92, label %108, label %103 + +.critedge: ; preds = %43, %26, %45, %.thread107, %40 + %60 = load atomic i8, ptr @_ZN12tracing_core10dispatcher6EXISTS17h4bd33b52b8179ae2E monotonic, align 1 + %61 = icmp eq i8 %60, 0 + br i1 %61, label %62, label %99 + +62: ; preds = %.critedge + %63 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17h8c83adbf44bff488E monotonic, align 8 + %64 = icmp ult i64 %63, 6 + tail call void @llvm.assume(i1 %64) + %65 = icmp samesign ugt i64 %63, 4 + br i1 %65, label %66, label %99 + +66: ; preds = %62 + %67 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %68 = getelementptr inbounds nuw i8, ptr %67, i64 32 + %69 = load ptr, ptr %68, align 8, !nonnull !3, !align !9, !noundef !3 + %70 = getelementptr inbounds nuw i8, ptr %67, i64 40 + %71 = load i64, ptr %70, align 8, !noundef !3 store i64 5, ptr %12, align 8 %.sroa.530.0..sroa_idx31 = getelementptr inbounds nuw i8, ptr %12, i64 8 - store ptr %66, ptr %.sroa.530.0..sroa_idx31, align 8 + store ptr %69, ptr %.sroa.530.0..sroa_idx31, align 8 %.sroa.633.0..sroa_idx34 = getelementptr inbounds nuw i8, ptr %12, i64 16 - store i64 %68, ptr %.sroa.633.0..sroa_idx34, align 8 - %69 = tail call { ptr, ptr } @_ZN3log6logger17hee1dafc15e2b57e5E() - %70 = extractvalue { ptr, ptr } %69, 0 - %71 = extractvalue { ptr, ptr } %69, 1 - %72 = getelementptr inbounds nuw i8, ptr %71, i64 24 - %73 = load ptr, ptr %72, align 8, !invariant.load !3, !nonnull !3 - %74 = call noundef zeroext i1 %73(ptr noundef align 1 %70, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) - br i1 %74, label %75, label %96 - -75: ; preds = %63 + store i64 %71, ptr %.sroa.633.0..sroa_idx34, align 8 + %72 = tail call { ptr, ptr } @_ZN3log6logger17hee1dafc15e2b57e5E() + %73 = extractvalue { ptr, ptr } %72, 0 + %74 = extractvalue { ptr, ptr } %72, 1 + %75 = getelementptr inbounds nuw i8, ptr %74, i64 24 + %76 = load ptr, ptr %75, align 8, !invariant.load !3, !nonnull !3 + %77 = call noundef zeroext i1 %73(ptr noundef align 1 %73, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) + br i1 %77, label %78, label %99 + +78: ; preds = %66 call void @llvm.lifetime.start.p0(ptr nonnull %11) - %76 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 - %77 = getelementptr inbounds nuw i8, ptr %76, i64 48 - %78 = load ptr, ptr %77, align 8, !nonnull !3, !align !4, !noundef !3 - %79 = getelementptr inbounds nuw i8, ptr %76, i64 56 - %80 = load i64, ptr %79, align 8, !noundef !3 - %81 = getelementptr inbounds nuw i8, ptr %76, i64 64 - %82 = load ptr, ptr %81, align 8, !nonnull !3, !align !9, !noundef !3 - %83 = getelementptr inbounds nuw i8, ptr %76, i64 72 - %84 = load ptr, ptr %83, align 8, !nonnull !3, !align !4, !noundef !3 + %79 = load ptr, ptr @_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked10__CALLSITE17h76f194ef15129698E, align 8, !nonnull !3, !align !4, !noundef !3 + %80 = getelementptr inbounds nuw i8, ptr %79, i64 48 + %81 = load ptr, ptr %80, align 8, !nonnull !3, !align !4, !noundef !3 + %82 = getelementptr inbounds nuw i8, ptr %79, i64 56 + %83 = load i64, ptr %82, align 8, !noundef !3 + %84 = getelementptr inbounds nuw i8, ptr %79, i64 64 + %85 = load ptr, ptr %84, align 8, !nonnull !3, !align !9, !noundef !3 + %86 = getelementptr inbounds nuw i8, ptr %79, i64 72 + %87 = load ptr, ptr %86, align 8, !nonnull !3, !align !4, !noundef !3 call void @llvm.lifetime.start.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %9) - %.not95 = icmp eq i64 %80, 0 - br i1 %.not95, label %90, label %85 + %.not95 = icmp eq i64 %83, 0 + br i1 %.not95, label %93, label %88 -85: ; preds = %75 +88: ; preds = %78 %.sroa.641.0..sroa_idx42 = getelementptr inbounds nuw i8, ptr %9, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.641.0..sroa_idx42, ptr noundef nonnull align 8 dereferenceable(24) %79, i64 24, i1 false) - store ptr %78, ptr %9, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.641.0..sroa_idx42, ptr noundef nonnull align 8 dereferenceable(24) %82, i64 24, i1 false) + store ptr %81, ptr %9, align 8 %.sroa.641.sroa.4.0..sroa.641.0..sroa_idx42.sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 32 store i64 0, ptr %.sroa.641.sroa.4.0..sroa.641.0..sroa_idx42.sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %8) store ptr @anon.42c61ef3774b54ef40e69522abedb007.108, ptr %8, align 8 - %86 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 1, ptr %86, align 8 - %87 = getelementptr inbounds nuw i8, ptr %8, i64 32 - store ptr null, ptr %87, align 8 - %88 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %88, align 8 - %89 = getelementptr inbounds nuw i8, ptr %8, i64 24 - store i64 0, ptr %89, align 8 + %89 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 1, ptr %89, align 8 + %90 = getelementptr inbounds nuw i8, ptr %8, i64 32 + store ptr null, ptr %90, align 8 + %91 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store ptr inttoptr (i64 8 to ptr), ptr %91, align 8 + %92 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store i64 0, ptr %92, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %7) - %.not121 = icmp eq i64 %80, 1 - br i1 %.not121, label %95, label %91, !prof !22 + %.not121 = icmp eq i64 %83, 1 + br i1 %.not121, label %98, label %94, !prof !22 -90: ; preds = %75 +93: ; preds = %78 call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -91: ; preds = %85 - store ptr %78, ptr %7, align 8 +94: ; preds = %88 + store ptr %81, ptr %7, align 8 %.sroa.650.0..sroa_idx51 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 %80, ptr %.sroa.650.0..sroa_idx51, align 8 + store i64 %83, ptr %.sroa.650.0..sroa_idx51, align 8 %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %82, ptr %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 + store ptr %85, ptr %.sroa.650.sroa.0.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 - store ptr %84, ptr %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 + store ptr %87, ptr %.sroa.650.sroa.0.sroa.5.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 %.sroa.650.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 store i64 1, ptr %.sroa.650.sroa.4.0..sroa.650.0..sroa_idx51.sroa_idx, align 8 store ptr %9, ptr %10, align 8 @@ -5370,73 +5370,73 @@ _ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habead store ptr %8, ptr %.sroa.437.0..sroa_idx, align 8 %.sroa.538.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 16 store ptr @anon.42c61ef3774b54ef40e69522abedb007.64, ptr %.sroa.538.0..sroa_idx, align 8 - %92 = getelementptr inbounds nuw i8, ptr %10, i64 24 - store ptr %7, ptr %92, align 8 + %95 = getelementptr inbounds nuw i8, ptr %10, i64 24 + store ptr %7, ptr %95, align 8 %.sroa.446.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 32 store ptr %30, ptr %.sroa.446.0..sroa_idx, align 8 %.sroa.547.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 40 store ptr @anon.42c61ef3774b54ef40e69522abedb007.109, ptr %.sroa.547.0..sroa_idx, align 8 store ptr %10, ptr %11, align 8 - %93 = getelementptr inbounds nuw i8, ptr %11, i64 8 - store i64 2, ptr %93, align 8 - %94 = getelementptr inbounds nuw i8, ptr %11, i64 16 - store ptr %77, ptr %94, align 8 + %96 = getelementptr inbounds nuw i8, ptr %11, i64 8 + store i64 2, ptr %96, align 8 + %97 = getelementptr inbounds nuw i8, ptr %11, i64 16 + store ptr %80, ptr %97, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false) - call void @_ZN7tracing15__macro_support13__tracing_log17hfcd250a03a6c4879E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %64, ptr noundef nonnull align 1 %70, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %71, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) + call void @_ZN7tracing15__macro_support13__tracing_log17hfcd250a03a6c4879E(ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %67, ptr noundef nonnull align 1 %73, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %74, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %9) call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.end.p0(ptr nonnull %11) - br label %96 + br label %99 -95: ; preds = %85 +98: ; preds = %88 call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -96: ; preds = %63, %91, %59, %.critedge, %106 - %97 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store i64 0, ptr %97, align 8, !alias.scope !304 - %98 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store i16 %3, ptr %98, align 8, !alias.scope !304 - %99 = getelementptr inbounds nuw i8, ptr %0, i64 48 - store i64 %2, ptr %99, align 8, !alias.scope !304 - br label %109 +99: ; preds = %66, %94, %62, %.critedge, %109 + %100 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store i64 0, ptr %100, align 8, !alias.scope !304 + %101 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store i16 %3, ptr %101, align 8, !alias.scope !304 + %102 = getelementptr inbounds nuw i8, ptr %0, i64 48 + store i64 %2, ptr %102, align 8, !alias.scope !304 + br label %112 -100: ; preds = %47 +103: ; preds = %50 %.sroa.6.0..sroa_idx16 = getelementptr inbounds nuw i8, ptr %15, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.0..sroa_idx16, ptr noundef nonnull align 8 dereferenceable(24) %51, i64 24, i1 false) - store ptr %50, ptr %15, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.0..sroa_idx16, ptr noundef nonnull align 8 dereferenceable(24) %54, i64 24, i1 false) + store ptr %53, ptr %15, align 8 %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx16.sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 32 store i64 0, ptr %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx16.sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %14) store ptr @anon.42c61ef3774b54ef40e69522abedb007.108, ptr %14, align 8 - %101 = getelementptr inbounds nuw i8, ptr %14, i64 8 - store i64 1, ptr %101, align 8 - %102 = getelementptr inbounds nuw i8, ptr %14, i64 32 - store ptr null, ptr %102, align 8 - %103 = getelementptr inbounds nuw i8, ptr %14, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %103, align 8 - %104 = getelementptr inbounds nuw i8, ptr %14, i64 24 - store i64 0, ptr %104, align 8 + %104 = getelementptr inbounds nuw i8, ptr %14, i64 8 + store i64 1, ptr %104, align 8 + %105 = getelementptr inbounds nuw i8, ptr %14, i64 32 + store ptr null, ptr %105, align 8 + %106 = getelementptr inbounds nuw i8, ptr %14, i64 16 + store ptr inttoptr (i64 8 to ptr), ptr %106, align 8 + %107 = getelementptr inbounds nuw i8, ptr %14, i64 24 + store i64 0, ptr %107, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %13) - %.not120 = icmp eq i64 %52, 1 - br i1 %.not120, label %108, label %106, !prof !22 + %.not120 = icmp eq i64 %55, 1 + br i1 %.not120, label %111, label %109, !prof !22 -105: ; preds = %47 +108: ; preds = %50 tail call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -106: ; preds = %100 - store ptr %50, ptr %13, align 8 +109: ; preds = %103 + store ptr %53, ptr %13, align 8 %.sroa.624.0..sroa_idx25 = getelementptr inbounds nuw i8, ptr %13, i64 8 - store i64 %52, ptr %.sroa.624.0..sroa_idx25, align 8 + store i64 %55, ptr %.sroa.624.0..sroa_idx25, align 8 %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 16 - store ptr %54, ptr %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 + store ptr %57, ptr %.sroa.624.sroa.0.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 24 - store ptr %56, ptr %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 + store ptr %59, ptr %.sroa.624.sroa.0.sroa.5.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 %.sroa.624.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 32 store i64 1, ptr %.sroa.624.sroa.4.0..sroa.624.0..sroa_idx25.sroa_idx, align 8 store ptr %15, ptr %16, align 8 @@ -5444,8 +5444,8 @@ _ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habead store ptr %14, ptr %.sroa.412.0..sroa_idx, align 8 %.sroa.513.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 16 store ptr @anon.42c61ef3774b54ef40e69522abedb007.64, ptr %.sroa.513.0..sroa_idx, align 8 - %107 = getelementptr inbounds nuw i8, ptr %16, i64 24 - store ptr %13, ptr %107, align 8 + %110 = getelementptr inbounds nuw i8, ptr %16, i64 24 + store ptr %13, ptr %110, align 8 %.sroa.420.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 32 store ptr %30, ptr %.sroa.420.0..sroa_idx, align 8 %.sroa.521.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 40 @@ -5454,20 +5454,20 @@ _ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habead %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 8 store i64 2, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.510.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 16 - store ptr %49, ptr %.sroa.510.0..sroa_idx, align 8 + store ptr %52, ptr %.sroa.510.0..sroa_idx, align 8 call fastcc void @"_ZN11quinn_proto10connection4mtud12MtuDiscovery8on_acked28_$u7b$$u7b$closure$u7d$$u7d$17hda4d59af355d8497E"(ptr noalias noundef align 8 captures(none) dereferenceable(24) %17) call void @llvm.lifetime.end.p0(ptr nonnull %17) call void @llvm.lifetime.end.p0(ptr nonnull %13) call void @llvm.lifetime.end.p0(ptr nonnull %14) call void @llvm.lifetime.end.p0(ptr nonnull %15) call void @llvm.lifetime.end.p0(ptr nonnull %16) - br label %96 + br label %99 -108: ; preds = %100 +111: ; preds = %103 tail call void @_ZN4core6option13expect_failed17h89918c64c89b4471E(ptr noalias noundef nonnull readonly align 1 @anon.42c61ef3774b54ef40e69522abedb007.59, i64 noundef 34, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.42c61ef3774b54ef40e69522abedb007.106) #24 unreachable -109: ; preds = %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit, %96, %4 +112: ; preds = %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit, %99, %4 %.sroa.0.0 = phi i1 [ false, %4 ], [ true, %96 ], [ false, %_ZN11quinn_proto10connection4mtud17BlackHoleDetector18on_non_probe_acked17habeadba1cd5eaaaeE.exit ] ret i1 %.sroa.0.0 } diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index ef1e9e1af34..8535e8f7e78 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -70675,7 +70675,7 @@ define internal fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRender i64 6, label %124 ] -default.unreachable115: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %4 +default.unreachable100: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %4 unreachable 13: ; preds = %4 @@ -70883,8 +70883,8 @@ default.unreachable115: ; preds = %_ZN4core4iter8adapt 102: ; preds = %95 %103 = call noundef align 8 dereferenceable_or_null(24) ptr @_ZN12citationberg5Names10substitute17h8f0eb5d0aeb3be32E(ptr noalias noundef nonnull readonly align 8 dereferenceable(216) %83) - %.not.i88 = icmp eq ptr %103, null - br i1 %.not.i88, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", label %104 + %.not.i79 = icmp eq ptr %103, null + br i1 %.not.i79, label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit", label %104 104: ; preds = %102 %105 = getelementptr inbounds nuw i8, ptr %103, i64 8 @@ -70939,7 +70939,7 @@ default.unreachable115: ; preds = %_ZN4core4iter8adapt %127 = getelementptr inbounds nuw i8, ptr %6, i64 16 br label %128 -128: ; preds = %.loopexit66, %124 +128: ; preds = %158, %124 %.sroa.026.0 = phi i64 [ %.sroa.026.0.copyload, %124 ], [ %.sroa.026.145.ph, %.loopexit66 ] %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %124 ], [ %.sroa.6.147.ph, %.loopexit66 ] %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %124 ], [ %.sroa.8.1.ph, %.loopexit66 ] @@ -70988,11 +70988,11 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i: ; pr .preheader.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader.i.i %140 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 switch i8 %140, label %.preheader.i.i [ - i8 2, label %.loopexit + i8 2, label %63 i8 0, label %.loopexit66 ] -.preheader2.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader2.i.i +_ZN4core4iter6traits8iterator8Iterator3all17h00084081b9178dd7E.exit.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader2.i.i %141 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 %.not.i.i.i.i = icmp ne i8 %141, 2 %142 = trunc nuw i8 %141 to i1 @@ -71001,25 +71001,25 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i: ; pr br i1 %143, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader2.i.i .preheader3.i.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit.i, %.preheader3.i.i - %144 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 - %.not.i.not.i.i.i = icmp eq i8 %144, 2 - %145 = trunc nuw i8 %144 to i1 - %146 = select i1 %.not.i.not.i.i.i, i1 true, i1 %145 + %142 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6), !range !566 + %.not.i.i.i.i = icmp eq i8 %142, 2 + %143 = trunc nuw i8 %142 to i1 + %146 = select i1 %.not.i.i.i.i, i1 true, i1 %145 br i1 %146, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, label %.preheader3.i.i _ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i: ; preds = %.preheader3.i.i, %.preheader2.i.i - %.0.in.i.i = phi i1 [ %.not.i.i.i.i, %.preheader2.i.i ], [ %.not.i.not.i.i.i, %.preheader3.i.i ] - br i1 %.0.in.i.i, label %.loopexit, label %.loopexit66 + %.0.in.i.i = phi i1 [ %.not.i.i.i.i, %.preheader2.i.i ], [ %.not.i.i.i.i, %.preheader3.i.i ] + br i1 %.0.in.i.i, label %63, label %158 -147: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" +147:; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" %148 = getelementptr inbounds nuw i8, ptr %0, i64 208 %149 = load ptr, ptr %148, align 8, !alias.scope !14614, !noalias !14621, !nonnull !4, !noundef !4 %150 = getelementptr inbounds nuw i8, ptr %0, i64 216 %151 = load i64, ptr %150, align 8, !alias.scope !14614, !noalias !14621, !noundef !4 %152 = getelementptr inbounds { i64, [30 x i64] }, ptr %149, i64 %151 - br label %153 + br label %155 -153: ; preds = %154, %147 +155: ; preds = %154, %147 %.sroa.027.0 = phi ptr [ %149, %147 ], [ %155, %154 ] %.not73.not.not.not = icmp ne ptr %.sroa.027.0, %152 br i1 %.not73.not.not.not, label %154, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit @@ -71029,30 +71029,30 @@ _ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i: ; preds = %.preh %156 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.027.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14622 br i1 %156, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %153 -.loopexit66: ; preds = %.preheader.i.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i +158: ; preds = %.preheader.i.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !14619 br label %128 -.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, %.preheader.i.i +159: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit.i, %.preheader.i.i call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !14619 - %157 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 8 - %158 = load ptr, ptr %157, align 8, !nonnull !4, !noundef !4 - %159 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 16 - %160 = load i64, ptr %159, align 8, !noundef !4 - %161 = getelementptr inbounds { i64, [30 x i64] }, ptr %158, i64 %160 - br label %162 + %160 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 8 + %161 = load ptr, ptr %160, align 8, !nonnull !4, !noundef !4 + %162 = getelementptr inbounds nuw i8, ptr %.0.i20.i.ph, i64 16 + %163 = load i64, ptr %162, align 8, !noundef !4 + %164 = getelementptr inbounds { i64, [30 x i64] }, ptr %161, i64 %163 + br label %165 -162: ; preds = %163, %.loopexit - %.sroa.029.0 = phi ptr [ %158, %.loopexit ], [ %164, %163 ] - %.not.not.not.not = icmp ne ptr %.sroa.029.0, %161 - br i1 %.not.not.not.not, label %163, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit +165: ; preds = %166, %159 + %.sroa.029.0 = phi ptr [ %161, %.loopexit ], [ %167, %163 ] + %.not.not.not.not = icmp ne ptr %.sroa.029.0, %164 + br i1 %.not.not.not.not, label %166, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit -163: ; preds = %162 - %164 = getelementptr inbounds nuw i8, ptr %.sroa.029.0, i64 248 - %165 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.029.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14629 - br i1 %165, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %162 +166: ; preds = %165 + %167 = getelementptr inbounds nuw i8, ptr %.sroa.029.0, i64 248 + %168 = tail call fastcc noundef zeroext i1 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hf2a25f7273234951E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.029.0, ptr noalias noundef align 8 dereferenceable(664) %1, i8 noundef %2, i8 noundef %3), !noalias !14629 + br i1 %168, label %_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit, label %165 -_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit: ; preds = %163, %162, %154, %153, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" +_ZN9hayagriva3csl9rendering15choose_children17hf313e3490243ad7aE.exit: ; preds = %166, %165, %154, %153, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" %.1.i12 = phi i1 [ false, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit.i" ], [ %.not73.not.not.not, %153 ], [ %.not73.not.not.not, %154 ], [ %.not.not.not.not, %162 ], [ %.not.not.not.not, %163 ] call void @llvm.lifetime.end.p0(ptr nonnull %7) br label %"_ZN75_$LT$citationberg..Date$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$11will_render17hbb1d81b452613e35E.exit" @@ -89237,7 +89237,7 @@ define internal fastcc void @_ZN9hayagriva3csl9rendering15choose_children17h04c8 %8 = getelementptr inbounds nuw i8, ptr %4, i64 16 br label %9 -9: ; preds = %.loopexit41, %3 +9: ; preds = %40, %3 %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %3 ], [ %.sroa.6.129.ph, %.loopexit41 ] %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %3 ], [ %.sroa.0.131.ph, %.loopexit41 ] %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %3 ], [ %.sroa.8.1.ph, %.loopexit41 ] @@ -89263,7 +89263,7 @@ define internal fastcc void @_ZN9hayagriva3csl9rendering15choose_children17h04c8 %16 = getelementptr inbounds nuw i8, ptr %0, i64 200 %17 = load i64, ptr %16, align 8, !range !567, !noundef !4 %18 = icmp eq i64 %17, -9223372036854775808 - br i1 %18, label %38, label %28 + br i1 %18, label %39, label %29 _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; preds = %10, %14 %.sroa.0.131.ph = phi i64 [ 0, %14 ], [ 1, %10 ] @@ -89279,8 +89279,8 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; pred store i64 0, ptr %8, align 8 switch i8 %20, label %default.unreachable [ i8 0, label %.preheader.i - i8 1, label %.preheader2.i - i8 2, label %.preheader3.i + i8 1, label %.preheader3.i + i8 2, label %.preheader4.i ] default.unreachable: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit @@ -89289,70 +89289,70 @@ default.unreachable: ; preds = %_ZN4core4iter8adapt .preheader.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader.i %21 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 switch i8 %21, label %.preheader.i [ - i8 2, label %.loopexit + i8 2, label %63 i8 0, label %.loopexit41 ] -.preheader2.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader2.i - %22 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 - %.not.i.i.i = icmp ne i8 %22, 2 - %23 = trunc nuw i8 %22 to i1 +.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i + %23 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 + %.not.i.i.i = icmp ne i8 %23, 2 + %24 = trunc nuw i8 %23 to i1 %not..not.i.i.i = xor i1 %.not.i.i.i, true - %24 = select i1 %not..not.i.i.i, i1 true, i1 %23 - br i1 %24, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader2.i + %25 = select i1 %not..not.i.i.i, i1 true, i1 %24 + br i1 %25, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i -.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i - %25 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 - %.not.i.not.i.i = icmp eq i8 %25, 2 - %26 = trunc nuw i8 %25 to i1 - %27 = select i1 %.not.i.not.i.i, i1 true, i1 %26 - br i1 %27, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i +.preheader4.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader4.i + %26 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4), !range !566 + %.not.i.not.i2.i = icmp eq i8 %26, 2 + %27 = trunc nuw i8 %26 to i1 + %28 = select i1 %.not.i.not.i2.i, i1 true, i1 %27 + br i1 %28, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader4.i -_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader3.i, %.preheader2.i - %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i.i, %.preheader3.i ] - br i1 %.0.in.i, label %.loopexit, label %.loopexit41 +_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader4.i, %.preheader3.i + %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i2.i, %.preheader3.i ] + br i1 %.0.in.i, label %41, label %40 -28: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %29 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %30 = load ptr, ptr %29, align 8, !nonnull !4, !noundef !4 - %31 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %32 = load i64, ptr %31, align 8, !noundef !4 - %33 = getelementptr inbounds nuw i8, ptr %2, i64 224 - %34 = load i64, ptr %33, align 8, !range !567, !alias.scope !18558, !noalias !18561, !noundef !4 - %35 = icmp eq i64 %34, -9223372036854775808 - %36 = getelementptr inbounds nuw i8, ptr %2, i64 232 - %..val.i = load ptr, ptr %36, align 8, !alias.scope !18558, !noalias !18561, !nonnull !4 - %37 = getelementptr inbounds nuw i8, ptr %2, i64 240 - %..val2.i = load i64, ptr %37, align 8, !alias.scope !18558, !noalias !18561 - %.sroa.3.0.i = select i1 %35, i64 undef, i64 %..val2.i - %.sroa.0.0.i = select i1 %35, ptr null, ptr %..val.i - tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %30, i64 noundef %32, ptr noalias noundef readonly align 1 %.sroa.0.0.i, i64 %.sroa.3.0.i, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18566 - br label %38 +29: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %30 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %31 = load ptr, ptr %30, align 8, !nonnull !4, !noundef !4 + %32 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %33 = load i64, ptr %32, align 8, !noundef !4 + %34 = getelementptr inbounds nuw i8, ptr %2, i64 224 + %35 = load i64, ptr %34, align 8, !range !567, !alias.scope !18558, !noalias !18561, !noundef !4 + %36 = icmp eq i64 %35, -9223372036854775808 + %37 = getelementptr inbounds nuw i8, ptr %2, i64 232 + %..val.i = load ptr, ptr %37, align 8, !alias.scope !18558, !noalias !18561, !nonnull !4 + %38 = getelementptr inbounds nuw i8, ptr %2, i64 240 + %..val2.i = load i64, ptr %38, align 8, !alias.scope !18558, !noalias !18561 + %.sroa.3.0.i = select i1 %36, i64 undef, i64 %..val2.i + %.sroa.0.0.i = select i1 %36, ptr null, ptr %..val.i + tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %31, i64 noundef %33, ptr noalias noundef readonly align 1 %.sroa.0.0.i, i64 %.sroa.3.0.i, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18566 + br label %39 -38: ; preds = %28, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit", %.loopexit +39: ; preds = %29, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit", %41 ret void -.loopexit41: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +40: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit call void @llvm.lifetime.end.p0(ptr nonnull %4) br label %9 -.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i +41: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i call void @llvm.lifetime.end.p0(ptr nonnull %4) - %39 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 8 - %40 = load ptr, ptr %39, align 8, !nonnull !4, !noundef !4 - %41 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 16 - %42 = load i64, ptr %41, align 8, !noundef !4 - %43 = getelementptr inbounds nuw i8, ptr %2, i64 224 - %44 = load i64, ptr %43, align 8, !range !567, !alias.scope !18567, !noalias !18570, !noundef !4 - %45 = icmp eq i64 %44, -9223372036854775808 - %46 = getelementptr inbounds nuw i8, ptr %2, i64 232 - %..val.i21 = load ptr, ptr %46, align 8, !alias.scope !18567, !noalias !18570, !nonnull !4 - %47 = getelementptr inbounds nuw i8, ptr %2, i64 240 - %..val2.i22 = load i64, ptr %47, align 8, !alias.scope !18567, !noalias !18570 - %.sroa.3.0.i23 = select i1 %45, i64 undef, i64 %..val2.i22 - %.sroa.0.0.i24 = select i1 %45, ptr null, ptr %..val.i21 - tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %40, i64 noundef %42, ptr noalias noundef readonly align 1 %.sroa.0.0.i24, i64 %.sroa.3.0.i23, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18575 - br label %38 + %42 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 8 + %43 = load ptr, ptr %42, align 8, !nonnull !4, !noundef !4 + %44 = getelementptr inbounds nuw i8, ptr %.0.i20.ph, i64 16 + %45 = load i64, ptr %44, align 8, !noundef !4 + %46 = getelementptr inbounds nuw i8, ptr %2, i64 224 + %47 = load i64, ptr %46, align 8, !range !567, !alias.scope !18567, !noalias !18570, !noundef !4 + %48 = icmp eq i64 %47, -9223372036854775808 + %49 = getelementptr inbounds nuw i8, ptr %2, i64 232 + %..val.i21 = load ptr, ptr %49, align 8, !alias.scope !18567, !noalias !18570, !nonnull !4 + %50 = getelementptr inbounds nuw i8, ptr %2, i64 240 + %..val2.i22 = load i64, ptr %50, align 8, !alias.scope !18567, !noalias !18570 + %.sroa.3.0.i23 = select i1 %48, i64 undef, i64 %..val2.i22 + %.sroa.0.0.i24 = select i1 %48, ptr null, ptr %..val.i21 + tail call fastcc void @_ZN9hayagriva3csl9rendering21render_with_delimiter17hf6cb2fd74de3fe4bE(ptr noalias noundef nonnull readonly align 8 %43, i64 noundef %45, ptr noalias noundef readonly align 1 %.sroa.0.0.i24, i64 %.sroa.3.0.i23, ptr noalias noundef nonnull align 8 dereferenceable(664) %1), !noalias !18575 + br label %39 } ; Function Attrs: nonlazybind uwtable @@ -89372,7 +89372,7 @@ define hidden range(i40 0, -252) i40 @_ZN9hayagriva3csl9rendering15choose_childr %7 = getelementptr inbounds nuw i8, ptr %3, i64 16 br label %8 -8: ; preds = %.loopexit114, %2 +8: ; preds = %62, %2 %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %2 ], [ %.sroa.8.1.ph, %.loopexit114 ] %.sroa.6.0 = phi ptr [ %.sroa.6.0.copyload, %2 ], [ %.sroa.6.197.ph, %.loopexit114 ] %.sroa.0.0 = phi i64 [ %.sroa.0.0.copyload, %2 ], [ %.sroa.0.19399.ph, %.loopexit114 ] @@ -89398,7 +89398,7 @@ define hidden range(i40 0, -252) i40 @_ZN9hayagriva3csl9rendering15choose_childr %15 = getelementptr inbounds nuw i8, ptr %0, i64 200 %16 = load i64, ptr %15, align 8, !range !567, !noundef !4 %17 = icmp eq i64 %16, -9223372036854775808 - br i1 %17, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %27 + br i1 %17, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %28 _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; preds = %9, %13 %.sroa.0.19399.ph = phi i64 [ 0, %13 ], [ 1, %9 ] @@ -89414,160 +89414,160 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit: ; pred store i64 0, ptr %7, align 8 switch i8 %19, label %default.unreachable167 [ i8 0, label %.preheader.i - i8 1, label %.preheader2.i - i8 2, label %.preheader3.i + i8 1, label %.preheader3.i + i8 2, label %.preheader4.i ] -default.unreachable167: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit +default.unreachable155: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit unreachable .preheader.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader.i %20 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 switch i8 %20, label %.preheader.i [ - i8 2, label %.loopexit + i8 2, label %63 i8 0, label %.loopexit114 ] -.preheader2.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader2.i - %21 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 - %.not.i.i.i = icmp ne i8 %21, 2 - %22 = trunc nuw i8 %21 to i1 +.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i + %22 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 + %.not.i.i.i = icmp ne i8 %22, 2 + %23 = trunc nuw i8 %22 to i1 %not..not.i.i.i = xor i1 %.not.i.i.i, true - %23 = select i1 %not..not.i.i.i, i1 true, i1 %22 - br i1 %23, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader2.i + %24 = select i1 %not..not.i.i.i, i1 true, i1 %23 + br i1 %24, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i -.preheader3.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader3.i - %24 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 - %.not.i.not.i.i = icmp eq i8 %24, 2 - %25 = trunc nuw i8 %24 to i1 - %26 = select i1 %.not.i.not.i.i, i1 true, i1 %25 - br i1 %26, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader3.i +.preheader4.i: ; preds = %_ZN4core4iter8adapters5chain17and_then_or_clear17he10a7a45ec45b435E.exit, %.preheader4.i + %25 = call fastcc noundef i8 @"_ZN114_$LT$hayagriva..csl..rendering..BranchConditionIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b79d208f4780402E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3), !range !566 + %.not.i.not.i2.i = icmp eq i8 %25, 2 + %26 = trunc nuw i8 %25 to i1 + %27 = select i1 %.not.i.not.i2.i, i1 true, i1 %26 + br i1 %27, label %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, label %.preheader4.i -_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader3.i, %.preheader2.i - %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i.i, %.preheader3.i ] - br i1 %.0.in.i, label %.loopexit, label %.loopexit114 +_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit: ; preds = %.preheader4.i, %.preheader3.i + %.0.in.i = phi i1 [ %.not.i.i.i, %.preheader2.i ], [ %.not.i.not.i2.i, %.preheader3.i ] + br i1 %.0.in.i, label %63, label %62 -27: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %28 = getelementptr inbounds nuw i8, ptr %0, i64 208 - %29 = load ptr, ptr %28, align 8, !nonnull !4, !noundef !4 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %31 = load i64, ptr %30, align 8, !noundef !4 - %.idx142 = mul nsw i64 %31, 248 - %32 = getelementptr inbounds i8, ptr %29, i64 %.idx142 - %33 = icmp eq i64 %31, 0 - br i1 %33, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph136 - -.lr.ph136: ; preds = %27, %.lr.ph136 - %.sroa.6.0.i135 = phi i8 [ %.sroa.631.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] - %.sroa.5.0.i134 = phi i8 [ %.sroa.530.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] - %.sroa.412.0.i133 = phi i8 [ %.sroa.429.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] - %.sroa.08.0.i132 = phi i8 [ %.sroa.028.0.extract.trunc.i, %.lr.ph136 ], [ 0, %27 ] - %.0.i35131 = phi i1 [ %37, %.lr.ph136 ], [ false, %27 ] - %.sroa.090.0130 = phi ptr [ %34, %.lr.ph136 ], [ %29, %27 ] - %34 = getelementptr inbounds nuw i8, ptr %.sroa.090.0130, i64 248 - %35 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.090.0130, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) - %.1.extract.shift.i = lshr i40 %35, 8 - %36 = trunc i40 %35 to i1 - %37 = or i1 %.0.i35131, %36 - %38 = trunc nuw i8 %.sroa.08.0.i132 to i1 - %.not.i75 = icmp eq i8 %.sroa.412.0.i133, 0 - %.not21.i = icmp eq i8 %.sroa.5.0.i134, 0 - %.not22.i = icmp eq i8 %.sroa.6.0.i135, 0 - %39 = trunc i40 %.1.extract.shift.i to i8 - %40 = and i8 %39, 1 - %.sroa.028.0.extract.trunc.i = select i1 %38, i8 1, i8 %40 - %41 = lshr i40 %35, 16 - %42 = trunc i40 %41 to i8 - %43 = and i8 %42, 1 - %.sroa.429.0.extract.trunc.i = select i1 %.not.i75, i8 %43, i8 1 - %44 = lshr i40 %35, 24 - %45 = trunc i40 %44 to i8 - %46 = and i8 %45, 1 - %.sroa.530.0.extract.trunc.i = select i1 %.not21.i, i8 %46, i8 1 - %sum.shift113 = lshr i40 %35, 32 - %47 = trunc nuw i40 %sum.shift113 to i8 - %48 = and i8 %47, 1 - %.sroa.631.0.extract.trunc.i = select i1 %.not22.i, i8 %48, i8 1 - %49 = icmp eq ptr %34, %32 - br i1 %49, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", label %.lr.ph136 - -"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit": ; preds = %.lr.ph136 - %50 = zext nneg i8 %.sroa.631.0.extract.trunc.i to i32 - %51 = shl nuw nsw i32 %50, 24 - %52 = zext nneg i8 %.sroa.530.0.extract.trunc.i to i32 - %53 = shl nuw nsw i32 %52, 16 - %54 = or disjoint i32 %51, %53 - %55 = zext nneg i8 %.sroa.429.0.extract.trunc.i to i32 - %56 = shl nuw nsw i32 %55, 8 - %57 = or disjoint i32 %54, %56 - %58 = zext nneg i8 %.sroa.028.0.extract.trunc.i to i32 - %59 = or disjoint i32 %57, %58 - %60 = zext i1 %37 to i8 +28: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %29 = getelementptr inbounds nuw i8, ptr %0, i64 208 + %30 = load ptr, ptr %29, align 8, !nonnull !4, !noundef !4 + %31 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %32 = load i64, ptr %31, align 8, !noundef !4 + %.idx138 = mul nsw i64 %32, 248 + %33 = getelementptr inbounds i8, ptr %30, i64 %.idx138 + %34 = icmp eq i64 %32, 0 + br i1 %34, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph132 + +.lr.ph132: ; preds = %28, %.lr.ph132 + %.sroa.6.0.i131 = phi i8 [ %.sroa.631.0.extract.trunc.i, %.lr.ph136 ], [ 0, %28 ] + %.sroa.5.0.i130 = phi i8 [ %.sroa.530.0.extract.trunc.i, %.lr.ph136 ], [ 0, %28 ] + %.sroa.412.0.i129 = phi i8 [ %.sroa.429.0.extract.trunc.i, %.lr.ph136 ], [ 0, %28 ] + %.sroa.08.0.i128 = phi i8 [ %.sroa.028.0.extract.trunc.i, %.lr.ph136 ], [ 0, %28 ] + %.0.i35127 = phi i1 [ %38, %.lr.ph136 ], [ false, %28 ] + %.sroa.090.0126 = phi ptr [ %35, %.lr.ph136 ], [ %30, %28 ] + %35 = getelementptr inbounds nuw i8, ptr %.sroa.090.0126, i64 248 + %36 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.090.0126, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) + %.1.extract.shift.i = lshr i40 %36, 8 + %37 = trunc i40 %36 to i1 + %38 = or i1 %.0.i35127, %37 + %39 = trunc nuw i8 %.sroa.08.0.i128 to i1 + %.not.i75 = icmp eq i8 %.sroa.412.0.i129, 0 + %.not21.i = icmp eq i8 %.sroa.5.0.i130, 0 + %.not22.i = icmp eq i8 %.sroa.6.0.i131, 0 + %40 = trunc i40 %.1.extract.shift.i to i8 + %41 = and i8 %40, 1 + %.sroa.028.0.extract.trunc.i = select i1 %39, i8 1, i8 %41 + %42 = lshr i40 %36, 16 + %43 = trunc i40 %42 to i8 + %44 = and i8 %43, 1 + %.sroa.429.0.extract.trunc.i = select i1 %.not.i75, i8 %44, i8 1 + %45 = lshr i40 %36, 24 + %46 = trunc i40 %45 to i8 + %47 = and i8 %46, 1 + %.sroa.530.0.extract.trunc.i = select i1 %.not21.i, i8 %47, i8 1 + %sum.shift113 = lshr i40 %36, 32 + %48 = trunc nuw i40 %sum.shift113 to i8 + %49 = and i8 %48, 1 + %.sroa.631.0.extract.trunc.i = select i1 %.not22.i, i8 %49, i8 1 + %50 = icmp eq ptr %35, %33 + br i1 %50, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", label %.lr.ph132 + +"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit": ; preds = %.lr.ph132 + %51 = zext nneg i8 %.sroa.631.0.extract.trunc.i to i32 + %52 = shl nuw nsw i32 %51, 24 + %53 = zext nneg i8 %.sroa.530.0.extract.trunc.i to i32 + %54 = shl nuw nsw i32 %53, 16 + %55 = or disjoint i32 %52, %54 + %56 = zext nneg i8 %.sroa.429.0.extract.trunc.i to i32 + %57 = shl nuw nsw i32 %56, 8 + %58 = or disjoint i32 %55, %57 + %59 = zext nneg i8 %.sroa.028.0.extract.trunc.i to i32 + %60 = or disjoint i32 %58, %59 + %61 = zext i1 %38 to i8 br label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit" -"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit": ; preds = %.loopexit, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", %27, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" - %.sroa.4.1 = phi i32 [ undef, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %27 ], [ %59, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %92, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] - %.sroa.0.1 = phi i8 [ 2, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %27 ], [ %60, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %93, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] +"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit": ; preds = %63, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", %28, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit", %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" + %.sroa.4.1 = phi i32 [ undef, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %28 ], [ %60, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %92, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] + %.sroa.0.1 = phi i8 [ 2, %"_ZN4core6option15Option$LT$T$GT$7or_else17h0ba928997dbf6865E.exit" ], [ 0, %28 ], [ %61, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit.loopexit" ], [ 0, %.loopexit ], [ %93, %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit" ] %.sroa.4.0.insert.ext = zext i32 %.sroa.4.1 to i40 %.sroa.4.0.insert.shift = shl nuw i40 %.sroa.4.0.insert.ext, 8 %.sroa.0.0.insert.ext = zext nneg i8 %.sroa.0.1 to i40 %.sroa.0.0.insert.insert = or disjoint i40 %.sroa.4.0.insert.shift, %.sroa.0.0.insert.ext ret i40 %.sroa.0.0.insert.insert -.loopexit114: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit +62: ; preds = %.preheader.i, %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit call void @llvm.lifetime.end.p0(ptr nonnull %3) br label %8 -.loopexit: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i +63: ; preds = %_ZN12citationberg11ChooseMatch4test17h29f377b03a59eba4E.exit, %.preheader.i call void @llvm.lifetime.end.p0(ptr nonnull %3) - %61 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 8 - %62 = load ptr, ptr %61, align 8, !nonnull !4, !noundef !4 - %63 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 16 - %64 = load i64, ptr %63, align 8, !noundef !4 - %.idx = mul nsw i64 %64, 248 - %65 = getelementptr inbounds i8, ptr %62, i64 %.idx - %66 = icmp eq i64 %64, 0 - br i1 %66, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph - -.lr.ph: ; preds = %.loopexit, %.lr.ph - %.sroa.6.0.i40125 = phi i8 [ %.sroa.631.0.extract.trunc.i59, %.lr.ph ], [ 0, %.loopexit ] - %.sroa.5.0.i39124 = phi i8 [ %.sroa.530.0.extract.trunc.i57, %.lr.ph ], [ 0, %.loopexit ] - %.sroa.412.0.i38123 = phi i8 [ %.sroa.429.0.extract.trunc.i55, %.lr.ph ], [ 0, %.loopexit ] - %.sroa.08.0.i37122 = phi i8 [ %.sroa.028.0.extract.trunc.i53, %.lr.ph ], [ 0, %.loopexit ] - %.0.i36121 = phi i1 [ %70, %.lr.ph ], [ false, %.loopexit ] - %.sroa.091.0120 = phi ptr [ %67, %.lr.ph ], [ %62, %.loopexit ] - %67 = getelementptr inbounds nuw i8, ptr %.sroa.091.0120, i64 248 - %68 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.091.0120, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) - %.1.extract.shift.i41 = lshr i40 %68, 8 - %69 = trunc i40 %68 to i1 - %70 = or i1 %.0.i36121, %69 - %71 = trunc nuw i8 %.sroa.08.0.i37122 to i1 - %.not.i79 = icmp eq i8 %.sroa.412.0.i38123, 0 - %.not21.i81 = icmp eq i8 %.sroa.5.0.i39124, 0 - %.not22.i83 = icmp eq i8 %.sroa.6.0.i40125, 0 - %72 = trunc i40 %.1.extract.shift.i41 to i8 + %64 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 8 + %65 = load ptr, ptr %64, align 8, !nonnull !4, !noundef !4 + %66 = getelementptr inbounds nuw i8, ptr %.0.i34.ph, i64 16 + %67 = load i64, ptr %66, align 8, !noundef !4 + %.idx = mul nsw i64 %67, 248 + %68 = getelementptr inbounds i8, ptr %65, i64 %.idx + %69 = icmp eq i64 %67, 0 + br i1 %69, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit", label %.lr.ph + +.lr.ph: ; preds = %63, %.lr.ph + %.sroa.6.0.i40121 = phi i8 [ %.sroa.631.0.extract.trunc.i59, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.5.0.i39120 = phi i8 [ %.sroa.530.0.extract.trunc.i57, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.412.0.i38119 = phi i8 [ %.sroa.429.0.extract.trunc.i55, %.lr.ph ], [ 0, %.loopexit ] + %.sroa.08.0.i37118 = phi i8 [ %.sroa.028.0.extract.trunc.i53, %.lr.ph ], [ 0, %.loopexit ] + %.0.i36117 = phi i1 [ %73, %.lr.ph ], [ false, %.loopexit ] + %.sroa.091.0116 = phi ptr [ %70, %.lr.ph ], [ %65, %.loopexit ] + %70 = getelementptr inbounds nuw i8, ptr %.sroa.091.0116, i64 248 + %71 = tail call i40 @"_ZN93_$LT$citationberg..LayoutRenderingElement$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info17h184a256c22d46976E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(248) %.sroa.091.0116, ptr noalias noundef nonnull align 8 dereferenceable(664) %1) + %.1.extract.shift.i41 = lshr i40 %71, 8 + %72 = trunc i40 %71 to i1 + %73 = or i1 %.0.i36117, %72 + %74 = trunc nuw i8 %.sroa.08.0.i37118 to i1 + %.not.i79 = icmp eq i8 %.sroa.412.0.i38119, 0 + %.not21.i81 = icmp eq i8 %.sroa.5.0.i39120, 0 + %.not22.i83 = icmp eq i8 %.sroa.6.0.i40121, 0 + %75 = trunc i40 %.1.extract.shift.i41 to i8 %73 = and i8 %72, 1 %.sroa.028.0.extract.trunc.i53 = select i1 %71, i8 1, i8 %73 %74 = lshr i40 %68, 16 %75 = trunc i40 %74 to i8 %76 = and i8 %75, 1 - %.sroa.429.0.extract.trunc.i55 = select i1 %.not.i79, i8 %76, i8 1 - %77 = lshr i40 %68, 24 + %.sroa.028.0.extract.trunc.i53 = select i1 %.not.i79, i8 %76, i8 1 + %77 = lshr i40 %71, 24 %78 = trunc i40 %77 to i8 %79 = and i8 %78, 1 - %.sroa.530.0.extract.trunc.i57 = select i1 %.not21.i81, i8 %79, i8 1 - %sum.shift = lshr i40 %68, 32 - %80 = trunc nuw i40 %sum.shift to i8 - %81 = and i8 %80, 1 - %.sroa.631.0.extract.trunc.i59 = select i1 %.not22.i83, i8 %81, i8 1 + %.sroa.429.0.extract.trunc.i55 = select i1 %.not21.i81, i8 %79, i8 1 + %80 = lshr i40 %71, 32 + %81 = trunc nuw i40 %80 to i8 + %82 = and i8 %81, 1 + %.sroa.530.0.extract.trunc.i57 = select i1 %.not22.i83, i8 %82, i8 1 %82 = icmp eq ptr %67, %65 br i1 %82, label %"_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit", label %.lr.ph "_ZN77_$LT$citationberg..Choose$u20$as$u20$hayagriva..csl..rendering..RenderCsl$GT$14will_have_info28_$u7b$$u7b$closure$u7d$$u7d$17hf28056b8e66b9830E.exit74.loopexit": ; preds = %.lr.ph - %83 = zext nneg i8 %.sroa.631.0.extract.trunc.i59 to i32 - %84 = shl nuw nsw i32 %83, 24 - %85 = zext nneg i8 %.sroa.530.0.extract.trunc.i57 to i32 - %86 = shl nuw nsw i32 %85, 16 + %86 = zext nneg i8 %.sroa.631.0.extract.trunc.i59 to i32 + %87 = shl nuw nsw i32 %86, 24 + %88 = zext nneg i8 %.sroa.530.0.extract.trunc.i57 to i32 + %89 = shl nuw nsw i32 %88, 16 %87 = or disjoint i32 %84, %86 %88 = zext nneg i8 %.sroa.429.0.extract.trunc.i55 to i32 %89 = shl nuw nsw i32 %88, 8