From 5c851e5d8092631b339c44f9f85d2e9e0e5a767a Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:40:04 +0800 Subject: [PATCH 1/2] pre-commit: PR121423 --- 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..bac1a636526 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/121423 export COMPTIME_MODE=0 # Please rebase manually From 566a3f1fac7cd8de7f41f1e2d9608036189688d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 06:57:12 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/abc/optimized/Glucose2.cpp.ll | 12 +- bench/abc/optimized/abcNtk.c.ll | 26 +- bench/abc/optimized/ifMap.c.ll | 346 ++++---- bench/abc/optimized/sswCore.c.ll | 796 +++++++++-------- bench/assimp/optimized/clipper.cpp.ll | 834 +++++++++--------- bench/cmake/optimized/inet.c.ll | 240 +++-- bench/cpython/optimized/bytearrayobject.ll | 16 +- bench/cpython/optimized/unicodeobject.ll | 798 ++++++++--------- bench/faiss/optimized/hamming.cpp.ll | 140 +-- bench/icu/optimized/genmbcs.ll | 5 +- bench/icu/optimized/regexcmp.ll | 28 +- bench/imgui/optimized/imgui.cpp.ll | 376 ++++---- bench/imgui/optimized/imgui_tables.cpp.ll | 790 ++++++++--------- bench/imgui/optimized/imgui_widgets.cpp.ll | 601 ++++++------- bench/oiio/optimized/deepdata.cpp.ll | 171 ++-- .../opencv/optimized/stereo_binary_bm.cpp.ll | 314 +++---- .../optimized/shenandoahSimpleBitMap.ll | 263 +++--- bench/redis/optimized/ldebug.ll | 7 +- bench/velox/optimized/FlatVector.cpp.ll | 24 +- bench/wolfssl/optimized/server.c.ll | 12 +- 20 files changed, 2838 insertions(+), 2961 deletions(-) diff --git a/bench/abc/optimized/Glucose2.cpp.ll b/bench/abc/optimized/Glucose2.cpp.ll index 9edae53e058..d9de746d270 100644 --- a/bench/abc/optimized/Glucose2.cpp.ll +++ b/bench/abc/optimized/Glucose2.cpp.ll @@ -13905,10 +13905,8 @@ _ZN6Gluco215ClauseAllocator5relocERjRS0_.exit79: ; preds = %327, %436, %473, %_ 532: ; preds = %531 %533 = getelementptr inbounds %"struct.Gluco2::Solver::VarData", ptr %508, i64 %525 %534 = load i32, ptr %533, align 4 - %or.cond.i = icmp sgt i32 %534, -1 %535 = icmp eq i32 %534, %511 - %or.cond114 = and i1 %or.cond.i, %535 - br i1 %or.cond114, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread + br i1 %535, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread 536: ; preds = %518 br i1 %530, label %537, label %541 @@ -13916,10 +13914,8 @@ _ZN6Gluco215ClauseAllocator5relocERjRS0_.exit79: ; preds = %327, %436, %473, %_ 537: ; preds = %536 %538 = getelementptr inbounds %"struct.Gluco2::Solver::VarData", ptr %508, i64 %525 %539 = load i32, ptr %538, align 4 - %or.cond47.i = icmp sgt i32 %539, -1 %540 = icmp eq i32 %539, %511 - %or.cond52.i = and i1 %or.cond47.i, %540 - br i1 %or.cond52.i, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %541 + br i1 %540, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %541 541: ; preds = %537, %536 %542 = getelementptr inbounds nuw i8, ptr %515, i64 16 @@ -13936,10 +13932,8 @@ _ZN6Gluco215ClauseAllocator5relocERjRS0_.exit79: ; preds = %327, %436, %473, %_ 550: ; preds = %541 %551 = getelementptr inbounds %"struct.Gluco2::Solver::VarData", ptr %508, i64 %544 %552 = load i32, ptr %551, align 4 - %or.cond53.i = icmp sgt i32 %552, -1 %553 = icmp eq i32 %552, %511 - %or.cond117 = and i1 %or.cond53.i, %553 - br i1 %or.cond117, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread + br i1 %553, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110, label %_ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread _ZNK6Gluco26Solver6lockedERKNS_6ClauseE.exit.thread110: ; preds = %550, %532, %537, %512 tail call void @_ZN6Gluco215ClauseAllocator5relocERjRS0_(ptr noundef nonnull align 8 dereferenceable(21) %129, ptr noundef nonnull align 4 dereferenceable(4) %510, ptr noundef nonnull align 8 dereferenceable(21) %1) diff --git a/bench/abc/optimized/abcNtk.c.ll b/bench/abc/optimized/abcNtk.c.ll index 925ac2ced6c..7178b1889d6 100644 --- a/bench/abc/optimized/abcNtk.c.ll +++ b/bench/abc/optimized/abcNtk.c.ll @@ -1506,7 +1506,7 @@ define void @Abc_NtkFixNonDrivenNets(ptr noundef %0) local_unnamed_addr #0 { %6 = getelementptr i8, ptr %.val42, i64 4 %.val42.val = load i32, ptr %6, align 4 %7 = icmp eq i32 %.val42.val, 0 - br i1 %7, label %85, label %8 + br i1 %7, label %83, label %8 8: ; preds = %4, %1 %9 = tail call ptr @Abc_NtkFindNet(ptr noundef nonnull %0, ptr noundef nonnull @.str.28) #17 @@ -1662,32 +1662,28 @@ Vec_PtrPush.exit: ; preds = %.Vec_PtrGrow.exit11 br i1 %78, label %79, label %71 79: ; preds = %72 - %80 = icmp sgt i32 %.pre55, 3 - br i1 %80, label %81, label %.thread - -81: ; preds = %79 - %82 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32) + %80 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32) br label %.thread -.thread: ; preds = %71, %81, %79 +.thread: ; preds = %71, %79 %putchar = tail call i32 @putchar(i32 10) - br label %83 + br label %81 .critedge.thread: ; preds = %12, %.critedge %.pre56 = load ptr, ptr %16, align 8 %.not.i = icmp eq ptr %.pre56, null - br i1 %.not.i, label %Vec_PtrFree.exit, label %83 + br i1 %.not.i, label %Vec_PtrFree.exit, label %81 -83: ; preds = %.thread, %.critedge.thread - %84 = phi ptr [ %.val41, %.thread ], [ %.pre56, %.critedge.thread ] - tail call void @free(ptr noundef nonnull %84) #17 +81: ; preds = %.thread, %.critedge.thread + %82 = phi ptr [ %.val41, %.thread ], [ %.pre56, %.critedge.thread ] + tail call void @free(ptr noundef nonnull %82) #17 br label %Vec_PtrFree.exit -Vec_PtrFree.exit: ; preds = %.critedge.thread, %83 +Vec_PtrFree.exit: ; preds = %.critedge.thread, %81 tail call void @free(ptr noundef nonnull %13) #17 - br label %85 + br label %83 -85: ; preds = %4, %Vec_PtrFree.exit +83: ; preds = %4, %Vec_PtrFree.exit ret void } diff --git a/bench/abc/optimized/ifMap.c.ll b/bench/abc/optimized/ifMap.c.ll index 7b2ea13a4c1..30fa0bbe19c 100644 --- a/bench/abc/optimized/ifMap.c.ll +++ b/bench/abc/optimized/ifMap.c.ll @@ -4811,9 +4811,9 @@ Abc_TtCheckBiDecSimple.exit: ; preds = %Abc_TtIsConst0.exit %137 = zext i32 %121 to i64 br label %138 -138: ; preds = %Abc_TtCheckBiDecSimple.exit, %511 - %indvars.iv153 = phi i64 [ 0, %Abc_TtCheckBiDecSimple.exit ], [ %indvars.iv.next154, %511 ] - %.041129 = phi i32 [ 0, %Abc_TtCheckBiDecSimple.exit ], [ %.142, %511 ] +138: ; preds = %Abc_TtCheckBiDecSimple.exit, %512 + %indvars.iv153 = phi i64 [ 0, %Abc_TtCheckBiDecSimple.exit ], [ %indvars.iv.next154, %512 ] + %.041129 = phi i32 [ 0, %Abc_TtCheckBiDecSimple.exit ], [ %.142, %512 ] call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %9) @@ -5389,11 +5389,11 @@ Abc_TtComputeGraph.exit: ; preds = %Abc_TtComputeGraph. 378: ; preds = %Abc_TtComputeGraph.exit %379 = add nsw i32 %.041129, 1 %.not53 = icmp slt i32 %.041129, %136 - br i1 %.not53, label %511, label %.loopexit114 + br i1 %.not53, label %512, label %.loopexit114 380: ; preds = %Abc_TtComputeGraph.exit %.not50 = icmp slt i32 %376, %25 - br i1 %.not50, label %511, label %381 + br i1 %.not50, label %512, label %381 381: ; preds = %380 %382 = xor i32 %367, %133 @@ -5432,7 +5432,7 @@ Abc_TtComputeGraph.exit: ; preds = %Abc_TtComputeGraph. %401 = load i32, ptr %400, align 4 %402 = add nsw i32 %401, %397 %403 = icmp sgt i32 %402, %2 - br i1 %403, label %511, label %.split.us.i85 + br i1 %403, label %512, label %.split.us.i85 .split.us.i85: ; preds = %393 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %.sroa.0) @@ -5444,43 +5444,40 @@ Abc_TtComputeGraph.exit: ; preds = %Abc_TtComputeGraph. %406 = xor i32 %367, -1 %407 = and i32 %.1, %406 store i32 %407, ptr %.sroa.5, align 4 - br i1 %122, label %.split.us.split.us.i, label %.split.us.split.i + br i1 %122, label %.split.us.split.us.preheader.i, label %.split.us.split.i -.split.us.split.us.i: ; preds = %.split.us.i85, %._crit_edge.split.us.us.us.i - %408 = phi i1 [ false, %._crit_edge.split.us.us.us.i ], [ true, %.split.us.i85 ] - %indvars.iv74.i.sroa.phi = phi ptr [ %indvar.i.sroa.gep93, %._crit_edge.split.us.us.us.i ], [ %6, %.split.us.i85 ] - %indvars.iv74.i.sroa.phi98 = phi ptr [ %.sroa.5, %._crit_edge.split.us.us.us.i ], [ %.sroa.0, %.split.us.i85 ] - br i1 %125, label %.lr.ph18.i.us.us.preheader.i, label %Abc_TtCopy.exit.us.us.i +.split.us.split.us.preheader.i: ; preds = %.split.us.i85 + %408 = load i64, ptr %0, align 8 + br label %.split.us.split.us.i -.lr.ph18.i.us.us.preheader.i: ; preds = %.split.us.split.us.i - %409 = load i64, ptr %0, align 8 - store i64 %409, ptr %indvars.iv74.i.sroa.phi, align 8 - br label %Abc_TtCopy.exit.us.us.i - -Abc_TtCopy.exit.us.us.i: ; preds = %.lr.ph18.i.us.us.preheader.i, %.split.us.split.us.i +.split.us.split.us.i: ; preds = %._crit_edge.split.us.us.us.i, %.split.us.split.us.preheader.i + %409 = phi i1 [ true, %.split.us.split.us.preheader.i ], [ false, %._crit_edge.split.us.us.us.i ] + %indvars.iv74.i.sroa.phi = phi ptr [ %6, %.split.us.split.us.preheader.i ], [ %indvar.i.sroa.gep93, %._crit_edge.split.us.us.us.i ] + %indvars.iv74.i.sroa.phi98 = phi ptr [ %.sroa.0, %.split.us.split.us.preheader.i ], [ %.sroa.5, %._crit_edge.split.us.us.us.i ] + store i64 %408, ptr %indvars.iv74.i.sroa.phi, align 8 %410 = load i32, ptr %indvars.iv74.i.sroa.phi98, align 4 br label %411 -411: ; preds = %428, %Abc_TtCopy.exit.us.us.i - %indvars.iv69.i = phi i64 [ %indvars.iv.next70.i, %428 ], [ 0, %Abc_TtCopy.exit.us.us.i ] - %412 = trunc nuw nsw i64 %indvars.iv69.i to i32 - %413 = shl nuw i32 1, %412 - %414 = and i32 %413, %410 - %.not27.us.us.us.i = icmp eq i32 %414, 0 +411: ; preds = %428, %.split.us.split.us.i + %412 = phi i64 [ %429, %428 ], [ %408, %.split.us.split.us.i ] + %indvars.iv69.i = phi i64 [ %indvars.iv.next70.i, %428 ], [ 0, %.split.us.split.us.i ] + %413 = trunc nuw nsw i64 %indvars.iv69.i to i32 + %414 = shl nuw i32 1, %413 + %415 = and i32 %414, %410 + %.not27.us.us.us.i = icmp eq i32 %415, 0 br i1 %.not27.us.us.us.i, label %428, label %Abc_TtCofactor0p.exit.thread23.i.us.us.us.i Abc_TtCofactor0p.exit.thread23.i.us.us.us.i: ; preds = %411 call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %4) call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %5) - %415 = load i64, ptr %indvars.iv74.i.sroa.phi, align 8 %416 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6Neg, i64 0, i64 %indvars.iv69.i %417 = load i64, ptr %416, align 8 - %418 = and i64 %417, %415 - %419 = zext nneg i32 %413 to i64 + %418 = and i64 %417, %412 + %419 = zext nneg i32 %414 to i64 %420 = shl i64 %418, %419 %421 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6, i64 0, i64 %indvars.iv69.i %422 = load i64, ptr %421, align 8 - %423 = and i64 %422, %415 + %423 = and i64 %422, %412 %424 = lshr i64 %423, %419 %425 = or i64 %420, %424 %426 = or i64 %425, %418 @@ -5491,15 +5488,16 @@ Abc_TtCofactor0p.exit.thread23.i.us.us.us.i: ; preds = %411 br label %428 428: ; preds = %Abc_TtCofactor0p.exit.thread23.i.us.us.us.i, %411 + %429 = phi i64 [ %427, %Abc_TtCofactor0p.exit.thread23.i.us.us.us.i ], [ %412, %411 ] %indvars.iv.next70.i = add nuw nsw i64 %indvars.iv69.i, 1 %exitcond73.not.i = icmp eq i64 %indvars.iv.next70.i, %wide.trip.count184.i br i1 %exitcond73.not.i, label %._crit_edge.split.us.us.us.i, label %411, !llvm.loop !40 ._crit_edge.split.us.us.us.i: ; preds = %428 - br i1 %408, label %.split.us.split.us.i, label %.preheader.i, !llvm.loop !41 + br i1 %409, label %.split.us.split.us.i, label %.preheader.i, !llvm.loop !41 .split.us.split.i: ; preds = %.split.us.i85, %._crit_edge.split.us41.i - %429 = phi i1 [ false, %._crit_edge.split.us41.i ], [ true, %.split.us.i85 ] + %430 = phi i1 [ false, %._crit_edge.split.us41.i ], [ true, %.split.us.i85 ] %indvar.i.sroa.phi = phi ptr [ %indvar.i.sroa.gep93, %._crit_edge.split.us41.i ], [ %6, %.split.us.i85 ] %indvar.i.sroa.phi95 = phi ptr [ %.sroa.5, %._crit_edge.split.us41.i ], [ %.sroa.0, %.split.us.i85 ] br i1 %125, label %.lr.ph18.i.us.preheader.i, label %Abc_TtCopy.exit.us.i @@ -5509,157 +5507,157 @@ Abc_TtCofactor0p.exit.thread23.i.us.us.us.i: ; preds = %411 br label %Abc_TtCopy.exit.us.i Abc_TtCopy.exit.us.i: ; preds = %.lr.ph18.i.us.preheader.i, %.split.us.split.i - %430 = load i32, ptr %indvar.i.sroa.phi95, align 4 - %431 = getelementptr inbounds i64, ptr %indvar.i.sroa.phi, i64 %123 - %432 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %wide.trip.count59.i.i81 - br label %433 - -433: ; preds = %498, %Abc_TtCopy.exit.us.i - %indvars.iv.i87 = phi i64 [ 0, %Abc_TtCopy.exit.us.i ], [ %indvars.iv.next.i88, %498 ] - %434 = trunc nuw nsw i64 %indvars.iv.i87 to i32 - %435 = shl nuw i32 1, %434 - %436 = and i32 %435, %430 - %.not27.us35.i = icmp eq i32 %436, 0 - br i1 %.not27.us35.i, label %498, label %437 - -437: ; preds = %433 + %431 = load i32, ptr %indvar.i.sroa.phi95, align 4 + %432 = getelementptr inbounds i64, ptr %indvar.i.sroa.phi, i64 %123 + %433 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %wide.trip.count59.i.i81 + br label %434 + +434: ; preds = %499, %Abc_TtCopy.exit.us.i + %indvars.iv.i87 = phi i64 [ 0, %Abc_TtCopy.exit.us.i ], [ %indvars.iv.next.i88, %499 ] + %435 = trunc nuw nsw i64 %indvars.iv.i87 to i32 + %436 = shl nuw i32 1, %435 + %437 = and i32 %436, %431 + %.not27.us35.i = icmp eq i32 %437, 0 + br i1 %.not27.us35.i, label %499, label %438 + +438: ; preds = %434 call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %4) call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %5) - %438 = icmp samesign ult i64 %indvars.iv.i87, 6 - br i1 %438, label %454, label %439 + %439 = icmp samesign ult i64 %indvars.iv.i87, 6 + br i1 %439, label %455, label %440 -439: ; preds = %437 - %440 = add nsw i64 %indvars.iv.i87, -6 - %441 = trunc nsw i64 %440 to i32 - %442 = shl nuw i32 1, %441 +440: ; preds = %438 + %441 = add nsw i64 %indvars.iv.i87, -6 + %442 = trunc nsw i64 %441 to i32 + %443 = shl nuw i32 1, %442 br i1 %125, label %.preheader.lr.ph.i.i.us.i, label %Abc_TtExist.exit.us.i -.preheader.lr.ph.i.i.us.i: ; preds = %439 - %443 = icmp eq i64 %440, 31 - %444 = shl i32 2, %441 - %445 = sext i32 %444 to i64 - br i1 %443, label %.lr.ph.i19.i.us36.i.preheader, label %.preheader.us.preheader.i.i.us.i +.preheader.lr.ph.i.i.us.i: ; preds = %440 + %444 = icmp eq i64 %441, 31 + %445 = shl i32 2, %442 + %446 = sext i32 %445 to i64 + br i1 %444, label %.lr.ph.i19.i.us36.i.preheader, label %.preheader.us.preheader.i.i.us.i .preheader.us.preheader.i.i.us.i: ; preds = %.preheader.lr.ph.i.i.us.i - %446 = sext i32 %442 to i64 - %smax.i.i.us.i = call i32 @llvm.smax.i32(i32 %442, i32 1) + %447 = sext i32 %443 to i64 + %smax.i.i.us.i = call i32 @llvm.smax.i32(i32 %443, i32 1) %wide.trip.count.i.i.us.i = zext nneg i32 %smax.i.i.us.i to i64 br label %.preheader.us.i.i.us.i .preheader.us.i.i.us.i: ; preds = %._crit_edge.us.i.i.us.i, %.preheader.us.preheader.i.i.us.i - %.051.us.i.i.us.i = phi ptr [ %452, %._crit_edge.us.i.i.us.i ], [ %4, %.preheader.us.preheader.i.i.us.i ] - %.04250.us.i.i.us.i = phi ptr [ %451, %._crit_edge.us.i.i.us.i ], [ %indvar.i.sroa.phi, %.preheader.us.preheader.i.i.us.i ] - %invariant.gep.i.i.us.i = getelementptr i64, ptr %.051.us.i.i.us.i, i64 %446 - br label %447 - -447: ; preds = %447, %.preheader.us.i.i.us.i - %indvars.iv.i.i.us.i = phi i64 [ 0, %.preheader.us.i.i.us.i ], [ %indvars.iv.next.i.i.us.i, %447 ] - %448 = getelementptr inbounds nuw i64, ptr %.04250.us.i.i.us.i, i64 %indvars.iv.i.i.us.i - %449 = load i64, ptr %448, align 8 - %450 = getelementptr inbounds nuw i64, ptr %.051.us.i.i.us.i, i64 %indvars.iv.i.i.us.i - store i64 %449, ptr %450, align 8 + %.051.us.i.i.us.i = phi ptr [ %453, %._crit_edge.us.i.i.us.i ], [ %4, %.preheader.us.preheader.i.i.us.i ] + %.04250.us.i.i.us.i = phi ptr [ %452, %._crit_edge.us.i.i.us.i ], [ %indvar.i.sroa.phi, %.preheader.us.preheader.i.i.us.i ] + %invariant.gep.i.i.us.i = getelementptr i64, ptr %.051.us.i.i.us.i, i64 %447 + br label %448 + +448: ; preds = %448, %.preheader.us.i.i.us.i + %indvars.iv.i.i.us.i = phi i64 [ 0, %.preheader.us.i.i.us.i ], [ %indvars.iv.next.i.i.us.i, %448 ] + %449 = getelementptr inbounds nuw i64, ptr %.04250.us.i.i.us.i, i64 %indvars.iv.i.i.us.i + %450 = load i64, ptr %449, align 8 + %451 = getelementptr inbounds nuw i64, ptr %.051.us.i.i.us.i, i64 %indvars.iv.i.i.us.i + store i64 %450, ptr %451, align 8 %gep.i.i.us.i = getelementptr i64, ptr %invariant.gep.i.i.us.i, i64 %indvars.iv.i.i.us.i - store i64 %449, ptr %gep.i.i.us.i, align 8 + store i64 %450, ptr %gep.i.i.us.i, align 8 %indvars.iv.next.i.i.us.i = add nuw nsw i64 %indvars.iv.i.i.us.i, 1 %exitcond.not.i.i.us.i = icmp eq i64 %indvars.iv.next.i.i.us.i, %wide.trip.count.i.i.us.i - br i1 %exitcond.not.i.i.us.i, label %._crit_edge.us.i.i.us.i, label %447, !llvm.loop !16 + br i1 %exitcond.not.i.i.us.i, label %._crit_edge.us.i.i.us.i, label %448, !llvm.loop !16 -._crit_edge.us.i.i.us.i: ; preds = %447 - %451 = getelementptr inbounds i64, ptr %.04250.us.i.i.us.i, i64 %445 - %452 = getelementptr inbounds i64, ptr %.051.us.i.i.us.i, i64 %445 - %453 = icmp ult ptr %451, %431 - br i1 %453, label %.preheader.us.i.i.us.i, label %Abc_TtCofactor0p.exit.thread.i.us.i, !llvm.loop !17 +._crit_edge.us.i.i.us.i: ; preds = %448 + %452 = getelementptr inbounds i64, ptr %.04250.us.i.i.us.i, i64 %446 + %453 = getelementptr inbounds i64, ptr %.051.us.i.i.us.i, i64 %446 + %454 = icmp ult ptr %452, %432 + br i1 %454, label %.preheader.us.i.i.us.i, label %Abc_TtCofactor0p.exit.thread.i.us.i, !llvm.loop !17 -454: ; preds = %437 +455: ; preds = %438 br i1 %125, label %.lr.ph.i.i.us.i, label %Abc_TtExist.exit.us.i -.lr.ph.i.i.us.i: ; preds = %454 - %455 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6Neg, i64 0, i64 %indvars.iv.i87 - %456 = load i64, ptr %455, align 8 - %457 = zext nneg i32 %435 to i64 - br label %458 - -458: ; preds = %458, %.lr.ph.i.i.us.i - %indvars.iv56.i.i.us.i = phi i64 [ 0, %.lr.ph.i.i.us.i ], [ %indvars.iv.next57.i.i.us.i, %458 ] - %459 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv56.i.i.us.i - %460 = load i64, ptr %459, align 8 - %461 = and i64 %460, %456 - %462 = shl i64 %461, %457 - %463 = or i64 %462, %461 - %464 = getelementptr inbounds nuw i64, ptr %4, i64 %indvars.iv56.i.i.us.i - store i64 %463, ptr %464, align 8 +.lr.ph.i.i.us.i: ; preds = %455 + %456 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6Neg, i64 0, i64 %indvars.iv.i87 + %457 = load i64, ptr %456, align 8 + %458 = zext nneg i32 %436 to i64 + br label %459 + +459: ; preds = %459, %.lr.ph.i.i.us.i + %indvars.iv56.i.i.us.i = phi i64 [ 0, %.lr.ph.i.i.us.i ], [ %indvars.iv.next57.i.i.us.i, %459 ] + %460 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv56.i.i.us.i + %461 = load i64, ptr %460, align 8 + %462 = and i64 %461, %457 + %463 = shl i64 %462, %458 + %464 = or i64 %463, %462 + %465 = getelementptr inbounds nuw i64, ptr %4, i64 %indvars.iv56.i.i.us.i + store i64 %464, ptr %465, align 8 %indvars.iv.next57.i.i.us.i = add nuw nsw i64 %indvars.iv56.i.i.us.i, 1 %exitcond60.not.i.i.us.i = icmp eq i64 %indvars.iv.next57.i.i.us.i, %wide.trip.count59.i.i81 - br i1 %exitcond60.not.i.i.us.i, label %Abc_TtCofactor0p.exit.thread.i.us.i, label %458, !llvm.loop !15 + br i1 %exitcond60.not.i.i.us.i, label %Abc_TtCofactor0p.exit.thread.i.us.i, label %459, !llvm.loop !15 -Abc_TtCofactor0p.exit.thread.i.us.i: ; preds = %._crit_edge.us.i.i.us.i, %458 - br i1 %438, label %481, label %Abc_TtCofactor0p.exit.thread.thread.i.us.i +Abc_TtCofactor0p.exit.thread.i.us.i: ; preds = %._crit_edge.us.i.i.us.i, %459 + br i1 %439, label %482, label %Abc_TtCofactor0p.exit.thread.thread.i.us.i Abc_TtCofactor0p.exit.thread.thread.i.us.i: ; preds = %Abc_TtCofactor0p.exit.thread.i.us.i - %465 = add nsw i64 %indvars.iv.i87, -6 - %466 = trunc nsw i64 %465 to i32 - %467 = shl nuw i32 1, %466 + %466 = add nsw i64 %indvars.iv.i87, -6 + %467 = trunc nsw i64 %466 to i32 + %468 = shl nuw i32 1, %467 br i1 %125, label %.preheader.lr.ph.i7.i.us.i, label %Abc_TtExist.exit.us.i .preheader.lr.ph.i7.i.us.i: ; preds = %Abc_TtCofactor0p.exit.thread.thread.i.us.i - %468 = icmp eq i64 %465, 31 - %469 = shl i32 2, %466 - %470 = sext i32 %469 to i64 - br i1 %468, label %.lr.ph.i19.i.us36.i.preheader, label %.preheader.us.preheader.i9.i.us.i + %469 = icmp eq i64 %466, 31 + %470 = shl i32 2, %467 + %471 = sext i32 %470 to i64 + br i1 %469, label %.lr.ph.i19.i.us36.i.preheader, label %.preheader.us.preheader.i9.i.us.i .preheader.us.preheader.i9.i.us.i: ; preds = %.preheader.lr.ph.i7.i.us.i - %471 = sext i32 %467 to i64 - %smax.i10.i.us.i = call i32 @llvm.smax.i32(i32 %467, i32 1) + %472 = sext i32 %468 to i64 + %smax.i10.i.us.i = call i32 @llvm.smax.i32(i32 %468, i32 1) %wide.trip.count.i11.i.us.i = zext nneg i32 %smax.i10.i.us.i to i64 br label %.preheader.us.i12.i.us.i .preheader.us.i12.i.us.i: ; preds = %._crit_edge.us.i16.i.us.i, %.preheader.us.preheader.i9.i.us.i - %.053.us.i.i.us.i = phi ptr [ %479, %._crit_edge.us.i16.i.us.i ], [ %5, %.preheader.us.preheader.i9.i.us.i ] - %.04452.us.i.i.us.i = phi ptr [ %478, %._crit_edge.us.i16.i.us.i ], [ %indvar.i.sroa.phi, %.preheader.us.preheader.i9.i.us.i ] - br label %472 - -472: ; preds = %472, %.preheader.us.i12.i.us.i - %indvars.iv.i13.i.us.i = phi i64 [ 0, %.preheader.us.i12.i.us.i ], [ %indvars.iv.next.i14.i.us.i, %472 ] - %473 = add nuw nsw i64 %indvars.iv.i13.i.us.i, %471 - %474 = getelementptr inbounds i64, ptr %.04452.us.i.i.us.i, i64 %473 - %475 = load i64, ptr %474, align 8 - %476 = getelementptr inbounds nuw i64, ptr %.053.us.i.i.us.i, i64 %indvars.iv.i13.i.us.i - store i64 %475, ptr %476, align 8 - %477 = getelementptr inbounds i64, ptr %.053.us.i.i.us.i, i64 %473 - store i64 %475, ptr %477, align 8 + %.053.us.i.i.us.i = phi ptr [ %480, %._crit_edge.us.i16.i.us.i ], [ %5, %.preheader.us.preheader.i9.i.us.i ] + %.04452.us.i.i.us.i = phi ptr [ %479, %._crit_edge.us.i16.i.us.i ], [ %indvar.i.sroa.phi, %.preheader.us.preheader.i9.i.us.i ] + br label %473 + +473: ; preds = %473, %.preheader.us.i12.i.us.i + %indvars.iv.i13.i.us.i = phi i64 [ 0, %.preheader.us.i12.i.us.i ], [ %indvars.iv.next.i14.i.us.i, %473 ] + %474 = add nuw nsw i64 %indvars.iv.i13.i.us.i, %472 + %475 = getelementptr inbounds i64, ptr %.04452.us.i.i.us.i, i64 %474 + %476 = load i64, ptr %475, align 8 + %477 = getelementptr inbounds nuw i64, ptr %.053.us.i.i.us.i, i64 %indvars.iv.i13.i.us.i + store i64 %476, ptr %477, align 8 + %478 = getelementptr inbounds i64, ptr %.053.us.i.i.us.i, i64 %474 + store i64 %476, ptr %478, align 8 %indvars.iv.next.i14.i.us.i = add nuw nsw i64 %indvars.iv.i13.i.us.i, 1 %exitcond.not.i15.i.us.i = icmp eq i64 %indvars.iv.next.i14.i.us.i, %wide.trip.count.i11.i.us.i - br i1 %exitcond.not.i15.i.us.i, label %._crit_edge.us.i16.i.us.i, label %472, !llvm.loop !19 + br i1 %exitcond.not.i15.i.us.i, label %._crit_edge.us.i16.i.us.i, label %473, !llvm.loop !19 -._crit_edge.us.i16.i.us.i: ; preds = %472 - %478 = getelementptr inbounds i64, ptr %.04452.us.i.i.us.i, i64 %470 - %479 = getelementptr inbounds i64, ptr %.053.us.i.i.us.i, i64 %470 - %480 = icmp ult ptr %478, %432 - br i1 %480, label %.preheader.us.i12.i.us.i, label %Abc_TtCofactor1p.exit.i.us.i, !llvm.loop !20 +._crit_edge.us.i16.i.us.i: ; preds = %473 + %479 = getelementptr inbounds i64, ptr %.04452.us.i.i.us.i, i64 %471 + %480 = getelementptr inbounds i64, ptr %.053.us.i.i.us.i, i64 %471 + %481 = icmp ult ptr %479, %433 + br i1 %481, label %.preheader.us.i12.i.us.i, label %Abc_TtCofactor1p.exit.i.us.i, !llvm.loop !20 -481: ; preds = %Abc_TtCofactor0p.exit.thread.i.us.i +482: ; preds = %Abc_TtCofactor0p.exit.thread.i.us.i br i1 %125, label %.lr.ph.i17.i.us.i, label %Abc_TtExist.exit.us.i -.lr.ph.i17.i.us.i: ; preds = %481 - %482 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6, i64 0, i64 %indvars.iv.i87 - %483 = load i64, ptr %482, align 8 - %484 = zext nneg i32 %435 to i64 - br label %485 - -485: ; preds = %485, %.lr.ph.i17.i.us.i - %indvars.iv58.i.i.us.i = phi i64 [ 0, %.lr.ph.i17.i.us.i ], [ %indvars.iv.next59.i.i.us.i, %485 ] - %486 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv58.i.i.us.i - %487 = load i64, ptr %486, align 8 - %488 = and i64 %487, %483 - %489 = lshr i64 %488, %484 - %490 = or i64 %489, %488 - %491 = getelementptr inbounds nuw i64, ptr %5, i64 %indvars.iv58.i.i.us.i - store i64 %490, ptr %491, align 8 +.lr.ph.i17.i.us.i: ; preds = %482 + %483 = getelementptr inbounds nuw [6 x i64], ptr @s_Truths6, i64 0, i64 %indvars.iv.i87 + %484 = load i64, ptr %483, align 8 + %485 = zext nneg i32 %436 to i64 + br label %486 + +486: ; preds = %486, %.lr.ph.i17.i.us.i + %indvars.iv58.i.i.us.i = phi i64 [ 0, %.lr.ph.i17.i.us.i ], [ %indvars.iv.next59.i.i.us.i, %486 ] + %487 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv58.i.i.us.i + %488 = load i64, ptr %487, align 8 + %489 = and i64 %488, %484 + %490 = lshr i64 %489, %485 + %491 = or i64 %490, %489 + %492 = getelementptr inbounds nuw i64, ptr %5, i64 %indvars.iv58.i.i.us.i + store i64 %491, ptr %492, align 8 %indvars.iv.next59.i.i.us.i = add nuw nsw i64 %indvars.iv58.i.i.us.i, 1 %exitcond62.not.i.i.us.i = icmp eq i64 %indvars.iv.next59.i.i.us.i, %wide.trip.count59.i.i81 - br i1 %exitcond62.not.i.i.us.i, label %Abc_TtCofactor1p.exit.i.us.i, label %485, !llvm.loop !18 + br i1 %exitcond62.not.i.i.us.i, label %Abc_TtCofactor1p.exit.i.us.i, label %486, !llvm.loop !18 -Abc_TtCofactor1p.exit.i.us.i: ; preds = %._crit_edge.us.i16.i.us.i, %485 +Abc_TtCofactor1p.exit.i.us.i: ; preds = %._crit_edge.us.i16.i.us.i, %486 br i1 %125, label %.lr.ph.i19.i.us36.i.preheader, label %Abc_TtExist.exit.us.i .lr.ph.i19.i.us36.i.preheader: ; preds = %Abc_TtCofactor1p.exit.i.us.i, %.preheader.lr.ph.i7.i.us.i, %.preheader.lr.ph.i.i.us.i @@ -5667,74 +5665,74 @@ Abc_TtCofactor1p.exit.i.us.i: ; preds = %._crit_edge.us.i16. .lr.ph.i19.i.us36.i: ; preds = %.lr.ph.i19.i.us36.i.preheader, %.lr.ph.i19.i.us36.i %indvars.iv.i20.i.us37.i = phi i64 [ %indvars.iv.next.i21.i.us38.i, %.lr.ph.i19.i.us36.i ], [ 0, %.lr.ph.i19.i.us36.i.preheader ] - %492 = getelementptr inbounds nuw i64, ptr %4, i64 %indvars.iv.i20.i.us37.i - %493 = load i64, ptr %492, align 8 - %494 = getelementptr inbounds nuw i64, ptr %5, i64 %indvars.iv.i20.i.us37.i - %495 = load i64, ptr %494, align 8 - %496 = or i64 %495, %493 - %497 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv.i20.i.us37.i - store i64 %496, ptr %497, align 8 + %493 = getelementptr inbounds nuw i64, ptr %4, i64 %indvars.iv.i20.i.us37.i + %494 = load i64, ptr %493, align 8 + %495 = getelementptr inbounds nuw i64, ptr %5, i64 %indvars.iv.i20.i.us37.i + %496 = load i64, ptr %495, align 8 + %497 = or i64 %496, %494 + %498 = getelementptr inbounds nuw i64, ptr %indvar.i.sroa.phi, i64 %indvars.iv.i20.i.us37.i + store i64 %497, ptr %498, align 8 %indvars.iv.next.i21.i.us38.i = add nuw nsw i64 %indvars.iv.i20.i.us37.i, 1 %exitcond.not.i22.i.us39.i = icmp eq i64 %indvars.iv.next.i21.i.us38.i, %wide.trip.count59.i.i81 br i1 %exitcond.not.i22.i.us39.i, label %Abc_TtExist.exit.us.i, label %.lr.ph.i19.i.us36.i, !llvm.loop !42 -Abc_TtExist.exit.us.i: ; preds = %.lr.ph.i19.i.us36.i, %Abc_TtCofactor1p.exit.i.us.i, %481, %Abc_TtCofactor0p.exit.thread.thread.i.us.i, %454, %439 +Abc_TtExist.exit.us.i: ; preds = %.lr.ph.i19.i.us36.i, %Abc_TtCofactor1p.exit.i.us.i, %482, %Abc_TtCofactor0p.exit.thread.thread.i.us.i, %455, %440 call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %5) - br label %498 + br label %499 -498: ; preds = %Abc_TtExist.exit.us.i, %433 +499: ; preds = %Abc_TtExist.exit.us.i, %434 %indvars.iv.next.i88 = add nuw nsw i64 %indvars.iv.i87, 1 %exitcond.not.i89 = icmp eq i64 %indvars.iv.next.i88, %wide.trip.count184.i - br i1 %exitcond.not.i89, label %._crit_edge.split.us41.i, label %433, !llvm.loop !40 + br i1 %exitcond.not.i89, label %._crit_edge.split.us41.i, label %434, !llvm.loop !40 -._crit_edge.split.us41.i: ; preds = %498 - br i1 %429, label %.split.us.split.i, label %.preheader.i, !llvm.loop !41 +._crit_edge.split.us41.i: ; preds = %499 + br i1 %430, label %.split.us.split.i, label %.preheader.i, !llvm.loop !41 .preheader.i: ; preds = %._crit_edge.split.us41.i, %._crit_edge.split.us.us.us.i br i1 %125, label %.lr.ph.i91, label %.loopexit -499: ; preds = %.lr.ph.i91 +500: ; preds = %.lr.ph.i91 %indvars.iv.next83.i = add nuw nsw i64 %indvars.iv82.i, 1 %exitcond86.not.i = icmp eq i64 %indvars.iv.next83.i, %wide.trip.count59.i.i81 br i1 %exitcond86.not.i, label %.loopexit, label %.lr.ph.i91, !llvm.loop !43 -.lr.ph.i91: ; preds = %.preheader.i, %499 - %indvars.iv82.i = phi i64 [ %indvars.iv.next83.i, %499 ], [ 0, %.preheader.i ] - %500 = getelementptr inbounds nuw i64, ptr %0, i64 %indvars.iv82.i - %501 = load i64, ptr %500, align 8 - %502 = xor i64 %501, -1 - %503 = getelementptr inbounds nuw [64 x i64], ptr %6, i64 0, i64 %indvars.iv82.i - %504 = load i64, ptr %503, align 8 - %505 = and i64 %504, %502 - %506 = getelementptr inbounds nuw [64 x i64], ptr %indvar.i.sroa.gep93, i64 0, i64 %indvars.iv82.i - %507 = load i64, ptr %506, align 8 - %508 = and i64 %505, %507 - %.not.i92 = icmp eq i64 %508, 0 - br i1 %.not.i92, label %499, label %Abc_TtCheckBiDec.exit +.lr.ph.i91: ; preds = %.preheader.i, %500 + %indvars.iv82.i = phi i64 [ %indvars.iv.next83.i, %500 ], [ 0, %.preheader.i ] + %501 = getelementptr inbounds nuw i64, ptr %0, i64 %indvars.iv82.i + %502 = load i64, ptr %501, align 8 + %503 = xor i64 %502, -1 + %504 = getelementptr inbounds nuw [64 x i64], ptr %6, i64 0, i64 %indvars.iv82.i + %505 = load i64, ptr %504, align 8 + %506 = and i64 %505, %503 + %507 = getelementptr inbounds nuw [64 x i64], ptr %indvar.i.sroa.gep93, i64 0, i64 %indvars.iv82.i + %508 = load i64, ptr %507, align 8 + %509 = and i64 %506, %508 + %.not.i92 = icmp eq i64 %509, 0 + br i1 %.not.i92, label %500, label %Abc_TtCheckBiDec.exit Abc_TtCheckBiDec.exit: ; preds = %.lr.ph.i91 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %.sroa.0) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %.sroa.5) call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) - br label %511 + br label %512 -.loopexit: ; preds = %.preheader.i, %499 +.loopexit: ; preds = %.preheader.i, %500 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %.sroa.0) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %.sroa.5) call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) - %509 = shl i32 %.1, 16 - %510 = or disjoint i32 %509, %367 + %510 = shl i32 %.1, 16 + %511 = or disjoint i32 %510, %367 br label %.loopexit114 -511: ; preds = %Abc_TtCheckBiDec.exit, %378, %380, %393 +512: ; preds = %Abc_TtCheckBiDec.exit, %378, %380, %393 %.142 = phi i32 [ %379, %378 ], [ %.041129, %393 ], [ %.041129, %Abc_TtCheckBiDec.exit ], [ %.041129, %380 ] %indvars.iv.next154 = add nuw nsw i64 %indvars.iv153, 1 %exitcond158.not = icmp eq i64 %indvars.iv.next154, %wide.trip.count184.i br i1 %exitcond158.not, label %.loopexit114, label %138, !llvm.loop !44 -.loopexit114: ; preds = %378, %511, %Abc_TtCheckBiDecSimple.exit.thread162, %Abc_TtCheckBiDecSimple.exit.thread, %.loopexit - %.039 = phi i32 [ %510, %.loopexit ], [ %116, %Abc_TtCheckBiDecSimple.exit.thread ], [ 0, %Abc_TtCheckBiDecSimple.exit.thread162 ], [ 0, %511 ], [ 0, %378 ] +.loopexit114: ; preds = %378, %512, %Abc_TtCheckBiDecSimple.exit.thread162, %Abc_TtCheckBiDecSimple.exit.thread, %.loopexit + %.039 = phi i32 [ %511, %.loopexit ], [ %116, %Abc_TtCheckBiDecSimple.exit.thread ], [ 0, %Abc_TtCheckBiDecSimple.exit.thread162 ], [ 0, %512 ], [ 0, %378 ] ret i32 %.039 } diff --git a/bench/abc/optimized/sswCore.c.ll b/bench/abc/optimized/sswCore.c.ll index c8b2d8081e8..b8a584a3f97 100644 --- a/bench/abc/optimized/sswCore.c.ll +++ b/bench/abc/optimized/sswCore.c.ll @@ -542,461 +542,459 @@ Abc_Clock.exit: ; preds = %1, %9 call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.8) br label %.loopexit -._crit_edge: ; preds = %302 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.9, i32 noundef %304) +._crit_edge: ; preds = %301 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.9, i32 noundef %303) br label %.loopexit -88: ; preds = %.lr.ph, %302 - %89 = phi ptr [ %71, %.lr.ph ], [ %303, %302 ] - %.0145216 = phi i32 [ 0, %.lr.ph ], [ %256, %302 ] - %.0146215 = phi i32 [ 0, %.lr.ph ], [ %257, %302 ] - %.0147214 = phi i32 [ 0, %.lr.ph ], [ %258, %302 ] - %.sroa.7.0213 = phi i32 [ 0, %.lr.ph ], [ %.sroa.7.1, %302 ] - %.sroa.5.0212 = phi i32 [ 0, %.lr.ph ], [ %.sroa.5.1, %302 ] - %.sroa.3.0211 = phi i32 [ 0, %.lr.ph ], [ %.sroa.3.1, %302 ] - %.sroa.0.0210 = phi i32 [ 0, %.lr.ph ], [ %.sroa.0.1, %302 ] - %.1209 = phi i32 [ 0, %.lr.ph ], [ %304, %302 ] - %.0151208 = phi i32 [ 0, %.lr.ph ], [ %259, %302 ] +88: ; preds = %.lr.ph, %301 + %89 = phi ptr [ %71, %.lr.ph ], [ %302, %301 ] + %.0145216 = phi i32 [ 0, %.lr.ph ], [ %255, %301 ] + %.0146215 = phi i32 [ 0, %.lr.ph ], [ %256, %301 ] + %.0147214 = phi i32 [ 0, %.lr.ph ], [ %257, %301 ] + %.sroa.7.0213 = phi i32 [ 0, %.lr.ph ], [ %.sroa.7.1, %301 ] + %.sroa.5.0212 = phi i32 [ 0, %.lr.ph ], [ %.sroa.5.1, %301 ] + %.sroa.3.0211 = phi i32 [ 0, %.lr.ph ], [ %.sroa.3.1, %301 ] + %.sroa.0.0210 = phi i32 [ 0, %.lr.ph ], [ %.sroa.0.1, %301 ] + %.1209 = phi i32 [ 0, %.lr.ph ], [ %303, %301 ] + %.0151208 = phi i32 [ 0, %.lr.ph ], [ %258, %301 ] %90 = getelementptr inbounds nuw i8, ptr %89, i64 44 %91 = load i32, ptr %90, align 4 - %92 = icmp sgt i32 %91, -1 - %93 = icmp eq i32 %91, %.1209 - %or.cond = and i1 %92, %93 - br i1 %or.cond, label %94, label %96 - -94: ; preds = %88 - %95 = call ptr @Ssw_SpeculativeReduction(ptr noundef nonnull %0) #13 - call void @Aig_ManDumpBlif(ptr noundef %95, ptr noundef nonnull @.str.10, ptr noundef null, ptr noundef null) #13 - call void @Aig_ManStop(ptr noundef %95) #13 + %92 = icmp eq i32 %91, %.1209 + br i1 %92, label %93, label %95 + +93: ; preds = %88 + %94 = call ptr @Ssw_SpeculativeReduction(ptr noundef nonnull %0) #13 + call void @Aig_ManDumpBlif(ptr noundef %94, ptr noundef nonnull @.str.10, ptr noundef null, ptr noundef null) #13 + call void @Aig_ManStop(ptr noundef %94) #13 call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.11, i32 noundef %.1209) call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.12) call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.10) call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.14) br label %.loopexit -96: ; preds = %88 +95: ; preds = %88 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) - %97 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %5) #13 - %98 = icmp slt i32 %97, 0 - br i1 %98, label %Abc_Clock.exit187, label %99 - -99: ; preds = %96 - %100 = load i64, ptr %5, align 8 - %101 = mul nsw i64 %100, 1000000 - %102 = load i64, ptr %75, align 8 - %103 = sdiv i64 %102, 1000 - %104 = add nsw i64 %103, %101 + %96 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %5) #13 + %97 = icmp slt i32 %96, 0 + br i1 %97, label %Abc_Clock.exit187, label %98 + +98: ; preds = %95 + %99 = load i64, ptr %5, align 8 + %100 = mul nsw i64 %99, 1000000 + %101 = load i64, ptr %75, align 8 + %102 = sdiv i64 %101, 1000 + %103 = add nsw i64 %102, %100 br label %Abc_Clock.exit187 -Abc_Clock.exit187: ; preds = %96, %99 - %.0.i186 = phi i64 [ %104, %99 ], [ -1, %96 ] +Abc_Clock.exit187: ; preds = %95, %98 + %.0.i186 = phi i64 [ %103, %98 ], [ -1, %95 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) - %105 = call ptr @Ssw_SatStart(i32 noundef 0) #13 - store ptr %105, ptr %76, align 8 - %106 = load ptr, ptr %0, align 8 - %107 = getelementptr inbounds nuw i8, ptr %106, i64 132 - %108 = load i32, ptr %107, align 4 - %.not159 = icmp eq i32 %108, 0 - br i1 %.not159, label %138, label %109 - -109: ; preds = %Abc_Clock.exit187 - %110 = call i32 @Ssw_ManSweepLatch(ptr noundef nonnull %0) #13 - %111 = load ptr, ptr %0, align 8 - %112 = getelementptr inbounds nuw i8, ptr %111, i64 112 - %113 = load i32, ptr %112, align 8 - %.not167 = icmp eq i32 %113, 0 - br i1 %.not167, label %255, label %114 - -114: ; preds = %109 - %115 = load ptr, ptr %13, align 8 - %116 = call i32 @Ssw_ClassesCand1Num(ptr noundef %115) #13 - %117 = load ptr, ptr %13, align 8 - %118 = call i32 @Ssw_ClassesClassNum(ptr noundef %117) #13 - %119 = load i32, ptr %77, align 8 - %120 = sub nsw i32 %119, %.0145216 - %121 = load i32, ptr %78, align 4 - %122 = sub nsw i32 %121, %.0146215 - %123 = load i32, ptr %79, align 4 - %124 = sub nsw i32 %123, %.0147214 - %125 = load i32, ptr %80, align 4 - %126 = sub nsw i32 %125, %.0151208 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.15, i32 noundef %.1209, i32 noundef %116, i32 noundef %118, i32 noundef %120, i32 noundef %122, i32 noundef %124, i32 noundef %126) + %104 = call ptr @Ssw_SatStart(i32 noundef 0) #13 + store ptr %104, ptr %76, align 8 + %105 = load ptr, ptr %0, align 8 + %106 = getelementptr inbounds nuw i8, ptr %105, i64 132 + %107 = load i32, ptr %106, align 4 + %.not159 = icmp eq i32 %107, 0 + br i1 %.not159, label %137, label %108 + +108: ; preds = %Abc_Clock.exit187 + %109 = call i32 @Ssw_ManSweepLatch(ptr noundef nonnull %0) #13 + %110 = load ptr, ptr %0, align 8 + %111 = getelementptr inbounds nuw i8, ptr %110, i64 112 + %112 = load i32, ptr %111, align 8 + %.not167 = icmp eq i32 %112, 0 + br i1 %.not167, label %254, label %113 + +113: ; preds = %108 + %114 = load ptr, ptr %13, align 8 + %115 = call i32 @Ssw_ClassesCand1Num(ptr noundef %114) #13 + %116 = load ptr, ptr %13, align 8 + %117 = call i32 @Ssw_ClassesClassNum(ptr noundef %116) #13 + %118 = load i32, ptr %77, align 8 + %119 = sub nsw i32 %118, %.0145216 + %120 = load i32, ptr %78, align 4 + %121 = sub nsw i32 %120, %.0146215 + %122 = load i32, ptr %79, align 4 + %123 = sub nsw i32 %122, %.0147214 + %124 = load i32, ptr %80, align 4 + %125 = sub nsw i32 %124, %.0151208 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.15, i32 noundef %.1209, i32 noundef %115, i32 noundef %117, i32 noundef %119, i32 noundef %121, i32 noundef %123, i32 noundef %125) call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) - %127 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %4) #13 - %128 = icmp slt i32 %127, 0 - br i1 %128, label %Abc_Clock.exit189, label %129 - -129: ; preds = %114 - %130 = load i64, ptr %4, align 8 - %131 = mul nsw i64 %130, 1000000 - %132 = load i64, ptr %81, align 8 - %133 = sdiv i64 %132, 1000 - %134 = add nsw i64 %133, %131 + %126 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %4) #13 + %127 = icmp slt i32 %126, 0 + br i1 %127, label %Abc_Clock.exit189, label %128 + +128: ; preds = %113 + %129 = load i64, ptr %4, align 8 + %130 = mul nsw i64 %129, 1000000 + %131 = load i64, ptr %81, align 8 + %132 = sdiv i64 %131, 1000 + %133 = add nsw i64 %132, %130 br label %Abc_Clock.exit189 -Abc_Clock.exit189: ; preds = %114, %129 - %.0.i188 = phi i64 [ %134, %129 ], [ -1, %114 ] +Abc_Clock.exit189: ; preds = %113, %128 + %.0.i188 = phi i64 [ %133, %128 ], [ -1, %113 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) - %135 = sub nsw i64 %.0.i188, %.0.i186 - %136 = sitofp i64 %135 to double - %137 = fdiv double %136, 1.000000e+06 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.18, double noundef %137) - br label %255 - -138: ; preds = %Abc_Clock.exit187 - %139 = getelementptr inbounds nuw i8, ptr %106, i64 20 - %140 = load i32, ptr %139, align 4 - %.not160 = icmp eq i32 %140, 0 - br i1 %.not160, label %143, label %141 - -141: ; preds = %138 - %142 = call i32 @Ssw_ManSweepConstr(ptr noundef nonnull %0) #13 - br label %150 - -143: ; preds = %138 - %144 = getelementptr inbounds nuw i8, ptr %106, i64 88 - %145 = load i32, ptr %144, align 8 - %.not161 = icmp eq i32 %145, 0 - br i1 %.not161, label %148, label %146 - -146: ; preds = %143 - %147 = call i32 @Ssw_ManSweepDyn(ptr noundef nonnull %0) #13 - br label %150 - -148: ; preds = %143 - %149 = call i32 @Ssw_ManSweep(ptr noundef nonnull %0) #13 - br label %150 - -150: ; preds = %146, %148, %141 - %.1150 = phi i32 [ %142, %141 ], [ %147, %146 ], [ %149, %148 ] - %151 = load ptr, ptr %76, align 8 - %152 = getelementptr inbounds nuw i8, ptr %151, i64 16 - %153 = load ptr, ptr %152, align 8 - %154 = getelementptr inbounds nuw i8, ptr %153, i64 440 - %155 = load i64, ptr %154, align 8 - %156 = load ptr, ptr %0, align 8 - %157 = getelementptr inbounds nuw i8, ptr %156, i64 156 - %158 = load i32, ptr %157, align 4 - %159 = trunc i64 %155 to i32 - %160 = add i32 %158, %159 - store i32 %160, ptr %157, align 4 - %161 = load ptr, ptr %0, align 8 - %162 = getelementptr inbounds nuw i8, ptr %161, i64 112 - %163 = load i32, ptr %162, align 8 - %.not162 = icmp eq i32 %163, 0 - br i1 %.not162, label %218, label %164 - -164: ; preds = %150 - %165 = load ptr, ptr %13, align 8 - %166 = call i32 @Ssw_ClassesCand1Num(ptr noundef %165) #13 - %167 = load ptr, ptr %13, align 8 - %168 = call i32 @Ssw_ClassesClassNum(ptr noundef %167) #13 - %169 = load i32, ptr %82, align 4 - %170 = load ptr, ptr %83, align 8 - %171 = getelementptr i8, ptr %170, i64 148 - %.val174 = load i32, ptr %171, align 4 - %172 = getelementptr i8, ptr %170, i64 152 - %.val175 = load i32, ptr %172, align 8 - %173 = add nsw i32 %.val175, %.val174 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.19, i32 noundef %.1209, i32 noundef %166, i32 noundef %168, i32 noundef %169, i32 noundef %173) - %174 = load ptr, ptr %0, align 8 - %175 = getelementptr inbounds nuw i8, ptr %174, i64 88 - %176 = load i32, ptr %175, align 8 - %.not163 = icmp eq i32 %176, 0 - br i1 %.not163, label %182, label %177 - -177: ; preds = %164 - %178 = load i32, ptr %78, align 4 - %179 = sub nsw i32 %178, %.0146215 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.20, i32 noundef %179) - %180 = load i32, ptr %79, align 4 - %181 = sub nsw i32 %180, %.0147214 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.21, i32 noundef %181) - br label %182 - -182: ; preds = %177, %164 - %183 = load i32, ptr %80, align 4 - %184 = sub nsw i32 %183, %.0151208 - %185 = load ptr, ptr %17, align 8 - %186 = getelementptr i8, ptr %185, i64 112 - %.val181 = load i32, ptr %186, align 8 - %187 = icmp eq i32 %.val181, 1 - br i1 %187, label %188, label %205 - -188: ; preds = %182 - %189 = getelementptr i8, ptr %185, i64 256 - %.val3.i = load ptr, ptr %189, align 8 + %134 = sub nsw i64 %.0.i188, %.0.i186 + %135 = sitofp i64 %134 to double + %136 = fdiv double %135, 1.000000e+06 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.18, double noundef %136) + br label %254 + +137: ; preds = %Abc_Clock.exit187 + %138 = getelementptr inbounds nuw i8, ptr %105, i64 20 + %139 = load i32, ptr %138, align 4 + %.not160 = icmp eq i32 %139, 0 + br i1 %.not160, label %142, label %140 + +140: ; preds = %137 + %141 = call i32 @Ssw_ManSweepConstr(ptr noundef nonnull %0) #13 + br label %149 + +142: ; preds = %137 + %143 = getelementptr inbounds nuw i8, ptr %105, i64 88 + %144 = load i32, ptr %143, align 8 + %.not161 = icmp eq i32 %144, 0 + br i1 %.not161, label %147, label %145 + +145: ; preds = %142 + %146 = call i32 @Ssw_ManSweepDyn(ptr noundef nonnull %0) #13 + br label %149 + +147: ; preds = %142 + %148 = call i32 @Ssw_ManSweep(ptr noundef nonnull %0) #13 + br label %149 + +149: ; preds = %145, %147, %140 + %.1150 = phi i32 [ %141, %140 ], [ %146, %145 ], [ %148, %147 ] + %150 = load ptr, ptr %76, align 8 + %151 = getelementptr inbounds nuw i8, ptr %150, i64 16 + %152 = load ptr, ptr %151, align 8 + %153 = getelementptr inbounds nuw i8, ptr %152, i64 440 + %154 = load i64, ptr %153, align 8 + %155 = load ptr, ptr %0, align 8 + %156 = getelementptr inbounds nuw i8, ptr %155, i64 156 + %157 = load i32, ptr %156, align 4 + %158 = trunc i64 %154 to i32 + %159 = add i32 %157, %158 + store i32 %159, ptr %156, align 4 + %160 = load ptr, ptr %0, align 8 + %161 = getelementptr inbounds nuw i8, ptr %160, i64 112 + %162 = load i32, ptr %161, align 8 + %.not162 = icmp eq i32 %162, 0 + br i1 %.not162, label %217, label %163 + +163: ; preds = %149 + %164 = load ptr, ptr %13, align 8 + %165 = call i32 @Ssw_ClassesCand1Num(ptr noundef %164) #13 + %166 = load ptr, ptr %13, align 8 + %167 = call i32 @Ssw_ClassesClassNum(ptr noundef %166) #13 + %168 = load i32, ptr %82, align 4 + %169 = load ptr, ptr %83, align 8 + %170 = getelementptr i8, ptr %169, i64 148 + %.val174 = load i32, ptr %170, align 4 + %171 = getelementptr i8, ptr %169, i64 152 + %.val175 = load i32, ptr %171, align 8 + %172 = add nsw i32 %.val175, %.val174 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.19, i32 noundef %.1209, i32 noundef %165, i32 noundef %167, i32 noundef %168, i32 noundef %172) + %173 = load ptr, ptr %0, align 8 + %174 = getelementptr inbounds nuw i8, ptr %173, i64 88 + %175 = load i32, ptr %174, align 8 + %.not163 = icmp eq i32 %175, 0 + br i1 %.not163, label %181, label %176 + +176: ; preds = %163 + %177 = load i32, ptr %78, align 4 + %178 = sub nsw i32 %177, %.0146215 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.20, i32 noundef %178) + %179 = load i32, ptr %79, align 4 + %180 = sub nsw i32 %179, %.0147214 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.21, i32 noundef %180) + br label %181 + +181: ; preds = %176, %163 + %182 = load i32, ptr %80, align 4 + %183 = sub nsw i32 %182, %.0151208 + %184 = load ptr, ptr %17, align 8 + %185 = getelementptr i8, ptr %184, i64 112 + %.val181 = load i32, ptr %185, align 8 + %186 = icmp eq i32 %.val181, 1 + br i1 %186, label %187, label %204 + +187: ; preds = %181 + %188 = getelementptr i8, ptr %184, i64 256 + %.val3.i = load ptr, ptr %188, align 8 %.not.i.i = icmp eq ptr %.val3.i, null - br i1 %.not.i.i, label %Ssw_ObjIsConst1Cand.exit, label %190 + br i1 %.not.i.i, label %Ssw_ObjIsConst1Cand.exit, label %189 -190: ; preds = %188 - %191 = getelementptr i8, ptr %185, i64 24 - %.val182 = load ptr, ptr %191, align 8 - %192 = getelementptr i8, ptr %.val182, i64 8 - %.val182.val = load ptr, ptr %192, align 8 +189: ; preds = %187 + %190 = getelementptr i8, ptr %184, i64 24 + %.val182 = load ptr, ptr %190, align 8 + %191 = getelementptr i8, ptr %.val182, i64 8 + %.val182.val = load ptr, ptr %191, align 8 %.val182.val.val = load ptr, ptr %.val182.val, align 8 - %193 = getelementptr i8, ptr %.val182.val.val, i64 8 - %.val184 = load ptr, ptr %193, align 8 - %194 = ptrtoint ptr %.val184 to i64 - %195 = and i64 %194, -2 - %196 = inttoptr i64 %195 to ptr - %197 = getelementptr inbounds nuw i8, ptr %196, i64 36 - %198 = load i32, ptr %197, align 4 - %199 = sext i32 %198 to i64 - %200 = getelementptr inbounds ptr, ptr %.val3.i, i64 %199 - %201 = load ptr, ptr %200, align 8 + %192 = getelementptr i8, ptr %.val182.val.val, i64 8 + %.val184 = load ptr, ptr %192, align 8 + %193 = ptrtoint ptr %.val184 to i64 + %194 = and i64 %193, -2 + %195 = inttoptr i64 %194 to ptr + %196 = getelementptr inbounds nuw i8, ptr %195, i64 36 + %197 = load i32, ptr %196, align 4 + %198 = sext i32 %197 to i64 + %199 = getelementptr inbounds ptr, ptr %.val3.i, i64 %198 + %200 = load ptr, ptr %199, align 8 br label %Ssw_ObjIsConst1Cand.exit -Ssw_ObjIsConst1Cand.exit: ; preds = %188, %190 - %202 = phi ptr [ %201, %190 ], [ null, %188 ] - %203 = getelementptr i8, ptr %185, i64 48 - %.val.i = load ptr, ptr %203, align 8 - %.not198 = icmp eq ptr %202, %.val.i - %204 = select i1 %.not198, ptr @.str.23, ptr @.str.24 - br label %205 - -205: ; preds = %Ssw_ObjIsConst1Cand.exit, %182 - %206 = phi ptr [ @.str.24, %182 ], [ %204, %Ssw_ObjIsConst1Cand.exit ] - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.22, i32 noundef %184, ptr noundef nonnull %206) +Ssw_ObjIsConst1Cand.exit: ; preds = %187, %189 + %201 = phi ptr [ %200, %189 ], [ null, %187 ] + %202 = getelementptr i8, ptr %184, i64 48 + %.val.i = load ptr, ptr %202, align 8 + %.not198 = icmp eq ptr %201, %.val.i + %203 = select i1 %.not198, ptr @.str.23, ptr @.str.24 + br label %204 + +204: ; preds = %Ssw_ObjIsConst1Cand.exit, %181 + %205 = phi ptr [ @.str.24, %181 ], [ %203, %Ssw_ObjIsConst1Cand.exit ] + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.22, i32 noundef %183, ptr noundef nonnull %205) call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) - %207 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %3) #13 - %208 = icmp slt i32 %207, 0 - br i1 %208, label %Abc_Clock.exit191, label %209 - -209: ; preds = %205 - %210 = load i64, ptr %3, align 8 - %211 = mul nsw i64 %210, 1000000 - %212 = load i64, ptr %84, align 8 - %213 = sdiv i64 %212, 1000 - %214 = add nsw i64 %213, %211 + %206 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %3) #13 + %207 = icmp slt i32 %206, 0 + br i1 %207, label %Abc_Clock.exit191, label %208 + +208: ; preds = %204 + %209 = load i64, ptr %3, align 8 + %210 = mul nsw i64 %209, 1000000 + %211 = load i64, ptr %84, align 8 + %212 = sdiv i64 %211, 1000 + %213 = add nsw i64 %212, %210 br label %Abc_Clock.exit191 -Abc_Clock.exit191: ; preds = %205, %209 - %.0.i190 = phi i64 [ %214, %209 ], [ -1, %205 ] +Abc_Clock.exit191: ; preds = %204, %208 + %.0.i190 = phi i64 [ %213, %208 ], [ -1, %204 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) - %215 = sub nsw i64 %.0.i190, %.0.i186 - %216 = sitofp i64 %215 to double - %217 = fdiv double %216, 1.000000e+06 - call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.18, double noundef %217) + %214 = sub nsw i64 %.0.i190, %.0.i186 + %215 = sitofp i64 %214 to double + %216 = fdiv double %215, 1.000000e+06 + call void (i32, ptr, ...) @Abc_Print(i32 poison, ptr noundef nonnull @.str.18, double noundef %216) %.pre224 = load ptr, ptr %0, align 8 - br label %218 - -218: ; preds = %Abc_Clock.exit191, %150 - %219 = phi ptr [ %.pre224, %Abc_Clock.exit191 ], [ %161, %150 ] - %220 = getelementptr inbounds nuw i8, ptr %219, i64 128 - %221 = load i32, ptr %220, align 8 - %.not165 = icmp eq i32 %221, 0 - br i1 %.not165, label %255, label %222 - -222: ; preds = %218 - %223 = load ptr, ptr %17, align 8 - %224 = getelementptr i8, ptr %223, i64 112 - %.val180 = load i32, ptr %224, align 8 - %225 = icmp eq i32 %.val180, 1 - br i1 %225, label %226, label %255 - -226: ; preds = %222 - %227 = getelementptr i8, ptr %223, i64 256 - %.val3.i192 = load ptr, ptr %227, align 8 + br label %217 + +217: ; preds = %Abc_Clock.exit191, %149 + %218 = phi ptr [ %.pre224, %Abc_Clock.exit191 ], [ %160, %149 ] + %219 = getelementptr inbounds nuw i8, ptr %218, i64 128 + %220 = load i32, ptr %219, align 8 + %.not165 = icmp eq i32 %220, 0 + br i1 %.not165, label %254, label %221 + +221: ; preds = %217 + %222 = load ptr, ptr %17, align 8 + %223 = getelementptr i8, ptr %222, i64 112 + %.val180 = load i32, ptr %223, align 8 + %224 = icmp eq i32 %.val180, 1 + br i1 %224, label %225, label %254 + +225: ; preds = %221 + %226 = getelementptr i8, ptr %222, i64 256 + %.val3.i192 = load ptr, ptr %226, align 8 %.not.i.i193 = icmp eq ptr %.val3.i192, null - br i1 %.not.i.i193, label %Ssw_ObjIsConst1Cand.exit195, label %228 + br i1 %.not.i.i193, label %Ssw_ObjIsConst1Cand.exit195, label %227 -228: ; preds = %226 - %229 = getelementptr i8, ptr %223, i64 24 - %.val183 = load ptr, ptr %229, align 8 - %230 = getelementptr i8, ptr %.val183, i64 8 - %.val183.val = load ptr, ptr %230, align 8 +227: ; preds = %225 + %228 = getelementptr i8, ptr %222, i64 24 + %.val183 = load ptr, ptr %228, align 8 + %229 = getelementptr i8, ptr %.val183, i64 8 + %.val183.val = load ptr, ptr %229, align 8 %.val183.val.val = load ptr, ptr %.val183.val, align 8 - %231 = getelementptr i8, ptr %.val183.val.val, i64 8 - %.val185 = load ptr, ptr %231, align 8 - %232 = ptrtoint ptr %.val185 to i64 - %233 = and i64 %232, -2 - %234 = inttoptr i64 %233 to ptr - %235 = getelementptr inbounds nuw i8, ptr %234, i64 36 - %236 = load i32, ptr %235, align 4 - %237 = sext i32 %236 to i64 - %238 = getelementptr inbounds ptr, ptr %.val3.i192, i64 %237 - %239 = load ptr, ptr %238, align 8 + %230 = getelementptr i8, ptr %.val183.val.val, i64 8 + %.val185 = load ptr, ptr %230, align 8 + %231 = ptrtoint ptr %.val185 to i64 + %232 = and i64 %231, -2 + %233 = inttoptr i64 %232 to ptr + %234 = getelementptr inbounds nuw i8, ptr %233, i64 36 + %235 = load i32, ptr %234, align 4 + %236 = sext i32 %235 to i64 + %237 = getelementptr inbounds ptr, ptr %.val3.i192, i64 %236 + %238 = load ptr, ptr %237, align 8 br label %Ssw_ObjIsConst1Cand.exit195 -Ssw_ObjIsConst1Cand.exit195: ; preds = %226, %228 - %240 = phi ptr [ %239, %228 ], [ null, %226 ] - %241 = getelementptr i8, ptr %223, i64 48 - %.val.i194 = load ptr, ptr %241, align 8 - %.not199 = icmp eq ptr %240, %.val.i194 - br i1 %.not199, label %255, label %242 +Ssw_ObjIsConst1Cand.exit195: ; preds = %225, %227 + %239 = phi ptr [ %238, %227 ], [ null, %225 ] + %240 = getelementptr i8, ptr %222, i64 48 + %.val.i194 = load ptr, ptr %240, align 8 + %.not199 = icmp eq ptr %239, %.val.i194 + br i1 %.not199, label %254, label %241 -242: ; preds = %Ssw_ObjIsConst1Cand.exit195 - %243 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25, i32 noundef %.1209) +241: ; preds = %Ssw_ObjIsConst1Cand.exit195 + %242 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25, i32 noundef %.1209) %puts = call i32 @puts(ptr nonnull dereferenceable(1) @str) - %244 = load i32, ptr %16, align 8 - %245 = getelementptr inbounds nuw i8, ptr %0, i64 292 - store i32 %244, ptr %245, align 4 - %246 = load i32, ptr %22, align 8 - %247 = getelementptr inbounds nuw i8, ptr %0, i64 300 - store i32 %246, ptr %247, align 4 - %248 = load i32, ptr %24, align 8 - %249 = getelementptr inbounds nuw i8, ptr %0, i64 308 - store i32 %248, ptr %249, align 4 - %250 = load ptr, ptr %76, align 8 - call void @Ssw_SatStop(ptr noundef %250) #13 + %243 = load i32, ptr %16, align 8 + %244 = getelementptr inbounds nuw i8, ptr %0, i64 292 + store i32 %243, ptr %244, align 4 + %245 = load i32, ptr %22, align 8 + %246 = getelementptr inbounds nuw i8, ptr %0, i64 300 + store i32 %245, ptr %246, align 4 + %247 = load i32, ptr %24, align 8 + %248 = getelementptr inbounds nuw i8, ptr %0, i64 308 + store i32 %247, ptr %248, align 4 + %249 = load ptr, ptr %76, align 8 + call void @Ssw_SatStop(ptr noundef %249) #13 store ptr null, ptr %76, align 8 call void @Ssw_ManCleanup(ptr noundef nonnull %0) #13 + %250 = load ptr, ptr %17, align 8 + call void @Aig_ManSetPhase(ptr noundef %250) #13 %251 = load ptr, ptr %17, align 8 - call void @Aig_ManSetPhase(ptr noundef %251) #13 + call void @Aig_ManCleanMarkB(ptr noundef %251) #13 %252 = load ptr, ptr %17, align 8 - call void @Aig_ManCleanMarkB(ptr noundef %252) #13 - %253 = load ptr, ptr %17, align 8 - %254 = call ptr @Aig_ManDupSimple(ptr noundef %253) #13 - br label %337 - -255: ; preds = %218, %222, %Ssw_ObjIsConst1Cand.exit195, %109, %Abc_Clock.exit189 - %.0149 = phi i32 [ %110, %Abc_Clock.exit189 ], [ %110, %109 ], [ %.1150, %Ssw_ObjIsConst1Cand.exit195 ], [ %.1150, %222 ], [ %.1150, %218 ] - %256 = load i32, ptr %77, align 8 - %257 = load i32, ptr %78, align 4 - %258 = load i32, ptr %79, align 4 - %259 = load i32, ptr %80, align 4 - %260 = load i32, ptr %85, align 4 - %261 = load ptr, ptr %76, align 8 - %262 = getelementptr inbounds nuw i8, ptr %261, i64 24 - %263 = load i32, ptr %262, align 8 - %264 = call noundef i32 @llvm.smax.i32(i32 %260, i32 %263) - store i32 %264, ptr %85, align 4 - %265 = load i32, ptr %86, align 8 - %266 = getelementptr inbounds nuw i8, ptr %261, i64 56 - %267 = load i32, ptr %266, align 8 - %268 = call noundef i32 @llvm.smax.i32(i32 %265, i32 %267) - store i32 %268, ptr %86, align 8 - call void @Ssw_SatStop(ptr noundef %261) #13 + %253 = call ptr @Aig_ManDupSimple(ptr noundef %252) #13 + br label %336 + +254: ; preds = %217, %221, %Ssw_ObjIsConst1Cand.exit195, %108, %Abc_Clock.exit189 + %.0149 = phi i32 [ %109, %Abc_Clock.exit189 ], [ %109, %108 ], [ %.1150, %Ssw_ObjIsConst1Cand.exit195 ], [ %.1150, %221 ], [ %.1150, %217 ] + %255 = load i32, ptr %77, align 8 + %256 = load i32, ptr %78, align 4 + %257 = load i32, ptr %79, align 4 + %258 = load i32, ptr %80, align 4 + %259 = load i32, ptr %85, align 4 + %260 = load ptr, ptr %76, align 8 + %261 = getelementptr inbounds nuw i8, ptr %260, i64 24 + %262 = load i32, ptr %261, align 8 + %263 = call noundef i32 @llvm.smax.i32(i32 %259, i32 %262) + store i32 %263, ptr %85, align 4 + %264 = load i32, ptr %86, align 8 + %265 = getelementptr inbounds nuw i8, ptr %260, i64 56 + %266 = load i32, ptr %265, align 8 + %267 = call noundef i32 @llvm.smax.i32(i32 %264, i32 %266) + store i32 %267, ptr %86, align 8 + call void @Ssw_SatStop(ptr noundef %260) #13 store ptr null, ptr %76, align 8 call void @Ssw_ManCleanup(ptr noundef nonnull %0) #13 %.not168 = icmp eq i32 %.0149, 0 - br i1 %.not168, label %.loopexit, label %269 - -269: ; preds = %255 - %270 = load ptr, ptr %0, align 8 - %271 = getelementptr inbounds nuw i8, ptr %270, i64 168 - %272 = load ptr, ptr %271, align 8 - %.not169 = icmp eq ptr %272, null - br i1 %.not169, label %277, label %273 - -273: ; preds = %269 - %274 = getelementptr inbounds nuw i8, ptr %270, i64 160 - %275 = load ptr, ptr %274, align 8 - %276 = call i32 %272(ptr noundef %275) #13 + br i1 %.not168, label %.loopexit, label %268 + +268: ; preds = %254 + %269 = load ptr, ptr %0, align 8 + %270 = getelementptr inbounds nuw i8, ptr %269, i64 168 + %271 = load ptr, ptr %270, align 8 + %.not169 = icmp eq ptr %271, null + br i1 %.not169, label %276, label %272 + +272: ; preds = %268 + %273 = getelementptr inbounds nuw i8, ptr %269, i64 160 + %274 = load ptr, ptr %273, align 8 + %275 = call i32 %271(ptr noundef %274) #13 %.pre225 = load ptr, ptr %0, align 8 - br label %277 - -277: ; preds = %273, %269 - %278 = phi ptr [ %.pre225, %273 ], [ %270, %269 ] - %279 = getelementptr inbounds nuw i8, ptr %278, i64 64 - %280 = load i32, ptr %279, align 8 - %.not170 = icmp eq i32 %280, 0 - br i1 %.not170, label %302, label %281 - -281: ; preds = %277 - %282 = load ptr, ptr %13, align 8 - %283 = call i32 @Ssw_ClassesCand1Num(ptr noundef %282) #13 - %284 = icmp samesign ugt i32 %.1209, 4 + br label %276 + +276: ; preds = %272, %268 + %277 = phi ptr [ %.pre225, %272 ], [ %269, %268 ] + %278 = getelementptr inbounds nuw i8, ptr %277, i64 64 + %279 = load i32, ptr %278, align 8 + %.not170 = icmp eq i32 %279, 0 + br i1 %.not170, label %301, label %280 + +280: ; preds = %276 + %281 = load ptr, ptr %13, align 8 + %282 = call i32 @Ssw_ClassesCand1Num(ptr noundef %281) #13 + %283 = icmp samesign ugt i32 %.1209, 4 %.pre226 = load ptr, ptr %0, align 8 - br i1 %284, label %285, label %302 - -285: ; preds = %281 - %286 = sub nsw i32 %.sroa.0.0210, %283 - %287 = getelementptr inbounds nuw i8, ptr %.pre226, i64 64 - %288 = load i32, ptr %287, align 8 - %289 = shl nsw i32 %288, 2 - %.not171 = icmp sgt i32 %286, %289 - br i1 %.not171, label %302, label %290 - -290: ; preds = %285 - %291 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25, i32 noundef %.1209) + br i1 %283, label %284, label %301 + +284: ; preds = %280 + %285 = sub nsw i32 %.sroa.0.0210, %282 + %286 = getelementptr inbounds nuw i8, ptr %.pre226, i64 64 + %287 = load i32, ptr %286, align 8 + %288 = shl nsw i32 %287, 2 + %.not171 = icmp sgt i32 %285, %288 + br i1 %.not171, label %301, label %289 + +289: ; preds = %284 + %290 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25, i32 noundef %.1209) %puts172 = call i32 @puts(ptr nonnull dereferenceable(1) @str.1) - %292 = load i32, ptr %16, align 8 - %293 = getelementptr inbounds nuw i8, ptr %0, i64 292 - store i32 %292, ptr %293, align 4 - %294 = load i32, ptr %22, align 8 - %295 = getelementptr inbounds nuw i8, ptr %0, i64 300 - store i32 %294, ptr %295, align 4 - %296 = load i32, ptr %24, align 8 - %297 = getelementptr inbounds nuw i8, ptr %0, i64 308 - store i32 %296, ptr %297, align 4 + %291 = load i32, ptr %16, align 8 + %292 = getelementptr inbounds nuw i8, ptr %0, i64 292 + store i32 %291, ptr %292, align 4 + %293 = load i32, ptr %22, align 8 + %294 = getelementptr inbounds nuw i8, ptr %0, i64 300 + store i32 %293, ptr %294, align 4 + %295 = load i32, ptr %24, align 8 + %296 = getelementptr inbounds nuw i8, ptr %0, i64 308 + store i32 %295, ptr %296, align 4 + %297 = load ptr, ptr %17, align 8 + call void @Aig_ManSetPhase(ptr noundef %297) #13 %298 = load ptr, ptr %17, align 8 - call void @Aig_ManSetPhase(ptr noundef %298) #13 + call void @Aig_ManCleanMarkB(ptr noundef %298) #13 %299 = load ptr, ptr %17, align 8 - call void @Aig_ManCleanMarkB(ptr noundef %299) #13 - %300 = load ptr, ptr %17, align 8 - %301 = call ptr @Aig_ManDupSimple(ptr noundef %300) #13 - br label %337 - -302: ; preds = %281, %285, %277 - %303 = phi ptr [ %278, %277 ], [ %.pre226, %285 ], [ %.pre226, %281 ] - %.sroa.0.1 = phi i32 [ %.sroa.0.0210, %277 ], [ %.sroa.3.0211, %285 ], [ %.sroa.3.0211, %281 ] - %.sroa.3.1 = phi i32 [ %.sroa.3.0211, %277 ], [ %.sroa.5.0212, %285 ], [ %.sroa.5.0212, %281 ] - %.sroa.5.1 = phi i32 [ %.sroa.5.0212, %277 ], [ %.sroa.7.0213, %285 ], [ %.sroa.7.0213, %281 ] - %.sroa.7.1 = phi i32 [ %.sroa.7.0213, %277 ], [ %283, %285 ], [ %283, %281 ] - %304 = add nuw nsw i32 %.1209, 1 - %305 = getelementptr inbounds nuw i8, ptr %303, i64 56 - %306 = load i32, ptr %305, align 8 - %307 = icmp eq i32 %306, %304 - br i1 %307, label %._crit_edge, label %88 - -.loopexit: ; preds = %255, %94, %._crit_edge, %87 - %.0148 = phi i32 [ -1, %87 ], [ %304, %._crit_edge ], [ %.1209, %94 ], [ %.1209, %255 ] - %308 = add nsw i32 %.0148, 1 - %309 = load ptr, ptr %0, align 8 - %310 = getelementptr inbounds nuw i8, ptr %309, i64 152 - store i32 %308, ptr %310, align 8 + %300 = call ptr @Aig_ManDupSimple(ptr noundef %299) #13 + br label %336 + +301: ; preds = %280, %284, %276 + %302 = phi ptr [ %277, %276 ], [ %.pre226, %284 ], [ %.pre226, %280 ] + %.sroa.0.1 = phi i32 [ %.sroa.0.0210, %276 ], [ %.sroa.3.0211, %284 ], [ %.sroa.3.0211, %280 ] + %.sroa.3.1 = phi i32 [ %.sroa.3.0211, %276 ], [ %.sroa.5.0212, %284 ], [ %.sroa.5.0212, %280 ] + %.sroa.5.1 = phi i32 [ %.sroa.5.0212, %276 ], [ %.sroa.7.0213, %284 ], [ %.sroa.7.0213, %280 ] + %.sroa.7.1 = phi i32 [ %.sroa.7.0213, %276 ], [ %282, %284 ], [ %282, %280 ] + %303 = add nuw nsw i32 %.1209, 1 + %304 = getelementptr inbounds nuw i8, ptr %302, i64 56 + %305 = load i32, ptr %304, align 8 + %306 = icmp eq i32 %305, %303 + br i1 %306, label %._crit_edge, label %88 + +.loopexit: ; preds = %254, %93, %._crit_edge, %87 + %.0148 = phi i32 [ -1, %87 ], [ %303, %._crit_edge ], [ %.1209, %93 ], [ %.1209, %254 ] + %307 = add nsw i32 %.0148, 1 + %308 = load ptr, ptr %0, align 8 + %309 = getelementptr inbounds nuw i8, ptr %308, i64 152 + store i32 %307, ptr %309, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) - %311 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %2) #13 - %312 = icmp slt i32 %311, 0 - br i1 %312, label %Abc_Clock.exit197, label %313 - -313: ; preds = %.loopexit - %314 = load i64, ptr %2, align 8 - %315 = mul nsw i64 %314, 1000000 - %316 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %317 = load i64, ptr %316, align 8 - %318 = sdiv i64 %317, 1000 - %319 = add nsw i64 %318, %315 + %310 = call i32 @clock_gettime(i32 noundef 1, ptr noundef nonnull %2) #13 + %311 = icmp slt i32 %310, 0 + br i1 %311, label %Abc_Clock.exit197, label %312 + +312: ; preds = %.loopexit + %313 = load i64, ptr %2, align 8 + %314 = mul nsw i64 %313, 1000000 + %315 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %316 = load i64, ptr %315, align 8 + %317 = sdiv i64 %316, 1000 + %318 = add nsw i64 %317, %314 br label %Abc_Clock.exit197 -Abc_Clock.exit197: ; preds = %.loopexit, %313 - %.0.i196 = phi i64 [ %319, %313 ], [ -1, %.loopexit ] +Abc_Clock.exit197: ; preds = %.loopexit, %312 + %.0.i196 = phi i64 [ %318, %312 ], [ -1, %.loopexit ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) - %320 = add i64 %.0.i196, %.0.i.neg - %321 = getelementptr inbounds nuw i8, ptr %0, i64 416 - store i64 %320, ptr %321, align 8 + %319 = add i64 %.0.i196, %.0.i.neg + %320 = getelementptr inbounds nuw i8, ptr %0, i64 416 + store i64 %319, ptr %320, align 8 + %321 = load ptr, ptr %17, align 8 + call void @Ssw_ManUpdateEquivs(ptr noundef nonnull %0, ptr noundef %321, i32 poison) %322 = load ptr, ptr %17, align 8 - call void @Ssw_ManUpdateEquivs(ptr noundef nonnull %0, ptr noundef %322, i32 poison) - %323 = load ptr, ptr %17, align 8 - %324 = call ptr @Aig_ManDupRepr(ptr noundef %323, i32 noundef 0) #13 - %325 = call i32 @Aig_ManSeqCleanup(ptr noundef %324) #13 - %326 = load ptr, ptr %13, align 8 - %327 = call i32 @Ssw_ClassesLitNum(ptr noundef %326) #13 - %328 = getelementptr inbounds nuw i8, ptr %0, i64 292 - store i32 %327, ptr %328, align 4 - %329 = getelementptr i8, ptr %324, i64 148 - %.val = load i32, ptr %329, align 4 - %330 = getelementptr i8, ptr %324, i64 152 - %.val173 = load i32, ptr %330, align 8 - %331 = add nsw i32 %.val173, %.val - %332 = getelementptr inbounds nuw i8, ptr %0, i64 300 - store i32 %331, ptr %332, align 4 - %333 = getelementptr i8, ptr %324, i64 104 - %.val178 = load i32, ptr %333, align 8 - %334 = getelementptr inbounds nuw i8, ptr %0, i64 308 - store i32 %.val178, ptr %334, align 4 + %323 = call ptr @Aig_ManDupRepr(ptr noundef %322, i32 noundef 0) #13 + %324 = call i32 @Aig_ManSeqCleanup(ptr noundef %323) #13 + %325 = load ptr, ptr %13, align 8 + %326 = call i32 @Ssw_ClassesLitNum(ptr noundef %325) #13 + %327 = getelementptr inbounds nuw i8, ptr %0, i64 292 + store i32 %326, ptr %327, align 4 + %328 = getelementptr i8, ptr %323, i64 148 + %.val = load i32, ptr %328, align 4 + %329 = getelementptr i8, ptr %323, i64 152 + %.val173 = load i32, ptr %329, align 8 + %330 = add nsw i32 %.val173, %.val + %331 = getelementptr inbounds nuw i8, ptr %0, i64 300 + store i32 %330, ptr %331, align 4 + %332 = getelementptr i8, ptr %323, i64 104 + %.val178 = load i32, ptr %332, align 8 + %333 = getelementptr inbounds nuw i8, ptr %0, i64 308 + store i32 %.val178, ptr %333, align 4 + %334 = load ptr, ptr %17, align 8 + call void @Aig_ManSetPhase(ptr noundef %334) #13 %335 = load ptr, ptr %17, align 8 - call void @Aig_ManSetPhase(ptr noundef %335) #13 - %336 = load ptr, ptr %17, align 8 - call void @Aig_ManCleanMarkB(ptr noundef %336) #13 - br label %337 + call void @Aig_ManCleanMarkB(ptr noundef %335) #13 + br label %336 -337: ; preds = %Abc_Clock.exit197, %290, %242 - %.0 = phi ptr [ %324, %Abc_Clock.exit197 ], [ %301, %290 ], [ %254, %242 ] +336: ; preds = %Abc_Clock.exit197, %289, %241 + %.0 = phi ptr [ %323, %Abc_Clock.exit197 ], [ %300, %289 ], [ %253, %241 ] ret ptr %.0 } diff --git a/bench/assimp/optimized/clipper.cpp.ll b/bench/assimp/optimized/clipper.cpp.ll index b88c8299233..a90330acd5f 100644 --- a/bench/assimp/optimized/clipper.cpp.ll +++ b/bench/assimp/optimized/clipper.cpp.ll @@ -10230,27 +10230,27 @@ return: ; preds = %if.else, %if.else.u ; Function Attrs: mustprogress uwtable define hidden void @_ZN10ClipperLib7Clipper16DoSimplePolygonsEv(ptr nocapture noundef nonnull align 8 dereferenceable(135) %this) local_unnamed_addr #0 align 2 { entry: - %vtable178 = load ptr, ptr %this, align 8 - %vbase.offset.ptr179 = getelementptr i8, ptr %vtable178, i64 -24 - %vbase.offset180 = load i64, ptr %vbase.offset.ptr179, align 8 - %add.ptr181 = getelementptr inbounds i8, ptr %this, i64 %vbase.offset180 - %m_PolyOuts182 = getelementptr inbounds nuw i8, ptr %add.ptr181, i64 80 - %_M_finish.i183 = getelementptr inbounds nuw i8, ptr %add.ptr181, i64 88 - %0 = load ptr, ptr %_M_finish.i183, align 8 - %1 = load ptr, ptr %m_PolyOuts182, align 8 - %cmp188.not = icmp eq ptr %0, %1 - br i1 %cmp188.not, label %while.end80, label %while.body.lr.ph + %vtable177 = load ptr, ptr %this, align 8 + %vbase.offset.ptr178 = getelementptr i8, ptr %vtable177, i64 -24 + %vbase.offset179 = load i64, ptr %vbase.offset.ptr178, align 8 + %add.ptr180 = getelementptr inbounds i8, ptr %this, i64 %vbase.offset179 + %m_PolyOuts181 = getelementptr inbounds nuw i8, ptr %add.ptr180, i64 80 + %_M_finish.i182 = getelementptr inbounds nuw i8, ptr %add.ptr180, i64 88 + %0 = load ptr, ptr %_M_finish.i182, align 8 + %1 = load ptr, ptr %m_PolyOuts181, align 8 + %cmp187.not = icmp eq ptr %0, %1 + br i1 %cmp187.not, label %while.end80, label %while.body.lr.ph while.body.lr.ph: ; preds = %entry %m_UsingPolyTree69 = getelementptr inbounds nuw i8, ptr %this, i64 133 br label %while.body while.body: ; preds = %while.body.lr.ph, %while.cond.backedge - %vtable195 = phi ptr [ %vtable178, %while.body.lr.ph ], [ %vtable, %while.cond.backedge ] + %vtable190 = phi ptr [ %vtable177, %while.body.lr.ph ], [ %vtable, %while.cond.backedge ] %2 = phi ptr [ %1, %while.body.lr.ph ], [ %7, %while.cond.backedge ] - %i.0189 = phi i64 [ 0, %while.body.lr.ph ], [ %inc, %while.cond.backedge ] - %inc = add nuw i64 %i.0189, 1 - %add.ptr.i = getelementptr inbounds ptr, ptr %2, i64 %i.0189 + %i.0188 = phi i64 [ 0, %while.body.lr.ph ], [ %inc, %while.cond.backedge ] + %inc = add nuw i64 %i.0188, 1 + %add.ptr.i = getelementptr inbounds ptr, ptr %2, i64 %i.0188 %3 = load ptr, ptr %add.ptr.i, align 8 %Pts = getelementptr inbounds nuw i8, ptr %3, i64 24 %4 = load ptr, ptr %Pts, align 8 @@ -10273,7 +10273,7 @@ while.cond.backedge.loopexit: ; preds = %while.end br label %while.cond.backedge while.cond.backedge: ; preds = %while.cond.backedge.loopexit, %while.body, %lor.lhs.false - %vtable = phi ptr [ %vtable.pre, %while.cond.backedge.loopexit ], [ %vtable195, %while.body ], [ %vtable195, %lor.lhs.false ] + %vtable = phi ptr [ %vtable.pre, %while.cond.backedge.loopexit ], [ %vtable190, %while.body ], [ %vtable190, %lor.lhs.false ] %vbase.offset.ptr = getelementptr i8, ptr %vtable, i64 -24 %vbase.offset = load i64, ptr %vbase.offset.ptr, align 8 %add.ptr = getelementptr inbounds i8, ptr %this, i64 %vbase.offset @@ -10289,12 +10289,12 @@ while.cond.backedge: ; preds = %while.cond.backedge br i1 %cmp, label %while.body, label %while.end80, !llvm.loop !99 do.body: ; preds = %do.body.preheader, %while.end - %8 = phi ptr [ %99, %while.end ], [ %4, %do.body.preheader ] - %op.0 = phi ptr [ %98, %while.end ], [ %4, %do.body.preheader ] + %8 = phi ptr [ %105, %while.end ], [ %4, %do.body.preheader ] + %op.0 = phi ptr [ %104, %while.end ], [ %4, %do.body.preheader ] %Next = getelementptr inbounds nuw i8, ptr %op.0, i64 24 - %op2.0175 = load ptr, ptr %Next, align 8 - %cmp11.not176 = icmp eq ptr %op2.0175, %8 - br i1 %cmp11.not176, label %while.end, label %while.body12.lr.ph + %op2.0174 = load ptr, ptr %Next, align 8 + %cmp11.not175 = icmp eq ptr %op2.0174, %8 + br i1 %cmp11.not175, label %while.end, label %while.body12.lr.ph while.body12.lr.ph: ; preds = %do.body %Pt = getelementptr inbounds nuw i8, ptr %op.0, i64 8 @@ -10303,26 +10303,26 @@ while.body12.lr.ph: ; preds = %do.body br label %while.body12 while.body12: ; preds = %while.body12.lr.ph, %if.end75 - %op2.0177 = phi ptr [ %op2.0175, %while.body12.lr.ph ], [ %op2.0, %if.end75 ] - %Pt13 = getelementptr inbounds nuw i8, ptr %op2.0177, i64 8 + %op2.0176 = phi ptr [ %op2.0174, %while.body12.lr.ph ], [ %op2.0, %if.end75 ] + %Pt13 = getelementptr inbounds nuw i8, ptr %op2.0176, i64 8 %9 = load i64, ptr %Pt, align 8 %10 = load i64, ptr %Pt13, align 8 %cmp.i = icmp eq i64 %9, %10 %11 = load i64, ptr %Y.i, align 8 - %Y2.i = getelementptr inbounds nuw i8, ptr %op2.0177, i64 16 + %Y2.i = getelementptr inbounds nuw i8, ptr %op2.0176, i64 16 %12 = load i64, ptr %Y2.i, align 8 %cmp3.i = icmp eq i64 %11, %12 %13 = select i1 %cmp.i, i1 %cmp3.i, i1 false br i1 %13, label %land.lhs.true, label %if.end75 land.lhs.true: ; preds = %while.body12 - %Next15 = getelementptr inbounds nuw i8, ptr %op2.0177, i64 24 + %Next15 = getelementptr inbounds nuw i8, ptr %op2.0176, i64 24 %14 = load ptr, ptr %Next15, align 8 %cmp16.not = icmp eq ptr %14, %op.0 br i1 %cmp16.not, label %if.end75, label %land.lhs.true17 land.lhs.true17: ; preds = %land.lhs.true - %Prev = getelementptr inbounds nuw i8, ptr %op2.0177, i64 32 + %Prev = getelementptr inbounds nuw i8, ptr %op2.0176, i64 32 %15 = load ptr, ptr %Prev, align 8 %cmp18.not = icmp eq ptr %15, %op.0 br i1 %cmp18.not, label %if.end75, label %if.then19 @@ -10334,7 +10334,7 @@ if.then19: ; preds = %land.lhs.true17 store ptr %op.0, ptr %Next23, align 8 store ptr %16, ptr %Prev, align 8 %Next25 = getelementptr inbounds nuw i8, ptr %16, i64 24 - store ptr %op2.0177, ptr %Next25, align 8 + store ptr %op2.0176, ptr %Next25, align 8 store ptr %op.0, ptr %Pts, align 8 %vtable27 = load ptr, ptr %this, align 8 %vbase.offset.ptr28 = getelementptr i8, ptr %vtable27, i64 -24 @@ -10422,11 +10422,11 @@ _ZN10ClipperLib11ClipperBase12CreateOutRecEv.exit: ; preds = %if.then.i.i, %_ZNS %sub.i = add nsw i32 %conv.i, -1 store i32 %sub.i, ptr %call.i, align 8 %Pts32 = getelementptr inbounds nuw i8, ptr %call.i, i64 24 - store ptr %op2.0177, ptr %Pts32, align 8 + store ptr %op2.0176, ptr %Pts32, align 8 br label %do.body.i do.body.i: ; preds = %do.body.i, %_ZN10ClipperLib11ClipperBase12CreateOutRecEv.exit - %op.0.i = phi ptr [ %op2.0177, %_ZN10ClipperLib11ClipperBase12CreateOutRecEv.exit ], [ %24, %do.body.i ] + %op.0.i = phi ptr [ %op2.0176, %_ZN10ClipperLib11ClipperBase12CreateOutRecEv.exit ], [ %24, %do.body.i ] store i32 %sub.i, ptr %op.0.i, align 8 %Prev.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 32 %24 = load ptr, ptr %Prev.i, align 8 @@ -10439,7 +10439,7 @@ _ZN10ClipperLib15UpdateOutPtIdxsERNS_6OutRecE.exit: ; preds = %do.body.i br label %do.body.i58 do.body.i58: ; preds = %if.end.i, %_ZN10ClipperLib15UpdateOutPtIdxsERNS_6OutRecE.exit - %op.0.i59 = phi ptr [ %25, %_ZN10ClipperLib15UpdateOutPtIdxsERNS_6OutRecE.exit ], [ %43, %if.end.i ] + %op.0.i59 = phi ptr [ %25, %_ZN10ClipperLib15UpdateOutPtIdxsERNS_6OutRecE.exit ], [ %45, %if.end.i ] %Pt.i = getelementptr inbounds nuw i8, ptr %op.0.i59, i64 8 %Y1.i = getelementptr inbounds nuw i8, ptr %op.0.i59, i64 16 %27 = load i64, ptr %Y1.i, align 8 @@ -10449,29 +10449,29 @@ do.body.i58: ; preds = %if.end.i, %_ZN10Cli for.cond.i: ; preds = %if.end136.i, %do.body.i58 %result.0.i = phi i32 [ 0, %do.body.i58 ], [ %result.1.i, %if.end136.i ] %op.addr.0.i = phi ptr [ %26, %do.body.i58 ], [ %29, %if.end136.i ] - %Next.i87 = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 24 - %29 = load ptr, ptr %Next.i87, align 8 - %Y.i88 = getelementptr inbounds nuw i8, ptr %29, i64 16 - %30 = load i64, ptr %Y.i88, align 8 - %cmp.i89 = icmp eq i64 %30, %27 - br i1 %cmp.i89, label %if.then.i93, label %for.cond.if.end22_crit_edge.i + %Next.i86 = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 24 + %29 = load ptr, ptr %Next.i86, align 8 + %Y.i87 = getelementptr inbounds nuw i8, ptr %29, i64 16 + %30 = load i64, ptr %Y.i87, align 8 + %cmp.i88 = icmp eq i64 %30, %27 + br i1 %cmp.i88, label %if.then.i92, label %for.cond.if.end22_crit_edge.i for.cond.if.end22_crit_edge.i: ; preds = %for.cond.i %Y24.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 16 - %.pre.i90 = load i64, ptr %Y24.phi.trans.insert.i, align 8 + %.pre.i89 = load i64, ptr %Y24.phi.trans.insert.i, align 8 br label %if.end22.i -if.then.i93: ; preds = %for.cond.i - %Pt.i94 = getelementptr inbounds nuw i8, ptr %29, i64 8 - %31 = load i64, ptr %Pt.i94, align 8 +if.then.i92: ; preds = %for.cond.i + %Pt.i93 = getelementptr inbounds nuw i8, ptr %29, i64 8 + %31 = load i64, ptr %Pt.i93, align 8 %cmp5.i = icmp eq i64 %31, %28 br i1 %cmp5.i, label %if.end.i, label %lor.lhs.false.i -lor.lhs.false.i: ; preds = %if.then.i93 +lor.lhs.false.i: ; preds = %if.then.i92 %Y7.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 16 %32 = load i64, ptr %Y7.i, align 8 - %cmp9.i95 = icmp eq i64 %32, %27 - br i1 %cmp9.i95, label %land.lhs.true.i, label %if.end22.i + %cmp9.i94 = icmp eq i64 %32, %27 + br i1 %cmp9.i94, label %land.lhs.true.i, label %if.end22.i land.lhs.true.i: ; preds = %lor.lhs.false.i %Pt6.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 @@ -10482,47 +10482,47 @@ land.lhs.true.i: ; preds = %lor.lhs.false.i br i1 %cmp20.i, label %if.end.i, label %if.end136.i if.end22.i: ; preds = %lor.lhs.false.i, %for.cond.if.end22_crit_edge.i - %35 = phi i64 [ %.pre.i90, %for.cond.if.end22_crit_edge.i ], [ %32, %lor.lhs.false.i ] + %35 = phi i64 [ %.pre.i89, %for.cond.if.end22_crit_edge.i ], [ %32, %lor.lhs.false.i ] %cmp26.i = icmp slt i64 %35, %27 %36 = icmp sge i64 %30, %27 %cmp34.not.i = xor i1 %36, %cmp26.i br i1 %cmp34.not.i, label %if.end136.i, label %if.then35.i if.then35.i: ; preds = %if.end22.i - %Pt23.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 - %.pre = load i64, ptr %Pt23.i.phi.trans.insert, align 8 - %Pt2958.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %29, i64 8 - %.pre191 = load i64, ptr %Pt2958.i.phi.trans.insert, align 8 - %cmp39.not.i = icmp slt i64 %.pre, %28 - %cmp91.i = icmp sgt i64 %.pre191, %28 + %Pt2958.i = getelementptr inbounds nuw i8, ptr %29, i64 8 + %Pt23.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 + %37 = load i64, ptr %Pt23.i, align 8 + %cmp39.not.i = icmp slt i64 %37, %28 + %38 = load i64, ptr %Pt2958.i, align 8 + %cmp91.i = icmp sgt i64 %38, %28 br i1 %cmp39.not.i, label %if.else86.i, label %if.then40.i if.then40.i: ; preds = %if.then35.i br i1 %cmp91.i, label %if.then46.i, label %if.else.i if.then46.i: ; preds = %if.then40.i - %sub.i92 = sub nuw nsw i32 1, %result.0.i + %sub.i91 = sub nuw nsw i32 1, %result.0.i br label %if.end136.i if.else.i: ; preds = %if.then40.i - %sub50.i = sub nsw i64 %.pre, %28 + %sub50.i = sub nsw i64 %37, %28 %conv51.i = sitofp i64 %sub50.i to double %sub56.i = sub nsw i64 %30, %27 %conv57.i = sitofp i64 %sub56.i to double - %sub62.i = sub nsw i64 %.pre191, %28 + %sub62.i = sub nsw i64 %38, %28 %conv63.i = sitofp i64 %sub62.i to double %sub67.i = sub nsw i64 %35, %27 %conv68.i = sitofp i64 %sub67.i to double - %37 = fneg double %conv68.i - %neg.i = fmul double %37, %conv63.i - %38 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) - %tobool.i = fcmp une double %38, 0.000000e+00 + %39 = fneg double %conv68.i + %neg.i = fmul double %39, %conv63.i + %40 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) + %tobool.i = fcmp une double %40, 0.000000e+00 br i1 %tobool.i, label %if.end71.i, label %if.end.i if.end71.i: ; preds = %if.else.i - %cmp72.i = fcmp ogt double %38, 0.000000e+00 - %39 = icmp sle i64 %30, %35 - %cmp81.i = xor i1 %39, %cmp72.i + %cmp72.i = fcmp ogt double %40, 0.000000e+00 + %41 = icmp sle i64 %30, %35 + %cmp81.i = xor i1 %41, %cmp72.i %sub83.i = sub nuw nsw i32 1, %result.0.i %spec.select.i = select i1 %cmp81.i, i32 %sub83.i, i32 %result.0.i br label %if.end136.i @@ -10531,37 +10531,37 @@ if.else86.i: ; preds = %if.then35.i br i1 %cmp91.i, label %if.then92.i, label %if.end136.i if.then92.i: ; preds = %if.else86.i - %sub97.i = sub nsw i64 %.pre, %28 + %sub97.i = sub nsw i64 %37, %28 %conv98.i = sitofp i64 %sub97.i to double %sub103.i = sub nsw i64 %30, %27 %conv104.i = sitofp i64 %sub103.i to double - %sub109.i = sub nsw i64 %.pre191, %28 + %sub109.i = sub nsw i64 %38, %28 %conv110.i = sitofp i64 %sub109.i to double %sub114.i = sub nsw i64 %35, %27 %conv115.i = sitofp i64 %sub114.i to double - %40 = fneg double %conv115.i - %neg117.i = fmul double %40, %conv110.i - %41 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) - %tobool118.i = fcmp une double %41, 0.000000e+00 + %42 = fneg double %conv115.i + %neg117.i = fmul double %42, %conv110.i + %43 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) + %tobool118.i = fcmp une double %43, 0.000000e+00 br i1 %tobool118.i, label %if.end120.i, label %if.end.i if.end120.i: ; preds = %if.then92.i - %cmp121.i = fcmp ogt double %41, 0.000000e+00 - %42 = icmp sle i64 %30, %35 - %cmp130.i = xor i1 %42, %cmp121.i + %cmp121.i = fcmp ogt double %43, 0.000000e+00 + %44 = icmp sle i64 %30, %35 + %cmp130.i = xor i1 %44, %cmp121.i %sub132.i = sub nuw nsw i32 1, %result.0.i %spec.select56.i = select i1 %cmp130.i, i32 %sub132.i, i32 %result.0.i br label %if.end136.i if.end136.i: ; preds = %land.lhs.true.i, %if.end120.i, %if.else86.i, %if.end71.i, %if.then46.i, %if.end22.i - %result.1.i = phi i32 [ %sub.i92, %if.then46.i ], [ %result.0.i, %if.else86.i ], [ %result.0.i, %if.end22.i ], [ %spec.select.i, %if.end71.i ], [ %spec.select56.i, %if.end120.i ], [ %result.0.i, %land.lhs.true.i ] + %result.1.i = phi i32 [ %sub.i91, %if.then46.i ], [ %result.0.i, %if.else86.i ], [ %result.0.i, %if.end22.i ], [ %spec.select.i, %if.end71.i ], [ %spec.select56.i, %if.end120.i ], [ %result.0.i, %land.lhs.true.i ] %cmp138.i = icmp eq ptr %26, %29 br i1 %cmp138.i, label %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit, label %for.cond.i, !llvm.loop !11 -if.end.i: ; preds = %if.then92.i, %if.else.i, %if.then.i93, %land.lhs.true.i +if.end.i: ; preds = %if.then92.i, %if.else.i, %if.then.i92, %land.lhs.true.i %Next.i = getelementptr inbounds nuw i8, ptr %op.0.i59, i64 24 - %43 = load ptr, ptr %Next.i, align 8 - %cmp2.not.i = icmp eq ptr %43, %24 + %45 = load ptr, ptr %Next.i, align 8 + %cmp2.not.i = icmp eq ptr %45, %24 br i1 %cmp2.not.i, label %if.then36, label %do.body.i58, !llvm.loop !12 _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit: ; preds = %if.end136.i @@ -10569,13 +10569,13 @@ _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit: ; preds = %if.end136.i br i1 %cmp1.i.not, label %do.body.i62, label %if.then36 if.then36: ; preds = %if.end.i, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit - %44 = load i8, ptr %IsHole63, align 4 - %lnot = and i8 %44, 1 + %46 = load i8, ptr %IsHole63, align 4 + %lnot = and i8 %46, 1 %frombool = xor i8 %lnot, 1 store i8 %frombool, ptr %IsHole.i, align 4 store ptr %3, ptr %FirstLeft.i, align 8 - %45 = load i8, ptr %m_UsingPolyTree69, align 1 - %tobool39 = trunc i8 %45 to i1 + %47 = load i8, ptr %m_UsingPolyTree69, align 1 + %tobool39 = trunc i8 %47 to i1 br i1 %tobool39, label %if.then40, label %if.end75 if.then40: ; preds = %if.then36 @@ -10583,146 +10583,146 @@ if.then40: ; preds = %if.then36 br label %if.end75 do.body.i62: ; preds = %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit, %if.end.i67 - %op.0.i63 = phi ptr [ %62, %if.end.i67 ], [ %26, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit ] + %op.0.i63 = phi ptr [ %66, %if.end.i67 ], [ %26, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit ] %Pt.i64 = getelementptr inbounds nuw i8, ptr %op.0.i63, i64 8 - %Y1.i96 = getelementptr inbounds nuw i8, ptr %op.0.i63, i64 16 - %46 = load i64, ptr %Y1.i96, align 8 - %47 = load i64, ptr %Pt.i64, align 8 - br label %for.cond.i97 - -for.cond.i97: ; preds = %if.end136.i132, %do.body.i62 - %result.0.i98 = phi i32 [ 0, %do.body.i62 ], [ %result.1.i133, %if.end136.i132 ] - %op.addr.0.i99 = phi ptr [ %25, %do.body.i62 ], [ %48, %if.end136.i132 ] - %Next.i100 = getelementptr inbounds nuw i8, ptr %op.addr.0.i99, i64 24 - %48 = load ptr, ptr %Next.i100, align 8 - %Y.i101 = getelementptr inbounds nuw i8, ptr %48, i64 16 - %49 = load i64, ptr %Y.i101, align 8 - %cmp.i102 = icmp eq i64 %49, %46 - br i1 %cmp.i102, label %if.then.i154, label %for.cond.if.end22_crit_edge.i103 - -for.cond.if.end22_crit_edge.i103: ; preds = %for.cond.i97 - %Y24.phi.trans.insert.i104 = getelementptr inbounds nuw i8, ptr %op.addr.0.i99, i64 16 - %.pre.i105 = load i64, ptr %Y24.phi.trans.insert.i104, align 8 - br label %if.end22.i106 - -if.then.i154: ; preds = %for.cond.i97 - %Pt.i155 = getelementptr inbounds nuw i8, ptr %48, i64 8 - %50 = load i64, ptr %Pt.i155, align 8 - %cmp5.i156 = icmp eq i64 %50, %47 - br i1 %cmp5.i156, label %if.end.i67, label %lor.lhs.false.i157 - -lor.lhs.false.i157: ; preds = %if.then.i154 - %Y7.i158 = getelementptr inbounds nuw i8, ptr %op.addr.0.i99, i64 16 - %51 = load i64, ptr %Y7.i158, align 8 - %cmp9.i159 = icmp eq i64 %51, %46 - br i1 %cmp9.i159, label %land.lhs.true.i160, label %if.end22.i106 - -land.lhs.true.i160: ; preds = %lor.lhs.false.i157 - %Pt6.i161 = getelementptr inbounds nuw i8, ptr %op.addr.0.i99, i64 8 - %cmp14.i162 = icmp sgt i64 %50, %47 - %52 = load i64, ptr %Pt6.i161, align 8 - %53 = icmp sge i64 %52, %47 - %cmp20.i163 = xor i1 %cmp14.i162, %53 - br i1 %cmp20.i163, label %if.end.i67, label %if.end136.i132 - -if.end22.i106: ; preds = %lor.lhs.false.i157, %for.cond.if.end22_crit_edge.i103 - %54 = phi i64 [ %.pre.i105, %for.cond.if.end22_crit_edge.i103 ], [ %51, %lor.lhs.false.i157 ] - %cmp26.i107 = icmp slt i64 %54, %46 - %55 = icmp sge i64 %49, %46 - %cmp34.not.i108 = xor i1 %55, %cmp26.i107 - br i1 %cmp34.not.i108, label %if.end136.i132, label %if.then35.i109 - -if.then35.i109: ; preds = %if.end22.i106 - %Pt23.i111.phi.trans.insert = getelementptr inbounds nuw i8, ptr %op.addr.0.i99, i64 8 - %.pre192 = load i64, ptr %Pt23.i111.phi.trans.insert, align 8 - %Pt2958.i110.phi.trans.insert = getelementptr inbounds nuw i8, ptr %48, i64 8 - %.pre193 = load i64, ptr %Pt2958.i110.phi.trans.insert, align 8 - %cmp39.not.i112 = icmp slt i64 %.pre192, %47 - %cmp91.i113 = icmp sgt i64 %.pre193, %47 - br i1 %cmp39.not.i112, label %if.else86.i137, label %if.then40.i114 - -if.then40.i114: ; preds = %if.then35.i109 - br i1 %cmp91.i113, label %if.then46.i135, label %if.else.i115 - -if.then46.i135: ; preds = %if.then40.i114 - %sub.i136 = sub nuw nsw i32 1, %result.0.i98 - br label %if.end136.i132 - -if.else.i115: ; preds = %if.then40.i114 - %sub50.i116 = sub nsw i64 %.pre192, %47 - %conv51.i117 = sitofp i64 %sub50.i116 to double - %sub56.i118 = sub nsw i64 %49, %46 - %conv57.i119 = sitofp i64 %sub56.i118 to double - %sub62.i120 = sub nsw i64 %.pre193, %47 - %conv63.i121 = sitofp i64 %sub62.i120 to double - %sub67.i122 = sub nsw i64 %54, %46 - %conv68.i123 = sitofp i64 %sub67.i122 to double - %56 = fneg double %conv68.i123 - %neg.i124 = fmul double %56, %conv63.i121 - %57 = tail call double @llvm.fmuladd.f64(double %conv51.i117, double %conv57.i119, double %neg.i124) - %tobool.i125 = fcmp une double %57, 0.000000e+00 - br i1 %tobool.i125, label %if.end71.i127, label %if.end.i67 - -if.end71.i127: ; preds = %if.else.i115 - %cmp72.i128 = fcmp ogt double %57, 0.000000e+00 - %58 = icmp sle i64 %49, %54 - %cmp81.i129 = xor i1 %58, %cmp72.i128 - %sub83.i130 = sub nuw nsw i32 1, %result.0.i98 - %spec.select.i131 = select i1 %cmp81.i129, i32 %sub83.i130, i32 %result.0.i98 - br label %if.end136.i132 - -if.else86.i137: ; preds = %if.then35.i109 - br i1 %cmp91.i113, label %if.then92.i138, label %if.end136.i132 - -if.then92.i138: ; preds = %if.else86.i137 - %sub97.i139 = sub nsw i64 %.pre192, %47 - %conv98.i140 = sitofp i64 %sub97.i139 to double - %sub103.i141 = sub nsw i64 %49, %46 - %conv104.i142 = sitofp i64 %sub103.i141 to double - %sub109.i143 = sub nsw i64 %.pre193, %47 - %conv110.i144 = sitofp i64 %sub109.i143 to double - %sub114.i145 = sub nsw i64 %54, %46 - %conv115.i146 = sitofp i64 %sub114.i145 to double - %59 = fneg double %conv115.i146 - %neg117.i147 = fmul double %59, %conv110.i144 - %60 = tail call double @llvm.fmuladd.f64(double %conv98.i140, double %conv104.i142, double %neg117.i147) - %tobool118.i148 = fcmp une double %60, 0.000000e+00 - br i1 %tobool118.i148, label %if.end120.i149, label %if.end.i67 - -if.end120.i149: ; preds = %if.then92.i138 - %cmp121.i150 = fcmp ogt double %60, 0.000000e+00 - %61 = icmp sle i64 %49, %54 - %cmp130.i151 = xor i1 %61, %cmp121.i150 - %sub132.i152 = sub nuw nsw i32 1, %result.0.i98 - %spec.select56.i153 = select i1 %cmp130.i151, i32 %sub132.i152, i32 %result.0.i98 - br label %if.end136.i132 - -if.end136.i132: ; preds = %land.lhs.true.i160, %if.end120.i149, %if.else86.i137, %if.end71.i127, %if.then46.i135, %if.end22.i106 - %result.1.i133 = phi i32 [ %sub.i136, %if.then46.i135 ], [ %result.0.i98, %if.else86.i137 ], [ %result.0.i98, %if.end22.i106 ], [ %spec.select.i131, %if.end71.i127 ], [ %spec.select56.i153, %if.end120.i149 ], [ %result.0.i98, %land.lhs.true.i160 ] - %cmp138.i134 = icmp eq ptr %24, %48 - br i1 %cmp138.i134, label %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73, label %for.cond.i97, !llvm.loop !11 - -if.end.i67: ; preds = %if.then92.i138, %if.else.i115, %if.then.i154, %land.lhs.true.i160 + %Y1.i95 = getelementptr inbounds nuw i8, ptr %op.0.i63, i64 16 + %48 = load i64, ptr %Y1.i95, align 8 + %49 = load i64, ptr %Pt.i64, align 8 + br label %for.cond.i96 + +for.cond.i96: ; preds = %if.end136.i131, %do.body.i62 + %result.0.i97 = phi i32 [ 0, %do.body.i62 ], [ %result.1.i132, %if.end136.i131 ] + %op.addr.0.i98 = phi ptr [ %25, %do.body.i62 ], [ %50, %if.end136.i131 ] + %Next.i99 = getelementptr inbounds nuw i8, ptr %op.addr.0.i98, i64 24 + %50 = load ptr, ptr %Next.i99, align 8 + %Y.i100 = getelementptr inbounds nuw i8, ptr %50, i64 16 + %51 = load i64, ptr %Y.i100, align 8 + %cmp.i101 = icmp eq i64 %51, %48 + br i1 %cmp.i101, label %if.then.i153, label %for.cond.if.end22_crit_edge.i102 + +for.cond.if.end22_crit_edge.i102: ; preds = %for.cond.i96 + %Y24.phi.trans.insert.i103 = getelementptr inbounds nuw i8, ptr %op.addr.0.i98, i64 16 + %.pre.i104 = load i64, ptr %Y24.phi.trans.insert.i103, align 8 + br label %if.end22.i105 + +if.then.i153: ; preds = %for.cond.i96 + %Pt.i154 = getelementptr inbounds nuw i8, ptr %50, i64 8 + %52 = load i64, ptr %Pt.i154, align 8 + %cmp5.i155 = icmp eq i64 %52, %49 + br i1 %cmp5.i155, label %if.end.i67, label %lor.lhs.false.i156 + +lor.lhs.false.i156: ; preds = %if.then.i153 + %Y7.i157 = getelementptr inbounds nuw i8, ptr %op.addr.0.i98, i64 16 + %53 = load i64, ptr %Y7.i157, align 8 + %cmp9.i158 = icmp eq i64 %53, %48 + br i1 %cmp9.i158, label %land.lhs.true.i159, label %if.end22.i105 + +land.lhs.true.i159: ; preds = %lor.lhs.false.i156 + %Pt6.i160 = getelementptr inbounds nuw i8, ptr %op.addr.0.i98, i64 8 + %cmp14.i161 = icmp sgt i64 %52, %49 + %54 = load i64, ptr %Pt6.i160, align 8 + %55 = icmp sge i64 %54, %49 + %cmp20.i162 = xor i1 %cmp14.i161, %55 + br i1 %cmp20.i162, label %if.end.i67, label %if.end136.i131 + +if.end22.i105: ; preds = %lor.lhs.false.i156, %for.cond.if.end22_crit_edge.i102 + %56 = phi i64 [ %.pre.i104, %for.cond.if.end22_crit_edge.i102 ], [ %53, %lor.lhs.false.i156 ] + %cmp26.i106 = icmp slt i64 %56, %48 + %57 = icmp sge i64 %51, %48 + %cmp34.not.i107 = xor i1 %57, %cmp26.i106 + br i1 %cmp34.not.i107, label %if.end136.i131, label %if.then35.i108 + +if.then35.i108: ; preds = %if.end22.i105 + %Pt2958.i109 = getelementptr inbounds nuw i8, ptr %50, i64 8 + %Pt23.i110 = getelementptr inbounds nuw i8, ptr %op.addr.0.i98, i64 8 + %58 = load i64, ptr %Pt23.i110, align 8 + %cmp39.not.i111 = icmp slt i64 %58, %49 + %59 = load i64, ptr %Pt2958.i109, align 8 + %cmp91.i112 = icmp sgt i64 %59, %49 + br i1 %cmp39.not.i111, label %if.else86.i136, label %if.then40.i113 + +if.then40.i113: ; preds = %if.then35.i108 + br i1 %cmp91.i112, label %if.then46.i134, label %if.else.i114 + +if.then46.i134: ; preds = %if.then40.i113 + %sub.i135 = sub nuw nsw i32 1, %result.0.i97 + br label %if.end136.i131 + +if.else.i114: ; preds = %if.then40.i113 + %sub50.i115 = sub nsw i64 %58, %49 + %conv51.i116 = sitofp i64 %sub50.i115 to double + %sub56.i117 = sub nsw i64 %51, %48 + %conv57.i118 = sitofp i64 %sub56.i117 to double + %sub62.i119 = sub nsw i64 %59, %49 + %conv63.i120 = sitofp i64 %sub62.i119 to double + %sub67.i121 = sub nsw i64 %56, %48 + %conv68.i122 = sitofp i64 %sub67.i121 to double + %60 = fneg double %conv68.i122 + %neg.i123 = fmul double %60, %conv63.i120 + %61 = tail call double @llvm.fmuladd.f64(double %conv51.i116, double %conv57.i118, double %neg.i123) + %tobool.i124 = fcmp une double %61, 0.000000e+00 + br i1 %tobool.i124, label %if.end71.i126, label %if.end.i67 + +if.end71.i126: ; preds = %if.else.i114 + %cmp72.i127 = fcmp ogt double %61, 0.000000e+00 + %62 = icmp sle i64 %51, %56 + %cmp81.i128 = xor i1 %62, %cmp72.i127 + %sub83.i129 = sub nuw nsw i32 1, %result.0.i97 + %spec.select.i130 = select i1 %cmp81.i128, i32 %sub83.i129, i32 %result.0.i97 + br label %if.end136.i131 + +if.else86.i136: ; preds = %if.then35.i108 + br i1 %cmp91.i112, label %if.then92.i137, label %if.end136.i131 + +if.then92.i137: ; preds = %if.else86.i136 + %sub97.i138 = sub nsw i64 %58, %49 + %conv98.i139 = sitofp i64 %sub97.i138 to double + %sub103.i140 = sub nsw i64 %51, %48 + %conv104.i141 = sitofp i64 %sub103.i140 to double + %sub109.i142 = sub nsw i64 %59, %49 + %conv110.i143 = sitofp i64 %sub109.i142 to double + %sub114.i144 = sub nsw i64 %56, %48 + %conv115.i145 = sitofp i64 %sub114.i144 to double + %63 = fneg double %conv115.i145 + %neg117.i146 = fmul double %63, %conv110.i143 + %64 = tail call double @llvm.fmuladd.f64(double %conv98.i139, double %conv104.i141, double %neg117.i146) + %tobool118.i147 = fcmp une double %64, 0.000000e+00 + br i1 %tobool118.i147, label %if.end120.i148, label %if.end.i67 + +if.end120.i148: ; preds = %if.then92.i137 + %cmp121.i149 = fcmp ogt double %64, 0.000000e+00 + %65 = icmp sle i64 %51, %56 + %cmp130.i150 = xor i1 %65, %cmp121.i149 + %sub132.i151 = sub nuw nsw i32 1, %result.0.i97 + %spec.select56.i152 = select i1 %cmp130.i150, i32 %sub132.i151, i32 %result.0.i97 + br label %if.end136.i131 + +if.end136.i131: ; preds = %land.lhs.true.i159, %if.end120.i148, %if.else86.i136, %if.end71.i126, %if.then46.i134, %if.end22.i105 + %result.1.i132 = phi i32 [ %sub.i135, %if.then46.i134 ], [ %result.0.i97, %if.else86.i136 ], [ %result.0.i97, %if.end22.i105 ], [ %spec.select.i130, %if.end71.i126 ], [ %spec.select56.i152, %if.end120.i148 ], [ %result.0.i97, %land.lhs.true.i159 ] + %cmp138.i133 = icmp eq ptr %24, %50 + br i1 %cmp138.i133, label %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73, label %for.cond.i96, !llvm.loop !11 + +if.end.i67: ; preds = %if.then92.i137, %if.else.i114, %if.then.i153, %land.lhs.true.i159 %Next.i68 = getelementptr inbounds nuw i8, ptr %op.0.i63, i64 24 - %62 = load ptr, ptr %Next.i68, align 8 - %cmp2.not.i69 = icmp eq ptr %62, %26 + %66 = load ptr, ptr %Next.i68, align 8 + %cmp2.not.i69 = icmp eq ptr %66, %26 br i1 %cmp2.not.i69, label %if.then45, label %do.body.i62, !llvm.loop !12 -_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73: ; preds = %if.end136.i132 - %cmp1.i72.not = icmp eq i32 %result.1.i133, 0 +_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73: ; preds = %if.end136.i131 + %cmp1.i72.not = icmp eq i32 %result.1.i132, 0 br i1 %cmp1.i72.not, label %if.else62, label %if.then45 if.then45: ; preds = %if.end.i67, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73 - %63 = load i8, ptr %IsHole63, align 4 - %frombool49 = and i8 %63, 1 + %67 = load i8, ptr %IsHole63, align 4 + %frombool49 = and i8 %67, 1 store i8 %frombool49, ptr %IsHole.i, align 4 %frombool54 = xor i8 %frombool49, 1 store i8 %frombool54, ptr %IsHole63, align 4 - %64 = load ptr, ptr %FirstLeft67, align 8 - store ptr %64, ptr %FirstLeft.i, align 8 + %68 = load ptr, ptr %FirstLeft67, align 8 + store ptr %68, ptr %FirstLeft.i, align 8 store ptr %call.i, ptr %FirstLeft67, align 8 - %65 = load i8, ptr %m_UsingPolyTree69, align 1 - %tobool59 = trunc i8 %65 to i1 + %69 = load i8, ptr %m_UsingPolyTree69, align 1 + %tobool59 = trunc i8 %69 to i1 br i1 %tobool59, label %if.then60, label %if.end75 if.then60: ; preds = %if.then45 @@ -10730,13 +10730,13 @@ if.then60: ; preds = %if.then45 br label %if.end75 if.else62: ; preds = %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit73 - %66 = load i8, ptr %IsHole63, align 4 - %frombool66 = and i8 %66, 1 + %70 = load i8, ptr %IsHole63, align 4 + %frombool66 = and i8 %70, 1 store i8 %frombool66, ptr %IsHole.i, align 4 - %67 = load ptr, ptr %FirstLeft67, align 8 - store ptr %67, ptr %FirstLeft.i, align 8 - %68 = load i8, ptr %m_UsingPolyTree69, align 1 - %tobool70 = trunc i8 %68 to i1 + %71 = load ptr, ptr %FirstLeft67, align 8 + store ptr %71, ptr %FirstLeft.i, align 8 + %72 = load i8, ptr %m_UsingPolyTree69, align 1 + %tobool70 = trunc i8 %72 to i1 br i1 %tobool70, label %if.then71, label %if.end75 if.then71: ; preds = %if.else62 @@ -10746,64 +10746,64 @@ if.then71: ; preds = %if.else62 %add.ptr18.i = getelementptr inbounds i8, ptr %this, i64 %vbase.offset17.i %m_PolyOuts19.i = getelementptr inbounds nuw i8, ptr %add.ptr18.i, i64 80 %_M_finish.i20.i = getelementptr inbounds nuw i8, ptr %add.ptr18.i, i64 88 - %69 = load ptr, ptr %_M_finish.i20.i, align 8 - %70 = load ptr, ptr %m_PolyOuts19.i, align 8 - %cmp25.not.i = icmp eq ptr %69, %70 + %73 = load ptr, ptr %_M_finish.i20.i, align 8 + %74 = load ptr, ptr %m_PolyOuts19.i, align 8 + %cmp25.not.i = icmp eq ptr %73, %74 br i1 %cmp25.not.i, label %if.end75, label %for.body.i for.body.i: ; preds = %if.then71, %for.inc.i - %vtable28.i = phi ptr [ %vtable.i, %for.inc.i ], [ %vtable15.i, %if.then71 ] - %71 = phi ptr [ %96, %for.inc.i ], [ %70, %if.then71 ] + %vtable27.i = phi ptr [ %vtable.i, %for.inc.i ], [ %vtable15.i, %if.then71 ] + %75 = phi ptr [ %102, %for.inc.i ], [ %74, %if.then71 ] %i.026.i = phi i64 [ %inc.i, %for.inc.i ], [ 0, %if.then71 ] - %add.ptr.i.i = getelementptr inbounds ptr, ptr %71, i64 %i.026.i - %72 = load ptr, ptr %add.ptr.i.i, align 8 - %FirstLeft.i74 = getelementptr inbounds nuw i8, ptr %72, i64 8 - %73 = load ptr, ptr %FirstLeft.i74, align 8 - %tobool.not4.i.i = icmp eq ptr %73, null + %add.ptr.i.i = getelementptr inbounds ptr, ptr %75, i64 %i.026.i + %76 = load ptr, ptr %add.ptr.i.i, align 8 + %FirstLeft.i74 = getelementptr inbounds nuw i8, ptr %76, i64 8 + %77 = load ptr, ptr %FirstLeft.i74, align 8 + %tobool.not4.i.i = icmp eq ptr %77, null br i1 %tobool.not4.i.i, label %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i, label %land.rhs.i.i land.rhs.i.i: ; preds = %for.body.i, %while.body.i.i - %FirstLeft.addr.05.i.i = phi ptr [ %75, %while.body.i.i ], [ %73, %for.body.i ] + %FirstLeft.addr.05.i.i = phi ptr [ %79, %while.body.i.i ], [ %77, %for.body.i ] %Pts.i.i = getelementptr inbounds nuw i8, ptr %FirstLeft.addr.05.i.i, i64 24 - %74 = load ptr, ptr %Pts.i.i, align 8 - %tobool1.not.i.i = icmp eq ptr %74, null + %78 = load ptr, ptr %Pts.i.i, align 8 + %tobool1.not.i.i = icmp eq ptr %78, null br i1 %tobool1.not.i.i, label %while.body.i.i, label %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i while.body.i.i: ; preds = %land.rhs.i.i %FirstLeft2.i.i = getelementptr inbounds nuw i8, ptr %FirstLeft.addr.05.i.i, i64 8 - %75 = load ptr, ptr %FirstLeft2.i.i, align 8 - %tobool.not.i.i = icmp eq ptr %75, null + %79 = load ptr, ptr %FirstLeft2.i.i, align 8 + %tobool.not.i.i = icmp eq ptr %79, null br i1 %tobool.not.i.i, label %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i, label %land.rhs.i.i, !llvm.loop !95 _ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i: ; preds = %while.body.i.i, %land.rhs.i.i, %for.body.i %FirstLeft.addr.0.lcssa.i.i = phi ptr [ null, %for.body.i ], [ null, %while.body.i.i ], [ %FirstLeft.addr.05.i.i, %land.rhs.i.i ] - %Pts.i75 = getelementptr inbounds nuw i8, ptr %72, i64 24 - %76 = load ptr, ptr %Pts.i75, align 8 - %tobool.not.i = icmp ne ptr %76, null + %Pts.i75 = getelementptr inbounds nuw i8, ptr %76, i64 24 + %80 = load ptr, ptr %Pts.i75, align 8 + %tobool.not.i = icmp ne ptr %80, null %cmp9.i = icmp eq ptr %FirstLeft.addr.0.lcssa.i.i, %3 %or.cond.i = and i1 %cmp9.i, %tobool.not.i br i1 %or.cond.i, label %if.then.i84, label %for.inc.i if.then.i84: ; preds = %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i - %77 = load ptr, ptr %Pts32, align 8 + %81 = load ptr, ptr %Pts32, align 8 br label %do.body.i.i do.body.i.i: ; preds = %if.end.i.i, %if.then.i84 - %op.0.i.i = phi ptr [ %76, %if.then.i84 ], [ %94, %if.end.i.i ] + %op.0.i.i = phi ptr [ %80, %if.then.i84 ], [ %100, %if.end.i.i ] %Pt.i.i = getelementptr inbounds nuw i8, ptr %op.0.i.i, i64 8 %Y1.i.i = getelementptr inbounds nuw i8, ptr %op.0.i.i, i64 16 - %78 = load i64, ptr %Y1.i.i, align 8 - %79 = load i64, ptr %Pt.i.i, align 8 + %82 = load i64, ptr %Y1.i.i, align 8 + %83 = load i64, ptr %Pt.i.i, align 8 br label %for.cond.i.i for.cond.i.i: ; preds = %if.end136.i.i, %do.body.i.i %result.0.i.i = phi i32 [ 0, %do.body.i.i ], [ %result.1.i.i, %if.end136.i.i ] - %op.addr.0.i.i = phi ptr [ %77, %do.body.i.i ], [ %80, %if.end136.i.i ] + %op.addr.0.i.i = phi ptr [ %81, %do.body.i.i ], [ %84, %if.end136.i.i ] %Next.i7.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i.i, i64 24 - %80 = load ptr, ptr %Next.i7.i, align 8 - %Y.i.i = getelementptr inbounds nuw i8, ptr %80, i64 16 - %81 = load i64, ptr %Y.i.i, align 8 - %cmp.i8.i = icmp eq i64 %81, %78 + %84 = load ptr, ptr %Next.i7.i, align 8 + %Y.i.i = getelementptr inbounds nuw i8, ptr %84, i64 16 + %85 = load i64, ptr %Y.i.i, align 8 + %cmp.i8.i = icmp eq i64 %85, %82 br i1 %cmp.i8.i, label %if.then.i10.i, label %for.cond.if.end22_crit_edge.i.i for.cond.if.end22_crit_edge.i.i: ; preds = %for.cond.i.i @@ -10812,67 +10812,67 @@ for.cond.if.end22_crit_edge.i.i: ; preds = %for.cond.i.i br label %if.end22.i.i if.then.i10.i: ; preds = %for.cond.i.i - %Pt.i11.i = getelementptr inbounds nuw i8, ptr %80, i64 8 - %82 = load i64, ptr %Pt.i11.i, align 8 - %cmp5.i.i = icmp eq i64 %82, %79 + %Pt.i11.i = getelementptr inbounds nuw i8, ptr %84, i64 8 + %86 = load i64, ptr %Pt.i11.i, align 8 + %cmp5.i.i = icmp eq i64 %86, %83 br i1 %cmp5.i.i, label %if.end.i.i, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %if.then.i10.i %Y7.i.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i.i, i64 16 - %83 = load i64, ptr %Y7.i.i, align 8 - %cmp9.i.i = icmp eq i64 %83, %78 + %87 = load i64, ptr %Y7.i.i, align 8 + %cmp9.i.i = icmp eq i64 %87, %82 br i1 %cmp9.i.i, label %land.lhs.true.i.i, label %if.end22.i.i land.lhs.true.i.i: ; preds = %lor.lhs.false.i.i %Pt6.i.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i.i, i64 8 - %cmp14.i.i = icmp sgt i64 %82, %79 - %84 = load i64, ptr %Pt6.i.i, align 8 - %85 = icmp sge i64 %84, %79 - %cmp20.i.i = xor i1 %cmp14.i.i, %85 + %cmp14.i.i = icmp sgt i64 %86, %83 + %88 = load i64, ptr %Pt6.i.i, align 8 + %89 = icmp sge i64 %88, %83 + %cmp20.i.i = xor i1 %cmp14.i.i, %89 br i1 %cmp20.i.i, label %if.end.i.i, label %if.end136.i.i if.end22.i.i: ; preds = %lor.lhs.false.i.i, %for.cond.if.end22_crit_edge.i.i - %86 = phi i64 [ %.pre.i.i, %for.cond.if.end22_crit_edge.i.i ], [ %83, %lor.lhs.false.i.i ] - %cmp26.i.i = icmp slt i64 %86, %78 - %87 = icmp sge i64 %81, %78 - %cmp34.not.i.i = xor i1 %87, %cmp26.i.i + %90 = phi i64 [ %.pre.i.i, %for.cond.if.end22_crit_edge.i.i ], [ %87, %lor.lhs.false.i.i ] + %cmp26.i.i = icmp slt i64 %90, %82 + %91 = icmp sge i64 %85, %82 + %cmp34.not.i.i = xor i1 %91, %cmp26.i.i br i1 %cmp34.not.i.i, label %if.end136.i.i, label %if.then35.i.i if.then35.i.i: ; preds = %if.end22.i.i - %Pt23.i.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i.i, i64 8 - %.pre.i85 = load i64, ptr %Pt23.i.phi.trans.insert.i, align 8 - %Pt2958.i.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %80, i64 8 - %.pre27.i = load i64, ptr %Pt2958.i.phi.trans.insert.i, align 8 - %cmp39.not.i.i = icmp slt i64 %.pre.i85, %79 - %cmp91.i.i = icmp sgt i64 %.pre27.i, %79 + %Pt2958.i.i = getelementptr inbounds nuw i8, ptr %84, i64 8 + %Pt23.i.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i.i, i64 8 + %92 = load i64, ptr %Pt23.i.i, align 8 + %cmp39.not.i.i = icmp slt i64 %92, %83 + %93 = load i64, ptr %Pt2958.i.i, align 8 + %cmp91.i.i = icmp sgt i64 %93, %83 br i1 %cmp39.not.i.i, label %if.else86.i.i, label %if.then40.i.i if.then40.i.i: ; preds = %if.then35.i.i - br i1 %cmp91.i.i, label %if.then46.i.i, label %if.else.i.i86 + br i1 %cmp91.i.i, label %if.then46.i.i, label %if.else.i.i85 if.then46.i.i: ; preds = %if.then40.i.i %sub.i.i = sub nuw nsw i32 1, %result.0.i.i br label %if.end136.i.i -if.else.i.i86: ; preds = %if.then40.i.i - %sub50.i.i = sub nsw i64 %.pre.i85, %79 +if.else.i.i85: ; preds = %if.then40.i.i + %sub50.i.i = sub nsw i64 %92, %83 %conv51.i.i = sitofp i64 %sub50.i.i to double - %sub56.i.i = sub nsw i64 %81, %78 + %sub56.i.i = sub nsw i64 %85, %82 %conv57.i.i = sitofp i64 %sub56.i.i to double - %sub62.i.i = sub nsw i64 %.pre27.i, %79 + %sub62.i.i = sub nsw i64 %93, %83 %conv63.i.i = sitofp i64 %sub62.i.i to double - %sub67.i.i = sub nsw i64 %86, %78 + %sub67.i.i = sub nsw i64 %90, %82 %conv68.i.i = sitofp i64 %sub67.i.i to double - %88 = fneg double %conv68.i.i - %neg.i.i = fmul double %88, %conv63.i.i - %89 = tail call double @llvm.fmuladd.f64(double %conv51.i.i, double %conv57.i.i, double %neg.i.i) - %tobool.i.i = fcmp une double %89, 0.000000e+00 + %94 = fneg double %conv68.i.i + %neg.i.i = fmul double %94, %conv63.i.i + %95 = tail call double @llvm.fmuladd.f64(double %conv51.i.i, double %conv57.i.i, double %neg.i.i) + %tobool.i.i = fcmp une double %95, 0.000000e+00 br i1 %tobool.i.i, label %if.end71.i.i, label %if.end.i.i -if.end71.i.i: ; preds = %if.else.i.i86 - %cmp72.i.i = fcmp ogt double %89, 0.000000e+00 - %90 = icmp sle i64 %81, %86 - %cmp81.i.i = xor i1 %90, %cmp72.i.i +if.end71.i.i: ; preds = %if.else.i.i85 + %cmp72.i.i = fcmp ogt double %95, 0.000000e+00 + %96 = icmp sle i64 %85, %90 + %cmp81.i.i = xor i1 %96, %cmp72.i.i %sub83.i.i = sub nuw nsw i32 1, %result.0.i.i %spec.select.i.i = select i1 %cmp81.i.i, i32 %sub83.i.i, i32 %result.0.i.i br label %if.end136.i.i @@ -10881,37 +10881,37 @@ if.else86.i.i: ; preds = %if.then35.i.i br i1 %cmp91.i.i, label %if.then92.i.i, label %if.end136.i.i if.then92.i.i: ; preds = %if.else86.i.i - %sub97.i.i = sub nsw i64 %.pre.i85, %79 + %sub97.i.i = sub nsw i64 %92, %83 %conv98.i.i = sitofp i64 %sub97.i.i to double - %sub103.i.i = sub nsw i64 %81, %78 + %sub103.i.i = sub nsw i64 %85, %82 %conv104.i.i = sitofp i64 %sub103.i.i to double - %sub109.i.i = sub nsw i64 %.pre27.i, %79 + %sub109.i.i = sub nsw i64 %93, %83 %conv110.i.i = sitofp i64 %sub109.i.i to double - %sub114.i.i = sub nsw i64 %86, %78 + %sub114.i.i = sub nsw i64 %90, %82 %conv115.i.i = sitofp i64 %sub114.i.i to double - %91 = fneg double %conv115.i.i - %neg117.i.i = fmul double %91, %conv110.i.i - %92 = tail call double @llvm.fmuladd.f64(double %conv98.i.i, double %conv104.i.i, double %neg117.i.i) - %tobool118.i.i = fcmp une double %92, 0.000000e+00 + %97 = fneg double %conv115.i.i + %neg117.i.i = fmul double %97, %conv110.i.i + %98 = tail call double @llvm.fmuladd.f64(double %conv98.i.i, double %conv104.i.i, double %neg117.i.i) + %tobool118.i.i = fcmp une double %98, 0.000000e+00 br i1 %tobool118.i.i, label %if.end120.i.i, label %if.end.i.i if.end120.i.i: ; preds = %if.then92.i.i - %cmp121.i.i = fcmp ogt double %92, 0.000000e+00 - %93 = icmp sle i64 %81, %86 - %cmp130.i.i = xor i1 %93, %cmp121.i.i + %cmp121.i.i = fcmp ogt double %98, 0.000000e+00 + %99 = icmp sle i64 %85, %90 + %cmp130.i.i = xor i1 %99, %cmp121.i.i %sub132.i.i = sub nuw nsw i32 1, %result.0.i.i %spec.select56.i.i = select i1 %cmp130.i.i, i32 %sub132.i.i, i32 %result.0.i.i br label %if.end136.i.i if.end136.i.i: ; preds = %if.end120.i.i, %if.else86.i.i, %if.end71.i.i, %if.then46.i.i, %if.end22.i.i, %land.lhs.true.i.i %result.1.i.i = phi i32 [ %sub.i.i, %if.then46.i.i ], [ %result.0.i.i, %if.else86.i.i ], [ %result.0.i.i, %if.end22.i.i ], [ %spec.select.i.i, %if.end71.i.i ], [ %spec.select56.i.i, %if.end120.i.i ], [ %result.0.i.i, %land.lhs.true.i.i ] - %cmp138.i.i = icmp eq ptr %77, %80 + %cmp138.i.i = icmp eq ptr %81, %84 br i1 %cmp138.i.i, label %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit.i, label %for.cond.i.i, !llvm.loop !11 -if.end.i.i: ; preds = %if.then92.i.i, %if.else.i.i86, %land.lhs.true.i.i, %if.then.i10.i +if.end.i.i: ; preds = %if.then92.i.i, %if.else.i.i85, %land.lhs.true.i.i, %if.then.i10.i %Next.i.i = getelementptr inbounds nuw i8, ptr %op.0.i.i, i64 24 - %94 = load ptr, ptr %Next.i.i, align 8 - %cmp2.not.i.i = icmp eq ptr %94, %76 + %100 = load ptr, ptr %Next.i.i, align 8 + %cmp2.not.i.i = icmp eq ptr %100, %80 br i1 %cmp2.not.i.i, label %if.then13.i, label %do.body.i.i, !llvm.loop !12 _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit.i: ; preds = %if.end136.i.i @@ -10924,38 +10924,38 @@ if.then13.i: ; preds = %if.end.i.i, %_ZN10C br label %for.inc.i for.inc.i: ; preds = %if.then13.i, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit.i, %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i - %vtable.i = phi ptr [ %vtable28.i, %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i ], [ %vtable.pre.i, %if.then13.i ], [ %vtable28.i, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit.i ] + %vtable.i = phi ptr [ %vtable27.i, %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit.i ], [ %vtable.pre.i, %if.then13.i ], [ %vtable27.i, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit.i ] %inc.i = add nuw i64 %i.026.i, 1 %vbase.offset.ptr.i = getelementptr i8, ptr %vtable.i, i64 -24 %vbase.offset.i = load i64, ptr %vbase.offset.ptr.i, align 8 %add.ptr.i76 = getelementptr inbounds i8, ptr %this, i64 %vbase.offset.i %m_PolyOuts.i77 = getelementptr inbounds nuw i8, ptr %add.ptr.i76, i64 80 %_M_finish.i.i78 = getelementptr inbounds nuw i8, ptr %add.ptr.i76, i64 88 - %95 = load ptr, ptr %_M_finish.i.i78, align 8 - %96 = load ptr, ptr %m_PolyOuts.i77, align 8 - %sub.ptr.lhs.cast.i.i79 = ptrtoint ptr %95 to i64 - %sub.ptr.rhs.cast.i.i80 = ptrtoint ptr %96 to i64 + %101 = load ptr, ptr %_M_finish.i.i78, align 8 + %102 = load ptr, ptr %m_PolyOuts.i77, align 8 + %sub.ptr.lhs.cast.i.i79 = ptrtoint ptr %101 to i64 + %sub.ptr.rhs.cast.i.i80 = ptrtoint ptr %102 to i64 %sub.ptr.sub.i.i81 = sub i64 %sub.ptr.lhs.cast.i.i79, %sub.ptr.rhs.cast.i.i80 %sub.ptr.div.i.i82 = ashr exact i64 %sub.ptr.sub.i.i81, 3 %cmp.i83 = icmp ult i64 %inc.i, %sub.ptr.div.i.i82 br i1 %cmp.i83, label %for.body.i, label %if.end75, !llvm.loop !100 if.end75: ; preds = %for.inc.i, %if.then71, %if.then40, %if.then36, %if.else62, %if.then45, %if.then60, %land.lhs.true17, %land.lhs.true, %while.body12 - %op2.1 = phi ptr [ %op2.0177, %land.lhs.true17 ], [ %op2.0177, %land.lhs.true ], [ %op2.0177, %while.body12 ], [ %op.0, %if.then60 ], [ %op.0, %if.then45 ], [ %op.0, %if.else62 ], [ %op.0, %if.then36 ], [ %op.0, %if.then40 ], [ %op.0, %if.then71 ], [ %op.0, %for.inc.i ] + %op2.1 = phi ptr [ %op2.0176, %land.lhs.true17 ], [ %op2.0176, %land.lhs.true ], [ %op2.0176, %while.body12 ], [ %op.0, %if.then60 ], [ %op.0, %if.then45 ], [ %op.0, %if.else62 ], [ %op.0, %if.then36 ], [ %op.0, %if.then40 ], [ %op.0, %if.then71 ], [ %op.0, %for.inc.i ] %Next76 = getelementptr inbounds nuw i8, ptr %op2.1, i64 24 %op2.0 = load ptr, ptr %Next76, align 8 - %97 = load ptr, ptr %Pts, align 8 - %cmp11.not = icmp eq ptr %op2.0, %97 + %103 = load ptr, ptr %Pts, align 8 + %cmp11.not = icmp eq ptr %op2.0, %103 br i1 %cmp11.not, label %while.end.loopexit, label %while.body12, !llvm.loop !101 while.end.loopexit: ; preds = %if.end75 - %.pre194 = load ptr, ptr %Next, align 8 + %.pre = load ptr, ptr %Next, align 8 br label %while.end while.end: ; preds = %while.end.loopexit, %do.body - %98 = phi ptr [ %op2.0175, %do.body ], [ %.pre194, %while.end.loopexit ] - %99 = phi ptr [ %8, %do.body ], [ %op2.0, %while.end.loopexit ] - %cmp79.not = icmp eq ptr %98, %99 + %104 = phi ptr [ %op2.0174, %do.body ], [ %.pre, %while.end.loopexit ] + %105 = phi ptr [ %8, %do.body ], [ %op2.0, %while.end.loopexit ] + %cmp79.not = icmp eq ptr %104, %105 br i1 %cmp79.not, label %while.cond.backedge.loopexit, label %do.body, !llvm.loop !102 while.end80: ; preds = %while.cond.backedge, %entry @@ -17916,8 +17916,8 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %vtable28 = phi ptr [ %vtable15, %for.body.lr.ph ], [ %vtable, %for.inc ] - %2 = phi ptr [ %1, %for.body.lr.ph ], [ %27, %for.inc ] + %vtable27 = phi ptr [ %vtable15, %for.body.lr.ph ], [ %vtable, %for.inc ] + %2 = phi ptr [ %1, %for.body.lr.ph ], [ %29, %for.inc ] %i.026 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %add.ptr.i = getelementptr inbounds ptr, ptr %2, i64 %i.026 %3 = load ptr, ptr %add.ptr.i, align 8 @@ -17953,7 +17953,7 @@ if.then: ; preds = %_ZN10ClipperLibL14P br label %do.body.i do.body.i: ; preds = %if.end.i, %if.then - %op.0.i = phi ptr [ %7, %if.then ], [ %25, %if.end.i ] + %op.0.i = phi ptr [ %7, %if.then ], [ %27, %if.end.i ] %Pt.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 8 %Y1.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 16 %9 = load i64, ptr %Y1.i, align 8 @@ -18003,12 +18003,12 @@ if.end22.i: ; preds = %lor.lhs.false.i, %f br i1 %cmp34.not.i, label %if.end136.i, label %if.then35.i if.then35.i: ; preds = %if.end22.i - %Pt23.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 - %.pre = load i64, ptr %Pt23.i.phi.trans.insert, align 8 - %Pt2958.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.pre27 = load i64, ptr %Pt2958.i.phi.trans.insert, align 8 - %cmp39.not.i = icmp slt i64 %.pre, %10 - %cmp91.i = icmp sgt i64 %.pre27, %10 + %Pt2958.i = getelementptr inbounds nuw i8, ptr %11, i64 8 + %Pt23.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 + %19 = load i64, ptr %Pt23.i, align 8 + %cmp39.not.i = icmp slt i64 %19, %10 + %20 = load i64, ptr %Pt2958.i, align 8 + %cmp91.i = icmp sgt i64 %20, %10 br i1 %cmp39.not.i, label %if.else86.i, label %if.then40.i if.then40.i: ; preds = %if.then35.i @@ -18019,24 +18019,24 @@ if.then46.i: ; preds = %if.then40.i br label %if.end136.i if.else.i: ; preds = %if.then40.i - %sub50.i = sub nsw i64 %.pre, %10 + %sub50.i = sub nsw i64 %19, %10 %conv51.i = sitofp i64 %sub50.i to double %sub56.i = sub nsw i64 %12, %9 %conv57.i = sitofp i64 %sub56.i to double - %sub62.i = sub nsw i64 %.pre27, %10 + %sub62.i = sub nsw i64 %20, %10 %conv63.i = sitofp i64 %sub62.i to double %sub67.i = sub nsw i64 %17, %9 %conv68.i = sitofp i64 %sub67.i to double - %19 = fneg double %conv68.i - %neg.i = fmul double %19, %conv63.i - %20 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) - %tobool.i = fcmp une double %20, 0.000000e+00 + %21 = fneg double %conv68.i + %neg.i = fmul double %21, %conv63.i + %22 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) + %tobool.i = fcmp une double %22, 0.000000e+00 br i1 %tobool.i, label %if.end71.i, label %if.end.i if.end71.i: ; preds = %if.else.i - %cmp72.i = fcmp ogt double %20, 0.000000e+00 - %21 = icmp sle i64 %12, %17 - %cmp81.i = xor i1 %21, %cmp72.i + %cmp72.i = fcmp ogt double %22, 0.000000e+00 + %23 = icmp sle i64 %12, %17 + %cmp81.i = xor i1 %23, %cmp72.i %sub83.i = sub nuw nsw i32 1, %result.0.i %spec.select.i = select i1 %cmp81.i, i32 %sub83.i, i32 %result.0.i br label %if.end136.i @@ -18045,24 +18045,24 @@ if.else86.i: ; preds = %if.then35.i br i1 %cmp91.i, label %if.then92.i, label %if.end136.i if.then92.i: ; preds = %if.else86.i - %sub97.i = sub nsw i64 %.pre, %10 + %sub97.i = sub nsw i64 %19, %10 %conv98.i = sitofp i64 %sub97.i to double %sub103.i = sub nsw i64 %12, %9 %conv104.i = sitofp i64 %sub103.i to double - %sub109.i = sub nsw i64 %.pre27, %10 + %sub109.i = sub nsw i64 %20, %10 %conv110.i = sitofp i64 %sub109.i to double %sub114.i = sub nsw i64 %17, %9 %conv115.i = sitofp i64 %sub114.i to double - %22 = fneg double %conv115.i - %neg117.i = fmul double %22, %conv110.i - %23 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) - %tobool118.i = fcmp une double %23, 0.000000e+00 + %24 = fneg double %conv115.i + %neg117.i = fmul double %24, %conv110.i + %25 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) + %tobool118.i = fcmp une double %25, 0.000000e+00 br i1 %tobool118.i, label %if.end120.i, label %if.end.i if.end120.i: ; preds = %if.then92.i - %cmp121.i = fcmp ogt double %23, 0.000000e+00 - %24 = icmp sle i64 %12, %17 - %cmp130.i = xor i1 %24, %cmp121.i + %cmp121.i = fcmp ogt double %25, 0.000000e+00 + %26 = icmp sle i64 %12, %17 + %cmp130.i = xor i1 %26, %cmp121.i %sub132.i = sub nuw nsw i32 1, %result.0.i %spec.select56.i = select i1 %cmp130.i, i32 %sub132.i, i32 %result.0.i br label %if.end136.i @@ -18074,8 +18074,8 @@ if.end136.i: ; preds = %land.lhs.true.i, %i if.end.i: ; preds = %if.then92.i, %if.else.i, %if.then.i10, %land.lhs.true.i %Next.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 24 - %25 = load ptr, ptr %Next.i, align 8 - %cmp2.not.i = icmp eq ptr %25, %7 + %27 = load ptr, ptr %Next.i, align 8 + %cmp2.not.i = icmp eq ptr %27, %7 br i1 %cmp2.not.i, label %if.then13, label %do.body.i, !llvm.loop !12 _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit: ; preds = %if.end136.i @@ -18088,17 +18088,17 @@ if.then13: ; preds = %if.end.i, %_ZN10Cli br label %for.inc for.inc: ; preds = %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit, %if.then13, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit - %vtable = phi ptr [ %vtable28, %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit ], [ %vtable.pre, %if.then13 ], [ %vtable28, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit ] + %vtable = phi ptr [ %vtable27, %_ZN10ClipperLibL14ParseFirstLeftEPNS_6OutRecE.exit ], [ %vtable.pre, %if.then13 ], [ %vtable27, %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit ] %inc = add nuw i64 %i.026, 1 %vbase.offset.ptr = getelementptr i8, ptr %vtable, i64 -24 %vbase.offset = load i64, ptr %vbase.offset.ptr, align 8 %add.ptr = getelementptr inbounds i8, ptr %this, i64 %vbase.offset %m_PolyOuts = getelementptr inbounds nuw i8, ptr %add.ptr, i64 80 %_M_finish.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 88 - %26 = load ptr, ptr %_M_finish.i, align 8 - %27 = load ptr, ptr %m_PolyOuts, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %26 to i64 - %sub.ptr.rhs.cast.i = ptrtoint ptr %27 to i64 + %28 = load ptr, ptr %_M_finish.i, align 8 + %29 = load ptr, ptr %m_PolyOuts, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %28 to i64 + %sub.ptr.rhs.cast.i = ptrtoint ptr %29 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i %sub.ptr.div.i = ashr exact i64 %sub.ptr.sub.i, 3 %cmp = icmp ult i64 %inc, %sub.ptr.div.i @@ -18130,7 +18130,7 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %3 = phi ptr [ %2, %for.body.lr.ph ], [ %46, %for.inc ] + %3 = phi ptr [ %2, %for.body.lr.ph ], [ %50, %for.inc ] %i.0135 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %add.ptr.i = getelementptr inbounds ptr, ptr %3, i64 %i.0135 %4 = load ptr, ptr %add.ptr.i, align 8 @@ -18176,7 +18176,7 @@ if.end18: ; preds = %_ZN10ClipperLibL14P br label %do.body.i do.body.i: ; preds = %if.end.i, %if.end18 - %op.0.i = phi ptr [ %5, %if.end18 ], [ %26, %if.end.i ] + %op.0.i = phi ptr [ %5, %if.end18 ], [ %28, %if.end.i ] %Pt.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 8 %Y1.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 16 %10 = load i64, ptr %Y1.i, align 8 @@ -18226,12 +18226,12 @@ if.end22.i: ; preds = %lor.lhs.false.i, %f br i1 %cmp34.not.i, label %if.end136.i, label %if.then35.i if.then35.i: ; preds = %if.end22.i - %Pt23.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 - %.pre = load i64, ptr %Pt23.i.phi.trans.insert, align 8 - %Pt2958.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %12, i64 8 - %.pre136 = load i64, ptr %Pt2958.i.phi.trans.insert, align 8 - %cmp39.not.i = icmp slt i64 %.pre, %11 - %cmp91.i = icmp sgt i64 %.pre136, %11 + %Pt2958.i = getelementptr inbounds nuw i8, ptr %12, i64 8 + %Pt23.i = getelementptr inbounds nuw i8, ptr %op.addr.0.i, i64 8 + %20 = load i64, ptr %Pt23.i, align 8 + %cmp39.not.i = icmp slt i64 %20, %11 + %21 = load i64, ptr %Pt2958.i, align 8 + %cmp91.i = icmp sgt i64 %21, %11 br i1 %cmp39.not.i, label %if.else86.i, label %if.then40.i if.then40.i: ; preds = %if.then35.i @@ -18242,24 +18242,24 @@ if.then46.i: ; preds = %if.then40.i br label %if.end136.i if.else.i: ; preds = %if.then40.i - %sub50.i = sub nsw i64 %.pre, %11 + %sub50.i = sub nsw i64 %20, %11 %conv51.i = sitofp i64 %sub50.i to double %sub56.i = sub nsw i64 %13, %10 %conv57.i = sitofp i64 %sub56.i to double - %sub62.i = sub nsw i64 %.pre136, %11 + %sub62.i = sub nsw i64 %21, %11 %conv63.i = sitofp i64 %sub62.i to double %sub67.i = sub nsw i64 %18, %10 %conv68.i = sitofp i64 %sub67.i to double - %20 = fneg double %conv68.i - %neg.i = fmul double %20, %conv63.i - %21 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) - %tobool.i = fcmp une double %21, 0.000000e+00 + %22 = fneg double %conv68.i + %neg.i = fmul double %22, %conv63.i + %23 = tail call double @llvm.fmuladd.f64(double %conv51.i, double %conv57.i, double %neg.i) + %tobool.i = fcmp une double %23, 0.000000e+00 br i1 %tobool.i, label %if.end71.i, label %if.end.i if.end71.i: ; preds = %if.else.i - %cmp72.i = fcmp ogt double %21, 0.000000e+00 - %22 = icmp sle i64 %13, %18 - %cmp81.i = xor i1 %22, %cmp72.i + %cmp72.i = fcmp ogt double %23, 0.000000e+00 + %24 = icmp sle i64 %13, %18 + %cmp81.i = xor i1 %24, %cmp72.i %sub83.i = sub nuw nsw i32 1, %result.0.i %spec.select.i = select i1 %cmp81.i, i32 %sub83.i, i32 %result.0.i br label %if.end136.i @@ -18268,24 +18268,24 @@ if.else86.i: ; preds = %if.then35.i br i1 %cmp91.i, label %if.then92.i, label %if.end136.i if.then92.i: ; preds = %if.else86.i - %sub97.i = sub nsw i64 %.pre, %11 + %sub97.i = sub nsw i64 %20, %11 %conv98.i = sitofp i64 %sub97.i to double %sub103.i = sub nsw i64 %13, %10 %conv104.i = sitofp i64 %sub103.i to double - %sub109.i = sub nsw i64 %.pre136, %11 + %sub109.i = sub nsw i64 %21, %11 %conv110.i = sitofp i64 %sub109.i to double %sub114.i = sub nsw i64 %18, %10 %conv115.i = sitofp i64 %sub114.i to double - %23 = fneg double %conv115.i - %neg117.i = fmul double %23, %conv110.i - %24 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) - %tobool118.i = fcmp une double %24, 0.000000e+00 + %25 = fneg double %conv115.i + %neg117.i = fmul double %25, %conv110.i + %26 = tail call double @llvm.fmuladd.f64(double %conv98.i, double %conv104.i, double %neg117.i) + %tobool118.i = fcmp une double %26, 0.000000e+00 br i1 %tobool118.i, label %if.end120.i, label %if.end.i if.end120.i: ; preds = %if.then92.i - %cmp121.i = fcmp ogt double %24, 0.000000e+00 - %25 = icmp sle i64 %13, %18 - %cmp130.i = xor i1 %25, %cmp121.i + %cmp121.i = fcmp ogt double %26, 0.000000e+00 + %27 = icmp sle i64 %13, %18 + %cmp130.i = xor i1 %27, %cmp121.i %sub132.i = sub nuw nsw i32 1, %result.0.i %spec.select56.i = select i1 %cmp130.i, i32 %sub132.i, i32 %result.0.i br label %if.end136.i @@ -18297,8 +18297,8 @@ if.end136.i: ; preds = %land.lhs.true.i, %i if.end.i: ; preds = %if.then92.i, %if.else.i, %if.then.i45, %land.lhs.true.i %Next.i = getelementptr inbounds nuw i8, ptr %op.0.i, i64 24 - %26 = load ptr, ptr %Next.i, align 8 - %cmp2.not.i = icmp eq ptr %26, %5 + %28 = load ptr, ptr %Next.i, align 8 + %cmp2.not.i = icmp eq ptr %28, %5 br i1 %cmp2.not.i, label %for.inc.sink.split, label %do.body.i, !llvm.loop !12 _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit: ; preds = %if.end136.i @@ -18306,25 +18306,25 @@ _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit: ; preds = %if.end136.i br i1 %cmp1.i.not, label %if.else, label %for.inc.sink.split if.else: ; preds = %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit - %27 = load ptr, ptr %Pts25, align 8 + %29 = load ptr, ptr %Pts25, align 8 br label %do.body.i30 do.body.i30: ; preds = %if.end.i35, %if.else - %op.0.i31 = phi ptr [ %5, %if.else ], [ %44, %if.end.i35 ] + %op.0.i31 = phi ptr [ %5, %if.else ], [ %48, %if.end.i35 ] %Pt.i32 = getelementptr inbounds nuw i8, ptr %op.0.i31, i64 8 %Y1.i47 = getelementptr inbounds nuw i8, ptr %op.0.i31, i64 16 - %28 = load i64, ptr %Y1.i47, align 8 - %29 = load i64, ptr %Pt.i32, align 8 + %30 = load i64, ptr %Y1.i47, align 8 + %31 = load i64, ptr %Pt.i32, align 8 br label %for.cond.i48 for.cond.i48: ; preds = %if.end136.i83, %do.body.i30 %result.0.i49 = phi i32 [ 0, %do.body.i30 ], [ %result.1.i84, %if.end136.i83 ] - %op.addr.0.i50 = phi ptr [ %27, %do.body.i30 ], [ %30, %if.end136.i83 ] + %op.addr.0.i50 = phi ptr [ %29, %do.body.i30 ], [ %32, %if.end136.i83 ] %Next.i51 = getelementptr inbounds nuw i8, ptr %op.addr.0.i50, i64 24 - %30 = load ptr, ptr %Next.i51, align 8 - %Y.i52 = getelementptr inbounds nuw i8, ptr %30, i64 16 - %31 = load i64, ptr %Y.i52, align 8 - %cmp.i53 = icmp eq i64 %31, %28 + %32 = load ptr, ptr %Next.i51, align 8 + %Y.i52 = getelementptr inbounds nuw i8, ptr %32, i64 16 + %33 = load i64, ptr %Y.i52, align 8 + %cmp.i53 = icmp eq i64 %33, %30 br i1 %cmp.i53, label %if.then.i105, label %for.cond.if.end22_crit_edge.i54 for.cond.if.end22_crit_edge.i54: ; preds = %for.cond.i48 @@ -18333,39 +18333,39 @@ for.cond.if.end22_crit_edge.i54: ; preds = %for.cond.i48 br label %if.end22.i57 if.then.i105: ; preds = %for.cond.i48 - %Pt.i106 = getelementptr inbounds nuw i8, ptr %30, i64 8 - %32 = load i64, ptr %Pt.i106, align 8 - %cmp5.i107 = icmp eq i64 %32, %29 + %Pt.i106 = getelementptr inbounds nuw i8, ptr %32, i64 8 + %34 = load i64, ptr %Pt.i106, align 8 + %cmp5.i107 = icmp eq i64 %34, %31 br i1 %cmp5.i107, label %if.end.i35, label %lor.lhs.false.i108 lor.lhs.false.i108: ; preds = %if.then.i105 %Y7.i109 = getelementptr inbounds nuw i8, ptr %op.addr.0.i50, i64 16 - %33 = load i64, ptr %Y7.i109, align 8 - %cmp9.i110 = icmp eq i64 %33, %28 + %35 = load i64, ptr %Y7.i109, align 8 + %cmp9.i110 = icmp eq i64 %35, %30 br i1 %cmp9.i110, label %land.lhs.true.i111, label %if.end22.i57 land.lhs.true.i111: ; preds = %lor.lhs.false.i108 %Pt6.i112 = getelementptr inbounds nuw i8, ptr %op.addr.0.i50, i64 8 - %cmp14.i113 = icmp sgt i64 %32, %29 - %34 = load i64, ptr %Pt6.i112, align 8 - %35 = icmp sge i64 %34, %29 - %cmp20.i114 = xor i1 %cmp14.i113, %35 + %cmp14.i113 = icmp sgt i64 %34, %31 + %36 = load i64, ptr %Pt6.i112, align 8 + %37 = icmp sge i64 %36, %31 + %cmp20.i114 = xor i1 %cmp14.i113, %37 br i1 %cmp20.i114, label %if.end.i35, label %if.end136.i83 if.end22.i57: ; preds = %lor.lhs.false.i108, %for.cond.if.end22_crit_edge.i54 - %36 = phi i64 [ %.pre.i56, %for.cond.if.end22_crit_edge.i54 ], [ %33, %lor.lhs.false.i108 ] - %cmp26.i58 = icmp slt i64 %36, %28 - %37 = icmp sge i64 %31, %28 - %cmp34.not.i59 = xor i1 %37, %cmp26.i58 + %38 = phi i64 [ %.pre.i56, %for.cond.if.end22_crit_edge.i54 ], [ %35, %lor.lhs.false.i108 ] + %cmp26.i58 = icmp slt i64 %38, %30 + %39 = icmp sge i64 %33, %30 + %cmp34.not.i59 = xor i1 %39, %cmp26.i58 br i1 %cmp34.not.i59, label %if.end136.i83, label %if.then35.i60 if.then35.i60: ; preds = %if.end22.i57 - %Pt23.i62.phi.trans.insert = getelementptr inbounds nuw i8, ptr %op.addr.0.i50, i64 8 - %.pre137 = load i64, ptr %Pt23.i62.phi.trans.insert, align 8 - %Pt2958.i61.phi.trans.insert = getelementptr inbounds nuw i8, ptr %30, i64 8 - %.pre138 = load i64, ptr %Pt2958.i61.phi.trans.insert, align 8 - %cmp39.not.i63 = icmp slt i64 %.pre137, %29 - %cmp91.i64 = icmp sgt i64 %.pre138, %29 + %Pt2958.i61 = getelementptr inbounds nuw i8, ptr %32, i64 8 + %Pt23.i62 = getelementptr inbounds nuw i8, ptr %op.addr.0.i50, i64 8 + %40 = load i64, ptr %Pt23.i62, align 8 + %cmp39.not.i63 = icmp slt i64 %40, %31 + %41 = load i64, ptr %Pt2958.i61, align 8 + %cmp91.i64 = icmp sgt i64 %41, %31 br i1 %cmp39.not.i63, label %if.else86.i88, label %if.then40.i65 if.then40.i65: ; preds = %if.then35.i60 @@ -18376,24 +18376,24 @@ if.then46.i86: ; preds = %if.then40.i65 br label %if.end136.i83 if.else.i66: ; preds = %if.then40.i65 - %sub50.i67 = sub nsw i64 %.pre137, %29 + %sub50.i67 = sub nsw i64 %40, %31 %conv51.i68 = sitofp i64 %sub50.i67 to double - %sub56.i69 = sub nsw i64 %31, %28 + %sub56.i69 = sub nsw i64 %33, %30 %conv57.i70 = sitofp i64 %sub56.i69 to double - %sub62.i71 = sub nsw i64 %.pre138, %29 + %sub62.i71 = sub nsw i64 %41, %31 %conv63.i72 = sitofp i64 %sub62.i71 to double - %sub67.i73 = sub nsw i64 %36, %28 + %sub67.i73 = sub nsw i64 %38, %30 %conv68.i74 = sitofp i64 %sub67.i73 to double - %38 = fneg double %conv68.i74 - %neg.i75 = fmul double %38, %conv63.i72 - %39 = tail call double @llvm.fmuladd.f64(double %conv51.i68, double %conv57.i70, double %neg.i75) - %tobool.i76 = fcmp une double %39, 0.000000e+00 + %42 = fneg double %conv68.i74 + %neg.i75 = fmul double %42, %conv63.i72 + %43 = tail call double @llvm.fmuladd.f64(double %conv51.i68, double %conv57.i70, double %neg.i75) + %tobool.i76 = fcmp une double %43, 0.000000e+00 br i1 %tobool.i76, label %if.end71.i78, label %if.end.i35 if.end71.i78: ; preds = %if.else.i66 - %cmp72.i79 = fcmp ogt double %39, 0.000000e+00 - %40 = icmp sle i64 %31, %36 - %cmp81.i80 = xor i1 %40, %cmp72.i79 + %cmp72.i79 = fcmp ogt double %43, 0.000000e+00 + %44 = icmp sle i64 %33, %38 + %cmp81.i80 = xor i1 %44, %cmp72.i79 %sub83.i81 = sub nuw nsw i32 1, %result.0.i49 %spec.select.i82 = select i1 %cmp81.i80, i32 %sub83.i81, i32 %result.0.i49 br label %if.end136.i83 @@ -18402,37 +18402,37 @@ if.else86.i88: ; preds = %if.then35.i60 br i1 %cmp91.i64, label %if.then92.i89, label %if.end136.i83 if.then92.i89: ; preds = %if.else86.i88 - %sub97.i90 = sub nsw i64 %.pre137, %29 + %sub97.i90 = sub nsw i64 %40, %31 %conv98.i91 = sitofp i64 %sub97.i90 to double - %sub103.i92 = sub nsw i64 %31, %28 + %sub103.i92 = sub nsw i64 %33, %30 %conv104.i93 = sitofp i64 %sub103.i92 to double - %sub109.i94 = sub nsw i64 %.pre138, %29 + %sub109.i94 = sub nsw i64 %41, %31 %conv110.i95 = sitofp i64 %sub109.i94 to double - %sub114.i96 = sub nsw i64 %36, %28 + %sub114.i96 = sub nsw i64 %38, %30 %conv115.i97 = sitofp i64 %sub114.i96 to double - %41 = fneg double %conv115.i97 - %neg117.i98 = fmul double %41, %conv110.i95 - %42 = tail call double @llvm.fmuladd.f64(double %conv98.i91, double %conv104.i93, double %neg117.i98) - %tobool118.i99 = fcmp une double %42, 0.000000e+00 + %45 = fneg double %conv115.i97 + %neg117.i98 = fmul double %45, %conv110.i95 + %46 = tail call double @llvm.fmuladd.f64(double %conv98.i91, double %conv104.i93, double %neg117.i98) + %tobool118.i99 = fcmp une double %46, 0.000000e+00 br i1 %tobool118.i99, label %if.end120.i100, label %if.end.i35 if.end120.i100: ; preds = %if.then92.i89 - %cmp121.i101 = fcmp ogt double %42, 0.000000e+00 - %43 = icmp sle i64 %31, %36 - %cmp130.i102 = xor i1 %43, %cmp121.i101 + %cmp121.i101 = fcmp ogt double %46, 0.000000e+00 + %47 = icmp sle i64 %33, %38 + %cmp130.i102 = xor i1 %47, %cmp121.i101 %sub132.i103 = sub nuw nsw i32 1, %result.0.i49 %spec.select56.i104 = select i1 %cmp130.i102, i32 %sub132.i103, i32 %result.0.i49 br label %if.end136.i83 if.end136.i83: ; preds = %land.lhs.true.i111, %if.end120.i100, %if.else86.i88, %if.end71.i78, %if.then46.i86, %if.end22.i57 %result.1.i84 = phi i32 [ %sub.i87, %if.then46.i86 ], [ %result.0.i49, %if.else86.i88 ], [ %result.0.i49, %if.end22.i57 ], [ %spec.select.i82, %if.end71.i78 ], [ %spec.select56.i104, %if.end120.i100 ], [ %result.0.i49, %land.lhs.true.i111 ] - %cmp138.i85 = icmp eq ptr %27, %30 + %cmp138.i85 = icmp eq ptr %29, %32 br i1 %cmp138.i85, label %_ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit41, label %for.cond.i48, !llvm.loop !11 if.end.i35: ; preds = %if.then92.i89, %if.else.i66, %if.then.i105, %land.lhs.true.i111 %Next.i36 = getelementptr inbounds nuw i8, ptr %op.0.i31, i64 24 - %44 = load ptr, ptr %Next.i36, align 8 - %cmp2.not.i37 = icmp eq ptr %44, %5 + %48 = load ptr, ptr %Next.i36, align 8 + %cmp2.not.i37 = icmp eq ptr %48, %5 br i1 %cmp2.not.i37, label %for.inc.sink.split, label %do.body.i30, !llvm.loop !12 _ZN10ClipperLib18Poly2ContainsPoly1EPNS_5OutPtES1_.exit41: ; preds = %if.end136.i83 @@ -18458,10 +18458,10 @@ for.inc: ; preds = %for.inc.sink.split, %add.ptr = getelementptr inbounds i8, ptr %this, i64 %vbase.offset %m_PolyOuts = getelementptr inbounds nuw i8, ptr %add.ptr, i64 80 %_M_finish.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 88 - %45 = load ptr, ptr %_M_finish.i, align 8 - %46 = load ptr, ptr %m_PolyOuts, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %45 to i64 - %sub.ptr.rhs.cast.i = ptrtoint ptr %46 to i64 + %49 = load ptr, ptr %_M_finish.i, align 8 + %50 = load ptr, ptr %m_PolyOuts, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %49 to i64 + %sub.ptr.rhs.cast.i = ptrtoint ptr %50 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i %sub.ptr.div.i = ashr exact i64 %sub.ptr.sub.i, 3 %cmp = icmp ult i64 %inc, %sub.ptr.div.i diff --git a/bench/cmake/optimized/inet.c.ll b/bench/cmake/optimized/inet.c.ll index aecb70e4b28..8c04d4d408e 100644 --- a/bench/cmake/optimized/inet.c.ll +++ b/bench/cmake/optimized/inet.c.ll @@ -15,7 +15,7 @@ define dso_local range(i32 -97, 1) i32 @uv_inet_ntop(i32 noundef %0, ptr nocaptu %6 = alloca [46 x i8], align 16 %7 = alloca [8 x i32], align 16 %8 = alloca [16 x i8], align 16 - switch i32 %0, label %160 [ + switch i32 %0, label %159 [ i32 2, label %9 i32 10, label %26 ] @@ -47,7 +47,7 @@ define dso_local range(i32 -97, 1) i32 @uv_inet_ntop(i32 noundef %0, ptr nocaptu inet_ntop4.exit: ; preds = %9, %24 %.0.i = phi i32 [ 0, %24 ], [ -28, %9 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) - br label %160 + br label %159 26: ; preds = %4 call void @llvm.lifetime.start.p0(i64 46, ptr nonnull %6) @@ -223,165 +223,161 @@ inet_ntop4.exit: ; preds = %9, %24 %90 = zext nneg i32 %58 to i64 br label %.split.split.us.split.i -.split.split.us.split.i: ; preds = %105, %.split.split.us.split.preheader.i - %indvars.iv153.i = phi i64 [ 0, %.split.split.us.split.preheader.i ], [ %indvars.iv.next154.i, %105 ] - %.071106.us109.i = phi ptr [ %6, %.split.split.us.split.preheader.i ], [ %.273.us116.i, %105 ] +.split.split.us.split.i: ; preds = %104, %.split.split.us.split.preheader.i + %indvars.iv153.i = phi i64 [ 0, %.split.split.us.split.preheader.i ], [ %indvars.iv.next154.i, %104 ] + %.071106.us109.i = phi ptr [ %6, %.split.split.us.split.preheader.i ], [ %.273.us116.i, %104 ] %91 = icmp samesign ult i64 %indvars.iv153.i, %90 - %92 = icmp eq i64 %indvars.iv153.i, 0 - br i1 %91, label %102, label %93 + br i1 %91, label %100, label %92 -93: ; preds = %.split.split.us.split.i - br i1 %92, label %.thread.us114.i, label %94 - -94: ; preds = %93 - %95 = getelementptr inbounds nuw i8, ptr %.071106.us109.i, i64 1 +92: ; preds = %.split.split.us.split.i + %93 = getelementptr inbounds nuw i8, ptr %.071106.us109.i, i64 1 store i8 58, ptr %.071106.us109.i, align 1 - %96 = icmp eq i64 %indvars.iv153.i, 6 - br i1 %96, label %.split118.us.i, label %.thread.us114.i - -.thread.us114.i: ; preds = %94, %93 - %.395.us115.i = phi ptr [ %95, %94 ], [ %.071106.us109.i, %93 ] - %97 = getelementptr inbounds nuw [8 x i32], ptr %7, i64 0, i64 %indvars.iv153.i - %98 = load i32, ptr %97, align 4 - %99 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %.395.us115.i, ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %98) #9 - %100 = sext i32 %99 to i64 - %101 = getelementptr inbounds i8, ptr %.395.us115.i, i64 %100 - br label %105 - -102: ; preds = %.split.split.us.split.i - br i1 %92, label %103, label %105 - -103: ; preds = %102 - %104 = getelementptr inbounds nuw i8, ptr %.071106.us109.i, i64 1 + %94 = icmp eq i64 %indvars.iv153.i, 6 + br i1 %94, label %.split118.us.i, label %.thread.us114.i + +.thread.us114.i: ; preds = %92 + %95 = getelementptr inbounds nuw [8 x i32], ptr %7, i64 0, i64 %indvars.iv153.i + %96 = load i32, ptr %95, align 4 + %97 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %93, ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %96) #9 + %98 = sext i32 %97 to i64 + %99 = getelementptr inbounds i8, ptr %93, i64 %98 + br label %104 + +100: ; preds = %.split.split.us.split.i + %101 = icmp eq i64 %indvars.iv153.i, 0 + br i1 %101, label %102, label %104 + +102: ; preds = %100 + %103 = getelementptr inbounds nuw i8, ptr %.071106.us109.i, i64 1 store i8 58, ptr %.071106.us109.i, align 1 - br label %105 + br label %104 -105: ; preds = %103, %102, %.thread.us114.i - %.273.us116.i = phi ptr [ %104, %103 ], [ %.071106.us109.i, %102 ], [ %101, %.thread.us114.i ] +104: ; preds = %102, %100, %.thread.us114.i + %.273.us116.i = phi ptr [ %103, %102 ], [ %.071106.us109.i, %100 ], [ %99, %.thread.us114.i ] %indvars.iv.next154.i = add nuw nsw i64 %indvars.iv153.i, 1 %exitcond156.not.i = icmp eq i64 %indvars.iv.next154.i, 8 br i1 %exitcond156.not.i, label %.loopexit.i, label %.split.split.us.split.i, !llvm.loop !8 -.split.split.i: ; preds = %148, %.split.split.preheader.i - %indvars.iv145.i = phi i64 [ 0, %.split.split.preheader.i ], [ %indvars.iv.next146.i, %148 ] - %.071106.i = phi ptr [ %6, %.split.split.preheader.i ], [ %.273.i, %148 ] - %106 = icmp slt i64 %indvars.iv145.i, %89 - %107 = icmp eq i64 %indvars.iv145.i, 0 - br i1 %106, label %108, label %111 +.split.split.i: ; preds = %147, %.split.split.preheader.i + %indvars.iv145.i = phi i64 [ 0, %.split.split.preheader.i ], [ %indvars.iv.next146.i, %147 ] + %.071106.i = phi ptr [ %6, %.split.split.preheader.i ], [ %.273.i, %147 ] + %105 = icmp slt i64 %indvars.iv145.i, %89 + %106 = icmp eq i64 %indvars.iv145.i, 0 + br i1 %105, label %107, label %110 -108: ; preds = %.split.split.i - br i1 %107, label %109, label %148 +107: ; preds = %.split.split.i + br i1 %106, label %108, label %147 -109: ; preds = %108 - %110 = getelementptr inbounds nuw i8, ptr %.071106.i, i64 1 +108: ; preds = %107 + %109 = getelementptr inbounds nuw i8, ptr %.071106.i, i64 1 store i8 58, ptr %.071106.i, align 1 - br label %148 + br label %147 -111: ; preds = %.split.split.i - br i1 %107, label %.thread.i, label %112 +110: ; preds = %.split.split.i + br i1 %106, label %.thread.i, label %111 -112: ; preds = %111 - %113 = getelementptr inbounds nuw i8, ptr %.071106.i, i64 1 +111: ; preds = %110 + %112 = getelementptr inbounds nuw i8, ptr %.071106.i, i64 1 store i8 58, ptr %.071106.i, align 1 - %114 = icmp eq i64 %indvars.iv145.i, 6 - br i1 %114, label %115, label %.thread.i - -115: ; preds = %112 - %116 = load i32, ptr %61, align 4 - %117 = icmp ne i32 %116, 1 - %or.cond8.i = select i1 %60, i1 %117, i1 false - br i1 %or.cond8.i, label %.split118.us.i, label %118 - -118: ; preds = %115 - %119 = load i32, ptr %63, align 4 - %120 = icmp eq i32 %119, 65535 - %or.cond11.i = select i1 %62, i1 %120, i1 false + %113 = icmp eq i64 %indvars.iv145.i, 6 + br i1 %113, label %114, label %.thread.i + +114: ; preds = %111 + %115 = load i32, ptr %61, align 4 + %116 = icmp ne i32 %115, 1 + %or.cond8.i = select i1 %60, i1 %116, i1 false + br i1 %or.cond8.i, label %.split118.us.i, label %117 + +117: ; preds = %114 + %118 = load i32, ptr %63, align 4 + %119 = icmp eq i32 %118, 65535 + %or.cond11.i = select i1 %62, i1 %119, i1 false br i1 %or.cond11.i, label %.split118.us.i, label %.thread.i -.split118.us.i: ; preds = %118, %115, %94 - %.us-phi119.i = phi ptr [ %95, %94 ], [ %113, %115 ], [ %113, %118 ] - %121 = getelementptr inbounds nuw i8, ptr %1, i64 12 - %122 = ptrtoint ptr %.us-phi119.i to i64 - %123 = ptrtoint ptr %6 to i64 - %.neg.i = sub i64 %123, %122 - %124 = add i64 %.neg.i, 46 +.split118.us.i: ; preds = %117, %114, %92 + %.us-phi119.i = phi ptr [ %93, %92 ], [ %112, %114 ], [ %112, %117 ] + %120 = getelementptr inbounds nuw i8, ptr %1, i64 12 + %121 = ptrtoint ptr %.us-phi119.i to i64 + %122 = ptrtoint ptr %6 to i64 + %.neg.i = sub i64 %122, %121 + %123 = add i64 %.neg.i, 46 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) - %125 = load i8, ptr %121, align 1 - %126 = zext i8 %125 to i32 - %127 = getelementptr inbounds nuw i8, ptr %1, i64 13 - %128 = load i8, ptr %127, align 1 - %129 = zext i8 %128 to i32 - %130 = getelementptr inbounds nuw i8, ptr %1, i64 14 - %131 = load i8, ptr %130, align 1 - %132 = zext i8 %131 to i32 - %133 = getelementptr inbounds nuw i8, ptr %1, i64 15 - %134 = load i8, ptr %133, align 1 - %135 = zext i8 %134 to i32 - %136 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %5, i64 noundef 16, ptr noundef nonnull @inet_ntop4.fmt, i32 noundef %126, i32 noundef %129, i32 noundef %132, i32 noundef %135) #9 - %137 = icmp sgt i32 %136, 0 - %138 = zext nneg i32 %136 to i64 - %.not.i.i = icmp ugt i64 %124, %138 - %or.cond.i.i = select i1 %137, i1 %.not.i.i, i1 false - br i1 %or.cond.i.i, label %139, label %inet_ntop4.exit.i + %124 = load i8, ptr %120, align 1 + %125 = zext i8 %124 to i32 + %126 = getelementptr inbounds nuw i8, ptr %1, i64 13 + %127 = load i8, ptr %126, align 1 + %128 = zext i8 %127 to i32 + %129 = getelementptr inbounds nuw i8, ptr %1, i64 14 + %130 = load i8, ptr %129, align 1 + %131 = zext i8 %130 to i32 + %132 = getelementptr inbounds nuw i8, ptr %1, i64 15 + %133 = load i8, ptr %132, align 1 + %134 = zext i8 %133 to i32 + %135 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %5, i64 noundef 16, ptr noundef nonnull @inet_ntop4.fmt, i32 noundef %125, i32 noundef %128, i32 noundef %131, i32 noundef %134) #9 + %136 = icmp sgt i32 %135, 0 + %137 = zext nneg i32 %135 to i64 + %.not.i.i = icmp ugt i64 %123, %137 + %or.cond.i.i = select i1 %136, i1 %.not.i.i, i1 false + br i1 %or.cond.i.i, label %138, label %inet_ntop4.exit.i inet_ntop4.exit.i: ; preds = %.split118.us.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) br label %inet_ntop6.exit -139: ; preds = %.split118.us.i - %140 = call i64 @uv__strscpy(ptr noundef nonnull %.us-phi119.i, ptr noundef nonnull %5, i64 noundef %124) #9 +138: ; preds = %.split118.us.i + %139 = call i64 @uv__strscpy(ptr noundef nonnull %.us-phi119.i, ptr noundef nonnull %5, i64 noundef %123) #9 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) - %141 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.us-phi119.i) #10 - %142 = getelementptr inbounds i8, ptr %.us-phi119.i, i64 %141 + %140 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.us-phi119.i) #10 + %141 = getelementptr inbounds i8, ptr %.us-phi119.i, i64 %140 br label %.loopexit.i -.thread.i: ; preds = %118, %112, %111 - %.395.i = phi ptr [ %113, %118 ], [ %113, %112 ], [ %.071106.i, %111 ] - %143 = getelementptr inbounds nuw [8 x i32], ptr %7, i64 0, i64 %indvars.iv145.i - %144 = load i32, ptr %143, align 4 - %145 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %.395.i, ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %144) #9 - %146 = sext i32 %145 to i64 - %147 = getelementptr inbounds i8, ptr %.395.i, i64 %146 - br label %148 - -148: ; preds = %.thread.i, %109, %108 - %.273.i = phi ptr [ %110, %109 ], [ %.071106.i, %108 ], [ %147, %.thread.i ] +.thread.i: ; preds = %117, %111, %110 + %.395.i = phi ptr [ %112, %117 ], [ %112, %111 ], [ %.071106.i, %110 ] + %142 = getelementptr inbounds nuw [8 x i32], ptr %7, i64 0, i64 %indvars.iv145.i + %143 = load i32, ptr %142, align 4 + %144 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %.395.i, ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %143) #9 + %145 = sext i32 %144 to i64 + %146 = getelementptr inbounds i8, ptr %.395.i, i64 %145 + br label %147 + +147: ; preds = %.thread.i, %108, %107 + %.273.i = phi ptr [ %109, %108 ], [ %.071106.i, %107 ], [ %146, %.thread.i ] %indvars.iv.next146.i = add nuw nsw i64 %indvars.iv145.i, 1 %exitcond148.not.i = icmp eq i64 %indvars.iv.next146.i, 8 br i1 %exitcond148.not.i, label %.loopexit.i, label %.split.split.i, !llvm.loop !8 -.loopexit.i: ; preds = %.thread.us.i.us, %87, %148, %105, %139 - %.172.i = phi ptr [ %142, %139 ], [ %.273.us116.i, %105 ], [ %.273.i, %148 ], [ %.273.us.i, %87 ], [ %73, %.thread.us.i.us ] - %149 = icmp eq i32 %58, 8 - %or.cond88.i = select i1 %.not76.i, i1 %149, i1 false - br i1 %or.cond88.i, label %150, label %152 +.loopexit.i: ; preds = %.thread.us.i.us, %87, %147, %104, %138 + %.172.i = phi ptr [ %141, %138 ], [ %.273.us116.i, %104 ], [ %.273.i, %147 ], [ %.273.us.i, %87 ], [ %73, %.thread.us.i.us ] + %148 = icmp eq i32 %58, 8 + %or.cond88.i = select i1 %.not76.i, i1 %148, i1 false + br i1 %or.cond88.i, label %149, label %151 -150: ; preds = %.loopexit.i - %151 = getelementptr inbounds nuw i8, ptr %.172.i, i64 1 +149: ; preds = %.loopexit.i + %150 = getelementptr inbounds nuw i8, ptr %.172.i, i64 1 store i8 58, ptr %.172.i, align 1 - br label %152 + br label %151 -152: ; preds = %150, %.loopexit.i - %.4.i = phi ptr [ %151, %150 ], [ %.172.i, %.loopexit.i ] - %153 = getelementptr inbounds nuw i8, ptr %.4.i, i64 1 +151: ; preds = %149, %.loopexit.i + %.4.i = phi ptr [ %150, %149 ], [ %.172.i, %.loopexit.i ] + %152 = getelementptr inbounds nuw i8, ptr %.4.i, i64 1 store i8 0, ptr %.4.i, align 1 - %154 = ptrtoint ptr %153 to i64 - %155 = ptrtoint ptr %6 to i64 - %156 = sub i64 %154, %155 - %157 = icmp ugt i64 %156, %3 - br i1 %157, label %inet_ntop6.exit, label %158 - -158: ; preds = %152 - %159 = call i64 @uv__strscpy(ptr noundef %2, ptr noundef nonnull %6, i64 noundef %3) #9 + %153 = ptrtoint ptr %152 to i64 + %154 = ptrtoint ptr %6 to i64 + %155 = sub i64 %153, %154 + %156 = icmp ugt i64 %155, %3 + br i1 %156, label %inet_ntop6.exit, label %157 + +157: ; preds = %151 + %158 = call i64 @uv__strscpy(ptr noundef %2, ptr noundef nonnull %6, i64 noundef %3) #9 br label %inet_ntop6.exit -inet_ntop6.exit: ; preds = %inet_ntop4.exit.i, %152, %158 - %.0.i8 = phi i32 [ 0, %158 ], [ -28, %inet_ntop4.exit.i ], [ -28, %152 ] +inet_ntop6.exit: ; preds = %inet_ntop4.exit.i, %151, %157 + %.0.i8 = phi i32 [ 0, %157 ], [ -28, %inet_ntop4.exit.i ], [ -28, %151 ] call void @llvm.lifetime.end.p0(i64 46, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) - br label %160 + br label %159 -160: ; preds = %4, %inet_ntop6.exit, %inet_ntop4.exit +159: ; preds = %4, %inet_ntop6.exit, %inet_ntop4.exit %.0 = phi i32 [ %.0.i8, %inet_ntop6.exit ], [ %.0.i, %inet_ntop4.exit ], [ -97, %4 ] ret i32 %.0 } diff --git a/bench/cpython/optimized/bytearrayobject.ll b/bench/cpython/optimized/bytearrayobject.ll index a2973fbc20c..9c7d38d021d 100644 --- a/bench/cpython/optimized/bytearrayobject.ll +++ b/bench/cpython/optimized/bytearrayobject.ll @@ -10611,7 +10611,7 @@ if.then4: ; preds = %if.end if.end7: ; preds = %if.then4 %0 = load i8, ptr %p, align 1 - switch i32 %mode, label %if.else14 [ + switch i32 %mode, label %for.body.i [ i32 1, label %if.then9 i32 2, label %if.then11 ] @@ -10691,13 +10691,9 @@ if.then11.i56: ; preds = %while.body.i53 %sub.ptr.sub14.i59 = sub i64 %sub.ptr.lhs.cast12.i57, %sub.ptr.rhs.cast13.i58 br label %return -if.else14: ; preds = %if.end7 - %cmp6.i = icmp sgt i64 %n, 0 - br i1 %cmp6.i, label %for.body.i, label %return - -for.body.i: ; preds = %if.else14, %for.inc.i - %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.else14 ] - %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.else14 ] +for.body.i: ; preds = %if.end7, %for.inc.i + %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.end7 ] + %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.end7 ] %arrayidx.i = getelementptr i8, ptr %s, i64 %i.07.i %3 = load i8, ptr %arrayidx.i, align 1 %cmp2.i = icmp eq i8 %3, %0 @@ -10939,8 +10935,8 @@ for.body.i79: ; preds = %for.body.i79, %if.e %cmp.i80 = icmp samesign ugt i64 %i.041.i, 1 br i1 %cmp.i80, label %for.body.i79, label %for.cond17.preheader.i, !llvm.loop !62 -return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %while.cond.i, %if.end15.i, %for.inc.i, %if.then.i70, %for.cond17.preheader.i, %for.end82.i, %if.else14, %if.then11.i56, %if.then3.i64, %if.then.i60, %if.then11.i, %if.then3.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %lor.lhs.false, %if.else38, %if.else36, %if.then34 - %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.sub.i, %if.then3.i ], [ %sub.ptr.sub14.i, %if.then11.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.sub.i67, %if.then3.i64 ], [ %sub.ptr.sub14.i59, %if.then11.i56 ], [ -1, %if.then.i60 ], [ 0, %if.else14 ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i70 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end15.i ], [ -1, %while.cond.i ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] +return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %while.cond.i, %if.end15.i, %for.inc.i, %if.then.i70, %for.cond17.preheader.i, %for.end82.i, %if.then11.i56, %if.then3.i64, %if.then.i60, %if.then11.i, %if.then3.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %lor.lhs.false, %if.else38, %if.else36, %if.then34 + %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.sub.i, %if.then3.i ], [ %sub.ptr.sub14.i, %if.then11.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.sub.i67, %if.then3.i64 ], [ %sub.ptr.sub14.i59, %if.then11.i56 ], [ -1, %if.then.i60 ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i70 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end15.i ], [ -1, %while.cond.i ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] ret i64 %retval.0 } diff --git a/bench/cpython/optimized/unicodeobject.ll b/bench/cpython/optimized/unicodeobject.ll index 12c29bd5503..465266ec74a 100644 --- a/bench/cpython/optimized/unicodeobject.ll +++ b/bench/cpython/optimized/unicodeobject.ll @@ -34502,13 +34502,9 @@ if.then2.i: ; preds = %if.then55 %cond.i.i = add nsw i64 %122, 1 %call.i.i482 = tail call ptr @PyList_New(i64 noundef %cond.i.i) #35 %cmp1.i.i = icmp eq ptr %call.i.i482, null - br i1 %cmp1.i.i, label %sw.epilog, label %while.cond.preheader.i.i + br i1 %cmp1.i.i, label %sw.epilog, label %land.rhs.lr.ph.i.i -while.cond.preheader.i.i: ; preds = %if.then2.i - %cmp2111.i.i = icmp sgt i64 %self.val73, 0 - br i1 %cmp2111.i.i, label %land.rhs.lr.ph.i.i, label %land.lhs.true.i.i - -land.rhs.lr.ph.i.i: ; preds = %while.cond.preheader.i.i +land.rhs.lr.ph.i.i: ; preds = %if.then2.i %123 = getelementptr i8, ptr %call.i.i482, i64 24 br label %land.rhs.i.i @@ -34643,8 +34639,7 @@ while.end.i.i: ; preds = %for.end.i.i, %land. %cmp26.i.i = icmp eq i64 %count.0.lcssa.i.i, 0 br i1 %cmp26.i.i, label %land.lhs.true.i.i, label %if.else32.i.i -land.lhs.true.i.i: ; preds = %while.end.i.i, %while.cond.preheader.i.i - %i.0.lcssa129.i.i = phi i64 [ %i.0.lcssa.i.i, %while.end.i.i ], [ 0, %while.cond.preheader.i.i ] +land.lhs.true.i.i: ; preds = %while.end.i.i %133 = getelementptr i8, ptr %self, i64 8 %str_obj.val.i.i = load ptr, ptr %133, align 8 %cmp.i62.not.i.i = icmp eq ptr %str_obj.val.i.i, @PyUnicode_Type @@ -34661,31 +34656,28 @@ if.end.i94.i.i: ; preds = %if.then30.i.i br label %Py_INCREF.exit.i.i Py_INCREF.exit.i.i: ; preds = %if.end.i94.i.i, %if.then30.i.i - %135 = getelementptr i8, ptr %call.i.i482, i64 24 - %call.val56.i.i = load ptr, ptr %135, align 8 + %call.val56.i.i = load ptr, ptr %123, align 8 store ptr %self, ptr %call.val56.i.i, align 8 br label %if.end55.i.i if.else32.i.i: ; preds = %land.lhs.true.i.i, %while.end.i.i - %count.0.lcssa130.i.i = phi i64 [ 0, %land.lhs.true.i.i ], [ %count.0.lcssa.i.i, %while.end.i.i ] - %i.0.lcssa128.i.i = phi i64 [ %i.0.lcssa129.i.i, %land.lhs.true.i.i ], [ %i.0.lcssa.i.i, %while.end.i.i ] - %cmp33.not.i.i = icmp sgt i64 %i.0.lcssa128.i.i, %self.val73 + %cmp33.not.i.i = icmp sgt i64 %i.0.lcssa.i.i, %self.val73 br i1 %cmp33.not.i.i, label %if.end55.i.i, label %if.then35.i.i if.then35.i.i: ; preds = %if.else32.i.i - %add.ptr36.i.i = getelementptr i8, ptr %retval.0.i464, i64 %i.0.lcssa128.i.i - %sub37.i.i = sub i64 %self.val73, %i.0.lcssa128.i.i + %add.ptr36.i.i = getelementptr i8, ptr %retval.0.i464, i64 %i.0.lcssa.i.i + %sub37.i.i = sub i64 %self.val73, %i.0.lcssa.i.i %cmp.i64.i.i = icmp eq i64 %sub37.i.i, 1 br i1 %cmp.i64.i.i, label %if.then.i80.i.i, label %if.end.i65.i.i if.then.i80.i.i: ; preds = %if.then35.i.i - %136 = load i8, ptr %add.ptr36.i.i, align 1 - %idxprom.i.i86.i.i = zext nneg i8 %136 to i64 + %135 = load i8, ptr %add.ptr36.i.i, align 1 + %idxprom.i.i86.i.i = zext nneg i8 %135 to i64 %arrayidx.i.i87.i.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i86.i.i - %137 = and i8 %136, 127 - %idxprom3.i.i83.i.i = zext nneg i8 %137 to i64 + %136 = and i8 %135, 127 + %idxprom3.i.i83.i.i = zext nneg i8 %136 to i64 %arrayidx4.i.i84.i.i = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i83.i.i - %cmp.i.i81102.i.i = icmp slt i8 %136, 0 + %cmp.i.i81102.i.i = icmp slt i8 %135, 0 %retval.0.i77.i.i = select i1 %cmp.i.i81102.i.i, ptr %arrayidx4.i.i84.i.i, ptr %arrayidx.i.i87.i.i %cmp39.i.i = icmp eq ptr %retval.0.i77.i.i, null br i1 %cmp39.i.i, label %onError.i.i, label %if.end42.i.i @@ -34696,22 +34688,22 @@ if.end.i65.i.i: ; preds = %if.then35.i.i br i1 %tobool.not.i67.i.i, label %onError.i.i, label %if.end3.i68.i.i if.end3.i68.i.i: ; preds = %if.end.i65.i.i - %138 = getelementptr i8, ptr %call1.i66.i.i, i64 32 - %op.val.i.i69.i.i = load i32, ptr %138, align 8 - %139 = and i32 %op.val.i.i69.i.i, 32 - %tobool.not.i.i70.i.i = icmp eq i32 %139, 0 + %137 = getelementptr i8, ptr %call1.i66.i.i, i64 32 + %op.val.i.i69.i.i = load i32, ptr %137, align 8 + %138 = and i32 %op.val.i.i69.i.i, 32 + %tobool.not.i.i70.i.i = icmp eq i32 %138, 0 br i1 %tobool.not.i.i70.i.i, label %if.end.i.i78.i.i, label %if.then.i.i71.i.i if.then.i.i71.i.i: ; preds = %if.end3.i68.i.i - %140 = and i32 %op.val.i.i69.i.i, 64 - %tobool.not.i.i.i72.i.i = icmp eq i32 %140, 0 + %139 = and i32 %op.val.i.i69.i.i, 64 + %tobool.not.i.i.i72.i.i = icmp eq i32 %139, 0 %retval.0.v.i.i.i73.i.i = select i1 %tobool.not.i.i.i72.i.i, i64 56, i64 40 %retval.0.i.i.i74.i.i = getelementptr i8, ptr %call1.i66.i.i, i64 %retval.0.v.i.i.i73.i.i br label %_PyUnicode_FromASCII.exit88.thread98.i.i if.end.i.i78.i.i: ; preds = %if.end3.i68.i.i - %141 = getelementptr i8, ptr %call1.i66.i.i, i64 56 - %op.val3.i.i79.i.i = load ptr, ptr %141, align 8 + %140 = getelementptr i8, ptr %call1.i66.i.i, i64 56 + %op.val3.i.i79.i.i = load ptr, ptr %140, align 8 br label %_PyUnicode_FromASCII.exit88.thread98.i.i _PyUnicode_FromASCII.exit88.thread98.i.i: ; preds = %if.end.i.i78.i.i, %if.then.i.i71.i.i @@ -34721,29 +34713,28 @@ _PyUnicode_FromASCII.exit88.thread98.i.i: ; preds = %if.end.i.i78.i.i, % if.end42.i.i: ; preds = %_PyUnicode_FromASCII.exit88.thread98.i.i, %if.then.i80.i.i %retval.0.i77101.i.i = phi ptr [ %call1.i66.i.i, %_PyUnicode_FromASCII.exit88.thread98.i.i ], [ %retval.0.i77.i.i, %if.then.i80.i.i ] - %cmp43.i.i = icmp slt i64 %count.0.lcssa130.i.i, 12 + %cmp43.i.i = icmp slt i64 %count.0.lcssa.i.i, 12 br i1 %cmp43.i.i, label %if.then45.i.i, label %if.else46.i.i if.then45.i.i: ; preds = %if.end42.i.i - %142 = getelementptr i8, ptr %call.i.i482, i64 24 - %call.val.i.i = load ptr, ptr %142, align 8 - %arrayidx.i89.i.i = getelementptr ptr, ptr %call.val.i.i, i64 %count.0.lcssa130.i.i + %call.val.i.i = load ptr, ptr %123, align 8 + %arrayidx.i89.i.i = getelementptr ptr, ptr %call.val.i.i, i64 %count.0.lcssa.i.i store ptr %retval.0.i77101.i.i, ptr %arrayidx.i89.i.i, align 8 br label %if.end52.i.i if.else46.i.i: ; preds = %if.end42.i.i %call47.i.i = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i482, ptr noundef nonnull %retval.0.i77101.i.i) #35 %tobool48.not.i.i = icmp eq i32 %call47.i.i, 0 - %143 = load i64, ptr %retval.0.i77101.i.i, align 8 - %144 = and i64 %143, 2147483648 - %cmp.i108.not.i.i = icmp eq i64 %144, 0 + %141 = load i64, ptr %retval.0.i77101.i.i, align 8 + %142 = and i64 %141, 2147483648 + %cmp.i108.not.i.i = icmp eq i64 %142, 0 br i1 %tobool48.not.i.i, label %if.else50.i.i, label %if.then49.i.i if.then49.i.i: ; preds = %if.else46.i.i br i1 %cmp.i108.not.i.i, label %if.end.i68.i.i, label %onError.i.i if.end.i68.i.i: ; preds = %if.then49.i.i - %dec.i69.i.i = add i64 %143, -1 + %dec.i69.i.i = add i64 %141, -1 store i64 %dec.i69.i.i, ptr %retval.0.i77101.i.i, align 8 %cmp.i70.i.i = icmp eq i64 %dec.i69.i.i, 0 br i1 %cmp.i70.i.i, label %onError.sink.split.i.i, label %onError.i.i @@ -34752,7 +34743,7 @@ if.else50.i.i: ; preds = %if.else46.i.i br i1 %cmp.i108.not.i.i, label %if.end.i59.i.i, label %if.end52.i.i if.end.i59.i.i: ; preds = %if.else50.i.i - %dec.i60.i.i = add i64 %143, -1 + %dec.i60.i.i = add i64 %141, -1 store i64 %dec.i60.i.i, ptr %retval.0.i77101.i.i, align 8 %cmp.i61.i.i = icmp eq i64 %dec.i60.i.i, 0 br i1 %cmp.i61.i.i, label %if.then1.i62.i.i, label %if.end52.i.i @@ -34762,11 +34753,11 @@ if.then1.i62.i.i: ; preds = %if.end.i59.i.i br label %if.end52.i.i if.end52.i.i: ; preds = %if.then1.i62.i.i, %if.end.i59.i.i, %if.else50.i.i, %if.then45.i.i - %inc53.i.i = add i64 %count.0.lcssa130.i.i, 1 + %inc53.i.i = add i64 %count.0.lcssa.i.i, 1 br label %if.end55.i.i if.end55.i.i: ; preds = %if.end52.i.i, %if.else32.i.i, %Py_INCREF.exit.i.i - %count.2.i.i = phi i64 [ 1, %Py_INCREF.exit.i.i ], [ %inc53.i.i, %if.end52.i.i ], [ %count.0.lcssa130.i.i, %if.else32.i.i ] + %count.2.i.i = phi i64 [ 1, %Py_INCREF.exit.i.i ], [ %inc53.i.i, %if.end52.i.i ], [ %count.0.lcssa.i.i, %if.else32.i.i ] %ob_size.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i482, i64 16 store i64 %count.2.i.i, ptr %ob_size.i.i.i, align 8 br label %sw.epilog @@ -34777,13 +34768,13 @@ onError.sink.split.i.i: ; preds = %if.end.i68.i.i, %if br label %onError.i.i onError.i.i: ; preds = %if.end.i60.i.i, %if.then.i.i.i492, %onError.sink.split.i.i, %if.end.i68.i.i, %if.then49.i.i, %if.end.i65.i.i, %if.then.i80.i.i, %if.end.i86.i.i, %if.then19.i.i - %145 = load i64, ptr %call.i.i482, align 8 - %146 = and i64 %145, 2147483648 - %cmp.i112.not.i.i = icmp eq i64 %146, 0 + %143 = load i64, ptr %call.i.i482, align 8 + %144 = and i64 %143, 2147483648 + %cmp.i112.not.i.i = icmp eq i64 %144, 0 br i1 %cmp.i112.not.i.i, label %if.end.i.i.i484, label %sw.epilog if.end.i.i.i484: ; preds = %onError.i.i - %dec.i.i.i = add i64 %145, -1 + %dec.i.i.i = add i64 %143, -1 store i64 %dec.i.i.i, ptr %call.i.i482, align 8 %cmp.i.i.i = icmp eq i64 %dec.i.i.i, 0 br i1 %cmp.i.i.i, label %if.then1.i.i.i, label %sw.epilog @@ -34793,8 +34784,8 @@ if.then1.i.i.i: ; preds = %if.end.i.i.i484 br label %sw.epilog if.end3.i: ; preds = %if.then55 - %147 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i495 = add nsw i64 %147, 1 + %145 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i495 = add nsw i64 %145, 1 %call5.i = tail call ptr @PyList_New(i64 noundef %cond.i495) #35 %cmp6.i = icmp eq ptr %call5.i, null br i1 %cmp6.i, label %sw.epilog, label %while.cond.preheader.i496 @@ -34804,7 +34795,7 @@ while.cond.preheader.i496: ; preds = %if.end3.i br i1 %cmp9133.i, label %while.body.lr.ph.i, label %land.lhs.true.i while.body.lr.ph.i: ; preds = %while.cond.preheader.i496 - %148 = getelementptr i8, ptr %call5.i, i64 24 + %146 = getelementptr i8, ptr %call5.i, i64 24 br label %while.body.i while.body.i: ; preds = %if.end29.i, %while.body.lr.ph.i @@ -34821,13 +34812,13 @@ if.end14.i: ; preds = %while.body.i br i1 %cmp.i64.i, label %if.then.i.i523, label %if.end.i65.i if.then.i.i523: ; preds = %if.end14.i - %149 = load i8, ptr %add.ptr.i511, align 1 - %idxprom.i.i.i524 = zext nneg i8 %149 to i64 + %147 = load i8, ptr %add.ptr.i511, align 1 + %idxprom.i.i.i524 = zext nneg i8 %147 to i64 %arrayidx.i.i75.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i.i524 - %150 = and i8 %149, 127 - %idxprom3.i.i.i525 = zext nneg i8 %150 to i64 + %148 = and i8 %147, 127 + %idxprom3.i.i.i525 = zext nneg i8 %148 to i64 %arrayidx4.i.i.i526 = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i.i525 - %cmp.i.i74118.i = icmp slt i8 %149, 0 + %cmp.i.i74118.i = icmp slt i8 %147, 0 %retval.0.i72.i = select i1 %cmp.i.i74118.i, ptr %arrayidx4.i.i.i526, ptr %arrayidx.i.i75.i %cmp19.i = icmp eq ptr %retval.0.i72.i, null br i1 %cmp19.i, label %onError.i498, label %if.end21.i @@ -34838,22 +34829,22 @@ if.end.i65.i: ; preds = %if.end14.i br i1 %tobool.not.i66.i, label %onError.i498, label %if.end3.i.i514 if.end3.i.i514: ; preds = %if.end.i65.i - %151 = getelementptr i8, ptr %call1.i.i513, i64 32 - %op.val.i.i.i515 = load i32, ptr %151, align 8 - %152 = and i32 %op.val.i.i.i515, 32 - %tobool.not.i.i67.i = icmp eq i32 %152, 0 + %149 = getelementptr i8, ptr %call1.i.i513, i64 32 + %op.val.i.i.i515 = load i32, ptr %149, align 8 + %150 = and i32 %op.val.i.i.i515, 32 + %tobool.not.i.i67.i = icmp eq i32 %150, 0 br i1 %tobool.not.i.i67.i, label %if.end.i.i73.i, label %if.then.i.i68.i if.then.i.i68.i: ; preds = %if.end3.i.i514 - %153 = and i32 %op.val.i.i.i515, 64 - %tobool.not.i.i.i69.i = icmp eq i32 %153, 0 + %151 = and i32 %op.val.i.i.i515, 64 + %tobool.not.i.i.i69.i = icmp eq i32 %151, 0 %retval.0.v.i.i.i.i516 = select i1 %tobool.not.i.i.i69.i, i64 56, i64 40 %retval.0.i.i.i70.i = getelementptr i8, ptr %call1.i.i513, i64 %retval.0.v.i.i.i.i516 br label %_PyUnicode_FromASCII.exit.thread108.i if.end.i.i73.i: ; preds = %if.end3.i.i514 - %154 = getelementptr i8, ptr %call1.i.i513, i64 56 - %op.val3.i.i.i522 = load ptr, ptr %154, align 8 + %152 = getelementptr i8, ptr %call1.i.i513, i64 56 + %op.val3.i.i.i522 = load ptr, ptr %152, align 8 br label %_PyUnicode_FromASCII.exit.thread108.i _PyUnicode_FromASCII.exit.thread108.i: ; preds = %if.end.i.i73.i, %if.then.i.i68.i @@ -34867,7 +34858,7 @@ if.end21.i: ; preds = %_PyUnicode_FromASCI br i1 %cmp22.i517, label %if.then23.i, label %if.else24.i if.then23.i: ; preds = %if.end21.i - %call5.val62.i = load ptr, ptr %148, align 8 + %call5.val62.i = load ptr, ptr %146, align 8 %arrayidx.i76.i = getelementptr ptr, ptr %call5.val62.i, i64 %count.0135.i store ptr %retval.0.i72111.i, ptr %arrayidx.i76.i, align 8 br label %if.end29.i @@ -34875,16 +34866,16 @@ if.then23.i: ; preds = %if.end21.i if.else24.i: ; preds = %if.end21.i %call25.i = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i, ptr noundef nonnull %retval.0.i72111.i) #35 %tobool.not.i518 = icmp eq i32 %call25.i, 0 - %155 = load i64, ptr %retval.0.i72111.i, align 8 - %156 = and i64 %155, 2147483648 - %cmp.i98.not.i = icmp eq i64 %156, 0 + %153 = load i64, ptr %retval.0.i72111.i, align 8 + %154 = and i64 %153, 2147483648 + %cmp.i98.not.i = icmp eq i64 %154, 0 br i1 %tobool.not.i518, label %if.else27.i, label %if.then26.i519 if.then26.i519: ; preds = %if.else24.i br i1 %cmp.i98.not.i, label %if.end.i84.i, label %onError.i498 if.end.i84.i: ; preds = %if.then26.i519 - %dec.i85.i = add i64 %155, -1 + %dec.i85.i = add i64 %153, -1 store i64 %dec.i85.i, ptr %retval.0.i72111.i, align 8 %cmp.i86.i = icmp eq i64 %dec.i85.i, 0 br i1 %cmp.i86.i, label %onError.sink.split.i503, label %onError.i498 @@ -34893,7 +34884,7 @@ if.else27.i: ; preds = %if.else24.i br i1 %cmp.i98.not.i, label %if.end.i75.i, label %if.end29.i if.end.i75.i: ; preds = %if.else27.i - %dec.i76.i = add i64 %155, -1 + %dec.i76.i = add i64 %153, -1 store i64 %dec.i76.i, ptr %retval.0.i72111.i, align 8 %cmp.i77.i = icmp eq i64 %dec.i76.i, 0 br i1 %cmp.i77.i, label %if.then1.i78.i, label %if.end29.i @@ -34915,14 +34906,14 @@ while.end.i527: ; preds = %while.body.i land.lhs.true.i: ; preds = %while.end.i527, %while.cond.preheader.i496 %i.0.lcssa152.i = phi i64 [ %i.0134.i, %while.end.i527 ], [ 0, %while.cond.preheader.i496 ] - %157 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i497 = load ptr, ptr %157, align 8 + %155 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i497 = load ptr, ptr %155, align 8 %cmp.i78.not.i = icmp eq ptr %str_obj.val.i497, @PyUnicode_Type br i1 %cmp.i78.not.i, label %if.then34.i, label %if.else36.i if.then34.i: ; preds = %land.lhs.true.i - %158 = load i32, ptr %self, align 8 - %add.i.i508 = add i32 %158, 1 + %156 = load i32, ptr %self, align 8 + %add.i.i508 = add i32 %156, 1 %cmp.i91.i = icmp eq i32 %add.i.i508, 0 br i1 %cmp.i91.i, label %Py_INCREF.exit.i510, label %if.end.i92.i509 @@ -34931,8 +34922,8 @@ if.end.i92.i509: ; preds = %if.then34.i br label %Py_INCREF.exit.i510 Py_INCREF.exit.i510: ; preds = %if.end.i92.i509, %if.then34.i - %159 = getelementptr i8, ptr %call5.i, i64 24 - %call5.val61.i = load ptr, ptr %159, align 8 + %157 = getelementptr i8, ptr %call5.i, i64 24 + %call5.val61.i = load ptr, ptr %157, align 8 store ptr %self, ptr %call5.val61.i, align 8 br label %if.end53.i @@ -34945,13 +34936,13 @@ if.else36.i: ; preds = %if.end29.i, %land.l br i1 %cmp.i80.i, label %if.then.i96.i506, label %if.end.i81.i if.then.i96.i506: ; preds = %if.else36.i - %160 = load i8, ptr %add.ptr37.i, align 1 - %idxprom.i.i102.i = zext nneg i8 %160 to i64 + %158 = load i8, ptr %add.ptr37.i, align 1 + %idxprom.i.i102.i = zext nneg i8 %158 to i64 %arrayidx.i.i103.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i102.i - %161 = and i8 %160, 127 - %idxprom3.i.i99.i = zext nneg i8 %161 to i64 + %159 = and i8 %158, 127 + %idxprom3.i.i99.i = zext nneg i8 %159 to i64 %arrayidx4.i.i100.i = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i99.i - %cmp.i.i97119.i = icmp slt i8 %160, 0 + %cmp.i.i97119.i = icmp slt i8 %158, 0 %retval.0.i93.i = select i1 %cmp.i.i97119.i, ptr %arrayidx4.i.i100.i, ptr %arrayidx.i.i103.i %cmp40.i507 = icmp eq ptr %retval.0.i93.i, null br i1 %cmp40.i507, label %onError.i498, label %if.end42.i @@ -34962,22 +34953,22 @@ if.end.i81.i: ; preds = %if.else36.i br i1 %tobool.not.i83.i, label %onError.i498, label %if.end3.i84.i if.end3.i84.i: ; preds = %if.end.i81.i - %162 = getelementptr i8, ptr %call1.i82.i, i64 32 - %op.val.i.i85.i = load i32, ptr %162, align 8 - %163 = and i32 %op.val.i.i85.i, 32 - %tobool.not.i.i86.i = icmp eq i32 %163, 0 + %160 = getelementptr i8, ptr %call1.i82.i, i64 32 + %op.val.i.i85.i = load i32, ptr %160, align 8 + %161 = and i32 %op.val.i.i85.i, 32 + %tobool.not.i.i86.i = icmp eq i32 %161, 0 br i1 %tobool.not.i.i86.i, label %if.end.i.i94.i, label %if.then.i.i87.i if.then.i.i87.i: ; preds = %if.end3.i84.i - %164 = and i32 %op.val.i.i85.i, 64 - %tobool.not.i.i.i88.i = icmp eq i32 %164, 0 + %162 = and i32 %op.val.i.i85.i, 64 + %tobool.not.i.i.i88.i = icmp eq i32 %162, 0 %retval.0.v.i.i.i89.i = select i1 %tobool.not.i.i.i88.i, i64 56, i64 40 %retval.0.i.i.i90.i = getelementptr i8, ptr %call1.i82.i, i64 %retval.0.v.i.i.i89.i br label %_PyUnicode_FromASCII.exit104.thread114.i if.end.i.i94.i: ; preds = %if.end3.i84.i - %165 = getelementptr i8, ptr %call1.i82.i, i64 56 - %op.val3.i.i95.i = load ptr, ptr %165, align 8 + %163 = getelementptr i8, ptr %call1.i82.i, i64 56 + %op.val3.i.i95.i = load ptr, ptr %163, align 8 br label %_PyUnicode_FromASCII.exit104.thread114.i _PyUnicode_FromASCII.exit104.thread114.i: ; preds = %if.end.i.i94.i, %if.then.i.i87.i @@ -34991,8 +34982,8 @@ if.end42.i: ; preds = %_PyUnicode_FromASCI br i1 %cmp43.i, label %if.then44.i, label %if.else45.i if.then44.i: ; preds = %if.end42.i - %166 = getelementptr i8, ptr %call5.i, i64 24 - %call5.val.i = load ptr, ptr %166, align 8 + %164 = getelementptr i8, ptr %call5.i, i64 24 + %call5.val.i = load ptr, ptr %164, align 8 %arrayidx.i105.i = getelementptr ptr, ptr %call5.val.i, i64 %count.0.lcssa153.i store ptr %retval.0.i93117.i, ptr %arrayidx.i105.i, align 8 br label %if.end51.i @@ -35000,16 +34991,16 @@ if.then44.i: ; preds = %if.end42.i if.else45.i: ; preds = %if.end42.i %call46.i = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i, ptr noundef nonnull %retval.0.i93117.i) #35 %tobool47.not.i = icmp eq i32 %call46.i, 0 - %167 = load i64, ptr %retval.0.i93117.i, align 8 - %168 = and i64 %167, 2147483648 - %cmp.i106.not.i = icmp eq i64 %168, 0 + %165 = load i64, ptr %retval.0.i93117.i, align 8 + %166 = and i64 %165, 2147483648 + %cmp.i106.not.i = icmp eq i64 %166, 0 br i1 %tobool47.not.i, label %if.else49.i, label %if.then48.i if.then48.i: ; preds = %if.else45.i br i1 %cmp.i106.not.i, label %if.end.i66.i, label %onError.i498 if.end.i66.i: ; preds = %if.then48.i - %dec.i67.i = add i64 %167, -1 + %dec.i67.i = add i64 %165, -1 store i64 %dec.i67.i, ptr %retval.0.i93117.i, align 8 %cmp.i68.i = icmp eq i64 %dec.i67.i, 0 br i1 %cmp.i68.i, label %onError.sink.split.i503, label %onError.i498 @@ -35018,7 +35009,7 @@ if.else49.i: ; preds = %if.else45.i br i1 %cmp.i106.not.i, label %if.end.i57.i, label %if.end51.i if.end.i57.i: ; preds = %if.else49.i - %dec.i58.i = add i64 %167, -1 + %dec.i58.i = add i64 %165, -1 store i64 %dec.i58.i, ptr %retval.0.i93117.i, align 8 %cmp.i59.i = icmp eq i64 %dec.i58.i, 0 br i1 %cmp.i59.i, label %if.then1.i60.i, label %if.end51.i @@ -35043,13 +35034,13 @@ onError.sink.split.i503: ; preds = %if.end.i66.i, %if.e br label %onError.i498 onError.i498: ; preds = %if.end.i65.i, %if.then.i.i523, %onError.sink.split.i503, %if.end.i66.i, %if.then48.i, %if.end.i81.i, %if.then.i96.i506, %if.end.i84.i, %if.then26.i519 - %169 = load i64, ptr %call5.i, align 8 - %170 = and i64 %169, 2147483648 - %cmp.i110.not.i = icmp eq i64 %170, 0 + %167 = load i64, ptr %call5.i, align 8 + %168 = and i64 %167, 2147483648 + %cmp.i110.not.i = icmp eq i64 %168, 0 br i1 %cmp.i110.not.i, label %if.end.i.i499, label %sw.epilog if.end.i.i499: ; preds = %onError.i498 - %dec.i.i500 = add i64 %169, -1 + %dec.i.i500 = add i64 %167, -1 store i64 %dec.i.i500, ptr %call5.i, align 8 %cmp.i.i501 = icmp eq i64 %dec.i.i500, 0 br i1 %cmp.i.i501, label %if.then1.i.i502, label %sw.epilog @@ -35065,24 +35056,20 @@ if.else57: ; preds = %land.lhs.true, %sw. ] if.then.i639: ; preds = %if.else57 - %171 = load ptr, ptr @PyExc_ValueError, align 8 - tail call void @PyErr_SetString(ptr noundef %171, ptr noundef nonnull @.str.197) #35 + %169 = load ptr, ptr @PyExc_ValueError, align 8 + tail call void @PyErr_SetString(ptr noundef %169, ptr noundef nonnull @.str.197) #35 br label %sw.epilog if.then2.i529: ; preds = %if.else57 - %172 = load i8, ptr %buf2.0, align 1 - %173 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i.i530 = add nsw i64 %173, 1 + %170 = load i8, ptr %buf2.0, align 1 + %171 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i.i530 = add nsw i64 %171, 1 %call.i.i531 = tail call ptr @PyList_New(i64 noundef %cond.i.i530) #35 %cmp1.i.i532 = icmp eq ptr %call.i.i531, null - br i1 %cmp1.i.i532, label %sw.epilog, label %while.cond.preheader.i.i533 + br i1 %cmp1.i.i532, label %sw.epilog, label %land.rhs.lr.ph.i.i578 -while.cond.preheader.i.i533: ; preds = %if.then2.i529 - %cmp2132.i.i = icmp sgt i64 %self.val73, 0 - br i1 %cmp2132.i.i, label %land.rhs.lr.ph.i.i578, label %land.lhs.true.i.i534 - -land.rhs.lr.ph.i.i578: ; preds = %while.cond.preheader.i.i533 - %174 = getelementptr i8, ptr %call.i.i531, i64 24 +land.rhs.lr.ph.i.i578: ; preds = %if.then2.i529 + %172 = getelementptr i8, ptr %call.i.i531, i64 24 br label %land.rhs.i.i579 land.rhs.i.i579: ; preds = %for.end.i.i587, %land.rhs.lr.ph.i.i578 @@ -35101,8 +35088,8 @@ for.cond.preheader.i.i586: ; preds = %land.rhs.i.i579 for.body.i.i592: ; preds = %for.cond.preheader.i.i586, %for.inc.i.i595 %j.1131.i.i = phi i64 [ %inc25.i.i596, %for.inc.i.i595 ], [ %j.0135.i.i, %for.cond.preheader.i.i586 ] %arrayidx.i.i593 = getelementptr i8, ptr %retval.0.i464, i64 %j.1131.i.i - %175 = load i8, ptr %arrayidx.i.i593, align 1 - %cmp6.i.i594 = icmp eq i8 %175, %172 + %173 = load i8, ptr %arrayidx.i.i593, align 1 + %cmp6.i.i594 = icmp eq i8 %173, %170 br i1 %cmp6.i.i594, label %if.then8.i.i598, label %for.inc.i.i595 if.then8.i.i598: ; preds = %for.body.i.i592 @@ -35115,13 +35102,13 @@ if.then8.i.i598: ; preds = %for.body.i.i592 ] if.then2.i.i.i: ; preds = %if.then8.i.i598 - %176 = load i8, ptr %add.ptr.i.i599, align 1 - %idxprom.i.i.i.i601 = zext nneg i8 %176 to i64 + %174 = load i8, ptr %add.ptr.i.i599, align 1 + %idxprom.i.i.i.i601 = zext nneg i8 %174 to i64 %arrayidx.i.i.i.i602 = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i.i.i601 - %177 = and i8 %176, 127 - %idxprom3.i.i.i.i603 = zext nneg i8 %177 to i64 + %175 = and i8 %174, 127 + %idxprom3.i.i.i.i603 = zext nneg i8 %175 to i64 %arrayidx4.i.i.i.i604 = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i.i.i603 - %cmp.i.i120.i.i = icmp slt i8 %176, 0 + %cmp.i.i120.i.i = icmp slt i8 %174, 0 %retval.0.i.i.i605 = select i1 %cmp.i.i120.i.i, ptr %arrayidx4.i.i.i.i604, ptr %arrayidx.i.i.i.i602 %cmp11.i.i606 = icmp eq ptr %retval.0.i.i.i605, null br i1 %cmp11.i.i606, label %onError.i.i549, label %if.end14.i.i607 @@ -35132,8 +35119,8 @@ while.cond.i.i.i.i: ; preds = %if.then8.i.i598, %i br i1 %cmp.i10.i.i.i, label %while.body.i.i.i.i, label %ucs1lib_find_max_char.exit.i.i.i while.body.i.i.i.i: ; preds = %while.cond.i.i.i.i - %178 = ptrtoint ptr %p.0.i.i.i.i to i64 - %and.i.i.i.i = and i64 %178, 7 + %176 = ptrtoint ptr %p.0.i.i.i.i to i64 + %and.i.i.i.i = and i64 %176, 7 %tobool.not.i.i.i.i638 = icmp eq i64 %and.i.i.i.i, 0 br i1 %tobool.not.i.i.i.i638, label %while.cond1.i.i.i.i, label %if.end11.i.i.i.i @@ -35144,8 +35131,8 @@ while.cond1.i.i.i.i: ; preds = %while.body.i.i.i.i, br i1 %cmp2.not.i.i.i.i, label %while.end.i.i.i.i, label %while.body3.i.i.i.i while.body3.i.i.i.i: ; preds = %while.cond1.i.i.i.i - %179 = load i64, ptr %_p.0.i.i.i.i, align 8 - %and4.i.i.i.i = and i64 %179, -9187201950435737472 + %177 = load i64, ptr %_p.0.i.i.i.i, align 8 + %and4.i.i.i.i = and i64 %177, -9187201950435737472 %tobool5.not.i.i.i.i = icmp eq i64 %and4.i.i.i.i, 0 br i1 %tobool5.not.i.i.i.i, label %while.cond1.i.i.i.i, label %ucs1lib_find_max_char.exit.i.i.i, !llvm.loop !7 @@ -35156,8 +35143,8 @@ while.end.i.i.i.i: ; preds = %while.cond1.i.i.i.i if.end11.i.i.i.i: ; preds = %while.end.i.i.i.i, %while.body.i.i.i.i %p.1.i.i.i.i = phi ptr [ %p.0.i.i.i.i, %while.body.i.i.i.i ], [ %_p.0.i.i.i.i, %while.end.i.i.i.i ] %incdec.ptr.i.i.i.i = getelementptr i8, ptr %p.1.i.i.i.i, i64 1 - %180 = load i8, ptr %p.1.i.i.i.i, align 1 - %tobool13.not.i.i.i.i = icmp sgt i8 %180, -1 + %178 = load i8, ptr %p.1.i.i.i.i, align 1 + %tobool13.not.i.i.i.i = icmp sgt i8 %178, -1 br i1 %tobool13.not.i.i.i.i, label %while.cond.i.i.i.i, label %ucs1lib_find_max_char.exit.i.i.i, !llvm.loop !8 ucs1lib_find_max_char.exit.i.i.i: ; preds = %if.end11.i.i.i.i, %while.end.i.i.i.i, %while.cond.i.i.i.i, %while.body3.i.i.i.i @@ -35167,22 +35154,22 @@ ucs1lib_find_max_char.exit.i.i.i: ; preds = %if.end11.i.i.i.i, % br i1 %tobool.not.i.i.i630, label %onError.i.i549, label %if.end9.i.i.i if.end9.i.i.i: ; preds = %ucs1lib_find_max_char.exit.i.i.i - %181 = getelementptr i8, ptr %call7.i.i.i, i64 32 - %op.val.i.i.i.i631 = load i32, ptr %181, align 8 - %182 = and i32 %op.val.i.i.i.i631, 32 - %tobool.not.i11.i.i.i = icmp eq i32 %182, 0 + %179 = getelementptr i8, ptr %call7.i.i.i, i64 32 + %op.val.i.i.i.i631 = load i32, ptr %179, align 8 + %180 = and i32 %op.val.i.i.i.i631, 32 + %tobool.not.i11.i.i.i = icmp eq i32 %180, 0 br i1 %tobool.not.i11.i.i.i, label %if.end.i.i.i.i636, label %if.then.i.i.i.i632 if.then.i.i.i.i632: ; preds = %if.end9.i.i.i - %183 = and i32 %op.val.i.i.i.i631, 64 - %tobool.not.i.i.i.i.i633 = icmp eq i32 %183, 0 + %181 = and i32 %op.val.i.i.i.i631, 64 + %tobool.not.i.i.i.i.i633 = icmp eq i32 %181, 0 %retval.0.v.i.i.i.i.i634 = select i1 %tobool.not.i.i.i.i.i633, i64 56, i64 40 %retval.0.i.i.i.i.i635 = getelementptr i8, ptr %call7.i.i.i, i64 %retval.0.v.i.i.i.i.i634 br label %PyUnicode_DATA.exit.i.i.i if.end.i.i.i.i636: ; preds = %if.end9.i.i.i - %184 = getelementptr i8, ptr %call7.i.i.i, i64 56 - %op.val3.i.i.i.i637 = load ptr, ptr %184, align 8 + %182 = getelementptr i8, ptr %call7.i.i.i, i64 56 + %op.val3.i.i.i.i637 = load ptr, ptr %182, align 8 br label %PyUnicode_DATA.exit.i.i.i PyUnicode_DATA.exit.i.i.i: ; preds = %if.end.i.i.i.i636, %if.then.i.i.i.i632 @@ -35196,7 +35183,7 @@ if.end14.i.i607: ; preds = %PyUnicode_DATA.exit br i1 %cmp15.i.i608, label %if.then17.i.i626, label %if.else.i.i609 if.then17.i.i626: ; preds = %if.end14.i.i607 - %call.val57.i.i627 = load ptr, ptr %174, align 8 + %call.val57.i.i627 = load ptr, ptr %172, align 8 %arrayidx.i.i.i628 = getelementptr ptr, ptr %call.val57.i.i627, i64 %count.0136.i.i store ptr %retval.0.i109.i.i, ptr %arrayidx.i.i.i628, align 8 br label %if.end22.i.i619 @@ -35204,16 +35191,16 @@ if.then17.i.i626: ; preds = %if.end14.i.i607 if.else.i.i609: ; preds = %if.end14.i.i607 %call18.i.i610 = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i531, ptr noundef nonnull %retval.0.i109.i.i) #35 %tobool.not.i.i611 = icmp eq i32 %call18.i.i610, 0 - %185 = load i64, ptr %retval.0.i109.i.i, align 8 - %186 = and i64 %185, 2147483648 - %cmp.i100.not.i.i618 = icmp eq i64 %186, 0 + %183 = load i64, ptr %retval.0.i109.i.i, align 8 + %184 = and i64 %183, 2147483648 + %cmp.i100.not.i.i618 = icmp eq i64 %184, 0 br i1 %tobool.not.i.i611, label %if.else20.i.i617, label %if.then19.i.i612 if.then19.i.i612: ; preds = %if.else.i.i609 br i1 %cmp.i100.not.i.i618, label %if.end.i86.i.i614, label %onError.i.i549 if.end.i86.i.i614: ; preds = %if.then19.i.i612 - %dec.i87.i.i615 = add i64 %185, -1 + %dec.i87.i.i615 = add i64 %183, -1 store i64 %dec.i87.i.i615, ptr %retval.0.i109.i.i, align 8 %cmp.i88.i.i616 = icmp eq i64 %dec.i87.i.i615, 0 br i1 %cmp.i88.i.i616, label %onError.sink.split.i.i559, label %onError.i.i549 @@ -35222,7 +35209,7 @@ if.else20.i.i617: ; preds = %if.else.i.i609 br i1 %cmp.i100.not.i.i618, label %if.end.i77.i.i622, label %if.end22.i.i619 if.end.i77.i.i622: ; preds = %if.else20.i.i617 - %dec.i78.i.i623 = add i64 %185, -1 + %dec.i78.i.i623 = add i64 %183, -1 store i64 %dec.i78.i.i623, ptr %retval.0.i109.i.i, align 8 %cmp.i79.i.i624 = icmp eq i64 %dec.i78.i.i623, 0 br i1 %cmp.i79.i.i624, label %if.then1.i80.i.i625, label %if.end22.i.i619 @@ -35254,16 +35241,15 @@ while.end.i.i582: ; preds = %for.end.i.i587, %la %cmp26.i.i585 = icmp eq i64 %count.0.lcssa.i.i584, 0 br i1 %cmp26.i.i585, label %land.lhs.true.i.i534, label %if.else32.i.i536 -land.lhs.true.i.i534: ; preds = %while.end.i.i582, %while.cond.preheader.i.i533 - %i.0.lcssa154.i.i = phi i64 [ %i.0.lcssa.i.i583, %while.end.i.i582 ], [ 0, %while.cond.preheader.i.i533 ] - %187 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i.i535 = load ptr, ptr %187, align 8 +land.lhs.true.i.i534: ; preds = %while.end.i.i582 + %185 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i.i535 = load ptr, ptr %185, align 8 %cmp.i58.not.i.i = icmp eq ptr %str_obj.val.i.i535, @PyUnicode_Type br i1 %cmp.i58.not.i.i, label %if.then30.i.i572, label %if.else32.i.i536 if.then30.i.i572: ; preds = %land.lhs.true.i.i534 - %188 = load i32, ptr %self, align 8 - %add.i.i.i573 = add i32 %188, 1 + %186 = load i32, ptr %self, align 8 + %add.i.i.i573 = add i32 %186, 1 %cmp.i93.i.i574 = icmp eq i32 %add.i.i.i573, 0 br i1 %cmp.i93.i.i574, label %Py_INCREF.exit.i.i576, label %if.end.i94.i.i575 @@ -35272,33 +35258,30 @@ if.end.i94.i.i575: ; preds = %if.then30.i.i572 br label %Py_INCREF.exit.i.i576 Py_INCREF.exit.i.i576: ; preds = %if.end.i94.i.i575, %if.then30.i.i572 - %189 = getelementptr i8, ptr %call.i.i531, i64 24 - %call.val56.i.i577 = load ptr, ptr %189, align 8 + %call.val56.i.i577 = load ptr, ptr %172, align 8 store ptr %self, ptr %call.val56.i.i577, align 8 br label %if.end55.i.i563 if.else32.i.i536: ; preds = %land.lhs.true.i.i534, %while.end.i.i582 - %count.0.lcssa155.i.i = phi i64 [ 0, %land.lhs.true.i.i534 ], [ %count.0.lcssa.i.i584, %while.end.i.i582 ] - %i.0.lcssa153.i.i = phi i64 [ %i.0.lcssa154.i.i, %land.lhs.true.i.i534 ], [ %i.0.lcssa.i.i583, %while.end.i.i582 ] - %cmp33.not.i.i537 = icmp sgt i64 %i.0.lcssa153.i.i, %self.val73 + %cmp33.not.i.i537 = icmp sgt i64 %i.0.lcssa.i.i583, %self.val73 br i1 %cmp33.not.i.i537, label %if.end55.i.i563, label %if.then35.i.i538 if.then35.i.i538: ; preds = %if.else32.i.i536 - %add.ptr36.i.i539 = getelementptr i8, ptr %retval.0.i464, i64 %i.0.lcssa153.i.i - %sub37.i.i540 = sub i64 %self.val73, %i.0.lcssa153.i.i + %add.ptr36.i.i539 = getelementptr i8, ptr %retval.0.i464, i64 %i.0.lcssa.i.i583 + %sub37.i.i540 = sub i64 %self.val73, %i.0.lcssa.i.i583 switch i64 %sub37.i.i540, label %if.end4.i69.i.i [ i64 0, label %if.end42.i.i542 i64 1, label %if.then2.i60.i.i ] if.then2.i60.i.i: ; preds = %if.then35.i.i538 - %190 = load i8, ptr %add.ptr36.i.i539, align 1 - %idxprom.i.i67.i.i = zext nneg i8 %190 to i64 + %187 = load i8, ptr %add.ptr36.i.i539, align 1 + %idxprom.i.i67.i.i = zext nneg i8 %187 to i64 %arrayidx.i.i68.i.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i67.i.i - %191 = and i8 %190, 127 - %idxprom3.i.i63.i.i = zext nneg i8 %191 to i64 + %188 = and i8 %187, 127 + %idxprom3.i.i63.i.i = zext nneg i8 %188 to i64 %arrayidx4.i.i64.i.i = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i63.i.i - %cmp.i.i61119.i.i = icmp slt i8 %190, 0 + %cmp.i.i61119.i.i = icmp slt i8 %187, 0 %retval.0.i65.i.i = select i1 %cmp.i.i61119.i.i, ptr %arrayidx4.i.i64.i.i, ptr %arrayidx.i.i68.i.i %cmp39.i.i541 = icmp eq ptr %retval.0.i65.i.i, null br i1 %cmp39.i.i541, label %onError.i.i549, label %if.end42.i.i542 @@ -35313,8 +35296,8 @@ while.cond.i.i71.i.i: ; preds = %if.end11.i.i92.i.i, br i1 %cmp.i10.i73.i.i, label %while.body.i.i89.i.i, label %ucs1lib_find_max_char.exit.i74.i.i while.body.i.i89.i.i: ; preds = %while.cond.i.i71.i.i - %192 = ptrtoint ptr %p.0.i.i72.i.i to i64 - %and.i.i90.i.i = and i64 %192, 7 + %189 = ptrtoint ptr %p.0.i.i72.i.i to i64 + %and.i.i90.i.i = and i64 %189, 7 %tobool.not.i.i91.i.i = icmp eq i64 %and.i.i90.i.i, 0 br i1 %tobool.not.i.i91.i.i, label %while.cond1.i.i96.i.i, label %if.end11.i.i92.i.i @@ -35325,8 +35308,8 @@ while.cond1.i.i96.i.i: ; preds = %while.body.i.i89.i. br i1 %cmp2.not.i.i99.i.i, label %while.end.i.i103.i.i, label %while.body3.i.i100.i.i while.body3.i.i100.i.i: ; preds = %while.cond1.i.i96.i.i - %193 = load i64, ptr %_p.0.i.i97.i.i, align 8 - %and4.i.i101.i.i = and i64 %193, -9187201950435737472 + %190 = load i64, ptr %_p.0.i.i97.i.i, align 8 + %and4.i.i101.i.i = and i64 %190, -9187201950435737472 %tobool5.not.i.i102.i.i = icmp eq i64 %and4.i.i101.i.i, 0 br i1 %tobool5.not.i.i102.i.i, label %while.cond1.i.i96.i.i, label %ucs1lib_find_max_char.exit.i74.i.i, !llvm.loop !7 @@ -35337,8 +35320,8 @@ while.end.i.i103.i.i: ; preds = %while.cond1.i.i96.i if.end11.i.i92.i.i: ; preds = %while.end.i.i103.i.i, %while.body.i.i89.i.i %p.1.i.i93.i.i = phi ptr [ %p.0.i.i72.i.i, %while.body.i.i89.i.i ], [ %_p.0.i.i97.i.i, %while.end.i.i103.i.i ] %incdec.ptr.i.i94.i.i = getelementptr i8, ptr %p.1.i.i93.i.i, i64 1 - %194 = load i8, ptr %p.1.i.i93.i.i, align 1 - %tobool13.not.i.i95.i.i = icmp sgt i8 %194, -1 + %191 = load i8, ptr %p.1.i.i93.i.i, align 1 + %tobool13.not.i.i95.i.i = icmp sgt i8 %191, -1 br i1 %tobool13.not.i.i95.i.i, label %while.cond.i.i71.i.i, label %ucs1lib_find_max_char.exit.i74.i.i, !llvm.loop !8 ucs1lib_find_max_char.exit.i74.i.i: ; preds = %if.end11.i.i92.i.i, %while.end.i.i103.i.i, %while.cond.i.i71.i.i, %while.body3.i.i100.i.i @@ -35348,22 +35331,22 @@ ucs1lib_find_max_char.exit.i74.i.i: ; preds = %if.end11.i.i92.i.i, br i1 %tobool.not.i77.i.i, label %onError.i.i549, label %if.end9.i78.i.i if.end9.i78.i.i: ; preds = %ucs1lib_find_max_char.exit.i74.i.i - %195 = getelementptr i8, ptr %call7.i76.i.i, i64 32 - %op.val.i.i79.i.i = load i32, ptr %195, align 8 - %196 = and i32 %op.val.i.i79.i.i, 32 - %tobool.not.i11.i80.i.i = icmp eq i32 %196, 0 + %192 = getelementptr i8, ptr %call7.i76.i.i, i64 32 + %op.val.i.i79.i.i = load i32, ptr %192, align 8 + %193 = and i32 %op.val.i.i79.i.i, 32 + %tobool.not.i11.i80.i.i = icmp eq i32 %193, 0 br i1 %tobool.not.i11.i80.i.i, label %if.end.i.i87.i.i, label %if.then.i.i81.i.i if.then.i.i81.i.i: ; preds = %if.end9.i78.i.i - %197 = and i32 %op.val.i.i79.i.i, 64 - %tobool.not.i.i.i82.i.i = icmp eq i32 %197, 0 + %194 = and i32 %op.val.i.i79.i.i, 64 + %tobool.not.i.i.i82.i.i = icmp eq i32 %194, 0 %retval.0.v.i.i.i83.i.i = select i1 %tobool.not.i.i.i82.i.i, i64 56, i64 40 %retval.0.i.i.i84.i.i = getelementptr i8, ptr %call7.i76.i.i, i64 %retval.0.v.i.i.i83.i.i br label %PyUnicode_DATA.exit.i85.i.i if.end.i.i87.i.i: ; preds = %if.end9.i78.i.i - %198 = getelementptr i8, ptr %call7.i76.i.i, i64 56 - %op.val3.i.i88.i.i = load ptr, ptr %198, align 8 + %195 = getelementptr i8, ptr %call7.i76.i.i, i64 56 + %op.val3.i.i88.i.i = load ptr, ptr %195, align 8 br label %PyUnicode_DATA.exit.i85.i.i PyUnicode_DATA.exit.i85.i.i: ; preds = %if.end.i.i87.i.i, %if.then.i.i81.i.i @@ -35373,29 +35356,28 @@ PyUnicode_DATA.exit.i85.i.i: ; preds = %if.end.i.i87.i.i, % if.end42.i.i542: ; preds = %PyUnicode_DATA.exit.i85.i.i, %if.then2.i60.i.i, %if.then35.i.i538 %retval.0.i65115.i.i = phi ptr [ %retval.0.i65.i.i, %if.then2.i60.i.i ], [ getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 25216), %if.then35.i.i538 ], [ %call7.i76.i.i, %PyUnicode_DATA.exit.i85.i.i ] - %cmp43.i.i543 = icmp slt i64 %count.0.lcssa155.i.i, 12 + %cmp43.i.i543 = icmp slt i64 %count.0.lcssa.i.i584, 12 br i1 %cmp43.i.i543, label %if.then45.i.i570, label %if.else46.i.i544 if.then45.i.i570: ; preds = %if.end42.i.i542 - %199 = getelementptr i8, ptr %call.i.i531, i64 24 - %call.val.i.i571 = load ptr, ptr %199, align 8 - %arrayidx.i106.i.i = getelementptr ptr, ptr %call.val.i.i571, i64 %count.0.lcssa155.i.i + %call.val.i.i571 = load ptr, ptr %172, align 8 + %arrayidx.i106.i.i = getelementptr ptr, ptr %call.val.i.i571, i64 %count.0.lcssa.i.i584 store ptr %retval.0.i65115.i.i, ptr %arrayidx.i106.i.i, align 8 br label %if.end52.i.i561 if.else46.i.i544: ; preds = %if.end42.i.i542 %call47.i.i545 = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i531, ptr noundef nonnull %retval.0.i65115.i.i) #35 %tobool48.not.i.i546 = icmp eq i32 %call47.i.i545, 0 - %200 = load i64, ptr %retval.0.i65115.i.i, align 8 - %201 = and i64 %200, 2147483648 - %cmp.i108.not.i.i547 = icmp eq i64 %201, 0 + %196 = load i64, ptr %retval.0.i65115.i.i, align 8 + %197 = and i64 %196, 2147483648 + %cmp.i108.not.i.i547 = icmp eq i64 %197, 0 br i1 %tobool48.not.i.i546, label %if.else50.i.i560, label %if.then49.i.i548 if.then49.i.i548: ; preds = %if.else46.i.i544 br i1 %cmp.i108.not.i.i547, label %if.end.i68.i.i556, label %onError.i.i549 if.end.i68.i.i556: ; preds = %if.then49.i.i548 - %dec.i69.i.i557 = add i64 %200, -1 + %dec.i69.i.i557 = add i64 %196, -1 store i64 %dec.i69.i.i557, ptr %retval.0.i65115.i.i, align 8 %cmp.i70.i.i558 = icmp eq i64 %dec.i69.i.i557, 0 br i1 %cmp.i70.i.i558, label %onError.sink.split.i.i559, label %onError.i.i549 @@ -35404,7 +35386,7 @@ if.else50.i.i560: ; preds = %if.else46.i.i544 br i1 %cmp.i108.not.i.i547, label %if.end.i59.i.i566, label %if.end52.i.i561 if.end.i59.i.i566: ; preds = %if.else50.i.i560 - %dec.i60.i.i567 = add i64 %200, -1 + %dec.i60.i.i567 = add i64 %196, -1 store i64 %dec.i60.i.i567, ptr %retval.0.i65115.i.i, align 8 %cmp.i61.i.i568 = icmp eq i64 %dec.i60.i.i567, 0 br i1 %cmp.i61.i.i568, label %if.then1.i62.i.i569, label %if.end52.i.i561 @@ -35414,11 +35396,11 @@ if.then1.i62.i.i569: ; preds = %if.end.i59.i.i566 br label %if.end52.i.i561 if.end52.i.i561: ; preds = %if.then1.i62.i.i569, %if.end.i59.i.i566, %if.else50.i.i560, %if.then45.i.i570 - %inc53.i.i562 = add i64 %count.0.lcssa155.i.i, 1 + %inc53.i.i562 = add i64 %count.0.lcssa.i.i584, 1 br label %if.end55.i.i563 if.end55.i.i563: ; preds = %if.end52.i.i561, %if.else32.i.i536, %Py_INCREF.exit.i.i576 - %count.2.i.i564 = phi i64 [ 1, %Py_INCREF.exit.i.i576 ], [ %inc53.i.i562, %if.end52.i.i561 ], [ %count.0.lcssa155.i.i, %if.else32.i.i536 ] + %count.2.i.i564 = phi i64 [ 1, %Py_INCREF.exit.i.i576 ], [ %inc53.i.i562, %if.end52.i.i561 ], [ %count.0.lcssa.i.i584, %if.else32.i.i536 ] %ob_size.i.i.i565 = getelementptr inbounds nuw i8, ptr %call.i.i531, i64 16 store i64 %count.2.i.i564, ptr %ob_size.i.i.i565, align 8 br label %sw.epilog @@ -35429,13 +35411,13 @@ onError.sink.split.i.i559: ; preds = %if.end.i68.i.i556, br label %onError.i.i549 onError.i.i549: ; preds = %ucs1lib_find_max_char.exit.i.i.i, %if.then2.i.i.i, %onError.sink.split.i.i559, %if.end.i68.i.i556, %if.then49.i.i548, %ucs1lib_find_max_char.exit.i74.i.i, %if.then2.i60.i.i, %if.end.i86.i.i614, %if.then19.i.i612 - %202 = load i64, ptr %call.i.i531, align 8 - %203 = and i64 %202, 2147483648 - %cmp.i112.not.i.i550 = icmp eq i64 %203, 0 + %198 = load i64, ptr %call.i.i531, align 8 + %199 = and i64 %198, 2147483648 + %cmp.i112.not.i.i550 = icmp eq i64 %199, 0 br i1 %cmp.i112.not.i.i550, label %if.end.i.i.i552, label %sw.epilog if.end.i.i.i552: ; preds = %onError.i.i549 - %dec.i.i.i553 = add i64 %202, -1 + %dec.i.i.i553 = add i64 %198, -1 store i64 %dec.i.i.i553, ptr %call.i.i531, align 8 %cmp.i.i.i554 = icmp eq i64 %dec.i.i.i553, 0 br i1 %cmp.i.i.i554, label %if.then1.i.i.i555, label %sw.epilog @@ -35445,8 +35427,8 @@ if.then1.i.i.i555: ; preds = %if.end.i.i.i552 br label %sw.epilog if.end3.i640: ; preds = %if.else57 - %204 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i641 = add nsw i64 %204, 1 + %200 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i641 = add nsw i64 %200, 1 %call5.i642 = tail call ptr @PyList_New(i64 noundef %cond.i641) #35 %cmp6.i643 = icmp eq ptr %call5.i642, null br i1 %cmp6.i643, label %sw.epilog, label %while.cond.preheader.i644 @@ -35456,7 +35438,7 @@ while.cond.preheader.i644: ; preds = %if.end3.i640 br i1 %cmp9161.i, label %while.body.lr.ph.i687, label %land.lhs.true.i645 while.body.lr.ph.i687: ; preds = %while.cond.preheader.i644 - %205 = getelementptr i8, ptr %call5.i642, i64 24 + %201 = getelementptr i8, ptr %call5.i642, i64 24 br label %while.body.i688 while.body.i688: ; preds = %if.end29.i711, %while.body.lr.ph.i687 @@ -35475,13 +35457,13 @@ if.end14.i693: ; preds = %while.body.i688 ] if.then2.i.i694: ; preds = %if.end14.i693 - %206 = load i8, ptr %add.ptr.i689, align 1 - %idxprom.i.i.i695 = zext nneg i8 %206 to i64 + %202 = load i8, ptr %add.ptr.i689, align 1 + %idxprom.i.i.i695 = zext nneg i8 %202 to i64 %arrayidx.i.i66.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i.i695 - %207 = and i8 %206, 127 - %idxprom3.i.i.i696 = zext nneg i8 %207 to i64 + %203 = and i8 %202, 127 + %idxprom3.i.i.i696 = zext nneg i8 %203 to i64 %arrayidx4.i.i.i697 = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i.i696 - %cmp.i.i64136.i = icmp slt i8 %206, 0 + %cmp.i.i64136.i = icmp slt i8 %202, 0 %retval.0.i65.i = select i1 %cmp.i.i64136.i, ptr %arrayidx4.i.i.i697, ptr %arrayidx.i.i66.i %cmp19.i698 = icmp eq ptr %retval.0.i65.i, null br i1 %cmp19.i698, label %onError.i658, label %if.end21.i699 @@ -35496,8 +35478,8 @@ while.cond.i.i.i723: ; preds = %if.end11.i.i.i738, br i1 %cmp.i10.i.i725, label %while.body.i.i.i736, label %ucs1lib_find_max_char.exit.i.i726 while.body.i.i.i736: ; preds = %while.cond.i.i.i723 - %208 = ptrtoint ptr %p.0.i.i.i724 to i64 - %and.i.i.i737 = and i64 %208, 7 + %204 = ptrtoint ptr %p.0.i.i.i724 to i64 + %and.i.i.i737 = and i64 %204, 7 %tobool.not.i.i73.i = icmp eq i64 %and.i.i.i737, 0 br i1 %tobool.not.i.i73.i, label %while.cond1.i.i.i742, label %if.end11.i.i.i738 @@ -35508,8 +35490,8 @@ while.cond1.i.i.i742: ; preds = %while.body.i.i.i736 br i1 %cmp2.not.i.i.i745, label %while.end.i.i.i749, label %while.body3.i.i.i746 while.body3.i.i.i746: ; preds = %while.cond1.i.i.i742 - %209 = load i64, ptr %_p.0.i.i.i743, align 8 - %and4.i.i.i747 = and i64 %209, -9187201950435737472 + %205 = load i64, ptr %_p.0.i.i.i743, align 8 + %and4.i.i.i747 = and i64 %205, -9187201950435737472 %tobool5.not.i.i.i748 = icmp eq i64 %and4.i.i.i747, 0 br i1 %tobool5.not.i.i.i748, label %while.cond1.i.i.i742, label %ucs1lib_find_max_char.exit.i.i726, !llvm.loop !7 @@ -35520,8 +35502,8 @@ while.end.i.i.i749: ; preds = %while.cond1.i.i.i74 if.end11.i.i.i738: ; preds = %while.end.i.i.i749, %while.body.i.i.i736 %p.1.i.i.i739 = phi ptr [ %p.0.i.i.i724, %while.body.i.i.i736 ], [ %_p.0.i.i.i743, %while.end.i.i.i749 ] %incdec.ptr.i.i.i740 = getelementptr i8, ptr %p.1.i.i.i739, i64 1 - %210 = load i8, ptr %p.1.i.i.i739, align 1 - %tobool13.not.i.i.i741 = icmp sgt i8 %210, -1 + %206 = load i8, ptr %p.1.i.i.i739, align 1 + %tobool13.not.i.i.i741 = icmp sgt i8 %206, -1 br i1 %tobool13.not.i.i.i741, label %while.cond.i.i.i723, label %ucs1lib_find_max_char.exit.i.i726, !llvm.loop !8 ucs1lib_find_max_char.exit.i.i726: ; preds = %if.end11.i.i.i738, %while.end.i.i.i749, %while.cond.i.i.i723, %while.body3.i.i.i746 @@ -35531,22 +35513,22 @@ ucs1lib_find_max_char.exit.i.i726: ; preds = %if.end11.i.i.i738, br i1 %tobool.not.i69.i, label %onError.i658, label %if.end9.i.i728 if.end9.i.i728: ; preds = %ucs1lib_find_max_char.exit.i.i726 - %211 = getelementptr i8, ptr %call7.i.i727, i64 32 - %op.val.i.i.i729 = load i32, ptr %211, align 8 - %212 = and i32 %op.val.i.i.i729, 32 - %tobool.not.i11.i.i730 = icmp eq i32 %212, 0 + %207 = getelementptr i8, ptr %call7.i.i727, i64 32 + %op.val.i.i.i729 = load i32, ptr %207, align 8 + %208 = and i32 %op.val.i.i.i729, 32 + %tobool.not.i11.i.i730 = icmp eq i32 %208, 0 br i1 %tobool.not.i11.i.i730, label %if.end.i.i72.i, label %if.then.i.i.i731 if.then.i.i.i731: ; preds = %if.end9.i.i728 - %213 = and i32 %op.val.i.i.i729, 64 - %tobool.not.i.i.i70.i = icmp eq i32 %213, 0 + %209 = and i32 %op.val.i.i.i729, 64 + %tobool.not.i.i.i70.i = icmp eq i32 %209, 0 %retval.0.v.i.i.i.i732 = select i1 %tobool.not.i.i.i70.i, i64 56, i64 40 %retval.0.i.i.i71.i = getelementptr i8, ptr %call7.i.i727, i64 %retval.0.v.i.i.i.i732 br label %PyUnicode_DATA.exit.i.i733 if.end.i.i72.i: ; preds = %if.end9.i.i728 - %214 = getelementptr i8, ptr %call7.i.i727, i64 56 - %op.val3.i.i.i735 = load ptr, ptr %214, align 8 + %210 = getelementptr i8, ptr %call7.i.i727, i64 56 + %op.val3.i.i.i735 = load ptr, ptr %210, align 8 br label %PyUnicode_DATA.exit.i.i733 PyUnicode_DATA.exit.i.i733: ; preds = %if.end.i.i72.i, %if.then.i.i.i731 @@ -35560,7 +35542,7 @@ if.end21.i699: ; preds = %PyUnicode_DATA.exit br i1 %cmp22.i700, label %if.then23.i720, label %if.else24.i701 if.then23.i720: ; preds = %if.end21.i699 - %call5.val62.i721 = load ptr, ptr %205, align 8 + %call5.val62.i721 = load ptr, ptr %201, align 8 %arrayidx.i74.i = getelementptr ptr, ptr %call5.val62.i721, i64 %count.0163.i store ptr %retval.0.i65126.i, ptr %arrayidx.i74.i, align 8 br label %if.end29.i711 @@ -35568,16 +35550,16 @@ if.then23.i720: ; preds = %if.end21.i699 if.else24.i701: ; preds = %if.end21.i699 %call25.i702 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i642, ptr noundef nonnull %retval.0.i65126.i) #35 %tobool.not.i703 = icmp eq i32 %call25.i702, 0 - %215 = load i64, ptr %retval.0.i65126.i, align 8 - %216 = and i64 %215, 2147483648 - %cmp.i98.not.i710 = icmp eq i64 %216, 0 + %211 = load i64, ptr %retval.0.i65126.i, align 8 + %212 = and i64 %211, 2147483648 + %cmp.i98.not.i710 = icmp eq i64 %212, 0 br i1 %tobool.not.i703, label %if.else27.i709, label %if.then26.i704 if.then26.i704: ; preds = %if.else24.i701 br i1 %cmp.i98.not.i710, label %if.end.i84.i706, label %onError.i658 if.end.i84.i706: ; preds = %if.then26.i704 - %dec.i85.i707 = add i64 %215, -1 + %dec.i85.i707 = add i64 %211, -1 store i64 %dec.i85.i707, ptr %retval.0.i65126.i, align 8 %cmp.i86.i708 = icmp eq i64 %dec.i85.i707, 0 br i1 %cmp.i86.i708, label %onError.sink.split.i667, label %onError.i658 @@ -35586,7 +35568,7 @@ if.else27.i709: ; preds = %if.else24.i701 br i1 %cmp.i98.not.i710, label %if.end.i75.i716, label %if.end29.i711 if.end.i75.i716: ; preds = %if.else27.i709 - %dec.i76.i717 = add i64 %215, -1 + %dec.i76.i717 = add i64 %211, -1 store i64 %dec.i76.i717, ptr %retval.0.i65126.i, align 8 %cmp.i77.i718 = icmp eq i64 %dec.i76.i717, 0 br i1 %cmp.i77.i718, label %if.then1.i78.i719, label %if.end29.i711 @@ -35608,14 +35590,14 @@ while.end.i751: ; preds = %while.body.i688 land.lhs.true.i645: ; preds = %while.end.i751, %while.cond.preheader.i644 %i.0.lcssa188.i = phi i64 [ %i.0162.i, %while.end.i751 ], [ 0, %while.cond.preheader.i644 ] - %217 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i646 = load ptr, ptr %217, align 8 + %213 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i646 = load ptr, ptr %213, align 8 %cmp.i75.not.i = icmp eq ptr %str_obj.val.i646, @PyUnicode_Type br i1 %cmp.i75.not.i, label %if.then34.i681, label %if.else36.i647 if.then34.i681: ; preds = %land.lhs.true.i645 - %218 = load i32, ptr %self, align 8 - %add.i.i682 = add i32 %218, 1 + %214 = load i32, ptr %self, align 8 + %add.i.i682 = add i32 %214, 1 %cmp.i91.i683 = icmp eq i32 %add.i.i682, 0 br i1 %cmp.i91.i683, label %Py_INCREF.exit.i685, label %if.end.i92.i684 @@ -35624,8 +35606,8 @@ if.end.i92.i684: ; preds = %if.then34.i681 br label %Py_INCREF.exit.i685 Py_INCREF.exit.i685: ; preds = %if.end.i92.i684, %if.then34.i681 - %219 = getelementptr i8, ptr %call5.i642, i64 24 - %call5.val61.i686 = load ptr, ptr %219, align 8 + %215 = getelementptr i8, ptr %call5.i642, i64 24 + %call5.val61.i686 = load ptr, ptr %215, align 8 store ptr %self, ptr %call5.val61.i686, align 8 br label %if.end53.i671 @@ -35640,13 +35622,13 @@ if.else36.i647: ; preds = %if.end29.i711, %lan ] if.then2.i77.i: ; preds = %if.else36.i647 - %220 = load i8, ptr %add.ptr37.i648, align 1 - %idxprom.i.i84.i = zext nneg i8 %220 to i64 + %216 = load i8, ptr %add.ptr37.i648, align 1 + %idxprom.i.i84.i = zext nneg i8 %216 to i64 %arrayidx.i.i85.i = getelementptr [128 x %struct.anon.762], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 62496), i64 0, i64 %idxprom.i.i84.i - %221 = and i8 %220, 127 - %idxprom3.i.i80.i = zext nneg i8 %221 to i64 + %217 = and i8 %216, 127 + %idxprom3.i.i80.i = zext nneg i8 %217 to i64 %arrayidx4.i.i81.i = getelementptr [128 x %struct.anon.763], ptr getelementptr inbounds nuw (i8, ptr @_PyRuntime, i64 68640), i64 0, i64 %idxprom3.i.i80.i - %cmp.i.i78137.i = icmp slt i8 %220, 0 + %cmp.i.i78137.i = icmp slt i8 %216, 0 %retval.0.i82.i = select i1 %cmp.i.i78137.i, ptr %arrayidx4.i.i81.i, ptr %arrayidx.i.i85.i %cmp40.i650 = icmp eq ptr %retval.0.i82.i, null br i1 %cmp40.i650, label %onError.i658, label %if.end42.i651 @@ -35661,8 +35643,8 @@ while.cond.i.i88.i: ; preds = %if.end11.i.i109.i, br i1 %cmp.i10.i90.i, label %while.body.i.i106.i, label %ucs1lib_find_max_char.exit.i91.i while.body.i.i106.i: ; preds = %while.cond.i.i88.i - %222 = ptrtoint ptr %p.0.i.i89.i to i64 - %and.i.i107.i = and i64 %222, 7 + %218 = ptrtoint ptr %p.0.i.i89.i to i64 + %and.i.i107.i = and i64 %218, 7 %tobool.not.i.i108.i = icmp eq i64 %and.i.i107.i, 0 br i1 %tobool.not.i.i108.i, label %while.cond1.i.i113.i, label %if.end11.i.i109.i @@ -35673,8 +35655,8 @@ while.cond1.i.i113.i: ; preds = %while.body.i.i106.i br i1 %cmp2.not.i.i116.i, label %while.end.i.i120.i, label %while.body3.i.i117.i while.body3.i.i117.i: ; preds = %while.cond1.i.i113.i - %223 = load i64, ptr %_p.0.i.i114.i, align 8 - %and4.i.i118.i = and i64 %223, -9187201950435737472 + %219 = load i64, ptr %_p.0.i.i114.i, align 8 + %and4.i.i118.i = and i64 %219, -9187201950435737472 %tobool5.not.i.i119.i = icmp eq i64 %and4.i.i118.i, 0 br i1 %tobool5.not.i.i119.i, label %while.cond1.i.i113.i, label %ucs1lib_find_max_char.exit.i91.i, !llvm.loop !7 @@ -35685,8 +35667,8 @@ while.end.i.i120.i: ; preds = %while.cond1.i.i113. if.end11.i.i109.i: ; preds = %while.end.i.i120.i, %while.body.i.i106.i %p.1.i.i110.i = phi ptr [ %p.0.i.i89.i, %while.body.i.i106.i ], [ %_p.0.i.i114.i, %while.end.i.i120.i ] %incdec.ptr.i.i111.i = getelementptr i8, ptr %p.1.i.i110.i, i64 1 - %224 = load i8, ptr %p.1.i.i110.i, align 1 - %tobool13.not.i.i112.i = icmp sgt i8 %224, -1 + %220 = load i8, ptr %p.1.i.i110.i, align 1 + %tobool13.not.i.i112.i = icmp sgt i8 %220, -1 br i1 %tobool13.not.i.i112.i, label %while.cond.i.i88.i, label %ucs1lib_find_max_char.exit.i91.i, !llvm.loop !8 ucs1lib_find_max_char.exit.i91.i: ; preds = %if.end11.i.i109.i, %while.end.i.i120.i, %while.cond.i.i88.i, %while.body3.i.i117.i @@ -35696,22 +35678,22 @@ ucs1lib_find_max_char.exit.i91.i: ; preds = %if.end11.i.i109.i, br i1 %tobool.not.i94.i, label %onError.i658, label %if.end9.i95.i if.end9.i95.i: ; preds = %ucs1lib_find_max_char.exit.i91.i - %225 = getelementptr i8, ptr %call7.i93.i, i64 32 - %op.val.i.i96.i = load i32, ptr %225, align 8 - %226 = and i32 %op.val.i.i96.i, 32 - %tobool.not.i11.i97.i = icmp eq i32 %226, 0 + %221 = getelementptr i8, ptr %call7.i93.i, i64 32 + %op.val.i.i96.i = load i32, ptr %221, align 8 + %222 = and i32 %op.val.i.i96.i, 32 + %tobool.not.i11.i97.i = icmp eq i32 %222, 0 br i1 %tobool.not.i11.i97.i, label %if.end.i.i104.i, label %if.then.i.i98.i if.then.i.i98.i: ; preds = %if.end9.i95.i - %227 = and i32 %op.val.i.i96.i, 64 - %tobool.not.i.i.i99.i = icmp eq i32 %227, 0 + %223 = and i32 %op.val.i.i96.i, 64 + %tobool.not.i.i.i99.i = icmp eq i32 %223, 0 %retval.0.v.i.i.i100.i = select i1 %tobool.not.i.i.i99.i, i64 56, i64 40 %retval.0.i.i.i101.i = getelementptr i8, ptr %call7.i93.i, i64 %retval.0.v.i.i.i100.i br label %PyUnicode_DATA.exit.i102.i if.end.i.i104.i: ; preds = %if.end9.i95.i - %228 = getelementptr i8, ptr %call7.i93.i, i64 56 - %op.val3.i.i105.i = load ptr, ptr %228, align 8 + %224 = getelementptr i8, ptr %call7.i93.i, i64 56 + %op.val3.i.i105.i = load ptr, ptr %224, align 8 br label %PyUnicode_DATA.exit.i102.i PyUnicode_DATA.exit.i102.i: ; preds = %if.end.i.i104.i, %if.then.i.i98.i @@ -35725,8 +35707,8 @@ if.end42.i651: ; preds = %PyUnicode_DATA.exit br i1 %cmp43.i652, label %if.then44.i678, label %if.else45.i653 if.then44.i678: ; preds = %if.end42.i651 - %229 = getelementptr i8, ptr %call5.i642, i64 24 - %call5.val.i679 = load ptr, ptr %229, align 8 + %225 = getelementptr i8, ptr %call5.i642, i64 24 + %call5.val.i679 = load ptr, ptr %225, align 8 %arrayidx.i123.i = getelementptr ptr, ptr %call5.val.i679, i64 %count.0.lcssa189.i store ptr %retval.0.i82132.i, ptr %arrayidx.i123.i, align 8 br label %if.end51.i669 @@ -35734,16 +35716,16 @@ if.then44.i678: ; preds = %if.end42.i651 if.else45.i653: ; preds = %if.end42.i651 %call46.i654 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i642, ptr noundef nonnull %retval.0.i82132.i) #35 %tobool47.not.i655 = icmp eq i32 %call46.i654, 0 - %230 = load i64, ptr %retval.0.i82132.i, align 8 - %231 = and i64 %230, 2147483648 - %cmp.i106.not.i656 = icmp eq i64 %231, 0 + %226 = load i64, ptr %retval.0.i82132.i, align 8 + %227 = and i64 %226, 2147483648 + %cmp.i106.not.i656 = icmp eq i64 %227, 0 br i1 %tobool47.not.i655, label %if.else49.i668, label %if.then48.i657 if.then48.i657: ; preds = %if.else45.i653 br i1 %cmp.i106.not.i656, label %if.end.i66.i664, label %onError.i658 if.end.i66.i664: ; preds = %if.then48.i657 - %dec.i67.i665 = add i64 %230, -1 + %dec.i67.i665 = add i64 %226, -1 store i64 %dec.i67.i665, ptr %retval.0.i82132.i, align 8 %cmp.i68.i666 = icmp eq i64 %dec.i67.i665, 0 br i1 %cmp.i68.i666, label %onError.sink.split.i667, label %onError.i658 @@ -35752,7 +35734,7 @@ if.else49.i668: ; preds = %if.else45.i653 br i1 %cmp.i106.not.i656, label %if.end.i57.i674, label %if.end51.i669 if.end.i57.i674: ; preds = %if.else49.i668 - %dec.i58.i675 = add i64 %230, -1 + %dec.i58.i675 = add i64 %226, -1 store i64 %dec.i58.i675, ptr %retval.0.i82132.i, align 8 %cmp.i59.i676 = icmp eq i64 %dec.i58.i675, 0 br i1 %cmp.i59.i676, label %if.then1.i60.i677, label %if.end51.i669 @@ -35777,13 +35759,13 @@ onError.sink.split.i667: ; preds = %if.end.i66.i664, %i br label %onError.i658 onError.i658: ; preds = %ucs1lib_find_max_char.exit.i.i726, %if.then2.i.i694, %onError.sink.split.i667, %if.end.i66.i664, %if.then48.i657, %ucs1lib_find_max_char.exit.i91.i, %if.then2.i77.i, %if.end.i84.i706, %if.then26.i704 - %232 = load i64, ptr %call5.i642, align 8 - %233 = and i64 %232, 2147483648 - %cmp.i110.not.i659 = icmp eq i64 %233, 0 + %228 = load i64, ptr %call5.i642, align 8 + %229 = and i64 %228, 2147483648 + %cmp.i110.not.i659 = icmp eq i64 %229, 0 br i1 %cmp.i110.not.i659, label %if.end.i.i660, label %sw.epilog if.end.i.i660: ; preds = %onError.i658 - %dec.i.i661 = add i64 %232, -1 + %dec.i.i661 = add i64 %228, -1 store i64 %dec.i.i661, ptr %call5.i642, align 8 %cmp.i.i662 = icmp eq i64 %dec.i.i661, 0 br i1 %cmp.i.i662, label %if.then1.i.i663, label %sw.epilog @@ -35799,24 +35781,20 @@ sw.bb60: ; preds = %if.end49 ] if.then.i849: ; preds = %sw.bb60 - %234 = load ptr, ptr @PyExc_ValueError, align 8 - tail call void @PyErr_SetString(ptr noundef %234, ptr noundef nonnull @.str.197) #35 + %230 = load ptr, ptr @PyExc_ValueError, align 8 + tail call void @PyErr_SetString(ptr noundef %230, ptr noundef nonnull @.str.197) #35 br label %sw.epilog if.then2.i753: ; preds = %sw.bb60 - %235 = load i16, ptr %buf2.0, align 2 - %236 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i.i754 = add nsw i64 %236, 1 + %231 = load i16, ptr %buf2.0, align 2 + %232 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i.i754 = add nsw i64 %232, 1 %call.i.i755 = tail call ptr @PyList_New(i64 noundef %cond.i.i754) #35 %cmp1.i.i756 = icmp eq ptr %call.i.i755, null - br i1 %cmp1.i.i756, label %sw.epilog, label %while.cond.preheader.i.i757 - -while.cond.preheader.i.i757: ; preds = %if.then2.i753 - %cmp269.i.i = icmp sgt i64 %self.val73, 0 - br i1 %cmp269.i.i, label %land.rhs.lr.ph.i.i803, label %land.lhs.true.i.i758 + br i1 %cmp1.i.i756, label %sw.epilog, label %land.rhs.lr.ph.i.i803 -land.rhs.lr.ph.i.i803: ; preds = %while.cond.preheader.i.i757 - %237 = getelementptr i8, ptr %call.i.i755, i64 24 +land.rhs.lr.ph.i.i803: ; preds = %if.then2.i753 + %233 = getelementptr i8, ptr %call.i.i755, i64 24 br label %land.rhs.i.i804 land.rhs.i.i804: ; preds = %for.end.i.i812, %land.rhs.lr.ph.i.i803 @@ -35835,8 +35813,8 @@ for.cond.preheader.i.i811: ; preds = %land.rhs.i.i804 for.body.i.i817: ; preds = %for.cond.preheader.i.i811, %for.inc.i.i820 %j.168.i.i = phi i64 [ %inc25.i.i821, %for.inc.i.i820 ], [ %j.072.i.i, %for.cond.preheader.i.i811 ] %arrayidx.i.i818 = getelementptr i16, ptr %retval.0.i464, i64 %j.168.i.i - %238 = load i16, ptr %arrayidx.i.i818, align 2 - %cmp6.i.i819 = icmp eq i16 %238, %235 + %234 = load i16, ptr %arrayidx.i.i818, align 2 + %cmp6.i.i819 = icmp eq i16 %234, %231 br i1 %cmp6.i.i819, label %if.then8.i.i823, label %for.inc.i.i820 if.then8.i.i823: ; preds = %for.body.i.i817 @@ -35851,7 +35829,7 @@ if.end14.i.i827: ; preds = %if.then8.i.i823 br i1 %cmp15.i.i828, label %if.then17.i.i846, label %if.else.i.i829 if.then17.i.i846: ; preds = %if.end14.i.i827 - %call.val57.i.i847 = load ptr, ptr %237, align 8 + %call.val57.i.i847 = load ptr, ptr %233, align 8 %arrayidx.i.i.i848 = getelementptr ptr, ptr %call.val57.i.i847, i64 %count.073.i.i store ptr %call10.i.i, ptr %arrayidx.i.i.i848, align 8 br label %if.end22.i.i839 @@ -35859,16 +35837,16 @@ if.then17.i.i846: ; preds = %if.end14.i.i827 if.else.i.i829: ; preds = %if.end14.i.i827 %call18.i.i830 = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i755, ptr noundef nonnull %call10.i.i) #35 %tobool.not.i.i831 = icmp eq i32 %call18.i.i830, 0 - %239 = load i64, ptr %call10.i.i, align 8 - %240 = and i64 %239, 2147483648 - %cmp.i100.not.i.i838 = icmp eq i64 %240, 0 + %235 = load i64, ptr %call10.i.i, align 8 + %236 = and i64 %235, 2147483648 + %cmp.i100.not.i.i838 = icmp eq i64 %236, 0 br i1 %tobool.not.i.i831, label %if.else20.i.i837, label %if.then19.i.i832 if.then19.i.i832: ; preds = %if.else.i.i829 br i1 %cmp.i100.not.i.i838, label %if.end.i86.i.i834, label %onError.i.i774 if.end.i86.i.i834: ; preds = %if.then19.i.i832 - %dec.i87.i.i835 = add i64 %239, -1 + %dec.i87.i.i835 = add i64 %235, -1 store i64 %dec.i87.i.i835, ptr %call10.i.i, align 8 %cmp.i88.i.i836 = icmp eq i64 %dec.i87.i.i835, 0 br i1 %cmp.i88.i.i836, label %onError.sink.split.i.i784, label %onError.i.i774 @@ -35877,7 +35855,7 @@ if.else20.i.i837: ; preds = %if.else.i.i829 br i1 %cmp.i100.not.i.i838, label %if.end.i77.i.i842, label %if.end22.i.i839 if.end.i77.i.i842: ; preds = %if.else20.i.i837 - %dec.i78.i.i843 = add i64 %239, -1 + %dec.i78.i.i843 = add i64 %235, -1 store i64 %dec.i78.i.i843, ptr %call10.i.i, align 8 %cmp.i79.i.i844 = icmp eq i64 %dec.i78.i.i843, 0 br i1 %cmp.i79.i.i844, label %if.then1.i80.i.i845, label %if.end22.i.i839 @@ -35909,16 +35887,15 @@ while.end.i.i807: ; preds = %for.end.i.i812, %la %cmp26.i.i810 = icmp eq i64 %count.0.lcssa.i.i809, 0 br i1 %cmp26.i.i810, label %land.lhs.true.i.i758, label %if.else32.i.i761 -land.lhs.true.i.i758: ; preds = %while.end.i.i807, %while.cond.preheader.i.i757 - %i.0.lcssa88.i.i = phi i64 [ %i.0.lcssa.i.i808, %while.end.i.i807 ], [ 0, %while.cond.preheader.i.i757 ] - %241 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i.i759 = load ptr, ptr %241, align 8 +land.lhs.true.i.i758: ; preds = %while.end.i.i807 + %237 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i.i759 = load ptr, ptr %237, align 8 %cmp.i58.not.i.i760 = icmp eq ptr %str_obj.val.i.i759, @PyUnicode_Type br i1 %cmp.i58.not.i.i760, label %if.then30.i.i797, label %if.else32.i.i761 if.then30.i.i797: ; preds = %land.lhs.true.i.i758 - %242 = load i32, ptr %self, align 8 - %add.i.i.i798 = add i32 %242, 1 + %238 = load i32, ptr %self, align 8 + %add.i.i.i798 = add i32 %238, 1 %cmp.i93.i.i799 = icmp eq i32 %add.i.i.i798, 0 br i1 %cmp.i93.i.i799, label %Py_INCREF.exit.i.i801, label %if.end.i94.i.i800 @@ -35927,48 +35904,44 @@ if.end.i94.i.i800: ; preds = %if.then30.i.i797 br label %Py_INCREF.exit.i.i801 Py_INCREF.exit.i.i801: ; preds = %if.end.i94.i.i800, %if.then30.i.i797 - %243 = getelementptr i8, ptr %call.i.i755, i64 24 - %call.val56.i.i802 = load ptr, ptr %243, align 8 + %call.val56.i.i802 = load ptr, ptr %233, align 8 store ptr %self, ptr %call.val56.i.i802, align 8 br label %if.end55.i.i788 if.else32.i.i761: ; preds = %land.lhs.true.i.i758, %while.end.i.i807 - %count.0.lcssa89.i.i = phi i64 [ 0, %land.lhs.true.i.i758 ], [ %count.0.lcssa.i.i809, %while.end.i.i807 ] - %i.0.lcssa87.i.i = phi i64 [ %i.0.lcssa88.i.i, %land.lhs.true.i.i758 ], [ %i.0.lcssa.i.i808, %while.end.i.i807 ] - %cmp33.not.i.i762 = icmp sgt i64 %i.0.lcssa87.i.i, %self.val73 + %cmp33.not.i.i762 = icmp sgt i64 %i.0.lcssa.i.i808, %self.val73 br i1 %cmp33.not.i.i762, label %if.end55.i.i788, label %if.then35.i.i763 if.then35.i.i763: ; preds = %if.else32.i.i761 - %add.ptr36.i.i764 = getelementptr i16, ptr %retval.0.i464, i64 %i.0.lcssa87.i.i - %sub37.i.i765 = sub i64 %self.val73, %i.0.lcssa87.i.i + %add.ptr36.i.i764 = getelementptr i16, ptr %retval.0.i464, i64 %i.0.lcssa.i.i808 + %sub37.i.i765 = sub i64 %self.val73, %i.0.lcssa.i.i808 %call38.i.i = tail call fastcc ptr @_PyUnicode_FromUCS2(ptr noundef %add.ptr36.i.i764, i64 noundef %sub37.i.i765) %cmp39.i.i766 = icmp eq ptr %call38.i.i, null br i1 %cmp39.i.i766, label %onError.i.i774, label %if.end42.i.i767 if.end42.i.i767: ; preds = %if.then35.i.i763 - %cmp43.i.i768 = icmp slt i64 %count.0.lcssa89.i.i, 12 + %cmp43.i.i768 = icmp slt i64 %count.0.lcssa.i.i809, 12 br i1 %cmp43.i.i768, label %if.then45.i.i795, label %if.else46.i.i769 if.then45.i.i795: ; preds = %if.end42.i.i767 - %244 = getelementptr i8, ptr %call.i.i755, i64 24 - %call.val.i.i796 = load ptr, ptr %244, align 8 - %arrayidx.i60.i.i = getelementptr ptr, ptr %call.val.i.i796, i64 %count.0.lcssa89.i.i + %call.val.i.i796 = load ptr, ptr %233, align 8 + %arrayidx.i60.i.i = getelementptr ptr, ptr %call.val.i.i796, i64 %count.0.lcssa.i.i809 store ptr %call38.i.i, ptr %arrayidx.i60.i.i, align 8 br label %if.end52.i.i786 if.else46.i.i769: ; preds = %if.end42.i.i767 %call47.i.i770 = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i755, ptr noundef nonnull %call38.i.i) #35 %tobool48.not.i.i771 = icmp eq i32 %call47.i.i770, 0 - %245 = load i64, ptr %call38.i.i, align 8 - %246 = and i64 %245, 2147483648 - %cmp.i108.not.i.i772 = icmp eq i64 %246, 0 + %239 = load i64, ptr %call38.i.i, align 8 + %240 = and i64 %239, 2147483648 + %cmp.i108.not.i.i772 = icmp eq i64 %240, 0 br i1 %tobool48.not.i.i771, label %if.else50.i.i785, label %if.then49.i.i773 if.then49.i.i773: ; preds = %if.else46.i.i769 br i1 %cmp.i108.not.i.i772, label %if.end.i68.i.i781, label %onError.i.i774 if.end.i68.i.i781: ; preds = %if.then49.i.i773 - %dec.i69.i.i782 = add i64 %245, -1 + %dec.i69.i.i782 = add i64 %239, -1 store i64 %dec.i69.i.i782, ptr %call38.i.i, align 8 %cmp.i70.i.i783 = icmp eq i64 %dec.i69.i.i782, 0 br i1 %cmp.i70.i.i783, label %onError.sink.split.i.i784, label %onError.i.i774 @@ -35977,7 +35950,7 @@ if.else50.i.i785: ; preds = %if.else46.i.i769 br i1 %cmp.i108.not.i.i772, label %if.end.i59.i.i791, label %if.end52.i.i786 if.end.i59.i.i791: ; preds = %if.else50.i.i785 - %dec.i60.i.i792 = add i64 %245, -1 + %dec.i60.i.i792 = add i64 %239, -1 store i64 %dec.i60.i.i792, ptr %call38.i.i, align 8 %cmp.i61.i.i793 = icmp eq i64 %dec.i60.i.i792, 0 br i1 %cmp.i61.i.i793, label %if.then1.i62.i.i794, label %if.end52.i.i786 @@ -35987,11 +35960,11 @@ if.then1.i62.i.i794: ; preds = %if.end.i59.i.i791 br label %if.end52.i.i786 if.end52.i.i786: ; preds = %if.then1.i62.i.i794, %if.end.i59.i.i791, %if.else50.i.i785, %if.then45.i.i795 - %inc53.i.i787 = add i64 %count.0.lcssa89.i.i, 1 + %inc53.i.i787 = add i64 %count.0.lcssa.i.i809, 1 br label %if.end55.i.i788 if.end55.i.i788: ; preds = %if.end52.i.i786, %if.else32.i.i761, %Py_INCREF.exit.i.i801 - %count.2.i.i789 = phi i64 [ 1, %Py_INCREF.exit.i.i801 ], [ %inc53.i.i787, %if.end52.i.i786 ], [ %count.0.lcssa89.i.i, %if.else32.i.i761 ] + %count.2.i.i789 = phi i64 [ 1, %Py_INCREF.exit.i.i801 ], [ %inc53.i.i787, %if.end52.i.i786 ], [ %count.0.lcssa.i.i809, %if.else32.i.i761 ] %ob_size.i.i.i790 = getelementptr inbounds nuw i8, ptr %call.i.i755, i64 16 store i64 %count.2.i.i789, ptr %ob_size.i.i.i790, align 8 br label %sw.epilog @@ -36002,13 +35975,13 @@ onError.sink.split.i.i784: ; preds = %if.end.i68.i.i781, br label %onError.i.i774 onError.i.i774: ; preds = %if.then8.i.i823, %onError.sink.split.i.i784, %if.end.i68.i.i781, %if.then49.i.i773, %if.then35.i.i763, %if.end.i86.i.i834, %if.then19.i.i832 - %247 = load i64, ptr %call.i.i755, align 8 - %248 = and i64 %247, 2147483648 - %cmp.i112.not.i.i775 = icmp eq i64 %248, 0 + %241 = load i64, ptr %call.i.i755, align 8 + %242 = and i64 %241, 2147483648 + %cmp.i112.not.i.i775 = icmp eq i64 %242, 0 br i1 %cmp.i112.not.i.i775, label %if.end.i.i.i777, label %sw.epilog if.end.i.i.i777: ; preds = %onError.i.i774 - %dec.i.i.i778 = add i64 %247, -1 + %dec.i.i.i778 = add i64 %241, -1 store i64 %dec.i.i.i778, ptr %call.i.i755, align 8 %cmp.i.i.i779 = icmp eq i64 %dec.i.i.i778, 0 br i1 %cmp.i.i.i779, label %if.then1.i.i.i780, label %sw.epilog @@ -36018,8 +35991,8 @@ if.then1.i.i.i780: ; preds = %if.end.i.i.i777 br label %sw.epilog if.end3.i850: ; preds = %sw.bb60 - %249 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i851 = add nsw i64 %249, 1 + %243 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i851 = add nsw i64 %243, 1 %call5.i852 = tail call ptr @PyList_New(i64 noundef %cond.i851) #35 %cmp6.i853 = icmp eq ptr %call5.i852, null br i1 %cmp6.i853, label %sw.epilog, label %while.cond.preheader.i854 @@ -36029,7 +36002,7 @@ while.cond.preheader.i854: ; preds = %if.end3.i850 br i1 %cmp983.i, label %while.body.lr.ph.i896, label %land.lhs.true.i855 while.body.lr.ph.i896: ; preds = %while.cond.preheader.i854 - %250 = getelementptr i8, ptr %call5.i852, i64 24 + %244 = getelementptr i8, ptr %call5.i852, i64 24 br label %while.body.i897 while.body.i897: ; preds = %if.end29.i916, %while.body.lr.ph.i896 @@ -36051,7 +36024,7 @@ if.end21.i904: ; preds = %if.end14.i902 br i1 %cmp22.i905, label %if.then23.i925, label %if.else24.i906 if.then23.i925: ; preds = %if.end21.i904 - %call5.val62.i926 = load ptr, ptr %250, align 8 + %call5.val62.i926 = load ptr, ptr %244, align 8 %arrayidx.i64.i = getelementptr ptr, ptr %call5.val62.i926, i64 %count.085.i store ptr %call18.i, ptr %arrayidx.i64.i, align 8 br label %if.end29.i916 @@ -36059,16 +36032,16 @@ if.then23.i925: ; preds = %if.end21.i904 if.else24.i906: ; preds = %if.end21.i904 %call25.i907 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i852, ptr noundef nonnull %call18.i) #35 %tobool.not.i908 = icmp eq i32 %call25.i907, 0 - %251 = load i64, ptr %call18.i, align 8 - %252 = and i64 %251, 2147483648 - %cmp.i98.not.i915 = icmp eq i64 %252, 0 + %245 = load i64, ptr %call18.i, align 8 + %246 = and i64 %245, 2147483648 + %cmp.i98.not.i915 = icmp eq i64 %246, 0 br i1 %tobool.not.i908, label %if.else27.i914, label %if.then26.i909 if.then26.i909: ; preds = %if.else24.i906 br i1 %cmp.i98.not.i915, label %if.end.i84.i911, label %onError.i868 if.end.i84.i911: ; preds = %if.then26.i909 - %dec.i85.i912 = add i64 %251, -1 + %dec.i85.i912 = add i64 %245, -1 store i64 %dec.i85.i912, ptr %call18.i, align 8 %cmp.i86.i913 = icmp eq i64 %dec.i85.i912, 0 br i1 %cmp.i86.i913, label %onError.sink.split.i877, label %onError.i868 @@ -36077,7 +36050,7 @@ if.else27.i914: ; preds = %if.else24.i906 br i1 %cmp.i98.not.i915, label %if.end.i75.i921, label %if.end29.i916 if.end.i75.i921: ; preds = %if.else27.i914 - %dec.i76.i922 = add i64 %251, -1 + %dec.i76.i922 = add i64 %245, -1 store i64 %dec.i76.i922, ptr %call18.i, align 8 %cmp.i77.i923 = icmp eq i64 %dec.i76.i922, 0 br i1 %cmp.i77.i923, label %if.then1.i78.i924, label %if.end29.i916 @@ -36099,14 +36072,14 @@ while.end.i927: ; preds = %while.body.i897 land.lhs.true.i855: ; preds = %while.end.i927, %while.cond.preheader.i854 %i.0.lcssa104.i = phi i64 [ %i.084.i, %while.end.i927 ], [ 0, %while.cond.preheader.i854 ] - %253 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i856 = load ptr, ptr %253, align 8 + %247 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i856 = load ptr, ptr %247, align 8 %cmp.i65.not.i = icmp eq ptr %str_obj.val.i856, @PyUnicode_Type br i1 %cmp.i65.not.i, label %if.then34.i890, label %if.else36.i857 if.then34.i890: ; preds = %land.lhs.true.i855 - %254 = load i32, ptr %self, align 8 - %add.i.i891 = add i32 %254, 1 + %248 = load i32, ptr %self, align 8 + %add.i.i891 = add i32 %248, 1 %cmp.i91.i892 = icmp eq i32 %add.i.i891, 0 br i1 %cmp.i91.i892, label %Py_INCREF.exit.i894, label %if.end.i92.i893 @@ -36115,8 +36088,8 @@ if.end.i92.i893: ; preds = %if.then34.i890 br label %Py_INCREF.exit.i894 Py_INCREF.exit.i894: ; preds = %if.end.i92.i893, %if.then34.i890 - %255 = getelementptr i8, ptr %call5.i852, i64 24 - %call5.val61.i895 = load ptr, ptr %255, align 8 + %249 = getelementptr i8, ptr %call5.i852, i64 24 + %call5.val61.i895 = load ptr, ptr %249, align 8 store ptr %self, ptr %call5.val61.i895, align 8 br label %if.end53.i881 @@ -36134,8 +36107,8 @@ if.end42.i861: ; preds = %if.else36.i857 br i1 %cmp43.i862, label %if.then44.i888, label %if.else45.i863 if.then44.i888: ; preds = %if.end42.i861 - %256 = getelementptr i8, ptr %call5.i852, i64 24 - %call5.val.i889 = load ptr, ptr %256, align 8 + %250 = getelementptr i8, ptr %call5.i852, i64 24 + %call5.val.i889 = load ptr, ptr %250, align 8 %arrayidx.i67.i = getelementptr ptr, ptr %call5.val.i889, i64 %count.0.lcssa105.i store ptr %call39.i, ptr %arrayidx.i67.i, align 8 br label %if.end51.i879 @@ -36143,16 +36116,16 @@ if.then44.i888: ; preds = %if.end42.i861 if.else45.i863: ; preds = %if.end42.i861 %call46.i864 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i852, ptr noundef nonnull %call39.i) #35 %tobool47.not.i865 = icmp eq i32 %call46.i864, 0 - %257 = load i64, ptr %call39.i, align 8 - %258 = and i64 %257, 2147483648 - %cmp.i106.not.i866 = icmp eq i64 %258, 0 + %251 = load i64, ptr %call39.i, align 8 + %252 = and i64 %251, 2147483648 + %cmp.i106.not.i866 = icmp eq i64 %252, 0 br i1 %tobool47.not.i865, label %if.else49.i878, label %if.then48.i867 if.then48.i867: ; preds = %if.else45.i863 br i1 %cmp.i106.not.i866, label %if.end.i66.i874, label %onError.i868 if.end.i66.i874: ; preds = %if.then48.i867 - %dec.i67.i875 = add i64 %257, -1 + %dec.i67.i875 = add i64 %251, -1 store i64 %dec.i67.i875, ptr %call39.i, align 8 %cmp.i68.i876 = icmp eq i64 %dec.i67.i875, 0 br i1 %cmp.i68.i876, label %onError.sink.split.i877, label %onError.i868 @@ -36161,7 +36134,7 @@ if.else49.i878: ; preds = %if.else45.i863 br i1 %cmp.i106.not.i866, label %if.end.i57.i884, label %if.end51.i879 if.end.i57.i884: ; preds = %if.else49.i878 - %dec.i58.i885 = add i64 %257, -1 + %dec.i58.i885 = add i64 %251, -1 store i64 %dec.i58.i885, ptr %call39.i, align 8 %cmp.i59.i886 = icmp eq i64 %dec.i58.i885, 0 br i1 %cmp.i59.i886, label %if.then1.i60.i887, label %if.end51.i879 @@ -36186,13 +36159,13 @@ onError.sink.split.i877: ; preds = %if.end.i66.i874, %i br label %onError.i868 onError.i868: ; preds = %if.end14.i902, %onError.sink.split.i877, %if.end.i66.i874, %if.then48.i867, %if.else36.i857, %if.end.i84.i911, %if.then26.i909 - %259 = load i64, ptr %call5.i852, align 8 - %260 = and i64 %259, 2147483648 - %cmp.i110.not.i869 = icmp eq i64 %260, 0 + %253 = load i64, ptr %call5.i852, align 8 + %254 = and i64 %253, 2147483648 + %cmp.i110.not.i869 = icmp eq i64 %254, 0 br i1 %cmp.i110.not.i869, label %if.end.i.i870, label %sw.epilog if.end.i.i870: ; preds = %onError.i868 - %dec.i.i871 = add i64 %259, -1 + %dec.i.i871 = add i64 %253, -1 store i64 %dec.i.i871, ptr %call5.i852, align 8 %cmp.i.i872 = icmp eq i64 %dec.i.i871, 0 br i1 %cmp.i.i872, label %if.then1.i.i873, label %sw.epilog @@ -36208,24 +36181,20 @@ sw.bb62: ; preds = %if.end49 ] if.then.i987: ; preds = %sw.bb62 - %261 = load ptr, ptr @PyExc_ValueError, align 8 - tail call void @PyErr_SetString(ptr noundef %261, ptr noundef nonnull @.str.197) #35 + %255 = load ptr, ptr @PyExc_ValueError, align 8 + tail call void @PyErr_SetString(ptr noundef %255, ptr noundef nonnull @.str.197) #35 br label %sw.epilog if.then2.i929: ; preds = %sw.bb62 - %262 = load i32, ptr %buf2.0, align 4 - %263 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i.i930 = add nsw i64 %263, 1 + %256 = load i32, ptr %buf2.0, align 4 + %257 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i.i930 = add nsw i64 %257, 1 %call.i.i931 = tail call ptr @PyList_New(i64 noundef %cond.i.i930) #35 %cmp1.i.i932 = icmp eq ptr %call.i.i931, null - br i1 %cmp1.i.i932, label %sw.epilog, label %while.cond.preheader.i.i933 - -while.cond.preheader.i.i933: ; preds = %if.then2.i929 - %cmp269.i.i934 = icmp sgt i64 %self.val73, 0 - br i1 %cmp269.i.i934, label %land.rhs.lr.ph.i.i958, label %land.lhs.true.i.i935 + br i1 %cmp1.i.i932, label %sw.epilog, label %land.rhs.lr.ph.i.i958 -land.rhs.lr.ph.i.i958: ; preds = %while.cond.preheader.i.i933 - %264 = getelementptr i8, ptr %call.i.i931, i64 24 +land.rhs.lr.ph.i.i958: ; preds = %if.then2.i929 + %258 = getelementptr i8, ptr %call.i.i931, i64 24 br label %land.rhs.i.i959 land.rhs.i.i959: ; preds = %for.end.i.i971, %land.rhs.lr.ph.i.i958 @@ -36244,8 +36213,8 @@ for.cond.preheader.i.i969: ; preds = %land.rhs.i.i959 for.body.i.i976: ; preds = %for.cond.preheader.i.i969, %for.inc.i.i979 %j.168.i.i977 = phi i64 [ %inc21.i.i, %for.inc.i.i979 ], [ %j.072.i.i961, %for.cond.preheader.i.i969 ] %arrayidx.i.i978 = getelementptr i32, ptr %retval.0.i464, i64 %j.168.i.i977 - %265 = load i32, ptr %arrayidx.i.i978, align 4 - %cmp5.i.i = icmp eq i32 %265, %262 + %259 = load i32, ptr %arrayidx.i.i978, align 4 + %cmp5.i.i = icmp eq i32 %259, %256 br i1 %cmp5.i.i, label %if.then6.i.i, label %for.inc.i.i979 if.then6.i.i: ; preds = %for.body.i.i976 @@ -36260,7 +36229,7 @@ if.end11.i.i: ; preds = %if.then6.i.i br i1 %cmp12.i.i, label %if.then13.i.i, label %if.else.i.i982 if.then13.i.i: ; preds = %if.end11.i.i - %call.val57.i.i985 = load ptr, ptr %264, align 8 + %call.val57.i.i985 = load ptr, ptr %258, align 8 %arrayidx.i.i.i986 = getelementptr ptr, ptr %call.val57.i.i985, i64 %count.073.i.i960 store ptr %call8.i.i, ptr %arrayidx.i.i.i986, align 8 br label %if.end18.i.i @@ -36268,16 +36237,16 @@ if.then13.i.i: ; preds = %if.end11.i.i if.else.i.i982: ; preds = %if.end11.i.i %call14.i.i = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i931, ptr noundef nonnull %call8.i.i) #35 %tobool.not.i.i983 = icmp eq i32 %call14.i.i, 0 - %266 = load i64, ptr %call8.i.i, align 8 - %267 = and i64 %266, 2147483648 - %cmp.i92.not.i.i = icmp eq i64 %267, 0 + %260 = load i64, ptr %call8.i.i, align 8 + %261 = and i64 %260, 2147483648 + %cmp.i92.not.i.i = icmp eq i64 %261, 0 br i1 %tobool.not.i.i983, label %if.else16.i.i, label %if.then15.i.i if.then15.i.i: ; preds = %if.else.i.i982 br i1 %cmp.i92.not.i.i, label %if.end.i78.i.i, label %onError.i.i942 if.end.i78.i.i: ; preds = %if.then15.i.i - %dec.i79.i.i = add i64 %266, -1 + %dec.i79.i.i = add i64 %260, -1 store i64 %dec.i79.i.i, ptr %call8.i.i, align 8 %cmp.i80.i.i = icmp eq i64 %dec.i79.i.i, 0 br i1 %cmp.i80.i.i, label %onError.sink.split.i.i949, label %onError.i.i942 @@ -36286,7 +36255,7 @@ if.else16.i.i: ; preds = %if.else.i.i982 br i1 %cmp.i92.not.i.i, label %if.end.i69.i.i, label %if.end18.i.i if.end.i69.i.i: ; preds = %if.else16.i.i - %dec.i70.i.i = add i64 %266, -1 + %dec.i70.i.i = add i64 %260, -1 store i64 %dec.i70.i.i, ptr %call8.i.i, align 8 %cmp.i71.i.i = icmp eq i64 %dec.i70.i.i, 0 br i1 %cmp.i71.i.i, label %if.then1.i72.i.i, label %if.end18.i.i @@ -36318,16 +36287,15 @@ while.end.i.i966: ; preds = %for.end.i.i971, %la %cmp22.i.i = icmp eq i64 %count.0.lcssa.i.i968, 0 br i1 %cmp22.i.i, label %land.lhs.true.i.i935, label %if.else27.i.i -land.lhs.true.i.i935: ; preds = %while.end.i.i966, %while.cond.preheader.i.i933 - %i.0.lcssa88.i.i936 = phi i64 [ %i.0.lcssa.i.i967, %while.end.i.i966 ], [ 0, %while.cond.preheader.i.i933 ] - %268 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i.i937 = load ptr, ptr %268, align 8 +land.lhs.true.i.i935: ; preds = %while.end.i.i966 + %262 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i.i937 = load ptr, ptr %262, align 8 %cmp.i58.not.i.i938 = icmp eq ptr %str_obj.val.i.i937, @PyUnicode_Type br i1 %cmp.i58.not.i.i938, label %if.then25.i.i, label %if.else27.i.i if.then25.i.i: ; preds = %land.lhs.true.i.i935 - %269 = load i32, ptr %self, align 8 - %add.i.i.i954 = add i32 %269, 1 + %263 = load i32, ptr %self, align 8 + %add.i.i.i954 = add i32 %263, 1 %cmp.i85.i.i = icmp eq i32 %add.i.i.i954, 0 br i1 %cmp.i85.i.i, label %Py_INCREF.exit.i.i956, label %if.end.i86.i.i955 @@ -36336,48 +36304,44 @@ if.end.i86.i.i955: ; preds = %if.then25.i.i br label %Py_INCREF.exit.i.i956 Py_INCREF.exit.i.i956: ; preds = %if.end.i86.i.i955, %if.then25.i.i - %270 = getelementptr i8, ptr %call.i.i931, i64 24 - %call.val56.i.i957 = load ptr, ptr %270, align 8 + %call.val56.i.i957 = load ptr, ptr %258, align 8 store ptr %self, ptr %call.val56.i.i957, align 8 br label %if.end47.i.i if.else27.i.i: ; preds = %land.lhs.true.i.i935, %while.end.i.i966 - %count.0.lcssa89.i.i939 = phi i64 [ 0, %land.lhs.true.i.i935 ], [ %count.0.lcssa.i.i968, %while.end.i.i966 ] - %i.0.lcssa87.i.i940 = phi i64 [ %i.0.lcssa88.i.i936, %land.lhs.true.i.i935 ], [ %i.0.lcssa.i.i967, %while.end.i.i966 ] - %cmp28.not.i.i = icmp sgt i64 %i.0.lcssa87.i.i940, %self.val73 + %cmp28.not.i.i = icmp sgt i64 %i.0.lcssa.i.i967, %self.val73 br i1 %cmp28.not.i.i, label %if.end47.i.i, label %if.then29.i.i if.then29.i.i: ; preds = %if.else27.i.i - %add.ptr30.i.i = getelementptr i32, ptr %retval.0.i464, i64 %i.0.lcssa87.i.i940 - %sub31.i.i = sub i64 %self.val73, %i.0.lcssa87.i.i940 + %add.ptr30.i.i = getelementptr i32, ptr %retval.0.i464, i64 %i.0.lcssa.i.i967 + %sub31.i.i = sub i64 %self.val73, %i.0.lcssa.i.i967 %call32.i.i = tail call fastcc ptr @_PyUnicode_FromUCS4(ptr noundef %add.ptr30.i.i, i64 noundef %sub31.i.i) %cmp33.i.i = icmp eq ptr %call32.i.i, null br i1 %cmp33.i.i, label %onError.i.i942, label %if.end35.i.i if.end35.i.i: ; preds = %if.then29.i.i - %cmp36.i.i = icmp slt i64 %count.0.lcssa89.i.i939, 12 + %cmp36.i.i = icmp slt i64 %count.0.lcssa.i.i968, 12 br i1 %cmp36.i.i, label %if.then37.i.i, label %if.else38.i.i if.then37.i.i: ; preds = %if.end35.i.i - %271 = getelementptr i8, ptr %call.i.i931, i64 24 - %call.val.i.i952 = load ptr, ptr %271, align 8 - %arrayidx.i60.i.i953 = getelementptr ptr, ptr %call.val.i.i952, i64 %count.0.lcssa89.i.i939 + %call.val.i.i952 = load ptr, ptr %258, align 8 + %arrayidx.i60.i.i953 = getelementptr ptr, ptr %call.val.i.i952, i64 %count.0.lcssa.i.i968 store ptr %call32.i.i, ptr %arrayidx.i60.i.i953, align 8 br label %if.end44.i.i if.else38.i.i: ; preds = %if.end35.i.i %call39.i.i = tail call i32 @PyList_Append(ptr noundef nonnull %call.i.i931, ptr noundef nonnull %call32.i.i) #35 %tobool40.not.i.i = icmp eq i32 %call39.i.i, 0 - %272 = load i64, ptr %call32.i.i, align 8 - %273 = and i64 %272, 2147483648 - %cmp.i100.not.i.i941 = icmp eq i64 %273, 0 + %264 = load i64, ptr %call32.i.i, align 8 + %265 = and i64 %264, 2147483648 + %cmp.i100.not.i.i941 = icmp eq i64 %265, 0 br i1 %tobool40.not.i.i, label %if.else42.i.i, label %if.then41.i.i if.then41.i.i: ; preds = %if.else38.i.i br i1 %cmp.i100.not.i.i941, label %if.end.i60.i.i948, label %onError.i.i942 if.end.i60.i.i948: ; preds = %if.then41.i.i - %dec.i61.i.i = add i64 %272, -1 + %dec.i61.i.i = add i64 %264, -1 store i64 %dec.i61.i.i, ptr %call32.i.i, align 8 %cmp.i62.i.i = icmp eq i64 %dec.i61.i.i, 0 br i1 %cmp.i62.i.i, label %onError.sink.split.i.i949, label %onError.i.i942 @@ -36386,7 +36350,7 @@ if.else42.i.i: ; preds = %if.else38.i.i br i1 %cmp.i100.not.i.i941, label %if.end.i51.i.i, label %if.end44.i.i if.end.i51.i.i: ; preds = %if.else42.i.i - %dec.i52.i.i = add i64 %272, -1 + %dec.i52.i.i = add i64 %264, -1 store i64 %dec.i52.i.i, ptr %call32.i.i, align 8 %cmp.i53.i.i = icmp eq i64 %dec.i52.i.i, 0 br i1 %cmp.i53.i.i, label %if.then1.i54.i.i, label %if.end44.i.i @@ -36396,11 +36360,11 @@ if.then1.i54.i.i: ; preds = %if.end.i51.i.i br label %if.end44.i.i if.end44.i.i: ; preds = %if.then1.i54.i.i, %if.end.i51.i.i, %if.else42.i.i, %if.then37.i.i - %inc45.i.i = add i64 %count.0.lcssa89.i.i939, 1 + %inc45.i.i = add i64 %count.0.lcssa.i.i968, 1 br label %if.end47.i.i if.end47.i.i: ; preds = %if.end44.i.i, %if.else27.i.i, %Py_INCREF.exit.i.i956 - %count.2.i.i950 = phi i64 [ 1, %Py_INCREF.exit.i.i956 ], [ %inc45.i.i, %if.end44.i.i ], [ %count.0.lcssa89.i.i939, %if.else27.i.i ] + %count.2.i.i950 = phi i64 [ 1, %Py_INCREF.exit.i.i956 ], [ %inc45.i.i, %if.end44.i.i ], [ %count.0.lcssa.i.i968, %if.else27.i.i ] %ob_size.i.i.i951 = getelementptr inbounds nuw i8, ptr %call.i.i931, i64 16 store i64 %count.2.i.i950, ptr %ob_size.i.i.i951, align 8 br label %sw.epilog @@ -36411,13 +36375,13 @@ onError.sink.split.i.i949: ; preds = %if.end.i60.i.i948, br label %onError.i.i942 onError.i.i942: ; preds = %if.then6.i.i, %onError.sink.split.i.i949, %if.end.i60.i.i948, %if.then41.i.i, %if.then29.i.i, %if.end.i78.i.i, %if.then15.i.i - %274 = load i64, ptr %call.i.i931, align 8 - %275 = and i64 %274, 2147483648 - %cmp.i104.not.i.i = icmp eq i64 %275, 0 + %266 = load i64, ptr %call.i.i931, align 8 + %267 = and i64 %266, 2147483648 + %cmp.i104.not.i.i = icmp eq i64 %267, 0 br i1 %cmp.i104.not.i.i, label %if.end.i.i.i944, label %sw.epilog if.end.i.i.i944: ; preds = %onError.i.i942 - %dec.i.i.i945 = add i64 %274, -1 + %dec.i.i.i945 = add i64 %266, -1 store i64 %dec.i.i.i945, ptr %call.i.i931, align 8 %cmp.i.i.i946 = icmp eq i64 %dec.i.i.i945, 0 br i1 %cmp.i.i.i946, label %if.then1.i.i.i947, label %sw.epilog @@ -36427,8 +36391,8 @@ if.then1.i.i.i947: ; preds = %if.end.i.i.i944 br label %sw.epilog if.end3.i988: ; preds = %sw.bb62 - %276 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) - %cond.i989 = add nsw i64 %276, 1 + %268 = tail call i64 @llvm.smin.i64(i64 %maxcount.addr.1, i64 11) + %cond.i989 = add nsw i64 %268, 1 %call5.i990 = tail call ptr @PyList_New(i64 noundef %cond.i989) #35 %cmp6.i991 = icmp eq ptr %call5.i990, null br i1 %cmp6.i991, label %sw.epilog, label %while.cond.preheader.i992 @@ -36438,7 +36402,7 @@ while.cond.preheader.i992: ; preds = %if.end3.i988 br i1 %cmp983.i993, label %while.body.lr.ph.i1042, label %land.lhs.true.i994 while.body.lr.ph.i1042: ; preds = %while.cond.preheader.i992 - %277 = getelementptr i8, ptr %call5.i990, i64 24 + %269 = getelementptr i8, ptr %call5.i990, i64 24 br label %while.body.i1043 while.body.i1043: ; preds = %if.end29.i1065, %while.body.lr.ph.i1042 @@ -36460,7 +36424,7 @@ if.end21.i1053: ; preds = %if.end14.i1050 br i1 %cmp22.i1054, label %if.then23.i1074, label %if.else24.i1055 if.then23.i1074: ; preds = %if.end21.i1053 - %call5.val62.i1075 = load ptr, ptr %277, align 8 + %call5.val62.i1075 = load ptr, ptr %269, align 8 %arrayidx.i64.i1076 = getelementptr ptr, ptr %call5.val62.i1075, i64 %count.085.i1044 store ptr %call18.i1051, ptr %arrayidx.i64.i1076, align 8 br label %if.end29.i1065 @@ -36468,16 +36432,16 @@ if.then23.i1074: ; preds = %if.end21.i1053 if.else24.i1055: ; preds = %if.end21.i1053 %call25.i1056 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i990, ptr noundef nonnull %call18.i1051) #35 %tobool.not.i1057 = icmp eq i32 %call25.i1056, 0 - %278 = load i64, ptr %call18.i1051, align 8 - %279 = and i64 %278, 2147483648 - %cmp.i98.not.i1064 = icmp eq i64 %279, 0 + %270 = load i64, ptr %call18.i1051, align 8 + %271 = and i64 %270, 2147483648 + %cmp.i98.not.i1064 = icmp eq i64 %271, 0 br i1 %tobool.not.i1057, label %if.else27.i1063, label %if.then26.i1058 if.then26.i1058: ; preds = %if.else24.i1055 br i1 %cmp.i98.not.i1064, label %if.end.i84.i1060, label %onError.i1012 if.end.i84.i1060: ; preds = %if.then26.i1058 - %dec.i85.i1061 = add i64 %278, -1 + %dec.i85.i1061 = add i64 %270, -1 store i64 %dec.i85.i1061, ptr %call18.i1051, align 8 %cmp.i86.i1062 = icmp eq i64 %dec.i85.i1061, 0 br i1 %cmp.i86.i1062, label %onError.sink.split.i1021, label %onError.i1012 @@ -36486,7 +36450,7 @@ if.else27.i1063: ; preds = %if.else24.i1055 br i1 %cmp.i98.not.i1064, label %if.end.i75.i1070, label %if.end29.i1065 if.end.i75.i1070: ; preds = %if.else27.i1063 - %dec.i76.i1071 = add i64 %278, -1 + %dec.i76.i1071 = add i64 %270, -1 store i64 %dec.i76.i1071, ptr %call18.i1051, align 8 %cmp.i77.i1072 = icmp eq i64 %dec.i76.i1071, 0 br i1 %cmp.i77.i1072, label %if.then1.i78.i1073, label %if.end29.i1065 @@ -36508,14 +36472,14 @@ while.end.i1077: ; preds = %while.body.i1043 land.lhs.true.i994: ; preds = %while.end.i1077, %while.cond.preheader.i992 %i.0.lcssa104.i995 = phi i64 [ %i.084.i1045, %while.end.i1077 ], [ 0, %while.cond.preheader.i992 ] - %280 = getelementptr i8, ptr %self, i64 8 - %str_obj.val.i996 = load ptr, ptr %280, align 8 + %272 = getelementptr i8, ptr %self, i64 8 + %str_obj.val.i996 = load ptr, ptr %272, align 8 %cmp.i65.not.i997 = icmp eq ptr %str_obj.val.i996, @PyUnicode_Type br i1 %cmp.i65.not.i997, label %if.then34.i1036, label %if.else36.i998 if.then34.i1036: ; preds = %land.lhs.true.i994 - %281 = load i32, ptr %self, align 8 - %add.i.i1037 = add i32 %281, 1 + %273 = load i32, ptr %self, align 8 + %add.i.i1037 = add i32 %273, 1 %cmp.i91.i1038 = icmp eq i32 %add.i.i1037, 0 br i1 %cmp.i91.i1038, label %Py_INCREF.exit.i1040, label %if.end.i92.i1039 @@ -36524,8 +36488,8 @@ if.end.i92.i1039: ; preds = %if.then34.i1036 br label %Py_INCREF.exit.i1040 Py_INCREF.exit.i1040: ; preds = %if.end.i92.i1039, %if.then34.i1036 - %282 = getelementptr i8, ptr %call5.i990, i64 24 - %call5.val61.i1041 = load ptr, ptr %282, align 8 + %274 = getelementptr i8, ptr %call5.i990, i64 24 + %call5.val61.i1041 = load ptr, ptr %274, align 8 store ptr %self, ptr %call5.val61.i1041, align 8 br label %if.end53.i1026 @@ -36543,8 +36507,8 @@ if.end42.i1005: ; preds = %if.else36.i998 br i1 %cmp43.i1006, label %if.then44.i1033, label %if.else45.i1007 if.then44.i1033: ; preds = %if.end42.i1005 - %283 = getelementptr i8, ptr %call5.i990, i64 24 - %call5.val.i1034 = load ptr, ptr %283, align 8 + %275 = getelementptr i8, ptr %call5.i990, i64 24 + %call5.val.i1034 = load ptr, ptr %275, align 8 %arrayidx.i67.i1035 = getelementptr ptr, ptr %call5.val.i1034, i64 %count.0.lcssa105.i999 store ptr %call39.i1003, ptr %arrayidx.i67.i1035, align 8 br label %if.end51.i1024 @@ -36552,16 +36516,16 @@ if.then44.i1033: ; preds = %if.end42.i1005 if.else45.i1007: ; preds = %if.end42.i1005 %call46.i1008 = tail call i32 @PyList_Append(ptr noundef nonnull %call5.i990, ptr noundef nonnull %call39.i1003) #35 %tobool47.not.i1009 = icmp eq i32 %call46.i1008, 0 - %284 = load i64, ptr %call39.i1003, align 8 - %285 = and i64 %284, 2147483648 - %cmp.i106.not.i1010 = icmp eq i64 %285, 0 + %276 = load i64, ptr %call39.i1003, align 8 + %277 = and i64 %276, 2147483648 + %cmp.i106.not.i1010 = icmp eq i64 %277, 0 br i1 %tobool47.not.i1009, label %if.else49.i1023, label %if.then48.i1011 if.then48.i1011: ; preds = %if.else45.i1007 br i1 %cmp.i106.not.i1010, label %if.end.i66.i1018, label %onError.i1012 if.end.i66.i1018: ; preds = %if.then48.i1011 - %dec.i67.i1019 = add i64 %284, -1 + %dec.i67.i1019 = add i64 %276, -1 store i64 %dec.i67.i1019, ptr %call39.i1003, align 8 %cmp.i68.i1020 = icmp eq i64 %dec.i67.i1019, 0 br i1 %cmp.i68.i1020, label %onError.sink.split.i1021, label %onError.i1012 @@ -36570,7 +36534,7 @@ if.else49.i1023: ; preds = %if.else45.i1007 br i1 %cmp.i106.not.i1010, label %if.end.i57.i1029, label %if.end51.i1024 if.end.i57.i1029: ; preds = %if.else49.i1023 - %dec.i58.i1030 = add i64 %284, -1 + %dec.i58.i1030 = add i64 %276, -1 store i64 %dec.i58.i1030, ptr %call39.i1003, align 8 %cmp.i59.i1031 = icmp eq i64 %dec.i58.i1030, 0 br i1 %cmp.i59.i1031, label %if.then1.i60.i1032, label %if.end51.i1024 @@ -36595,13 +36559,13 @@ onError.sink.split.i1021: ; preds = %if.end.i66.i1018, % br label %onError.i1012 onError.i1012: ; preds = %if.end14.i1050, %onError.sink.split.i1021, %if.end.i66.i1018, %if.then48.i1011, %if.else36.i998, %if.end.i84.i1060, %if.then26.i1058 - %286 = load i64, ptr %call5.i990, align 8 - %287 = and i64 %286, 2147483648 - %cmp.i110.not.i1013 = icmp eq i64 %287, 0 + %278 = load i64, ptr %call5.i990, align 8 + %279 = and i64 %278, 2147483648 + %cmp.i110.not.i1013 = icmp eq i64 %279, 0 br i1 %cmp.i110.not.i1013, label %if.end.i.i1014, label %sw.epilog if.end.i.i1014: ; preds = %onError.i1012 - %dec.i.i1015 = add i64 %286, -1 + %dec.i.i1015 = add i64 %278, -1 store i64 %dec.i.i1015, ptr %call5.i990, align 8 %cmp.i.i1016 = icmp eq i64 %dec.i.i1015, 0 br i1 %cmp.i.i1016, label %if.then1.i.i1017, label %sw.epilog @@ -50950,7 +50914,7 @@ if.then4: ; preds = %if.end if.end7: ; preds = %if.then4 %0 = load i8, ptr %p, align 1 - switch i32 %mode, label %if.else14 [ + switch i32 %mode, label %for.body.i [ i32 1, label %if.then9 i32 2, label %if.then11 ] @@ -51030,13 +50994,9 @@ if.then11.i56: ; preds = %while.body.i53 %sub.ptr.sub14.i59 = sub i64 %sub.ptr.lhs.cast12.i57, %sub.ptr.rhs.cast13.i58 br label %return -if.else14: ; preds = %if.end7 - %cmp6.i = icmp sgt i64 %n, 0 - br i1 %cmp6.i, label %for.body.i, label %return - -for.body.i: ; preds = %if.else14, %for.inc.i - %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.else14 ] - %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.else14 ] +for.body.i: ; preds = %if.end7, %for.inc.i + %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.end7 ] + %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.end7 ] %arrayidx.i = getelementptr i8, ptr %s, i64 %i.07.i %3 = load i8, ptr %arrayidx.i, align 1 %cmp2.i = icmp eq i8 %3, %0 @@ -51283,8 +51243,8 @@ for.body.i79: ; preds = %for.body.i79, %if.e %cmp.i80 = icmp samesign ugt i64 %i.041.i, 1 br i1 %cmp.i80, label %for.body.i79, label %for.cond17.preheader.i, !llvm.loop !281 -return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %while.cond.i, %if.end15.i, %for.inc.i, %if.then.i70, %for.cond17.preheader.i, %for.end82.i, %if.else14, %if.then11.i56, %if.then3.i64, %if.then.i60, %if.then11.i, %if.then3.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %if.else38, %if.else36, %if.then34 - %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.sub.i, %if.then3.i ], [ %sub.ptr.sub14.i, %if.then11.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.sub.i67, %if.then3.i64 ], [ %sub.ptr.sub14.i59, %if.then11.i56 ], [ -1, %if.then.i60 ], [ 0, %if.else14 ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i70 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end15.i ], [ -1, %while.cond.i ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] +return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %while.cond.i, %if.end15.i, %for.inc.i, %if.then.i70, %for.cond17.preheader.i, %for.end82.i, %if.then11.i56, %if.then3.i64, %if.then.i60, %if.then11.i, %if.then3.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %if.else38, %if.else36, %if.then34 + %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.sub.i, %if.then3.i ], [ %sub.ptr.sub14.i, %if.then11.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.sub.i67, %if.then3.i64 ], [ %sub.ptr.sub14.i59, %if.then11.i56 ], [ -1, %if.then.i60 ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i70 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end15.i ], [ -1, %while.cond.i ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] ret i64 %retval.0 } @@ -52127,7 +52087,7 @@ if.then4: ; preds = %if.end if.end7: ; preds = %if.then4 %0 = load i16, ptr %p, align 2 - switch i32 %mode, label %if.else14 [ + switch i32 %mode, label %for.body.i [ i32 1, label %if.then9 i32 2, label %if.then11 ] @@ -52332,13 +52292,9 @@ if.then55.i: ; preds = %while.body49.i %sub.ptr.div59.i = ashr exact i64 %sub.ptr.sub58.i, 1 br label %return -if.else14: ; preds = %if.end7 - %cmp6.i = icmp sgt i64 %n, 0 - br i1 %cmp6.i, label %for.body.i, label %return - -for.body.i: ; preds = %if.else14, %for.inc.i - %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.else14 ] - %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.else14 ] +for.body.i: ; preds = %if.end7, %for.inc.i + %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.end7 ] + %i.07.i = phi i64 [ %inc8.i, %for.inc.i ], [ 0, %if.end7 ] %arrayidx.i = getelementptr i16, ptr %s, i64 %i.07.i %13 = load i16, ptr %arrayidx.i, align 2 %cmp2.i = icmp eq i16 %13, %0 @@ -52580,8 +52536,8 @@ for.body.i85: ; preds = %for.body.i85, %if.e %cmp.i86 = icmp samesign ugt i64 %i.041.i, 1 br i1 %cmp.i86, label %for.body.i85, label %for.cond17.preheader.i, !llvm.loop !299 -return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %if.end.i62, %do.body.i59, %while.cond46.i, %do.body.i, %if.end72.i, %for.inc.i, %if.then.i74, %for.cond17.preheader.i, %for.end82.i, %if.else14, %if.then55.i, %if.then31.i, %if.then67.i, %if.end58.i, %if.then44.i, %if.then15.i, %if.then4, %entry, %lor.lhs.false, %if.else38, %if.else36, %if.then34 - %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.div19.i, %if.then15.i ], [ %sub.ptr.div71.i, %if.then67.i ], [ %sub.ptr.div48.i, %if.then44.i ], [ -1, %if.end58.i ], [ %sub.ptr.div59.i, %if.then55.i ], [ %sub.ptr.div35.i, %if.then31.i ], [ 0, %if.else14 ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i74 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end72.i ], [ -1, %do.body.i ], [ -1, %while.cond46.i ], [ -1, %do.body.i59 ], [ %sub.ptr.div.i, %if.end.i62 ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] +return: ; preds = %if.end48.us.i, %if.then44.us.i, %for.inc76.us.i, %if.else60.us.i, %for.inc40.us.i, %if.end.i62, %do.body.i59, %while.cond46.i, %do.body.i, %if.end72.i, %for.inc.i, %if.then.i74, %for.cond17.preheader.i, %for.end82.i, %if.then55.i, %if.then31.i, %if.then67.i, %if.end58.i, %if.then44.i, %if.then15.i, %if.then4, %entry, %lor.lhs.false, %if.else38, %if.else36, %if.then34 + %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.div19.i, %if.then15.i ], [ %sub.ptr.div71.i, %if.then67.i ], [ %sub.ptr.div48.i, %if.then44.i ], [ -1, %if.end58.i ], [ %sub.ptr.div59.i, %if.then55.i ], [ %sub.ptr.div35.i, %if.then31.i ], [ %cond.i, %for.end82.i ], [ -1, %for.cond17.preheader.i ], [ %maxcount, %if.then.i74 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end72.i ], [ -1, %do.body.i ], [ -1, %while.cond46.i ], [ -1, %do.body.i59 ], [ %sub.ptr.div.i, %if.end.i62 ], [ %i.149.us.i, %for.inc40.us.i ], [ -1, %if.else60.us.i ], [ -1, %for.inc76.us.i ], [ %i16.056.us.i, %if.then44.us.i ], [ %maxcount, %if.end48.us.i ] ret i64 %retval.0 } @@ -53421,7 +53377,7 @@ if.then4: ; preds = %if.end if.end7: ; preds = %if.then4 %0 = load i32, ptr %p, align 4 - switch i32 %mode, label %if.else14 [ + switch i32 %mode, label %for.body.i [ i32 1, label %if.then9 i32 2, label %if.then11 ] @@ -53559,13 +53515,9 @@ if.then48.i: ; preds = %while.body44.i %sub.ptr.div52.i = ashr exact i64 %sub.ptr.sub51.i, 2 br label %return -if.else14: ; preds = %if.end7 - %cmp6.i60 = icmp sgt i64 %n, 0 - br i1 %cmp6.i60, label %for.body.i, label %return - -for.body.i: ; preds = %if.else14, %for.inc.i - %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.else14 ] - %i.07.i = phi i64 [ %inc5.i, %for.inc.i ], [ 0, %if.else14 ] +for.body.i: ; preds = %if.end7, %for.inc.i + %count.08.i = phi i64 [ %count.1.i, %for.inc.i ], [ 0, %if.end7 ] + %i.07.i = phi i64 [ %inc5.i, %for.inc.i ], [ 0, %if.end7 ] %arrayidx.i = getelementptr i32, ptr %s, i64 %i.07.i %7 = load i32, ptr %arrayidx.i, align 4 %cmp1.i = icmp eq i32 %7, %0 @@ -53812,8 +53764,8 @@ for.body.i74: ; preds = %for.body.i74, %if.e %cmp.i77 = icmp samesign ugt i64 %i.041.i, 1 br i1 %cmp.i77, label %for.body.i74, label %for.cond12.preheader.i, !llvm.loop !317 -return: ; preds = %if.end34.us.i, %if.then31.us.i, %for.inc58.us.i, %if.else44.us.i, %for.inc27.us.i85, %if.end.i, %do.body.i, %while.cond41.i, %if.end11.i, %for.inc.i, %if.then.i62, %for.cond12.preheader.i, %for.end65.i, %if.else14, %if.then48.i, %if.then26.i, %if.then6.i, %if.then2.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %if.else38, %if.else36, %if.then34 - %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.div.i, %if.then2.i ], [ %sub.ptr.div10.i, %if.then6.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.div52.i, %if.then48.i ], [ %sub.ptr.div30.i, %if.then26.i ], [ 0, %if.else14 ], [ %cond.i, %for.end65.i ], [ -1, %for.cond12.preheader.i ], [ %maxcount, %if.then.i62 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end11.i ], [ -1, %while.cond41.i ], [ -1, %do.body.i ], [ %sub.ptr.div.i56, %if.end.i ], [ %i.149.us.i, %for.inc27.us.i85 ], [ -1, %if.else44.us.i ], [ -1, %for.inc58.us.i ], [ %i12.056.us.i, %if.then31.us.i ], [ %maxcount, %if.end34.us.i ] +return: ; preds = %if.end34.us.i, %if.then31.us.i, %for.inc58.us.i, %if.else44.us.i, %for.inc27.us.i85, %if.end.i, %do.body.i, %while.cond41.i, %if.end11.i, %for.inc.i, %if.then.i62, %for.cond12.preheader.i, %for.end65.i, %if.then48.i, %if.then26.i, %if.then6.i, %if.then2.i, %if.then.i, %while.cond.preheader.i, %if.then4, %entry, %if.else38, %if.else36, %if.then34 + %retval.0 = phi i64 [ %call35, %if.then34 ], [ %call37, %if.else36 ], [ %call39, %if.else38 ], [ -1, %entry ], [ -1, %if.then4 ], [ %sub.ptr.div.i, %if.then2.i ], [ %sub.ptr.div10.i, %if.then6.i ], [ -1, %if.then.i ], [ -1, %while.cond.preheader.i ], [ %sub.ptr.div52.i, %if.then48.i ], [ %sub.ptr.div30.i, %if.then26.i ], [ %cond.i, %for.end65.i ], [ -1, %for.cond12.preheader.i ], [ %maxcount, %if.then.i62 ], [ %count.1.i, %for.inc.i ], [ -1, %if.end11.i ], [ -1, %while.cond41.i ], [ -1, %do.body.i ], [ %sub.ptr.div.i56, %if.end.i ], [ %i.149.us.i, %for.inc27.us.i85 ], [ -1, %if.else44.us.i ], [ -1, %for.inc58.us.i ], [ %i12.056.us.i, %if.then31.us.i ], [ %maxcount, %if.end34.us.i ] ret i64 %retval.0 } diff --git a/bench/faiss/optimized/hamming.cpp.ll b/bench/faiss/optimized/hamming.cpp.ll index 8b5d2446a8d..9d9d54be90a 100644 --- a/bench/faiss/optimized/hamming.cpp.ll +++ b/bench/faiss/optimized/hamming.cpp.ll @@ -20061,8 +20061,8 @@ _ZNSt6vectorIiSaIiEEC2EmRKiRKS0_.exit.i.i.i: ; preds = %.noexc70.i.i.i, %_Z %68 = phi i64 [ %2, %.lr.ph.i.i.i ], [ %99, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer4EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %69 = phi ptr [ null, %.lr.ph.i.i.i ], [ %100, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer4EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %.062115.i.i.i = phi i64 [ 0, %.lr.ph.i.i.i ], [ %101, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer4EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] - %.idx135 = mul i64 %.062115.i.i.i, 132 - %70 = getelementptr inbounds i8, ptr %.sroa.0102.0.i.i.i, i64 %.idx135 + %.idx136 = mul i64 %.062115.i.i.i, 132 + %70 = getelementptr inbounds i8, ptr %.sroa.0102.0.i.i.i, i64 %.idx136 %.reass.i.i.i = mul i64 %invariant.op.i.i.i, %.062115.i.i.i %71 = getelementptr inbounds i64, ptr %61, i64 %.reass.i.i.i %72 = mul i64 %.062115.i.i.i, %63 @@ -20214,8 +20214,8 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i.i: ; preds = %106, %1 %109 = phi i64 [ %.pre159.i.i.i, %.preheader114.loopexit.i.i.i ], [ %107, %._crit_edge.i.i.i ] %.not138.i.i.i = icmp eq i64 %109, 0 %.pre160.i.i.i = load ptr, ptr %48, align 8, !noalias !467 - %.not136 = icmp eq i64 %4, 0 - %or.cond = or i1 %.not138.i.i.i, %.not136 + %.not53 = icmp eq i64 %4, 0 + %or.cond = or i1 %.not138.i.i.i, %.not53 br i1 %or.cond, label %._crit_edge131.i.i.i, label %.preheader.lr.ph.us.i.i.i .preheader.lr.ph.us.i.i.i: ; preds = %.preheader114.i.i.i, %._crit_edge128.us.i.i.i @@ -20286,14 +20286,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i.i: ; preds = %106, %1 %134 = trunc nuw nsw i64 %indvars.iv152.i.i.i to i32 %135 = add i64 %110, %127 %136 = shl i64 %135, 3 - %scevgep112 = getelementptr i8, ptr %7, i64 %136 + %scevgep117 = getelementptr i8, ptr %7, i64 %136 %137 = xor i64 %127, -1 %138 = add i64 %4, %137 %139 = add nsw i64 %133, -1 - %umin113 = call i64 @llvm.umin.i64(i64 %138, i64 %139) - %140 = shl nuw nsw i64 %umin113, 3 + %umin118 = call i64 @llvm.umin.i64(i64 %138, i64 %139) + %140 = shl nuw nsw i64 %umin118, 3 %141 = add nuw nsw i64 %140, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep112, ptr noundef nonnull align 8 dereferenceable(1) %132, i64 %141, i1 false), !noalias !482 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep117, ptr noundef nonnull align 8 dereferenceable(1) %132, i64 %141, i1 false), !noalias !482 br label %120 ..preheader113_crit_edge.us.i.i.i: ; preds = %._crit_edge122.us.i.i.i @@ -20302,12 +20302,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i.i: ; preds = %106, %1 .lr.ph127.us.i.i.i.preheader: ; preds = %..preheader113_crit_edge.us.i.i.i %142 = add i64 %110, %.pre-phi.i.i.i %143 = shl i64 %142, 3 - %scevgep115 = getelementptr i8, ptr %7, i64 %143 + %scevgep120 = getelementptr i8, ptr %7, i64 %143 %144 = add nsw i64 %.pre-phi.i.i.i, 1 - %umax116 = call i64 @llvm.umax.i64(i64 %4, i64 %144) - %145 = sub i64 %umax116, %.pre-phi.i.i.i + %umax121 = call i64 @llvm.umax.i64(i64 %4, i64 %144) + %145 = sub i64 %umax121, %.pre-phi.i.i.i %146 = shl i64 %145, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep115, i8 -1, i64 %146, i1 false), !alias.scope !465, !noalias !483 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep120, i8 -1, i64 %146, i1 false), !alias.scope !465, !noalias !483 %invariant.gep194 = getelementptr i32, ptr %6, i64 %110 br label %.lr.ph127.us.i.i.i @@ -20421,8 +20421,8 @@ _ZNSt6vectorIiSaIiEEC2EmRKiRKS0_.exit.i.i66.i: ; preds = %.noexc70.i.i65.i, % %170 = phi i64 [ %2, %.lr.ph.i.i71.i ], [ %201, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer8EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %171 = phi ptr [ null, %.lr.ph.i.i71.i ], [ %202, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer8EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %.062112.i.i.i = phi i64 [ 0, %.lr.ph.i.i71.i ], [ %203, %_ZNSt6vectorIN5faiss13HCounterStateINS0_16HammingComputer8EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] - %.idx132 = mul i64 %.062112.i.i.i, 260 - %172 = getelementptr inbounds i8, ptr %.sroa.0100.0.i.i.i, i64 %.idx132 + %.idx134 = mul i64 %.062112.i.i.i, 260 + %172 = getelementptr inbounds i8, ptr %.sroa.0100.0.i.i.i, i64 %.idx134 %.reass.i.i73.i = mul i64 %invariant.op.i.i70.i, %.062112.i.i.i %173 = getelementptr inbounds i64, ptr %163, i64 %.reass.i.i73.i %174 = mul i64 %.062112.i.i.i, %165 @@ -20574,8 +20574,8 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i106.i: ; preds = %208, %211 = phi i64 [ %.pre156.i.i.i, %.preheader111.loopexit.i.i.i ], [ %209, %._crit_edge.i.i82.i ] %.not135.i.i.i = icmp eq i64 %211, 0 %.pre157.i.i.i = load ptr, ptr %42, align 8, !noalias !493 - %.not133 = icmp eq i64 %4, 0 - %or.cond200 = or i1 %.not135.i.i.i, %.not133 + %.not52 = icmp eq i64 %4, 0 + %or.cond200 = or i1 %.not135.i.i.i, %.not52 br i1 %or.cond200, label %._crit_edge128.i.i.i, label %.preheader.lr.ph.us.i.i93.i .preheader.lr.ph.us.i.i93.i: ; preds = %.preheader111.i.i.i, %._crit_edge125.us.i.i.i @@ -20646,14 +20646,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i106.i: ; preds = %208, %236 = trunc nuw nsw i64 %indvars.iv149.i.i.i to i32 %237 = add i64 %212, %229 %238 = shl i64 %237, 3 - %scevgep107 = getelementptr i8, ptr %7, i64 %238 + %scevgep112 = getelementptr i8, ptr %7, i64 %238 %239 = xor i64 %229, -1 %240 = add i64 %4, %239 %241 = add nsw i64 %235, -1 - %umin108 = call i64 @llvm.umin.i64(i64 %240, i64 %241) - %242 = shl nuw nsw i64 %umin108, 3 + %umin113 = call i64 @llvm.umin.i64(i64 %240, i64 %241) + %242 = shl nuw nsw i64 %umin113, 3 %243 = add nuw nsw i64 %242, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep107, ptr noundef nonnull align 8 dereferenceable(1) %234, i64 %243, i1 false), !noalias !508 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep112, ptr noundef nonnull align 8 dereferenceable(1) %234, i64 %243, i1 false), !noalias !508 br label %222 ..preheader110_crit_edge.us.i.i.i: ; preds = %._crit_edge119.us.i.i.i @@ -20662,12 +20662,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i106.i: ; preds = %208, .lr.ph124.us.i.i.i.preheader: ; preds = %..preheader110_crit_edge.us.i.i.i %244 = add i64 %212, %.pre-phi.i.i95.i %245 = shl i64 %244, 3 - %scevgep110 = getelementptr i8, ptr %7, i64 %245 + %scevgep115 = getelementptr i8, ptr %7, i64 %245 %246 = add nsw i64 %.pre-phi.i.i95.i, 1 - %umax111 = call i64 @llvm.umax.i64(i64 %4, i64 %246) - %247 = sub i64 %umax111, %.pre-phi.i.i95.i + %umax116 = call i64 @llvm.umax.i64(i64 %4, i64 %246) + %247 = sub i64 %umax116, %.pre-phi.i.i95.i %248 = shl i64 %247, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep110, i8 -1, i64 %248, i1 false), !alias.scope !491, !noalias !509 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep115, i8 -1, i64 %248, i1 false), !alias.scope !491, !noalias !509 %invariant.gep190 = getelementptr i32, ptr %6, i64 %212 br label %.lr.ph124.us.i.i.i @@ -20771,8 +20771,8 @@ _ZNSt6vectorIiSaIiEEC2EmRKiRKS0_.exit.i.i128.i: ; preds = %.noexc70.i.i127.i, %272 = phi i64 [ %2, %.lr.ph.i.i134.i ], [ %305, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer16EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %273 = phi ptr [ null, %.lr.ph.i.i134.i ], [ %306, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer16EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %.062115.i.i136.i = phi i64 [ 0, %.lr.ph.i.i134.i ], [ %307, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer16EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] - %.idx129 = mul i64 %.062115.i.i136.i, 516 - %274 = getelementptr inbounds i8, ptr %.sroa.0102.0.i.i129.i, i64 %.idx129 + %.idx132 = mul i64 %.062115.i.i136.i, 516 + %274 = getelementptr inbounds i8, ptr %.sroa.0102.0.i.i129.i, i64 %.idx132 %.reass.i.i137.i = mul i64 %invariant.op.i.i133.i, %.062115.i.i136.i %275 = getelementptr inbounds i64, ptr %265, i64 %.reass.i.i137.i %276 = mul i64 %.062115.i.i136.i, %267 @@ -20930,8 +20930,8 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i203.i: ; preds = %312, %315 = phi i64 [ %.pre159.i.i152.i, %.preheader114.loopexit.i.i151.i ], [ %313, %._crit_edge.i.i146.i ] %.not138.i.i154.i = icmp eq i64 %315, 0 %.pre160.i.i155.i = load ptr, ptr %36, align 8, !noalias !518 - %.not130 = icmp eq i64 %4, 0 - %or.cond201 = or i1 %.not138.i.i154.i, %.not130 + %.not51 = icmp eq i64 %4, 0 + %or.cond201 = or i1 %.not138.i.i154.i, %.not51 br i1 %or.cond201, label %._crit_edge131.i.i169.i, label %.preheader.lr.ph.us.i.i174.i .preheader.lr.ph.us.i.i174.i: ; preds = %.preheader114.i.i153.i, %._crit_edge128.us.i.i184.i @@ -21002,14 +21002,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i203.i: ; preds = %312, %340 = trunc nuw nsw i64 %indvars.iv152.i.i177.i to i32 %341 = add i64 %316, %333 %342 = shl i64 %341, 3 - %scevgep102 = getelementptr i8, ptr %7, i64 %342 + %scevgep107 = getelementptr i8, ptr %7, i64 %342 %343 = xor i64 %333, -1 %344 = add i64 %4, %343 %345 = add nsw i64 %339, -1 - %umin103 = call i64 @llvm.umin.i64(i64 %344, i64 %345) - %346 = shl nuw nsw i64 %umin103, 3 + %umin108 = call i64 @llvm.umin.i64(i64 %344, i64 %345) + %346 = shl nuw nsw i64 %umin108, 3 %347 = add nuw nsw i64 %346, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep102, ptr noundef nonnull align 8 dereferenceable(1) %338, i64 %347, i1 false), !noalias !533 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep107, ptr noundef nonnull align 8 dereferenceable(1) %338, i64 %347, i1 false), !noalias !533 br label %326 ..preheader113_crit_edge.us.i.i183.i: ; preds = %._crit_edge122.us.i.i179.i @@ -21018,12 +21018,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i203.i: ; preds = %312, .lr.ph127.us.i.i186.i.preheader: ; preds = %..preheader113_crit_edge.us.i.i183.i %348 = add i64 %316, %.pre-phi.i.i180.i %349 = shl i64 %348, 3 - %scevgep105 = getelementptr i8, ptr %7, i64 %349 + %scevgep110 = getelementptr i8, ptr %7, i64 %349 %350 = add nsw i64 %.pre-phi.i.i180.i, 1 - %umax106 = call i64 @llvm.umax.i64(i64 %4, i64 %350) - %351 = sub i64 %umax106, %.pre-phi.i.i180.i + %umax111 = call i64 @llvm.umax.i64(i64 %4, i64 %350) + %351 = sub i64 %umax111, %.pre-phi.i.i180.i %352 = shl i64 %351, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep105, i8 -1, i64 %352, i1 false), !alias.scope !516, !noalias !534 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep110, i8 -1, i64 %352, i1 false), !alias.scope !516, !noalias !534 %invariant.gep186 = getelementptr i32, ptr %6, i64 %316 br label %.lr.ph127.us.i.i186.i @@ -21127,8 +21127,8 @@ _ZNSt6vectorIiSaIiEEC2EmRKiRKS0_.exit.i.i225.i: ; preds = %.noexc70.i.i224.i, %376 = phi i64 [ %2, %.lr.ph.i.i230.i ], [ %412, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer20EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %377 = phi ptr [ null, %.lr.ph.i.i230.i ], [ %413, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer20EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %.062120.i.i.i = phi i64 [ 0, %.lr.ph.i.i230.i ], [ %414, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer20EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] - %.idx126 = mul i64 %.062120.i.i.i, 644 - %378 = getelementptr inbounds i8, ptr %.sroa.0107.0.i.i.i, i64 %.idx126 + %.idx130 = mul i64 %.062120.i.i.i, 644 + %378 = getelementptr inbounds i8, ptr %.sroa.0107.0.i.i.i, i64 %.idx130 %.reass.i.i232.i = mul i64 %invariant.op.i.i229.i, %.062120.i.i.i %379 = getelementptr inbounds i64, ptr %369, i64 %.reass.i.i232.i %380 = mul i64 %.062120.i.i.i, %371 @@ -21293,8 +21293,8 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i265.i: ; preds = %419, %422 = phi i64 [ %.pre164.i.i.i, %.preheader119.loopexit.i.i.i ], [ %420, %._crit_edge.i.i241.i ] %.not143.i.i.i = icmp eq i64 %422, 0 %.pre165.i.i.i = load ptr, ptr %30, align 8, !noalias !543 - %.not127 = icmp eq i64 %4, 0 - %or.cond202 = or i1 %.not143.i.i.i, %.not127 + %.not50 = icmp eq i64 %4, 0 + %or.cond202 = or i1 %.not143.i.i.i, %.not50 br i1 %or.cond202, label %._crit_edge136.i.i.i, label %.preheader.lr.ph.us.i.i252.i .preheader.lr.ph.us.i.i252.i: ; preds = %.preheader119.i.i.i, %._crit_edge133.us.i.i.i @@ -21365,14 +21365,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i265.i: ; preds = %419, %447 = trunc nuw nsw i64 %indvars.iv157.i.i.i to i32 %448 = add i64 %423, %440 %449 = shl i64 %448, 3 - %scevgep97 = getelementptr i8, ptr %7, i64 %449 + %scevgep102 = getelementptr i8, ptr %7, i64 %449 %450 = xor i64 %440, -1 %451 = add i64 %4, %450 %452 = add nsw i64 %446, -1 - %umin98 = call i64 @llvm.umin.i64(i64 %451, i64 %452) - %453 = shl nuw nsw i64 %umin98, 3 + %umin103 = call i64 @llvm.umin.i64(i64 %451, i64 %452) + %453 = shl nuw nsw i64 %umin103, 3 %454 = add nuw nsw i64 %453, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep97, ptr noundef nonnull align 8 dereferenceable(1) %445, i64 %454, i1 false), !noalias !558 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep102, ptr noundef nonnull align 8 dereferenceable(1) %445, i64 %454, i1 false), !noalias !558 br label %433 ..preheader118_crit_edge.us.i.i.i: ; preds = %._crit_edge127.us.i.i.i @@ -21381,12 +21381,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i265.i: ; preds = %419, .lr.ph132.us.i.i.i.preheader: ; preds = %..preheader118_crit_edge.us.i.i.i %455 = add i64 %423, %.pre-phi.i.i254.i %456 = shl i64 %455, 3 - %scevgep100 = getelementptr i8, ptr %7, i64 %456 + %scevgep105 = getelementptr i8, ptr %7, i64 %456 %457 = add nsw i64 %.pre-phi.i.i254.i, 1 - %umax101 = call i64 @llvm.umax.i64(i64 %4, i64 %457) - %458 = sub i64 %umax101, %.pre-phi.i.i254.i + %umax106 = call i64 @llvm.umax.i64(i64 %4, i64 %457) + %458 = sub i64 %umax106, %.pre-phi.i.i254.i %459 = shl i64 %458, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep100, i8 -1, i64 %459, i1 false), !alias.scope !541, !noalias !559 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep105, i8 -1, i64 %459, i1 false), !alias.scope !541, !noalias !559 %invariant.gep182 = getelementptr i32, ptr %6, i64 %423 br label %.lr.ph132.us.i.i.i @@ -21490,8 +21490,8 @@ _ZNSt6vectorIiSaIiEEC2EmRKiRKS0_.exit.i.i285.i: ; preds = %.noexc70.i.i284.i, %483 = phi i64 [ %2, %.lr.ph.i.i290.i ], [ %520, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer32EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %484 = phi ptr [ null, %.lr.ph.i.i290.i ], [ %521, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer32EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] %.062119.i.i.i = phi i64 [ 0, %.lr.ph.i.i290.i ], [ %522, %_ZNSt6vectorIN5faiss13HCounterStateINS0_17HammingComputer32EEESaIS3_EE9push_backEOS3_.exit.i.i.i ] - %.idx123 = mul i64 %.062119.i.i.i, 1028 - %485 = getelementptr inbounds i8, ptr %.sroa.0106.0.i.i.i, i64 %.idx123 + %.idx128 = mul i64 %.062119.i.i.i, 1028 + %485 = getelementptr inbounds i8, ptr %.sroa.0106.0.i.i.i, i64 %.idx128 %.reass.i.i292.i = mul i64 %invariant.op.i.i289.i, %.062119.i.i.i %486 = getelementptr inbounds i64, ptr %476, i64 %.reass.i.i292.i %487 = mul i64 %.062119.i.i.i, %478 @@ -21661,8 +21661,8 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i331.i: ; preds = %527, %530 = phi i64 [ %.pre163.i.i.i, %.preheader118.loopexit.i.i.i ], [ %528, %._crit_edge.i.i303.i ] %.not142.i.i305.i = icmp eq i64 %530, 0 %.pre164.i.i306.i = load ptr, ptr %24, align 8, !noalias !568 - %.not124 = icmp eq i64 %4, 0 - %or.cond203 = or i1 %.not142.i.i305.i, %.not124 + %.not49 = icmp eq i64 %4, 0 + %or.cond203 = or i1 %.not142.i.i305.i, %.not49 br i1 %or.cond203, label %._crit_edge135.i.i.i, label %.preheader.lr.ph.us.i.i317.i .preheader.lr.ph.us.i.i317.i: ; preds = %.preheader118.i.i.i, %._crit_edge132.us.i.i.i @@ -21733,14 +21733,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i331.i: ; preds = %527, %555 = trunc nuw nsw i64 %indvars.iv156.i.i.i to i32 %556 = add i64 %531, %548 %557 = shl i64 %556, 3 - %scevgep92 = getelementptr i8, ptr %7, i64 %557 + %scevgep97 = getelementptr i8, ptr %7, i64 %557 %558 = xor i64 %548, -1 %559 = add i64 %4, %558 %560 = add nsw i64 %554, -1 - %umin93 = call i64 @llvm.umin.i64(i64 %559, i64 %560) - %561 = shl nuw nsw i64 %umin93, 3 + %umin98 = call i64 @llvm.umin.i64(i64 %559, i64 %560) + %561 = shl nuw nsw i64 %umin98, 3 %562 = add nuw nsw i64 %561, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep92, ptr noundef nonnull align 8 dereferenceable(1) %553, i64 %562, i1 false), !noalias !583 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep97, ptr noundef nonnull align 8 dereferenceable(1) %553, i64 %562, i1 false), !noalias !583 br label %541 ..preheader117_crit_edge.us.i.i.i: ; preds = %._crit_edge126.us.i.i.i @@ -21749,12 +21749,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i331.i: ; preds = %527, .lr.ph131.us.i.i.i.preheader: ; preds = %..preheader117_crit_edge.us.i.i.i %563 = add i64 %531, %.pre-phi.i.i319.i %564 = shl i64 %563, 3 - %scevgep95 = getelementptr i8, ptr %7, i64 %564 + %scevgep100 = getelementptr i8, ptr %7, i64 %564 %565 = add nsw i64 %.pre-phi.i.i319.i, 1 - %umax96 = call i64 @llvm.umax.i64(i64 %4, i64 %565) - %566 = sub i64 %umax96, %.pre-phi.i.i319.i + %umax101 = call i64 @llvm.umax.i64(i64 %4, i64 %565) + %566 = sub i64 %umax101, %.pre-phi.i.i319.i %567 = shl i64 %566, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep95, i8 -1, i64 %567, i1 false), !alias.scope !566, !noalias !584 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep100, i8 -1, i64 %567, i1 false), !alias.scope !566, !noalias !584 %invariant.gep178 = getelementptr i32, ptr %6, i64 %531 br label %.lr.ph131.us.i.i.i @@ -22141,12 +22141,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i400.i: ; preds = %643, .lr.ph139.us.i.i.i.preheader: ; preds = %..preheader125_crit_edge.us.i.i.i %679 = add i64 %647, %.pre-phi.i.i387.i %680 = shl i64 %679, 3 - %scevgep91 = getelementptr i8, ptr %7, i64 %680 + %scevgep96 = getelementptr i8, ptr %7, i64 %680 %681 = add nsw i64 %.pre-phi.i.i387.i, 1 %umax = call i64 @llvm.umax.i64(i64 %4, i64 %681) %682 = sub i64 %umax, %.pre-phi.i.i387.i %683 = shl i64 %682, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep91, i8 -1, i64 %683, i1 false), !alias.scope !591, !noalias !609 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep96, i8 -1, i64 %683, i1 false), !alias.scope !591, !noalias !609 %invariant.gep174 = getelementptr i32, ptr %6, i64 %647 br label %.lr.ph139.us.i.i.i @@ -22494,14 +22494,14 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i475.i: ; preds = %750, %782 = trunc nuw nsw i64 %indvars.iv154.i.i.i to i32 %783 = add i64 %758, %775 %784 = shl i64 %783, 3 - %scevgep117 = getelementptr i8, ptr %7, i64 %784 + %scevgep122 = getelementptr i8, ptr %7, i64 %784 %785 = xor i64 %775, -1 %786 = add i64 %4, %785 %787 = add nsw i64 %781, -1 - %umin118 = call i64 @llvm.umin.i64(i64 %786, i64 %787) - %788 = shl nuw nsw i64 %umin118, 3 + %umin123 = call i64 @llvm.umin.i64(i64 %786, i64 %787) + %788 = shl nuw nsw i64 %umin123, 3 %789 = add nuw nsw i64 %788, 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep117, ptr noundef nonnull align 8 dereferenceable(1) %780, i64 %789, i1 false), !noalias !611 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep122, ptr noundef nonnull align 8 dereferenceable(1) %780, i64 %789, i1 false), !noalias !611 br label %768 ..preheader115_crit_edge.us.i.i.i: ; preds = %._crit_edge124.us.i.i.i @@ -22510,12 +22510,12 @@ _ZNSt10unique_ptrIA_lSt14default_deleteIS0_EED2Ev.exit.i.i475.i: ; preds = %750, .lr.ph129.us.i.i.i.preheader: ; preds = %..preheader115_crit_edge.us.i.i.i %790 = add i64 %758, %.pre-phi.i.i459.i %791 = shl i64 %790, 3 - %scevgep120 = getelementptr i8, ptr %7, i64 %791 + %scevgep125 = getelementptr i8, ptr %7, i64 %791 %792 = add nsw i64 %.pre-phi.i.i459.i, 1 - %umax121 = call i64 @llvm.umax.i64(i64 %4, i64 %792) - %793 = sub i64 %umax121, %.pre-phi.i.i459.i + %umax126 = call i64 @llvm.umax.i64(i64 %4, i64 %792) + %793 = sub i64 %umax126, %.pre-phi.i.i459.i %794 = shl i64 %793, 3 - call void @llvm.memset.p0.i64(ptr align 8 %scevgep120, i8 -1, i64 %794, i1 false), !alias.scope !614, !noalias !631 + call void @llvm.memset.p0.i64(ptr align 8 %scevgep125, i8 -1, i64 %794, i1 false), !alias.scope !614, !noalias !631 %invariant.gep198 = getelementptr i32, ptr %6, i64 %758 br label %.lr.ph129.us.i.i.i diff --git a/bench/icu/optimized/genmbcs.ll b/bench/icu/optimized/genmbcs.ll index 7641a6b5aa2..2b20efaa2c7 100644 --- a/bench/icu/optimized/genmbcs.ll +++ b/bench/icu/optimized/genmbcs.ll @@ -513,9 +513,8 @@ land.lhs.true4.i130: ; preds = %sw.bb87 if.end.i110: ; preds = %land.lhs.true4.i130 %37 = load i8, ptr %utf8Friendly7, align 2 - %tobool.i112 = icmp ne i8 %37, 0 - %or.cond2.i113 = and i1 %cmp31, %tobool.i112 - br i1 %or.cond2.i113, label %land.lhs.true19.i121, label %MBCSOkForBaseFromUnicode.exit132 + %tobool.i112.not = icmp eq i8 %37, 0 + br i1 %tobool.i112.not, label %MBCSOkForBaseFromUnicode.exit132, label %land.lhs.true19.i121 land.lhs.true19.i121: ; preds = %if.end.i110 %38 = load i16, ptr %utf8Max33, align 8 diff --git a/bench/icu/optimized/regexcmp.ll b/bench/icu/optimized/regexcmp.ll index e4b8815d2e6..38a32bb8931 100644 --- a/bench/icu/optimized/regexcmp.ll +++ b/bench/icu/optimized/regexcmp.ll @@ -3034,15 +3034,11 @@ sw.bb246: ; preds = %entry %122 = load i32, ptr %count.i126, align 8 %sub251 = add nsw i32 %122, -1 %cmp252 = icmp eq i32 %call247, %sub251 - br i1 %cmp252, label %if.then253, label %if.end283 - -if.then253: ; preds = %sw.bb246 %cmp.i127 = icmp sgt i32 %call247, -1 - %cmp2.i129 = icmp slt i32 %call247, %122 - %or.cond.i130 = and i1 %cmp.i127, %cmp2.i129 - br i1 %or.cond.i130, label %_ZNK6icu_759UVector6410elementAtiEi.exit136, label %if.end283 + %or.cond284 = and i1 %cmp252, %cmp.i127 + br i1 %or.cond284, label %_ZNK6icu_759UVector6410elementAtiEi.exit136, label %if.end283 -_ZNK6icu_759UVector6410elementAtiEi.exit136: ; preds = %if.then253 +_ZNK6icu_759UVector6410elementAtiEi.exit136: ; preds = %sw.bb246 %elements.i133 = getelementptr inbounds nuw i8, ptr %121, i64 24 %123 = load ptr, ptr %elements.i133, align 8 %idxprom.i134 = zext nneg i32 %call247 to i64 @@ -3084,7 +3080,7 @@ if.then269: ; preds = %_ZNK6icu_759UVector tail call void @_ZN6icu_7512RegexCompile8appendOpEii(ptr noundef nonnull align 8 dereferenceable(512) %this, i32 noundef 51, i32 noundef %call281) br label %sw.epilog1134 -if.end283: ; preds = %if.then253, %_ZNK6icu_759UVector6410elementAtiEi.exit136, %sw.bb246 +if.end283: ; preds = %_ZNK6icu_759UVector6410elementAtiEi.exit136, %sw.bb246 %call288 = tail call noundef i32 @_ZN6icu_7512RegexCompile14minMatchLengthEii(ptr noundef nonnull align 8 dereferenceable(512) %this, i32 noundef %call247, i32 noundef %sub251) %cmp289 = icmp eq i32 %call288, 0 br i1 %cmp289, label %if.then290, label %if.else @@ -3158,15 +3154,11 @@ sw.bb323: ; preds = %entry %143 = load i32, ptr %count.i140, align 8 %sub330 = add nsw i32 %143, -1 %cmp331 = icmp eq i32 %call325, %sub330 - br i1 %cmp331, label %if.then332, label %if.end376 - -if.then332: ; preds = %sw.bb323 %cmp.i141 = icmp sgt i32 %call325, -1 - %cmp2.i143 = icmp slt i32 %call325, %143 - %or.cond.i144 = and i1 %cmp.i141, %cmp2.i143 - br i1 %or.cond.i144, label %_ZNK6icu_759UVector6410elementAtiEi.exit150, label %if.end376 + %or.cond285 = and i1 %cmp331, %cmp.i141 + br i1 %or.cond285, label %_ZNK6icu_759UVector6410elementAtiEi.exit150, label %if.end376 -_ZNK6icu_759UVector6410elementAtiEi.exit150: ; preds = %if.then332 +_ZNK6icu_759UVector6410elementAtiEi.exit150: ; preds = %sw.bb323 %elements.i147 = getelementptr inbounds nuw i8, ptr %142, i64 24 %144 = load ptr, ptr %elements.i147, align 8 %idxprom.i148 = zext nneg i32 %call325 to i64 @@ -3214,7 +3206,7 @@ if.then357: ; preds = %_ZNK6icu_759UVector tail call void @_ZN6icu_7512RegexCompile8appendOpEii(ptr noundef nonnull align 8 dereferenceable(512) %this, i32 noundef 51, i32 noundef %call374) br label %sw.epilog1134 -if.end376: ; preds = %if.then332, %_ZNK6icu_759UVector6410elementAtiEi.exit150, %sw.bb323 +if.end376: ; preds = %_ZNK6icu_759UVector6410elementAtiEi.exit150, %sw.bb323 %call378 = tail call noundef i32 @_ZN6icu_7512RegexCompile11blockTopLocEa(ptr noundef nonnull align 8 dereferenceable(512) %this, i8 noundef signext 1) %add379 = add nsw i32 %call378, 1 %call380 = tail call noundef i32 @_ZN6icu_7512RegexCompile7buildOpEii(ptr noundef nonnull align 8 dereferenceable(512) %this, i32 noundef 15, i32 noundef %add379) @@ -3385,11 +3377,11 @@ if.then.i163: ; preds = %sw.bb464 %182 = ashr exact i64 %181, 32 %.pre = load ptr, ptr %fRXPat471, align 8 %fCompiledPat479.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 32 - %.pre284 = load ptr, ptr %fCompiledPat479.phi.trans.insert, align 8 + %.pre286 = load ptr, ptr %fCompiledPat479.phi.trans.insert, align 8 br label %_ZN6icu_759UVector644popiEv.exit _ZN6icu_759UVector644popiEv.exit: ; preds = %sw.bb464, %if.then.i163 - %183 = phi ptr [ %.pre284, %if.then.i163 ], [ %176, %sw.bb464 ] + %183 = phi ptr [ %.pre286, %if.then.i163 ], [ %176, %sw.bb464 ] %result.0.i162 = phi i64 [ %182, %if.then.i163 ], [ 1, %sw.bb464 ] %fStatus481 = getelementptr inbounds nuw i8, ptr %this, i64 8 %184 = load ptr, ptr %fStatus481, align 8 diff --git a/bench/imgui/optimized/imgui.cpp.ll b/bench/imgui/optimized/imgui.cpp.ll index 20252147f18..d45eebda384 100644 --- a/bench/imgui/optimized/imgui.cpp.ll +++ b/bench/imgui/optimized/imgui.cpp.ll @@ -23099,12 +23099,12 @@ for.inc63.i: ; preds = %if.then51.i, %if.th br i1 %exitcond188.not.i, label %if.then69.i, label %for.body30.i.backedge for.inc63.thread.i: ; preds = %lor.lhs.false.i - %indvars.iv.next186210.i = add nuw nsw i64 %indvars.iv185.i, 1 - %exitcond188.not211.i = icmp eq i64 %indvars.iv.next186210.i, 512 - br i1 %exitcond188.not211.i, label %if.end86.i, label %for.body30.i.backedge + %indvars.iv.next186209.i = add nuw nsw i64 %indvars.iv185.i, 1 + %exitcond188.not210.i = icmp eq i64 %indvars.iv.next186209.i, 512 + br i1 %exitcond188.not210.i, label %if.end86.i, label %for.body30.i.backedge for.body30.i.backedge: ; preds = %for.inc63.thread.i, %for.inc63.i - %indvars.iv185.i.be = phi i64 [ %indvars.iv.next186.i, %for.inc63.i ], [ %indvars.iv.next186210.i, %for.inc63.thread.i ] + %indvars.iv185.i.be = phi i64 [ %indvars.iv.next186.i, %for.inc63.i ], [ %indvars.iv.next186209.i, %for.inc63.thread.i ] br label %for.body30.i, !llvm.loop !71 if.then69.i: ; preds = %for.inc63.i @@ -23233,8 +23233,8 @@ do.body.i: ; preds = %land.end.i %arrayidx238.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %144, i64 3632 %.pre207.i = load float, ptr %arrayidx238.phi.trans.insert.i, align 4 %cmp229.i = fcmp ogt float %.pre207.i, 0.000000e+00 - %narrow215.i = select i1 %cmp225.i, i1 true, i1 %cmp229.i - %frombool234.i = zext i1 %narrow215.i to i8 + %narrow214.i = select i1 %cmp225.i, i1 true, i1 %cmp229.i + %frombool234.i = zext i1 %narrow214.i to i8 %arrayidx232.i = getelementptr inbounds nuw i8, ptr %144, i64 13964 store i8 %frombool234.i, ptr %arrayidx232.i, align 4 %cmp.i152.i = fcmp oge float %171, %.pre207.i @@ -23549,23 +23549,23 @@ if.end.i.i303: ; preds = %for.body4.i.i %220 = load i32, ptr %EntriesNext.i.i, align 8 %221 = load i32, ptr %Capacity.i.i.i, align 4 %cmp.i34.i.i = icmp eq i32 %220, %221 - br i1 %cmp.i34.i.i, label %if.then.i38.i.i, label %if.end.i._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i_crit_edge.i + br i1 %cmp.i34.i.i, label %if.then.i38.i.i, label %if.end._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit_crit_edge.i.i -if.end.i._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i_crit_edge.i: ; preds = %if.end.i.i303 - %.pre208.i = load ptr, ptr %Data.i53.i.i, align 8 +if.end._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit_crit_edge.i.i: ; preds = %if.end.i.i303 + %.pre.i.i = load ptr, ptr %Data.i53.i.i, align 8 br label %_ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i.i if.then.i38.i.i: ; preds = %if.end.i.i303 %add.i.i.i304 = add nsw i32 %220, 1 %tobool.not.i.i.i168.i = icmp eq i32 %220, 0 - br i1 %tobool.not.i.i.i168.i, label %if.end.i.i.i, label %cond.true.i.i.i.i + br i1 %tobool.not.i.i.i168.i, label %_ZNK8ImVectorI19ImGuiKeyRoutingDataE14_grow_capacityEi.exit.i.i.i, label %cond.true.i.i.i.i cond.true.i.i.i.i: ; preds = %if.then.i38.i.i %div.i.i39.i.i = sdiv i32 %220, 2 %add.i.i40.i.i = add nsw i32 %div.i.i39.i.i, %220 - br label %if.end.i.i.i + br label %_ZNK8ImVectorI19ImGuiKeyRoutingDataE14_grow_capacityEi.exit.i.i.i -if.end.i.i.i: ; preds = %cond.true.i.i.i.i, %if.then.i38.i.i +_ZNK8ImVectorI19ImGuiKeyRoutingDataE14_grow_capacityEi.exit.i.i.i: ; preds = %cond.true.i.i.i.i, %if.then.i38.i.i %cond.i.i.i.i305 = phi i32 [ %add.i.i40.i.i, %cond.true.i.i.i.i ], [ 8, %if.then.i38.i.i ] %cond7.i.i41.i.i = call noundef i32 @llvm.smax.i32(i32 %cond.i.i.i.i305, i32 %add.i.i.i304) %conv.i.i.i = sext i32 %cond7.i.i41.i.i to i64 @@ -23577,7 +23577,7 @@ if.end.i.i.i: ; preds = %cond.true.i.i.i.i, %tobool.not.i.i52.i.i = icmp eq ptr %224, null br i1 %tobool.not.i.i52.i.i, label %_ZN5ImGui8MemAllocEm.exit.i.i.i, label %if.then.i.i.i169.i -if.then.i.i.i169.i: ; preds = %if.end.i.i.i +if.then.i.i.i169.i: ; preds = %_ZNK8ImVectorI19ImGuiKeyRoutingDataE14_grow_capacityEi.exit.i.i.i %DebugAllocInfo.i.i.i.i = getelementptr inbounds nuw i8, ptr %224, i64 24688 %FrameCount.i.i.i.i = getelementptr inbounds nuw i8, ptr %224, i64 16224 %225 = load i32, ptr %FrameCount.i.i.i.i, align 8 @@ -23618,10 +23618,10 @@ if.end.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i, store i32 %inc13.i.i.i.i.i, ptr %DebugAllocInfo.i.i.i.i, align 4 br label %_ZN5ImGui8MemAllocEm.exit.i.i.i -_ZN5ImGui8MemAllocEm.exit.i.i.i: ; preds = %if.end.i.i.i.i.i, %if.end.i.i.i +_ZN5ImGui8MemAllocEm.exit.i.i.i: ; preds = %if.end.i.i.i.i.i, %_ZNK8ImVectorI19ImGuiKeyRoutingDataE14_grow_capacityEi.exit.i.i.i %231 = load ptr, ptr %Data.i53.i.i, align 8 %tobool.not.i54.i.i = icmp eq ptr %231, null - br i1 %tobool.not.i54.i.i, label %_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i, label %if.then2.i.i.i + br i1 %tobool.not.i54.i.i, label %if.end7.i.i.i, label %if.then2.i.i.i if.then2.i.i.i: ; preds = %_ZN5ImGui8MemAllocEm.exit.i.i.i %232 = load i32, ptr %EntriesNext.i.i, align 8 @@ -23682,17 +23682,17 @@ _ZN5ImGui7MemFreeEPv.exit.i.i.i: ; preds = %_ZN5ImGui14DebugAll %241 = load ptr, ptr @_ZL20GImAllocatorFreeFunc, align 8 %242 = load ptr, ptr @_ZL20GImAllocatorUserData, align 8 call void %241(ptr noundef %233, ptr noundef %242) - br label %_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i + br label %if.end7.i.i.i -_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i: ; preds = %_ZN5ImGui7MemFreeEPv.exit.i.i.i, %_ZN5ImGui8MemAllocEm.exit.i.i.i +if.end7.i.i.i: ; preds = %_ZN5ImGui7MemFreeEPv.exit.i.i.i, %_ZN5ImGui8MemAllocEm.exit.i.i.i store ptr %call.i.i.i.i, ptr %Data.i53.i.i, align 8 store i32 %cond7.i.i41.i.i, ptr %Capacity.i.i.i, align 4 - %.pre.i.pre.i.i = load i32, ptr %EntriesNext.i.i, align 8 + %.pre.i.i.i = load i32, ptr %EntriesNext.i.i, align 8 br label %_ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i.i -_ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i.i: ; preds = %_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i, %if.end.i._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i_crit_edge.i - %243 = phi ptr [ %call.i.i.i.i, %_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i ], [ %.pre208.i, %if.end.i._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i_crit_edge.i ] - %244 = phi i32 [ %.pre.i.pre.i.i, %_ZN8ImVectorI19ImGuiKeyRoutingDataE7reserveEi.exit.i.i ], [ %220, %if.end.i._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i_crit_edge.i ] +_ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit.i.i: ; preds = %if.end7.i.i.i, %if.end._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit_crit_edge.i.i + %243 = phi ptr [ %call.i.i.i.i, %if.end7.i.i.i ], [ %.pre.i.i, %if.end._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit_crit_edge.i.i ] + %244 = phi i32 [ %.pre.i.i.i, %if.end7.i.i.i ], [ %220, %if.end._ZN8ImVectorI19ImGuiKeyRoutingDataE9push_backERKS0_.exit_crit_edge.i.i ] %idxprom.i36.i.i = sext i32 %244 to i64 %arrayidx.i37.i.i = getelementptr inbounds %struct.ImGuiKeyRoutingData, ptr %243, i64 %idxprom.i36.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %arrayidx.i37.i.i, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx.i.i.i, i64 16, i1 false) @@ -23722,11 +23722,11 @@ for.inc.i.i: ; preds = %if.then14.i.i, %_ZN br i1 %cmp3.not.i.i, label %for.end.loopexit.i.i, label %for.body4.i.i, !llvm.loop !76 for.end.loopexit.i.i: ; preds = %for.inc.i.i - %.pre.i.i = load i32, ptr %EntriesNext.i.i, align 8 + %.pre68.i.i = load i32, ptr %EntriesNext.i.i, align 8 br label %for.end.i.i for.end.i.i: ; preds = %for.end.loopexit.i.i, %for.body.i.i - %250 = phi i32 [ %.pre.i.i, %for.end.loopexit.i.i ], [ %216, %for.body.i.i ] + %250 = phi i32 [ %.pre68.i.i, %for.end.loopexit.i.i ], [ %216, %for.body.i.i ] %cmp22.i.i = icmp slt i32 %216, %250 %251 = trunc i32 %216 to i16 %conv23.i.i = select i1 %cmp22.i.i, i16 %251, i16 -1 @@ -24034,15 +24034,15 @@ while.body18.i.i.i.preheader: ; preds = %if.then11.i.i, %if. br label %while.body18.i.i.i while.body18.i.i.i: ; preds = %while.body18.i.i.i.preheader, %if.end30.i.i.i - %297 = phi i8 [ %.pre.i.i.i, %if.end30.i.i.i ], [ 35, %while.body18.i.i.i.preheader ] + %297 = phi i8 [ %.pre.i.i.i321, %if.end30.i.i.i ], [ 35, %while.body18.i.i.i.preheader ] %crc.328.i.i.i = phi i32 [ %xor37.i.i.i, %if.end30.i.i.i ], [ -1, %while.body18.i.i.i.preheader ] %data.127.i.idx.i.i = phi i64 [ %data.127.i.add.i.i, %if.end30.i.i.i ], [ 0, %while.body18.i.i.i.preheader ] %data.127.i.add.i.i = add nuw nsw i64 %data.127.i.idx.i.i, 1 %incdec.ptr1729.i.ptr.i.i = getelementptr inbounds nuw i8, ptr @.str.594, i64 %data.127.i.add.i.i %conv19.i.i.i = zext i8 %297 to i32 %cmp20.i.i.i = icmp eq i8 %297, 35 - %.pre.i.i.i = load i8, ptr %incdec.ptr1729.i.ptr.i.i, align 1 - %cmp24.i.i.i = icmp eq i8 %.pre.i.i.i, 35 + %.pre.i.i.i321 = load i8, ptr %incdec.ptr1729.i.ptr.i.i, align 1 + %cmp24.i.i.i = icmp eq i8 %.pre.i.i.i321, 35 %or.cond32.i.i.i = select i1 %cmp20.i.i.i, i1 %cmp24.i.i.i, i1 false br i1 %or.cond32.i.i.i, label %land.lhs.true25.i.i.i, label %if.end30.i.i.i @@ -24094,9 +24094,9 @@ land.lhs.true25.i.i: ; preds = %land.end.i.i if.end2.i.i.i: ; preds = %land.lhs.true25.i.i %and.i.i.i.i = and i32 %302, 2048 %tobool.not.i.i.i.i = icmp eq i32 %and.i.i.i.i, 0 - br i1 %tobool.not.i.i.i.i, label %if.end.i.i.i.i, label %if.then.i.i.i.i378 + br i1 %tobool.not.i.i.i.i, label %if.end.i.i.i.i, label %if.then.i.i.i.i379 -if.then.i.i.i.i378: ; preds = %if.end2.i.i.i +if.then.i.i.i.i379: ; preds = %if.end2.i.i.i %and.i.i.i.i.i = and i32 %302, -2049 %ConfigMacOSXBehaviors.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 89 %303 = load i8, ptr %ConfigMacOSXBehaviors.i.i.i.i.i, align 1 @@ -24105,13 +24105,13 @@ if.then.i.i.i.i378: ; preds = %if.end2.i.i.i %or.i.i.i.i.i = or i32 %cond.i.i.i.i.i, %and.i.i.i.i.i br label %if.end.i.i.i.i -if.end.i.i.i.i: ; preds = %if.then.i.i.i.i378, %if.end2.i.i.i - %key_chord.addr.0.i.i.i.i = phi i32 [ %or.i.i.i.i.i, %if.then.i.i.i.i378 ], [ %302, %if.end2.i.i.i ] +if.end.i.i.i.i: ; preds = %if.then.i.i.i.i379, %if.end2.i.i.i + %key_chord.addr.0.i.i.i.i = phi i32 [ %or.i.i.i.i.i, %if.then.i.i.i.i379 ], [ %302, %if.end2.i.i.i ] %and1.i.i.i.i = and i32 %key_chord.addr.0.i.i.i.i, 63488 %KeyMods.i.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 3688 %304 = load i32, ptr %KeyMods.i.i.i.i, align 8 - %cmp.not.i.i.i.i379 = icmp eq i32 %304, %and1.i.i.i.i - br i1 %cmp.not.i.i.i.i379, label %if.end3.i.i.i.i, label %land.lhs.true33.i.i + %cmp.not.i.i.i.i380 = icmp eq i32 %304, %and1.i.i.i.i + br i1 %cmp.not.i.i.i.i380, label %if.end3.i.i.i.i, label %land.lhs.true33.i.i if.end3.i.i.i.i: ; preds = %if.end.i.i.i.i %and4.i.i.i.i = and i32 %key_chord.addr.0.i.i.i.i, -63489 @@ -24223,8 +24223,8 @@ if.end8.i.i175.i.i: ; preds = %if.end12.i.i.i187.i land.end38.i.i: ; preds = %if.end8.i.i175.i.i, %if.end.i.i167.i.i, %land.lhs.true33.i.i %310 = phi i1 [ false, %land.lhs.true33.i.i ], [ false, %if.end.i.i167.i.i ], [ %call10.i.i177.i.i, %if.end8.i.i175.i.i ] %NavWindowingTarget52.phi.trans.insert.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19656 - %.pre.i.i380 = load ptr, ptr %NavWindowingTarget52.phi.trans.insert.i.i, align 8 - %311 = icmp eq ptr %.pre.i.i380, null + %.pre.i.i381 = load ptr, ptr %NavWindowingTarget52.phi.trans.insert.i.i, align 8 + %311 = icmp eq ptr %.pre.i.i381, null %.not674.i.i = xor i1 %311, true %brmerge.i.i = select i1 %.not.i.i, i1 true, i1 %.not674.i.i %.mux675.i.i = select i1 %.not.i.i, i1 %311, i1 false @@ -24234,27 +24234,27 @@ land.rhs46.i.i: ; preds = %land.end38.i.i %arrayidx10.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 13820 %312 = load i8, ptr %arrayidx10.i.i.i.i.i, align 4 %tobool.i.i.i = trunc i8 %312 to i1 - br i1 %tobool.i.i.i, label %if.end.i.i.i382, label %land.lhs.true51.i.i + br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true51.i.i -if.end.i.i.i382: ; preds = %land.rhs46.i.i +if.end.i.i.i: ; preds = %land.rhs46.i.i %DownDuration.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 13824 %313 = load float, ptr %DownDuration.i.i.i, align 4 %or.cond622.i.i = fcmp oeq float %313, 0.000000e+00 br i1 %or.cond622.i.i, label %if.end14.i.i.i, label %land.lhs.true51.i.i -if.end14.i.i.i: ; preds = %if.end.i.i.i382 +if.end14.i.i.i: ; preds = %if.end.i.i.i %LockThisFrame.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 18020 %314 = load i8, ptr %LockThisFrame.i.i.i, align 4 %315 = and i8 %314, 1 %cmp14.i.i.i = icmp eq i8 %315, 0 br label %land.lhs.true51.i.i -land.lhs.true51.i.i: ; preds = %if.end14.i.i.i, %if.end.i.i.i382, %land.rhs46.i.i, %land.end38.i.i - %tobool53.not.i.i = phi i1 [ true, %if.end14.i.i.i ], [ true, %if.end.i.i.i382 ], [ true, %land.rhs46.i.i ], [ %.mux675.i.i, %land.end38.i.i ] - %.ph595.i.i = phi i1 [ %cmp14.i.i.i, %if.end14.i.i.i ], [ false, %if.end.i.i.i382 ], [ false, %land.rhs46.i.i ], [ false, %land.end38.i.i ] +land.lhs.true51.i.i: ; preds = %if.end14.i.i.i, %if.end.i.i.i, %land.rhs46.i.i, %land.end38.i.i + %tobool53.not.i.i = phi i1 [ true, %if.end14.i.i.i ], [ true, %if.end.i.i.i ], [ true, %land.rhs46.i.i ], [ %.mux675.i.i, %land.end38.i.i ] + %.ph595.i.i = phi i1 [ %cmp14.i.i.i, %if.end14.i.i.i ], [ false, %if.end.i.i.i ], [ false, %land.rhs46.i.i ], [ false, %land.end38.i.i ] %frombool49596.i.i = zext i1 %.ph595.i.i to i8 %316 = or i1 %.ph.i.i, %310 - %spec.select.i.i381 = and i1 %316, %tobool53.not.i.i + %spec.select.i.i382 = and i1 %316, %tobool53.not.i.i br label %land.end57.i.i land.end57.i.i: ; preds = %land.lhs.true51.i.i, %land.end.i.i @@ -24262,7 +24262,7 @@ land.end57.i.i: ; preds = %land.lhs.true51.i.i %317 = phi i1 [ %.ph595.i.i, %land.lhs.true51.i.i ], [ false, %land.end.i.i ] %318 = phi i1 [ %.ph.i.i, %land.lhs.true51.i.i ], [ false, %land.end.i.i ] %319 = phi i1 [ %310, %land.lhs.true51.i.i ], [ false, %land.end.i.i ] - %320 = phi i1 [ %spec.select.i.i381, %land.lhs.true51.i.i ], [ false, %land.end.i.i ] + %320 = phi i1 [ %spec.select.i.i382, %land.lhs.true51.i.i ], [ false, %land.end.i.i ] %brmerge143.i.i = or i1 %317, %320 br i1 %brmerge143.i.i, label %if.then61.i.i, label %if.end84.i.i @@ -24290,20 +24290,20 @@ land.lhs.true.lr.ph.i.i.i: ; preds = %cond.false.i.i br label %for.body.i197.i.i for.body.i197.i.i: ; preds = %for.inc.i198.i.i, %land.lhs.true.lr.ph.i.i.i - %indvars.iv.i.i373 = phi i64 [ %indvars.iv.next.i.i374, %for.inc.i198.i.i ], [ %323, %land.lhs.true.lr.ph.i.i.i ] - %indvars.iv.next.i.i374 = add nsw i64 %indvars.iv.i.i373, -1 - %arrayidx.i.i.i.i375 = getelementptr inbounds nuw ptr, ptr %324, i64 %indvars.iv.next.i.i374 - %325 = load ptr, ptr %arrayidx.i.i.i.i375, align 8 + %indvars.iv.i.i374 = phi i64 [ %indvars.iv.next.i.i375, %for.inc.i198.i.i ], [ %323, %land.lhs.true.lr.ph.i.i.i ] + %indvars.iv.next.i.i375 = add nsw i64 %indvars.iv.i.i374, -1 + %arrayidx.i.i.i.i376 = getelementptr inbounds nuw ptr, ptr %324, i64 %indvars.iv.next.i.i375 + %325 = load ptr, ptr %arrayidx.i.i.i.i376, align 8 %WasActive.i.i.i.i = getelementptr inbounds nuw i8, ptr %325, i64 191 %326 = load i8, ptr %WasActive.i.i.i.i, align 1 - %tobool.i.i.i.i376 = trunc i8 %326 to i1 - br i1 %tobool.i.i.i.i376, label %land.lhs.true.i.i.i.i, label %for.inc.i198.i.i + %tobool.i.i.i.i377 = trunc i8 %326 to i1 + br i1 %tobool.i.i.i.i377, label %land.lhs.true.i.i.i.i, label %for.inc.i198.i.i land.lhs.true.i.i.i.i: ; preds = %for.body.i197.i.i %RootWindow.i.i.i.i = getelementptr inbounds nuw i8, ptr %325, i64 904 %327 = load ptr, ptr %RootWindow.i.i.i.i, align 8 - %cmp.i.i.i.i377 = icmp eq ptr %325, %327 - br i1 %cmp.i.i.i.i377, label %_ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i, label %for.inc.i198.i.i + %cmp.i.i.i.i378 = icmp eq ptr %325, %327 + br i1 %cmp.i.i.i.i378, label %_ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i, label %for.inc.i198.i.i _ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i: ; preds = %land.lhs.true.i.i.i.i %Flags.i.i.i.i = getelementptr inbounds nuw i8, ptr %325, i64 20 @@ -24313,7 +24313,7 @@ _ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i: ; preds = %land.lhs.t br i1 %tobool1.not.i.i.i.i, label %if.then66.i.i, label %for.inc.i198.i.i for.inc.i198.i.i: ; preds = %_ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i, %land.lhs.true.i.i.i.i, %for.body.i197.i.i - %cmp.i199.i.i = icmp samesign ugt i64 %indvars.iv.i.i373, 1 + %cmp.i199.i.i = icmp samesign ugt i64 %indvars.iv.i.i374, 1 br i1 %cmp.i199.i.i, label %for.body.i197.i.i, label %if.end84.i.i, !llvm.loop !80 if.then66.i.i: ; preds = %_ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i, %if.then61.if.then66_crit_edge.i.i @@ -24346,14 +24346,14 @@ if.then78.i.i: ; preds = %if.then66.i.i br i1 %tobool.not.i202.i.i, label %if.end.i204.i.i, label %if.then.i203.i.i if.then.i203.i.i: ; preds = %if.then78.i.i - %arrayidx.i.i.i.i.i370 = getelementptr inbounds nuw i8, ptr %285, i64 18360 + %arrayidx.i.i.i.i.i371 = getelementptr inbounds nuw i8, ptr %285, i64 18360 %OwnerNext.i.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 18364 store i32 %not40.i.i.i, ptr %OwnerNext.i.i.i.i, align 4 - store i32 %not40.i.i.i, ptr %arrayidx.i.i.i.i.i370, align 4 + store i32 %not40.i.i.i, ptr %arrayidx.i.i.i.i.i371, align 4 %LockUntilRelease.i.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 18369 store i8 0, ptr %LockUntilRelease.i.i.i.i, align 1 - %LockThisFrame.i.i.i.i371 = getelementptr inbounds nuw i8, ptr %285, i64 18368 - store i8 0, ptr %LockThisFrame.i.i.i.i371, align 4 + %LockThisFrame.i.i.i.i372 = getelementptr inbounds nuw i8, ptr %285, i64 18368 + store i8 0, ptr %LockThisFrame.i.i.i.i372, align 4 br label %if.end.i204.i.i if.end.i204.i.i: ; preds = %if.then.i203.i.i, %if.then78.i.i @@ -24414,8 +24414,8 @@ if.then15.i.i.i: ; preds = %if.end12.i.i.i %332 = load i8, ptr %ConfigMacOSXBehaviors.i.i.i.i.i.i, align 1 %tobool.i.i.i.i.i.i = trunc i8 %332 to i1 %KeysOwnerData.i.i50.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 16560 - %idxprom.i.i.i.i.i372 = select i1 %tobool.i.i.i.i.i.i, i64 153, i64 150 - %arrayidx.i.i51.i.i.i = getelementptr inbounds nuw [154 x %struct.ImGuiKeyOwnerData], ptr %KeysOwnerData.i.i50.i.i.i, i64 0, i64 %idxprom.i.i.i.i.i372 + %idxprom.i.i.i.i.i373 = select i1 %tobool.i.i.i.i.i.i, i64 153, i64 150 + %arrayidx.i.i51.i.i.i = getelementptr inbounds nuw [154 x %struct.ImGuiKeyOwnerData], ptr %KeysOwnerData.i.i50.i.i.i, i64 0, i64 %idxprom.i.i.i.i.i373 %OwnerNext.i52.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i51.i.i.i, i64 4 store i32 %not40.i.i.i, ptr %OwnerNext.i52.i.i.i, align 4 store i32 %not40.i.i.i, ptr %arrayidx.i.i51.i.i.i, align 4 @@ -24430,8 +24430,8 @@ if.end84.i.i: ; preds = %for.inc.i198.i.i, % %333 = load float, ptr %DeltaTime85.i.i, align 8 %NavWindowingTimer86.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19680 %334 = load float, ptr %NavWindowingTimer86.i.i, align 8 - %add.i.i321 = fadd float %333, %334 - store float %add.i.i321, ptr %NavWindowingTimer86.i.i, align 8 + %add.i.i322 = fadd float %333, %334 + store float %add.i.i322, ptr %NavWindowingTimer86.i.i, align 8 %NavWindowingTarget87.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19656 %335 = load ptr, ptr %NavWindowingTarget87.i.i, align 8 %tobool88.not.i.i = icmp eq ptr %335, null @@ -24446,11 +24446,11 @@ land.lhs.true89.i.i: ; preds = %if.end84.i.i if.then92.i.i: ; preds = %land.lhs.true89.i.i %NavWindowingHighlightAlpha93.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19684 %337 = load float, ptr %NavWindowingHighlightAlpha93.i.i, align 4 - %sub95.i.i = fadd float %add.i.i321, 0xBFC99999A0000000 - %div.i.i364 = fdiv float %sub95.i.i, 0x3FA99999A0000000 - %cmp.i206.i.i = fcmp olt float %div.i.i364, 0.000000e+00 - %cmp1.i207.i.i = fcmp ogt float %div.i.i364, 1.000000e+00 - %cond.i208.i.i = select i1 %cmp1.i207.i.i, float 1.000000e+00, float %div.i.i364 + %sub95.i.i = fadd float %add.i.i322, 0xBFC99999A0000000 + %div.i.i365 = fdiv float %sub95.i.i, 0x3FA99999A0000000 + %cmp.i206.i.i = fcmp olt float %div.i.i365, 0.000000e+00 + %cmp1.i207.i.i = fcmp ogt float %div.i.i365, 1.000000e+00 + %cond.i208.i.i = select i1 %cmp1.i207.i.i, float 1.000000e+00, float %div.i.i365 %cond5.i.i.i = select i1 %cmp.i206.i.i, float 0.000000e+00, float %cond.i208.i.i %cmp.i209.i.i = fcmp oge float %337, %cond5.i.i.i %cond.i210.i.i = select i1 %cmp.i209.i.i, float %337, float %cond5.i.i.i @@ -24598,8 +24598,8 @@ if.then104.i.i: ; preds = %_ZN5ImGui12IsKeyPre if.end.i216.i.i: ; preds = %if.then104.i.i %362 = getelementptr i8, ptr %360, i64 212 %.val.i.i.i = load i16, ptr %362, align 4 - %conv.i.i.i.i367 = sext i16 %.val.i.i.i to i32 - %add.i217.i.i = add nsw i32 %sub102.i.i, %conv.i.i.i.i367 + %conv.i.i.i.i368 = sext i16 %.val.i.i.i to i32 + %add.i217.i.i = add nsw i32 %sub102.i.i, %conv.i.i.i.i368 %cmp11.i.i.i.i = icmp sgt i32 %add.i217.i.i, -1 %WindowsFocusOrder.i.i.i.i = getelementptr inbounds nuw i8, ptr %338, i64 16312 %363 = load i32, ptr %WindowsFocusOrder.i.i.i.i, align 8 @@ -24610,7 +24610,7 @@ land.lhs.true.lr.ph.i.i.i.i: ; preds = %if.end.i216.i.i br label %land.lhs.true.i.i220.i.i land.lhs.true.i.i220.i.i: ; preds = %for.inc.i.i.i.i, %land.lhs.true.lr.ph.i.i.i.i - %i.012.i.i.i.i = phi i32 [ %add.i217.i.i, %land.lhs.true.lr.ph.i.i.i.i ], [ %add.i.i.i.i369, %for.inc.i.i.i.i ] + %i.012.i.i.i.i = phi i32 [ %add.i217.i.i, %land.lhs.true.lr.ph.i.i.i.i ], [ %add.i.i.i.i370, %for.inc.i.i.i.i ] %cmp1.i.not.i.i.i = icmp slt i32 %i.012.i.i.i.i, %363 br i1 %cmp1.i.not.i.i.i, label %for.body.i.i.i.i, label %if.then4.i.i.i @@ -24638,8 +24638,8 @@ _ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i.i: ; preds = %land.lhs br i1 %tobool1.not.i.i.i.i.i, label %if.then8.i.i.i, label %for.inc.i.i.i.i for.inc.i.i.i.i: ; preds = %_ZN5ImGui20IsWindowNavFocusableEP11ImGuiWindow.exit.i.i.i.i, %land.lhs.true.i.i.i.i.i, %for.body.i.i.i.i - %add.i.i.i.i369 = add nsw i32 %i.012.i.i.i.i, %sub102.i.i - %cmp.i.i224.i.i = icmp sgt i32 %add.i.i.i.i369, -1 + %add.i.i.i.i370 = add nsw i32 %i.012.i.i.i.i, %sub102.i.i + %cmp.i.i224.i.i = icmp sgt i32 %add.i.i.i.i370, -1 br i1 %cmp.i.i224.i.i, label %land.lhs.true.i.i220.i.i, label %if.then4.i.i.i, !llvm.loop !80 if.then4.i.i.i: ; preds = %for.inc.i.i.i.i, %land.lhs.true.i.i220.i.i, %if.end.i216.i.i @@ -24647,19 +24647,19 @@ if.then4.i.i.i: ; preds = %for.inc.i.i.i.i, %l br i1 %cmp.i218.i.i, label %cond.end.i.i.i, label %land.lhs.true.lr.ph.i16.i.i.i cond.end.i.i.i: ; preds = %if.then4.i.i.i - %sub.i.i.i368 = add nsw i32 %363, -1 + %sub.i.i.i369 = add nsw i32 %363, -1 %cmp11.i14.i.i.i = icmp sgt i32 %363, 0 br i1 %cmp11.i14.i.i.i, label %land.lhs.true.lr.ph.i16.i.i.i, label %if.end10.i.i.i land.lhs.true.lr.ph.i16.i.i.i: ; preds = %cond.end.i.i.i, %if.then4.i.i.i - %cond44.i.i.i = phi i32 [ %sub.i.i.i368, %cond.end.i.i.i ], [ 0, %if.then4.i.i.i ] + %cond44.i.i.i = phi i32 [ %sub.i.i.i369, %cond.end.i.i.i ], [ 0, %if.then4.i.i.i ] %Data.i.i18.i.i.i = getelementptr inbounds nuw i8, ptr %338, i64 16320 br label %land.lhs.true.i19.i.i.i land.lhs.true.i19.i.i.i: ; preds = %for.inc.i29.i.i.i, %land.lhs.true.lr.ph.i16.i.i.i %i.012.i20.i.i.i = phi i32 [ %cond44.i.i.i, %land.lhs.true.lr.ph.i16.i.i.i ], [ %add.i30.i.i.i, %for.inc.i29.i.i.i ] %cmp1.i21.i.i.i = icmp sge i32 %i.012.i20.i.i.i, %363 - %cmp2.not.i22.i.i.i = icmp eq i32 %i.012.i20.i.i.i, %conv.i.i.i.i367 + %cmp2.not.i22.i.i.i = icmp eq i32 %i.012.i20.i.i.i, %conv.i.i.i.i368 %or.cond.i23.i.i.i = or i1 %cmp2.not.i22.i.i.i, %cmp1.i21.i.i.i br i1 %or.cond.i23.i.i.i, label %if.end10.i.i.i, label %for.body.i24.i.i.i @@ -24711,19 +24711,19 @@ _ZL33NavUpdateWindowingHighlightWindowi.exit.i.i: ; preds = %if.end10.i.i.i, %if if.end106.i.i: ; preds = %_ZL33NavUpdateWindowingHighlightWindowi.exit.i.i, %_ZN5ImGui12IsKeyPressedE8ImGuiKeyji.exit504.i.i %374 = phi float [ 1.000000e+00, %_ZL33NavUpdateWindowingHighlightWindowi.exit.i.i ], [ %cond.i210.i.i, %_ZN5ImGui12IsKeyPressedE8ImGuiKeyji.exit504.i.i ] - %arrayidx10.i.i.i.i.i.i365 = getelementptr inbounds nuw i8, ptr %338, i64 13820 - %375 = load i8, ptr %arrayidx10.i.i.i.i.i.i365, align 4 + %arrayidx10.i.i.i.i.i.i366 = getelementptr inbounds nuw i8, ptr %338, i64 13820 + %375 = load i8, ptr %arrayidx10.i.i.i.i.i.i366, align 4 %tobool.i.i226.i.i = trunc i8 %375 to i1 - br i1 %tobool.i.i226.i.i, label %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i366, label %if.then108.i.i + br i1 %tobool.i.i226.i.i, label %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i367, label %if.then108.i.i -_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i366: ; preds = %if.end106.i.i +_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i367: ; preds = %if.end106.i.i %LockThisFrame.i.i228.i.i = getelementptr i8, ptr %338, i64 18020 %376 = load i8, ptr %LockThisFrame.i.i228.i.i, align 4 %377 = and i8 %376, 1 %cmp14.i.i.i.i = icmp eq i8 %377, 0 br i1 %cmp14.i.i.i.i, label %if.end132.i.i, label %if.then108.i.i -if.then108.i.i: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i366, %if.end106.i.i +if.then108.i.i: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i367, %if.end106.i.i %cmp110.i.i = fcmp olt float %374, 1.000000e+00 %NavWindowingToggleLayer112.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19688 %378 = load i8, ptr %NavWindowingToggleLayer112.i.i, align 8 @@ -24750,7 +24750,7 @@ if.end129.i.i: ; preds = %if.then126.i.i, %la store ptr null, ptr %NavWindowingTarget87.i.i, align 8 br label %if.end175.i.i -if.end132.i.i: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i366 +if.end132.i.i: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i.i367 %.pr.pre.i.i = load ptr, ptr %NavWindowingTarget87.i.i, align 8 %tobool134.not.i.i = icmp eq ptr %.pr.pre.i.i, null br i1 %tobool134.not.i.i, label %if.end175.i.i, label %land.lhs.true135thread-pre-split.i.i @@ -24912,8 +24912,8 @@ if.else168.i.i: ; preds = %if.then138.i.i %402 = and i32 %383, 63488 %and153.i.i = select i1 %tobool140.not.i.i, i32 63488, i32 %402 %and154.i.i = and i32 %cond152.i.i, %and153.i.i - %KeyMods.i.i363 = getelementptr inbounds nuw i8, ptr %285, i64 3688 - %403 = load i32, ptr %KeyMods.i.i363, align 8 + %KeyMods.i.i364 = getelementptr inbounds nuw i8, ptr %285, i64 3688 + %403 = load i32, ptr %KeyMods.i.i364, align 8 %and169.i.i = and i32 %403, %and154.i.i %cmp170.not.i.i = icmp eq i32 %and169.i.i, %and154.i.i %spec.select624.i.i = select i1 %cmp170.not.i.i, ptr null, ptr %.pr657.i.i @@ -25112,12 +25112,12 @@ if.end248.sink.split.i.i: ; preds = %land.lhs.true236.i. %AnalogValue6.i.i.i = getelementptr inbounds nuw i8, ptr %433, i64 %.sink678.i.i %437 = load float, ptr %AnalogValue6.i.i.i, align 4 %sub7.i.i.i = fsub float %436, %437 - %retval.sroa.0.0.vec.insert.i.i.i356 = insertelement <2 x float> poison, float %sub.i359.i.i, i64 0 - %retval.sroa.0.4.vec.insert.i.i.i357 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i356, float %sub7.i.i.i, i64 1 + %retval.sroa.0.0.vec.insert.i.i.i357 = insertelement <2 x float> poison, float %sub.i359.i.i, i64 0 + %retval.sroa.0.4.vec.insert.i.i.i358 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i357, float %sub7.i.i.i, i64 1 br label %if.end248.i.i if.end248.i.i: ; preds = %if.end248.sink.split.i.i, %land.lhs.true236.i.i, %if.then233.i.i - %nav_move_dir.sroa.0.1.i.i = phi <2 x float> [ zeroinitializer, %land.lhs.true236.i.i ], [ zeroinitializer, %if.then233.i.i ], [ %retval.sroa.0.4.vec.insert.i.i.i357, %if.end248.sink.split.i.i ] + %nav_move_dir.sroa.0.1.i.i = phi <2 x float> [ zeroinitializer, %land.lhs.true236.i.i ], [ zeroinitializer, %if.then233.i.i ], [ %retval.sroa.0.4.vec.insert.i.i.i358, %if.end248.sink.split.i.i ] %nav_move_dir.sroa.0.0.vec.extract.i.i = extractelement <2 x float> %nav_move_dir.sroa.0.1.i.i, i64 0 %cmp249.i.i = fcmp une float %nav_move_dir.sroa.0.0.vec.extract.i.i, 0.000000e+00 %nav_move_dir.sroa.0.4.vec.extract.i.i = extractelement <2 x float> %nav_move_dir.sroa.0.1.i.i, i64 1 @@ -25127,19 +25127,19 @@ if.end248.i.i: ; preds = %if.end248.sink.spli if.then252.i.i: ; preds = %if.end248.i.i %438 = load float, ptr %DeltaTime85.i.i, align 8 - %mul.i.i358 = fmul float %438, 8.000000e+02 + %mul.i.i359 = fmul float %438, 8.000000e+02 %DisplayFramebufferScale.i.i = getelementptr inbounds nuw i8, ptr %285, i64 80 %439 = load float, ptr %DisplayFramebufferScale.i.i, align 8 %y256.i.i = getelementptr inbounds nuw i8, ptr %285, i64 84 %440 = load float, ptr %y256.i.i, align 4 %cmp.i369.i.i = fcmp olt float %439, %440 %cond.i370.i.i = select i1 %cmp.i369.i.i, float %439, float %440 - %mul258.i.i = fmul float %mul.i.i358, %cond.i370.i.i - %mul.i.i.i359 = fmul float %nav_move_dir.sroa.0.0.vec.extract.i.i, %mul258.i.i + %mul258.i.i = fmul float %mul.i.i359, %cond.i370.i.i + %mul.i.i.i360 = fmul float %nav_move_dir.sroa.0.0.vec.extract.i.i, %mul258.i.i %mul1.i.i.i = fmul float %nav_move_dir.sroa.0.4.vec.extract.i.i, %mul258.i.i %NavWindowingAccumDeltaPos261.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19692 %441 = load float, ptr %NavWindowingAccumDeltaPos261.i.i, align 4 - %add.i373.i.i = fadd float %441, %mul.i.i.i359 + %add.i373.i.i = fadd float %441, %mul.i.i.i360 store float %add.i373.i.i, ptr %NavWindowingAccumDeltaPos261.i.i, align 4 %y2.i.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19696 %442 = load float, ptr %y2.i.i.i, align 4 @@ -25147,11 +25147,11 @@ if.then252.i.i: ; preds = %if.end248.i.i store float %add3.i.i.i, ptr %y2.i.i.i, align 4 %NavDisableMouseHover.i.i = getelementptr inbounds nuw i8, ptr %285, i64 19251 store i8 1, ptr %NavDisableMouseHover.i.i, align 1 - %conv.i.i.i360 = fptosi float %add.i373.i.i to i32 - %conv1.i.i.i = sitofp i32 %conv.i.i.i360 to float + %conv.i.i.i361 = fptosi float %add.i373.i.i to i32 + %conv1.i.i.i = sitofp i32 %conv.i.i.i361 to float %conv2.i.i.i = fptosi float %add3.i.i.i to i32 %conv3.i.i.i = sitofp i32 %conv2.i.i.i to float - %cmp266.i.i = icmp ne i32 %conv.i.i.i360, 0 + %cmp266.i.i = icmp ne i32 %conv.i.i.i361, 0 %cmp269.i.i = icmp ne i32 %conv2.i.i.i, 0 %or.cond1.i.i = select i1 %cmp266.i.i, i1 true, i1 %cmp269.i.i br i1 %or.cond1.i.i, label %if.then270.i.i, label %if.end279.i.i @@ -25181,12 +25181,12 @@ if.end.i384.i.i: ; preds = %if.then270.i.i %conv.i.i385.i.i = fptosi float %add.i377.i.i to i32 %conv1.i.i.i.i = sitofp i32 %conv.i.i385.i.i to float %conv2.i.i.i.i = fptosi float %add3.i378.i.i to i32 - %conv3.i.i.i.i361 = sitofp i32 %conv2.i.i.i.i to float + %conv3.i.i.i.i362 = sitofp i32 %conv2.i.i.i.i to float %retval.sroa.0.0.vec.insert.i.i.i.i = insertelement <2 x float> poison, float %conv1.i.i.i.i, i64 0 - %retval.sroa.0.4.vec.insert.i.i.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i.i, float %conv3.i.i.i.i361, i64 1 + %retval.sroa.0.4.vec.insert.i.i.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i.i, float %conv3.i.i.i.i362, i64 1 store <2 x float> %retval.sroa.0.4.vec.insert.i.i.i.i, ptr %Pos.i.i, align 8 %sub.i.i.i.i = fsub float %conv1.i.i.i.i, %Pos.val.i.i - %sub3.i.i.i.i = fsub float %conv3.i.i.i.i361, %Pos.val151.i.i + %sub3.i.i.i.i = fsub float %conv3.i.i.i.i362, %Pos.val151.i.i %cmp11.i386.i.i = fcmp oeq float %sub.i.i.i.i, 0.000000e+00 %cmp13.i.i.i = fcmp oeq float %sub3.i.i.i.i, 0.000000e+00 %or.cond.i387.i.i = select i1 %cmp11.i386.i.i, i1 %cmp13.i.i.i, i1 false @@ -25204,15 +25204,15 @@ if.then.i.i392.i.i: ; preds = %if.end15.i.i.i %SettingsDirtyTimer.i.i.i.i = getelementptr inbounds nuw i8, ptr %445, i64 24332 %447 = load float, ptr %SettingsDirtyTimer.i.i.i.i, align 4 %cmp.i.i393.i.i = fcmp ugt float %447, 0.000000e+00 - br i1 %cmp.i.i393.i.i, label %_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow.exit.i.i.i, label %if.then1.i.i.i.i362 + br i1 %cmp.i.i393.i.i, label %_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow.exit.i.i.i, label %if.then1.i.i.i.i363 -if.then1.i.i.i.i362: ; preds = %if.then.i.i392.i.i +if.then1.i.i.i.i363: ; preds = %if.then.i.i392.i.i %IniSavingRate.i.i.i.i = getelementptr inbounds nuw i8, ptr %445, i64 28 %448 = load float, ptr %IniSavingRate.i.i.i.i, align 4 store float %448, ptr %SettingsDirtyTimer.i.i.i.i, align 4 br label %_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow.exit.i.i.i -_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow.exit.i.i.i: ; preds = %if.then1.i.i.i.i362, %if.then.i.i392.i.i, %if.end15.i.i.i +_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow.exit.i.i.i: ; preds = %if.then1.i.i.i.i363, %if.then.i.i392.i.i, %if.end15.i.i.i %DC.i.i.i = getelementptr inbounds nuw i8, ptr %443, i64 272 %449 = load float, ptr %DC.i.i.i, align 4 %add.i.i391.i.i = fadd float %sub.i.i.i.i, %449 @@ -25389,11 +25389,11 @@ if.then.i.i538.i.i: ; preds = %do.end.i531.i.i cond.true.i.i.i.i.i: ; preds = %if.then.i.i538.i.i %div.i.i.i539.i.i = sdiv i32 %474, 2 - %add.i.i.i.i.i355 = add nsw i32 %div.i.i.i539.i.i, %474 + %add.i.i.i.i.i356 = add nsw i32 %div.i.i.i539.i.i, %474 br label %_ZNK8ImVectorI14ImGuiPopupDataE14_grow_capacityEi.exit.i.i.i.i _ZNK8ImVectorI14ImGuiPopupDataE14_grow_capacityEi.exit.i.i.i.i: ; preds = %cond.true.i.i.i.i.i, %if.then.i.i538.i.i - %cond.i.i.i540.i.i = phi i32 [ %add.i.i.i.i.i355, %cond.true.i.i.i.i.i ], [ 8, %if.then.i.i538.i.i ] + %cond.i.i.i540.i.i = phi i32 [ %add.i.i.i.i.i356, %cond.true.i.i.i.i.i ], [ 8, %if.then.i.i538.i.i ] %cond7.i.i.i.i.i = call noundef i32 @llvm.smax.i32(i32 %cond.i.i.i540.i.i, i32 %popup_count_to_keep.0.i.i.i) call void @_ZN8ImVectorI14ImGuiPopupDataE7reserveEi(ptr noundef nonnull align 8 dereferenceable(16) %OpenPopupStack.i532.i.i, i32 noundef %cond7.i.i.i.i.i) br label %_ZN5ImGui17ClosePopupToLevelEib.exit.i.i @@ -25578,8 +25578,8 @@ if.then12.i.i: ; preds = %if.end9.i.i %NavPreferredScoringPosRel.i.i.i.i = getelementptr inbounds nuw i8, ptr %506, i64 984 %NavLayer.i.i.i505.i = getelementptr inbounds nuw i8, ptr %504, i64 19232 %507 = load i32, ptr %NavLayer.i.i.i505.i, align 8 - %idxprom.i.i.i.i353 = zext i32 %507 to i64 - %arrayidx.i.i.i506.i = getelementptr inbounds nuw [2 x %struct.ImVec2], ptr %NavPreferredScoringPosRel.i.i.i.i, i64 0, i64 %idxprom.i.i.i.i353 + %idxprom.i.i.i.i354 = zext i32 %507 to i64 + %arrayidx.i.i.i506.i = getelementptr inbounds nuw [2 x %struct.ImVec2], ptr %NavPreferredScoringPosRel.i.i.i.i, i64 0, i64 %idxprom.i.i.i.i354 store float 0x47EFFFFFE0000000, ptr %arrayidx.i.i.i506.i, align 4 %508 = load ptr, ptr @GImGui, align 8 %NavWindow.i8.i.i.i = getelementptr inbounds nuw i8, ptr %508, i64 19176 @@ -25607,8 +25607,8 @@ if.then344.i.i: ; preds = %if.then342.i.i %513 = load ptr, ptr @GImGui, align 8 %NavWindow10.i.i.i = getelementptr inbounds nuw i8, ptr %513, i64 19176 %514 = load ptr, ptr %NavWindow10.i.i.i, align 8 - %arrayidx.i.i.i354 = getelementptr inbounds nuw i8, ptr %514, i64 948 - %515 = load i32, ptr %arrayidx.i.i.i354, align 4 + %arrayidx.i.i.i355 = getelementptr inbounds nuw i8, ptr %514, i64 948 + %515 = load i32, ptr %arrayidx.i.i.i355, align 4 %cmp11.not.i.i.i = icmp eq i32 %515, 0 br i1 %cmp11.not.i.i.i, label %if.else.i.i.i, label %if.then12.i.i.i @@ -25620,7 +25620,7 @@ if.then12.i.i.i: ; preds = %if.then344.i.i store i32 1, ptr %NavLayer.i.i.i.i, align 8 %NavFocusScopeId.i.i.i.i = getelementptr inbounds nuw i8, ptr %513, i64 19188 store i32 0, ptr %NavFocusScopeId.i.i.i.i, align 4 - store i32 %515, ptr %arrayidx.i.i.i354, align 4 + store i32 %515, ptr %arrayidx.i.i.i355, align 4 %516 = load ptr, ptr %NavWindow10.i.i.i, align 8 %arrayidx3.i.i.i.i = getelementptr inbounds nuw i8, ptr %516, i64 968 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i.i.i, ptr noundef nonnull readonly align 4 dereferenceable(16) %arrayidx17.i.i.i, i64 16, i1 false) @@ -25933,13 +25933,13 @@ land.lhs.true31.i.i: ; preds = %land.lhs.true27.i.i br i1 %tobool33.not.i.i, label %if.else40.i.i, label %if.then34.i.i if.then34.i.i: ; preds = %land.lhs.true31.i.i - %Pos.i.i.i349 = getelementptr inbounds nuw i8, ptr %568, i64 40 - %572 = load float, ptr %Pos.i.i.i349, align 8 - %y.i.i.i350 = getelementptr inbounds nuw i8, ptr %568, i64 44 - %573 = load float, ptr %y.i.i.i350, align 4 - %Size.i.i.i351 = getelementptr inbounds nuw i8, ptr %568, i64 48 - %574 = load float, ptr %Size.i.i.i351, align 8 - %add.i.i.i352 = fadd float %572, %574 + %Pos.i.i.i350 = getelementptr inbounds nuw i8, ptr %568, i64 40 + %572 = load float, ptr %Pos.i.i.i350, align 8 + %y.i.i.i351 = getelementptr inbounds nuw i8, ptr %568, i64 44 + %573 = load float, ptr %y.i.i.i351, align 4 + %Size.i.i.i352 = getelementptr inbounds nuw i8, ptr %568, i64 48 + %574 = load float, ptr %Size.i.i.i352, align 8 + %add.i.i.i353 = fadd float %572, %574 %y9.i.i.i = getelementptr inbounds nuw i8, ptr %568, i64 52 %575 = load float, ptr %y9.i.i.i, align 4 %add10.i.i.i = fadd float %573, %575 @@ -25952,7 +25952,7 @@ if.then34.i.i: ; preds = %land.lhs.true31.i.i %off.sroa.3.0.copyload.i.i.i = load float, ptr %off.sroa.3.0.CursorStartPos.sroa_idx.i.i.i, align 4 %sub.i.i225.i = fsub float %572, %off.sroa.0.0.copyload.i.i.i %sub4.i.i.i = fsub float %573, %off.sroa.3.0.copyload.i.i.i - %sub7.i.i226.i = fsub float %add.i.i.i352, %off.sroa.0.0.copyload.i.i.i + %sub7.i.i226.i = fsub float %add.i.i.i353, %off.sroa.0.0.copyload.i.i.i %sub11.i.i.i = fsub float %add10.i.i.i, %off.sroa.3.0.copyload.i.i.i %retval.sroa.0.0.vec.insert.i40.i.i = insertelement <2 x float> poison, float %sub.i.i225.i, i64 0 %retval.sroa.0.4.vec.insert.i41.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i40.i.i, float %sub4.i.i.i, i64 1 @@ -26028,8 +26028,8 @@ _ZN5ImGuiL22NavUpdateCancelRequestEv.exit.i: ; preds = %if.end70.i.i, %if.t %NavId88.i = getelementptr inbounds nuw i8, ptr %266, i64 19184 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %NavActivateId.i, i8 0, i64 16, i1 false) %587 = load i32, ptr %NavId88.i, align 8 - %cmp89.not.i322 = icmp eq i32 %587, 0 - br i1 %cmp89.not.i322, label %if.end200.i, label %land.lhs.true90.i + %cmp89.not.i323 = icmp eq i32 %587, 0 + br i1 %cmp89.not.i323, label %if.end200.i, label %land.lhs.true90.i land.lhs.true90.i: ; preds = %_ZN5ImGuiL22NavUpdateCancelRequestEv.exit.i %NavDisableHighlight91.i = getelementptr inbounds nuw i8, ptr %266, i64 19250 @@ -26080,11 +26080,11 @@ lor.rhs108.i: ; preds = %if.then104.i br i1 %270, label %lor.rhs108.land.rhs110_crit_edge.i, label %if.end158.thread.i lor.rhs108.land.rhs110_crit_edge.i: ; preds = %lor.rhs108.i - %.pre.i347 = load ptr, ptr @GImGui, align 8 + %.pre.i348 = load ptr, ptr @GImGui, align 8 br label %land.rhs110.i land.rhs110.i: ; preds = %lor.rhs108.land.rhs110_crit_edge.i, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.thread.i, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i - %596 = phi ptr [ %.pre.i347, %lor.rhs108.land.rhs110_crit_edge.i ], [ %592, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i ], [ %592, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.thread.i ] + %596 = phi ptr [ %.pre.i348, %lor.rhs108.land.rhs110_crit_edge.i ], [ %592, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.i ], [ %592, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit.thread.i ] %arrayidx10.i.i.i.i238.i = getelementptr inbounds nuw i8, ptr %596, i64 13868 %597 = load i8, ptr %arrayidx10.i.i.i.i238.i, align 4 %tobool.i.i239.i = trunc i8 %597 to i1 @@ -26189,14 +26189,14 @@ _ZN5ImGui9IsKeyDownE8ImGuiKey.exit253.i.thread: ; preds = %land.lhs.true129.i. br i1 %cmp14.i.i252.i771.not, label %land.lhs.true141.i, label %land.end149.i.thread774 land.end149.i.thread774: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit253.i.thread - %ActiveId.i348775 = getelementptr inbounds nuw i8, ptr %266, i64 16492 - %620 = load i32, ptr %ActiveId.i348775, align 4 + %ActiveId.i349775 = getelementptr inbounds nuw i8, ptr %266, i64 16492 + %620 = load i32, ptr %ActiveId.i349775, align 4 %cmp151.i776 = icmp eq i32 %620, 0 br i1 %cmp151.i776, label %land.lhs.true178.i, label %lor.lhs.false174.i land.end149.i.thread: ; preds = %land.lhs.true129.i.thread - %ActiveId.i348756 = getelementptr inbounds nuw i8, ptr %266, i64 16492 - %621 = load i32, ptr %ActiveId.i348756, align 4 + %ActiveId.i349756 = getelementptr inbounds nuw i8, ptr %266, i64 16492 + %621 = load i32, ptr %ActiveId.i349756, align 4 %cmp151.i757 = icmp eq i32 %621, 0 br i1 %cmp151.i757, label %land.lhs.true178.i, label %lor.lhs.false174.i @@ -26302,8 +26302,8 @@ land.end149.i: ; preds = %if.end14.i620.i, %i %645 = phi i1 [ %615, %lor.end136.i ], [ %633, %_ZN5ImGui12IsKeyPressedE8ImGuiKeyji.exit597.i ], [ %626, %lor.rhs143.i ], [ %626, %if.end.i.i258.i ], [ %640, %land.rhs145.i ], [ %640, %if.end.i603.i ], [ %640, %if.end14.i620.i ], [ %611, %lor.rhs131.i ], [ %626, %land.rhs133.i ], [ %615, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit253.thread.i ] %646 = phi i1 [ %614, %lor.end136.i ], [ %632, %_ZN5ImGui12IsKeyPressedE8ImGuiKeyji.exit597.i ], [ %625, %lor.rhs143.i ], [ %625, %if.end.i.i258.i ], [ %639, %land.rhs145.i ], [ %639, %if.end.i603.i ], [ %639, %if.end14.i620.i ], [ %612, %lor.rhs131.i ], [ %625, %land.rhs133.i ], [ %614, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit253.thread.i ] %647 = phi i1 [ false, %lor.end136.i ], [ %retval.0.i574.i, %_ZN5ImGui12IsKeyPressedE8ImGuiKeyji.exit597.i ], [ false, %lor.rhs143.i ], [ false, %if.end.i.i258.i ], [ false, %land.rhs145.i ], [ false, %if.end.i603.i ], [ %cmp14.i682.i, %if.end14.i620.i ], [ false, %lor.rhs131.i ], [ false, %land.rhs133.i ], [ false, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit253.thread.i ] - %ActiveId.i348 = getelementptr inbounds nuw i8, ptr %266, i64 16492 - %648 = load i32, ptr %ActiveId.i348, align 4 + %ActiveId.i349 = getelementptr inbounds nuw i8, ptr %266, i64 16492 + %648 = load i32, ptr %ActiveId.i349, align 4 %cmp151.i = icmp eq i32 %648, 0 %brmerge160.not.i = and i1 %646, %cmp151.i br i1 %brmerge160.not.i, label %if.end158.thread810.i, label %if.end158.i @@ -26342,19 +26342,19 @@ if.end171.i: ; preds = %lor.lhs.false161.i br label %lor.lhs.false174.i lor.lhs.false174.i: ; preds = %land.end149.i.thread774, %land.end149.i.thread, %if.end171.i, %lor.lhs.false161.i, %if.end158.thread.i - %ActiveId726730.ph766.i = phi ptr [ %ActiveId.i348, %if.end171.i ], [ %ActiveId721.i, %if.end158.thread.i ], [ %ActiveId.i348, %lor.lhs.false161.i ], [ %ActiveId.i348756, %land.end149.i.thread ], [ %ActiveId.i348775, %land.end149.i.thread774 ] + %ActiveId726730.ph766.i = phi ptr [ %ActiveId.i349, %if.end171.i ], [ %ActiveId721.i, %if.end158.thread.i ], [ %ActiveId.i349, %lor.lhs.false161.i ], [ %ActiveId.i349756, %land.end149.i.thread ], [ %ActiveId.i349775, %land.end149.i.thread774 ] %.ph738765.i = phi i1 [ true, %if.end171.i ], [ false, %if.end158.thread.i ], [ %647, %lor.lhs.false161.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %.ph736763.i = phi i1 [ %646, %if.end171.i ], [ false, %if.end158.thread.i ], [ %646, %lor.lhs.false161.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %.ph735762.i = phi i1 [ %645, %if.end171.i ], [ %.ph.i, %if.end158.thread.i ], [ %645, %lor.lhs.false161.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %.ph734761.i = phi i1 [ %644, %if.end171.i ], [ false, %if.end158.thread.i ], [ %644, %lor.lhs.false161.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %.pr739760.i = phi i32 [ %587, %if.end171.i ], [ %649, %if.end158.thread.i ], [ %648, %lor.lhs.false161.i ], [ %621, %land.end149.i.thread ], [ %620, %land.end149.i.thread774 ] - %cmp177.i345 = icmp eq i32 %.pr739760.i, %587 + %cmp177.i346 = icmp eq i32 %.pr739760.i, %587 %brmerge163.i = or i1 %.ph735762.i, %.ph734761.i - %or.cond167.i = and i1 %brmerge163.i, %cmp177.i345 + %or.cond167.i = and i1 %brmerge163.i, %cmp177.i346 br i1 %or.cond167.i, label %if.end185.i, label %lor.lhs.false188.i land.lhs.true178.i: ; preds = %land.end149.i.thread774, %land.end149.i.thread, %if.end158.thread810.i, %if.end171.thread814.i, %land.lhs.true165.i, %if.end158.thread.i - %ActiveId726730744.i = phi ptr [ %ActiveId721.i, %if.end158.thread.i ], [ %ActiveId.i348, %if.end171.thread814.i ], [ %ActiveId.i348, %land.lhs.true165.i ], [ %ActiveId.i348, %if.end158.thread810.i ], [ %ActiveId.i348756, %land.end149.i.thread ], [ %ActiveId.i348775, %land.end149.i.thread774 ] + %ActiveId726730744.i = phi ptr [ %ActiveId721.i, %if.end158.thread.i ], [ %ActiveId.i349, %if.end171.thread814.i ], [ %ActiveId.i349, %land.lhs.true165.i ], [ %ActiveId.i349, %if.end158.thread810.i ], [ %ActiveId.i349756, %land.end149.i.thread ], [ %ActiveId.i349775, %land.end149.i.thread774 ] %650 = phi i1 [ false, %if.end158.thread.i ], [ true, %if.end171.thread814.i ], [ false, %land.lhs.true165.i ], [ false, %if.end158.thread810.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %651 = phi i1 [ false, %if.end158.thread.i ], [ %646, %if.end171.thread814.i ], [ %646, %land.lhs.true165.i ], [ true, %if.end158.thread810.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] %652 = phi i1 [ %.ph.i, %if.end158.thread.i ], [ %645, %if.end171.thread814.i ], [ %645, %land.lhs.true165.i ], [ %645, %if.end158.thread810.i ], [ false, %land.end149.i.thread ], [ false, %land.end149.i.thread774 ] @@ -26375,9 +26375,9 @@ lor.lhs.false188.i: ; preds = %if.end185.i, %lor.l %656 = phi i1 [ %655, %if.end185.i ], [ %.ph736763.i, %lor.lhs.false174.i ] %657 = phi i1 [ %654, %if.end185.i ], [ %.ph738765.i, %lor.lhs.false174.i ] %.pr700817.i = phi i32 [ %.pr700.pre.i, %if.end185.i ], [ %.pr739760.i, %lor.lhs.false174.i ] - %cmp191.i346 = icmp eq i32 %.pr700817.i, %587 + %cmp191.i347 = icmp eq i32 %.pr700817.i, %587 %brmerge164.i = or i1 %656, %657 - %or.cond168.i = and i1 %brmerge164.i, %cmp191.i346 + %or.cond168.i = and i1 %brmerge164.i, %cmp191.i347 br i1 %or.cond168.i, label %if.then196.i, label %if.end200.i land.lhs.true192.i: ; preds = %if.end185.i, %land.lhs.true178.i @@ -27009,8 +27009,8 @@ if.then41.i.i.i: ; preds = %if.else39.i.i.i if.else47.i.i.i: ; preds = %land.lhs.true23.i.i.i, %if.end20.i.i.i %NavRectRel.i.i325.i = getelementptr inbounds nuw i8, ptr %680, i64 952 %741 = load i32, ptr %NavLayer.i.i316.i, align 8 - %idxprom.i.i.i343 = zext i32 %741 to i64 - %arrayidx.i.i326.i = getelementptr inbounds nuw [2 x %struct.ImRect], ptr %NavRectRel.i.i325.i, i64 0, i64 %idxprom.i.i.i343 + %idxprom.i.i.i344 = zext i32 %741 to i64 + %arrayidx.i.i326.i = getelementptr inbounds nuw [2 x %struct.ImRect], ptr %NavRectRel.i.i325.i, i64 0, i64 %idxprom.i.i.i344 %y.i113.i.i.i = getelementptr inbounds nuw i8, ptr %680, i64 532 %742 = load float, ptr %y.i113.i.i.i, align 4 %y2.i114.i.i.i = getelementptr inbounds nuw i8, ptr %680, i64 524 @@ -27043,7 +27043,7 @@ _ZNK11ImGuiWindow12CalcFontSizeEv.exit.i.i.i: ; preds = %if.then.i.i.i328.i, %sub.i119.i.i.i = fsub float %750, %751 %add53.i.i.i = fadd float %749, %sub.i119.i.i.i %cmp.i120.i.i.i = fcmp ole float %add53.i.i.i, 0.000000e+00 - %cond.i.i.i.i344 = select i1 %cmp.i120.i.i.i, float 0.000000e+00, float %add53.i.i.i + %cond.i.i.i.i345 = select i1 %cmp.i120.i.i.i, float 0.000000e+00, float %add53.i.i.i %752 = load ptr, ptr @GImGui, align 8 %arrayidx10.i.i.i187.i.i.i = getelementptr inbounds nuw i8, ptr %752, i64 11964 %753 = load i8, ptr %arrayidx10.i.i.i187.i.i.i, align 4 @@ -27106,7 +27106,7 @@ if.end14.i214.i.i.i: ; preds = %_ZN5ImGui19GetKeyPr br i1 %cmp14.i.i.i333.i, label %if.then56.i.i.i, label %if.else57.i.i.i if.then56.i.i.i: ; preds = %if.end14.i214.i.i.i - %fneg.i.i.i = fneg float %cond.i.i.i.i344 + %fneg.i.i.i = fneg float %cond.i.i.i.i345 br label %if.end76.i.i if.else57.i.i.i: ; preds = %if.end14.i214.i.i.i, %_ZN5ImGui19GetKeyPressedAmountE8ImGuiKeyff.exit.i215.i.i.i, %if.then5.i.i.i212.i.i.i, %if.end.i.i9.i207.i.i.i, %if.then6.i195.i.i.i, %if.end.i190.i.i.i, %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i.i.i @@ -27223,7 +27223,7 @@ if.end90.i.i.i: ; preds = %if.then85.i.i.i, %i if.end76.i.i: ; preds = %if.end14.i255.i.i.i, %if.then56.i.i.i %.sink298.i.i = phi i32 [ 3, %if.then56.i.i.i ], [ 2, %if.end14.i255.i.i.i ] %.sink.i.i = phi i32 [ 2, %if.then56.i.i.i ], [ 3, %if.end14.i255.i.i.i ] - %scoring_rect_offset_y.0.i.i = phi float [ %fneg.i.i.i, %if.then56.i.i.i ], [ %cond.i.i.i.i344, %if.end14.i255.i.i.i ] + %scoring_rect_offset_y.0.i.i = phi float [ %fneg.i.i.i, %if.then56.i.i.i ], [ %cond.i.i.i.i345, %if.end14.i255.i.i.i ] %NavMoveDir60.i.i.i = getelementptr inbounds nuw i8, ptr %679, i64 19336 store i32 %.sink298.i.i, ptr %NavMoveDir60.i.i.i, align 8 %NavMoveClipDir61.i.i.i = getelementptr inbounds nuw i8, ptr %679, i64 19344 @@ -27377,10 +27377,10 @@ cond.true.i.i: ; preds = %if.then99.i.i br label %cond.end.i.i cond.end.i.i: ; preds = %cond.true.i.i, %if.then99.i.i - %cond.i.i342 = phi ptr [ %788, %cond.true.i.i ], [ @.str.81, %if.then99.i.i ] + %cond.i.i343 = phi ptr [ %788, %cond.true.i.i ], [ @.str.81, %if.then99.i.i ] %NavLayer.i303.i = getelementptr inbounds nuw i8, ptr %663, i64 19232 %789 = load i32, ptr %NavLayer.i303.i, align 8 - call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.598, ptr noundef %cond.i.i342, i32 noundef %789) + call void (ptr, ...) @_ZN5ImGui8DebugLogEPKcz(ptr noundef nonnull @.str.598, ptr noundef %cond.i.i343, i32 noundef %789) %.pre.pre.i.i = load i8, ptr %NavMoveSubmitted.i.i, align 8 br label %do.end102.i.i @@ -27451,8 +27451,8 @@ if.then113.i.i: ; preds = %land.lhs.true108.i. %sub.i127.i.i = fsub float %ref.tmp133.sroa.0.0.vec.extract.i.i, %Scroll.val.i.i %sub3.i128.i.i = fsub float %ref.tmp133.sroa.0.4.vec.extract.i.i, %Scroll.val92.i.i %add.i131.i.i = fadd float %sub.i122.i.i, %sub.i127.i.i - %add5.i.i.i340 = fadd float %sub4.i.i291.i, %sub3.i128.i.i - %add8.i.i.i341 = fadd float %sub7.i.i292.i, %sub.i127.i.i + %add5.i.i.i341 = fadd float %sub4.i.i291.i, %sub3.i128.i.i + %add8.i.i.i342 = fadd float %sub7.i.i292.i, %sub.i127.i.i %add12.i.i.i = fadd float %sub11.i.i293.i, %sub3.i128.i.i %brmerge90.i.i = or i1 %cmp116.i.i, %cmp120.i.i br i1 %brmerge90.i.i, label %land.lhs.true139.i.i, label %if.then201.i280.i @@ -27466,13 +27466,13 @@ land.lhs.true139.i.i: ; preds = %if.then113.i.i land.lhs.true.i.i294.i: ; preds = %land.lhs.true139.i.i %y.i135.i.i = getelementptr inbounds nuw i8, ptr %664, i64 956 %798 = load float, ptr %y.i135.i.i, align 4 - %cmp7.i.i295.i = fcmp ult float %798, %add5.i.i.i340 + %cmp7.i.i295.i = fcmp ult float %798, %add5.i.i.i341 br i1 %cmp7.i.i295.i, label %do.body143.i.i, label %land.lhs.true8.i.i.i land.lhs.true8.i.i.i: ; preds = %land.lhs.true.i.i294.i %Max.i136.i.i = getelementptr inbounds nuw i8, ptr %664, i64 960 %799 = load float, ptr %Max.i136.i.i, align 4 - %cmp12.i.i.i = fcmp ugt float %799, %add8.i.i.i341 + %cmp12.i.i.i = fcmp ugt float %799, %add8.i.i.i342 br i1 %cmp12.i.i.i, label %do.body143.i.i, label %_ZNK6ImRect8ContainsERKS_.exit.i.i _ZNK6ImRect8ContainsERKS_.exit.i.i: ; preds = %land.lhs.true8.i.i.i @@ -27493,7 +27493,7 @@ if.then147.i.i: ; preds = %do.body143.i.i br label %do.end149.i.i do.end149.i.i: ; preds = %if.then147.i.i, %do.body143.i.i - %sub.i138.i.i = fsub float %add8.i.i.i341, %add.i131.i.i + %sub.i138.i.i = fsub float %add8.i.i.i342, %add.i131.i.i %802 = load ptr, ptr %664, align 8 %FontBaseSize.i.i.i = getelementptr inbounds nuw i8, ptr %802, i64 15684 %803 = load float, ptr %FontBaseSize.i.i.i, align 4 @@ -27516,14 +27516,14 @@ _ZNK11ImGuiWindow12CalcFontSizeEv.exit156.i.i: ; preds = %if.then.i151.i.i, % %mul289.i.i = fmul float %mul.i.sink.i.i, 5.000000e-01 %cmp.i141290.i.i = fcmp olt float %sub.i138.i.i, %mul289.i.i %cond.i142291.i.i = select i1 %cmp.i141290.i.i, float %sub.i138.i.i, float %mul289.i.i - %sub.i145294.i.i = fsub float %add12.i.i.i, %add5.i.i.i340 + %sub.i145294.i.i = fsub float %add12.i.i.i, %add5.i.i.i341 %cmp.i157.i.i = fcmp olt float %sub.i145294.i.i, %mul289.i.i %cond.i158.i.i = select i1 %cmp.i157.i.i, float %sub.i145294.i.i, float %mul289.i.i %add.i297.i = fadd float %add.i131.i.i, %cond.i142291.i.i %cond162.i.i = select i1 %cmp116.i.i, float %add.i297.i, float 0xC7EFFFFFE0000000 - %sub.i298.i = fsub float %add8.i.i.i341, %cond.i142291.i.i + %sub.i298.i = fsub float %add8.i.i.i342, %cond.i142291.i.i %cond171.i.i = select i1 %cmp116.i.i, float %sub.i298.i, float 0x47EFFFFFE0000000 - %add177.i.i = fadd float %add5.i.i.i340, %cond.i158.i.i + %add177.i.i = fadd float %add5.i.i.i341, %cond.i158.i.i %cond180.i.i = select i1 %cmp120.i.i, float %add177.i.i, float 0xC7EFFFFFE0000000 %sub187.i.i = fsub float %add12.i.i.i, %cond.i158.i.i %cond190.i.i = select i1 %cmp120.i.i, float %sub187.i.i, float 0x47EFFFFFE0000000 @@ -27632,9 +27632,9 @@ if.then218.i.i: ; preds = %cond.end213.i.i if.then.i192.i.i: ; preds = %if.then218.i.i %822 = load float, ptr %arrayidx221.i.i, align 4 %cmp1.i.i.i = fcmp oeq float %822, 0x47EFFFFFE0000000 - br i1 %cmp1.i.i.i, label %if.then2.i.i.i339, label %if.end.i193.i.i + br i1 %cmp1.i.i.i, label %if.then2.i.i.i340, label %if.end.i193.i.i -if.then2.i.i.i339: ; preds = %if.then.i192.i.i +if.then2.i.i.i340: ; preds = %if.then.i192.i.i %add.i197.i.i = fadd float %add.i171.i.i, 1.000000e+00 %cmp.i.i199.i.i = fcmp olt float %add.i197.i.i, %add7.i.i.i %cond.i.i200.i.i = select i1 %cmp.i.i199.i.i, float %add.i197.i.i, float %add7.i.i.i @@ -27642,7 +27642,7 @@ if.then2.i.i.i339: ; preds = %if.then.i192.i.i store float %sub.i201.i.i, ptr %arrayidx221.i.i, align 4 br label %if.end.i193.i.i -if.end.i193.i.i: ; preds = %if.then2.i.i.i339, %if.then.i192.i.i +if.end.i193.i.i: ; preds = %if.then2.i.i.i340, %if.then.i192.i.i %y.i194.i.i = getelementptr inbounds nuw i8, ptr %arrayidx221.i.i, i64 4 %823 = load float, ptr %y.i194.i.i, align 4 %cmp7.i195.i.i = fcmp oeq float %823, 0x47EFFFFFE0000000 @@ -27747,8 +27747,8 @@ _ZN5ImGuiL26NavUpdateCreateMoveRequestEv.exit.i: ; preds = %if.then33.i.i.i, %i if.then225.i: ; preds = %_ZN5ImGuiL26NavUpdateCreateMoveRequestEv.exit.i %NavWindow.i352.i = getelementptr inbounds nuw i8, ptr %.pre799.i, i64 19176 %832 = load ptr, ptr %NavWindow.i352.i, align 8 - %cmp.i.i337 = icmp eq ptr %832, null - br i1 %cmp.i.i337, label %if.end226.i, label %lor.lhs.false.i353.i + %cmp.i.i338 = icmp eq ptr %832, null + br i1 %cmp.i.i338, label %if.end226.i, label %lor.lhs.false.i353.i lor.lhs.false.i353.i: ; preds = %if.then225.i %NavWindowingTarget.i354.i = getelementptr inbounds nuw i8, ptr %.pre799.i, i64 19656 @@ -27855,12 +27855,12 @@ if.end8.i.i: ; preds = %land.rhs.i384.i %KeyShift24.i.i = getelementptr inbounds nuw i8, ptr %.pre799.i, i64 3685 %848 = load i8, ptr %KeyShift24.i.i, align 1 %tobool25.i.i = trunc i8 %848 to i1 - br i1 %cmp11.not.i.i, label %if.else.i387.i, label %if.then14.i.i338 + br i1 %cmp11.not.i.i, label %if.else.i387.i, label %if.then14.i.i339 -if.then14.i.i338: ; preds = %if.end8.i.i +if.then14.i.i339: ; preds = %if.end8.i.i br i1 %tobool25.i.i, label %if.end34.i.i, label %cond.false.i385.i -cond.false.i385.i: ; preds = %if.then14.i.i338 +cond.false.i385.i: ; preds = %if.then14.i.i339 %NavDisableHighlight.i386.i = getelementptr inbounds nuw i8, ptr %.pre799.i, i64 19250 %849 = load i8, ptr %NavDisableHighlight.i386.i, align 2 %tobool17.i.i = trunc i8 %849 to i1 @@ -27876,9 +27876,9 @@ if.end34.sink.split.i.i: ; preds = %if.else.i387.i, %co %cond30.i.i = zext i1 %cmp29.i.i to i32 br label %if.end34.i.i -if.end34.i.i: ; preds = %if.end34.sink.split.i.i, %if.else.i387.i, %cond.false.i385.i, %if.then14.i.i338 - %cond32.sink.i.sink.i = phi i32 [ 1, %cond.false.i385.i ], [ %cond30.i.i, %if.end34.sink.split.i.i ], [ -1, %if.then14.i.i338 ], [ -1, %if.else.i387.i ] - %851 = phi i32 [ 3, %cond.false.i385.i ], [ 3, %if.end34.sink.split.i.i ], [ 2, %if.then14.i.i338 ], [ 2, %if.else.i387.i ] +if.end34.i.i: ; preds = %if.end34.sink.split.i.i, %if.else.i387.i, %cond.false.i385.i, %if.then14.i.i339 + %cond32.sink.i.sink.i = phi i32 [ 1, %cond.false.i385.i ], [ %cond30.i.i, %if.end34.sink.split.i.i ], [ -1, %if.then14.i.i339 ], [ -1, %if.else.i387.i ] + %851 = phi i32 [ 3, %cond.false.i385.i ], [ 3, %if.end34.sink.split.i.i ], [ 2, %if.then14.i.i339 ], [ 2, %if.else.i387.i ] %NavTabbingDir33.i.i = getelementptr inbounds nuw i8, ptr %.pre799.i, i64 19384 store i32 %cond32.sink.i.sink.i, ptr %NavTabbingDir33.i.i, align 8 %Appearing.i.i = getelementptr inbounds nuw i8, ptr %832, i64 196 @@ -27905,9 +27905,9 @@ lor.lhs.false.i401.i: ; preds = %if.end226.i br label %_ZN5ImGuiL23NavUpdateAnyRequestFlagEv.exit.i _ZN5ImGuiL23NavUpdateAnyRequestFlagEv.exit.i: ; preds = %lor.lhs.false.i401.i, %if.end226.i - %frombool.i.i323 = phi i8 [ 1, %if.end226.i ], [ %856, %lor.lhs.false.i401.i ] + %frombool.i.i324 = phi i8 [ 1, %if.end226.i ], [ %856, %lor.lhs.false.i401.i ] %NavAnyRequest.i.i = getelementptr inbounds nuw i8, ptr %853, i64 19252 - store i8 %frombool.i.i323, ptr %NavAnyRequest.i.i, align 4 + store i8 %frombool.i.i324, ptr %NavAnyRequest.i.i, align 4 %NavIdIsAlive227.i = getelementptr inbounds nuw i8, ptr %266, i64 19248 store i8 0, ptr %NavIdIsAlive227.i, align 8 %857 = load ptr, ptr %NavWindow52.i, align 8 @@ -27929,10 +27929,10 @@ land.lhs.true235.i: ; preds = %land.lhs.true230.i if.then238.i: ; preds = %land.lhs.true235.i %860 = load ptr, ptr %857, align 8 - %FontBaseSize.i.i325 = getelementptr inbounds nuw i8, ptr %860, i64 15684 - %861 = load float, ptr %FontBaseSize.i.i325, align 4 - %FontWindowScale.i.i326 = getelementptr inbounds nuw i8, ptr %857, i64 672 - %862 = load float, ptr %FontWindowScale.i.i326, align 8 + %FontBaseSize.i.i326 = getelementptr inbounds nuw i8, ptr %860, i64 15684 + %861 = load float, ptr %FontBaseSize.i.i326, align 4 + %FontWindowScale.i.i327 = getelementptr inbounds nuw i8, ptr %857, i64 672 + %862 = load float, ptr %FontWindowScale.i.i327, align 8 %mul.i403.i = fmul float %861, %862 %ParentWindow.i404.i = getelementptr inbounds nuw i8, ptr %857, i64 888 %863 = load ptr, ptr %ParentWindow.i404.i, align 8 @@ -27940,19 +27940,19 @@ if.then238.i: ; preds = %land.lhs.true235.i br i1 %tobool.not.i405.i, label %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i, label %if.then.i406.i if.then.i406.i: ; preds = %if.then238.i - %FontWindowScale3.i.i327 = getelementptr inbounds nuw i8, ptr %863, i64 672 - %864 = load float, ptr %FontWindowScale3.i.i327, align 8 - %mul4.i.i328 = fmul float %mul.i403.i, %864 + %FontWindowScale3.i.i328 = getelementptr inbounds nuw i8, ptr %863, i64 672 + %864 = load float, ptr %FontWindowScale3.i.i328, align 8 + %mul4.i.i329 = fmul float %mul.i403.i, %864 br label %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i _ZNK11ImGuiWindow12CalcFontSizeEv.exit.i: ; preds = %if.then.i406.i, %if.then238.i - %scale.0.i.i = phi float [ %mul4.i.i328, %if.then.i406.i ], [ %mul.i403.i, %if.then238.i ] - %mul.i329 = fmul float %scale.0.i.i, 1.000000e+02 - %DeltaTime.i330 = getelementptr inbounds nuw i8, ptr %266, i64 24 - %865 = load float, ptr %DeltaTime.i330, align 8 - %866 = call float @llvm.fmuladd.f32(float %mul.i329, float %865, float 5.000000e-01) - %conv.i331 = fptosi float %866 to i32 - %conv242.i = sitofp i32 %conv.i331 to float + %scale.0.i.i = phi float [ %mul4.i.i329, %if.then.i406.i ], [ %mul.i403.i, %if.then238.i ] + %mul.i330 = fmul float %scale.0.i.i, 1.000000e+02 + %DeltaTime.i331 = getelementptr inbounds nuw i8, ptr %266, i64 24 + %865 = load float, ptr %DeltaTime.i331, align 8 + %866 = call float @llvm.fmuladd.f32(float %mul.i330, float %865, float 5.000000e-01) + %conv.i332 = fptosi float %866 to i32 + %conv242.i = sitofp i32 %conv.i332 to float %867 = load i32, ptr %NavMoveDir.i, align 8 %NavLayersActiveMask.i = getelementptr inbounds nuw i8, ptr %857, i64 364 %868 = load i16, ptr %NavLayersActiveMask.i, align 4 @@ -27975,8 +27975,8 @@ if.then255.i: ; preds = %if.then251.i %cmp252.i = icmp eq i32 %867, 0 %Scroll.i = getelementptr inbounds nuw i8, ptr %857, i64 140 %870 = load float, ptr %Scroll.i, align 4 - %cond.i336 = select i1 %cmp252.i, float -1.000000e+00, float 1.000000e+00 - %871 = call float @llvm.fmuladd.f32(float %cond.i336, float %conv242.i, float %870) + %cond.i337 = select i1 %cmp252.i, float -1.000000e+00, float 1.000000e+00 + %871 = call float @llvm.fmuladd.f32(float %cond.i337, float %conv242.i, float %870) %conv.i.i = fptosi float %871 to i32 %conv1.i.i = sitofp i32 %conv.i.i to float %ScrollTarget.i.i = getelementptr inbounds nuw i8, ptr %857, i64 156 @@ -27994,14 +27994,14 @@ if.end259.i: ; preds = %if.then255.i, %if.t if.then263.i: ; preds = %if.end259.i %cmp260.i = icmp eq i32 %867, 2 - %y.i334 = getelementptr inbounds nuw i8, ptr %857, i64 144 - %873 = load float, ptr %y.i334, align 4 + %y.i335 = getelementptr inbounds nuw i8, ptr %857, i64 144 + %873 = load float, ptr %y.i335, align 4 %cond266.i = select i1 %cmp260.i, float -1.000000e+00, float 1.000000e+00 %874 = call float @llvm.fmuladd.f32(float %cond266.i, float %conv242.i, float %873) %conv.i408.i = fptosi float %874 to i32 %conv1.i409.i = sitofp i32 %conv.i408.i to float - %y.i.i335 = getelementptr inbounds nuw i8, ptr %857, i64 160 - store float %conv1.i409.i, ptr %y.i.i335, align 4 + %y.i.i336 = getelementptr inbounds nuw i8, ptr %857, i64 160 + store float %conv1.i409.i, ptr %y.i.i336, align 4 %y1.i.i = getelementptr inbounds nuw i8, ptr %857, i64 168 store float 0.000000e+00, ptr %y1.i.i, align 4 %y2.i.i = getelementptr inbounds nuw i8, ptr %857, i64 176 @@ -28012,8 +28012,8 @@ if.end270.i: ; preds = %if.then263.i, %if.e br i1 %270, label %if.then272.i, label %if.end301.i if.then272.i: ; preds = %if.end270.i - %AnalogValue.i.i332 = getelementptr inbounds nuw i8, ptr %853, i64 14072 - %875 = load float, ptr %AnalogValue.i.i332, align 4 + %AnalogValue.i.i333 = getelementptr inbounds nuw i8, ptr %853, i64 14072 + %875 = load float, ptr %AnalogValue.i.i333, align 4 %AnalogValue2.i.i = getelementptr inbounds nuw i8, ptr %853, i64 14056 %876 = load float, ptr %AnalogValue2.i.i, align 4 %AnalogValue4.i.i = getelementptr inbounds nuw i8, ptr %853, i64 14104 @@ -28025,22 +28025,22 @@ if.then272.i: ; preds = %if.end270.i %arrayidx10.i.i.i.i413.i = getelementptr inbounds nuw i8, ptr %853, i64 13948 %879 = load i8, ptr %arrayidx10.i.i.i.i413.i, align 4 %tobool.i.i414.i = trunc i8 %879 to i1 - br i1 %tobool.i.i414.i, label %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i, label %cond.false.i333 + br i1 %tobool.i.i414.i, label %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i, label %cond.false.i334 _ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i: ; preds = %if.then272.i %LockThisFrame.i.i417.i = getelementptr i8, ptr %853, i64 18116 %880 = load i8, ptr %LockThisFrame.i.i417.i, align 4 %881 = and i8 %880, 1 %cmp14.i.i418.i = icmp eq i8 %881, 0 - br i1 %cmp14.i.i418.i, label %cond.end.i, label %cond.false.i333 + br i1 %cmp14.i.i418.i, label %cond.end.i, label %cond.false.i334 -cond.false.i333: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i, %if.then272.i +cond.false.i334: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i, %if.then272.i %arrayidx10.i.i.i.i421.i = getelementptr inbounds nuw i8, ptr %853, i64 13964 %882 = load i8, ptr %arrayidx10.i.i.i.i421.i, align 4 %tobool.i.i422.i = trunc i8 %882 to i1 br i1 %tobool.i.i422.i, label %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i, label %cond.end.i -_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i: ; preds = %cond.false.i333 +_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i: ; preds = %cond.false.i334 %LockThisFrame.i.i425.i = getelementptr i8, ptr %853, i64 18128 %883 = load i8, ptr %LockThisFrame.i.i425.i, align 4 %.fr771.i = freeze i8 %883 @@ -28051,8 +28051,8 @@ _ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i: ; preds = %cond.false.i333 885: ; preds = %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i br label %cond.end.i -cond.end.i: ; preds = %885, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i, %cond.false.i333, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i - %cond277.i = phi float [ 0x3FB99999A0000000, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i ], [ 1.000000e+01, %885 ], [ 1.000000e+00, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i ], [ 1.000000e+00, %cond.false.i333 ] +cond.end.i: ; preds = %885, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i, %cond.false.i334, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i + %cond277.i = phi float [ 0x3FB99999A0000000, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit419.i ], [ 1.000000e+01, %885 ], [ 1.000000e+00, %_ZN5ImGui9IsKeyDownE8ImGuiKey.exit427.i ], [ 1.000000e+00, %cond.false.i334 ] %cmp279.i = fcmp une float %sub.i411.i, 0.000000e+00 br i1 %cmp279.i, label %land.lhs.true280.i, label %if.end289.i @@ -28159,20 +28159,20 @@ if.else.i453.i: ; preds = %lor.lhs.false.i441. %NavLayer.i455.i = getelementptr inbounds nuw i8, ptr %853, i64 19232 %897 = load i32, ptr %NavLayer.i455.i, align 8 %idxprom.i.i = zext i32 %897 to i64 - %arrayidx.i.i324 = getelementptr inbounds nuw [2 x %struct.ImRect], ptr %NavRectRel.i454.i, i64 0, i64 %idxprom.i.i + %arrayidx.i.i325 = getelementptr inbounds nuw [2 x %struct.ImRect], ptr %NavRectRel.i454.i, i64 0, i64 %idxprom.i.i %CursorStartPos.i.i456.i = getelementptr inbounds nuw i8, ptr %893, i64 288 %off.sroa.0.0.copyload.i.i457.i = load float, ptr %CursorStartPos.i.i456.i, align 8 %off.sroa.3.0.CursorStartPos.sroa_idx.i.i458.i = getelementptr inbounds nuw i8, ptr %893, i64 292 %off.sroa.3.0.copyload.i.i459.i = load float, ptr %off.sroa.3.0.CursorStartPos.sroa_idx.i.i458.i, align 4 - %898 = load float, ptr %arrayidx.i.i324, align 4 + %898 = load float, ptr %arrayidx.i.i325, align 4 %add.i.i460.i = fadd float %off.sroa.0.0.copyload.i.i457.i, %898 - %y.i27.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i324, i64 4 + %y.i27.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i325, i64 4 %899 = load float, ptr %y.i27.i.i, align 4 %add4.i.i461.i = fadd float %off.sroa.3.0.copyload.i.i459.i, %899 - %Max.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i324, i64 8 + %Max.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i325, i64 8 %900 = load float, ptr %Max.i.i.i, align 4 %add7.i.i462.i = fadd float %off.sroa.0.0.copyload.i.i457.i, %900 - %y9.i.i463.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i324, i64 12 + %y9.i.i463.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i325, i64 12 %901 = load float, ptr %y9.i.i463.i, align 4 %add11.i.i464.i = fadd float %off.sroa.3.0.copyload.i.i459.i, %901 %retval.sroa.0.0.vec.insert.i.i465.i = insertelement <2 x float> poison, float %add.i.i460.i, i64 0 diff --git a/bench/imgui/optimized/imgui_tables.cpp.ll b/bench/imgui/optimized/imgui_tables.cpp.ll index be3ae1d9aec..a0f5001c06f 100644 --- a/bench/imgui/optimized/imgui_tables.cpp.ll +++ b/bench/imgui/optimized/imgui_tables.cpp.ll @@ -476,59 +476,59 @@ if.then57: ; preds = %if.then54 %Capacity.i278 = getelementptr inbounds nuw i8, ptr %call23, i64 452 %46 = load i32, ptr %Capacity.i278, align 4 %cmp.i279 = icmp eq i32 %45, %46 - br i1 %cmp.i279, label %if.then.i284, label %if.then57._ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit_crit_edge + br i1 %cmp.i279, label %if.then.i283, label %entry.if.end_crit_edge.i -if.then57._ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit_crit_edge: ; preds = %if.then57 - %Data.i281.phi.trans.insert = getelementptr inbounds nuw i8, ptr %call23, i64 456 - %.pre415 = load ptr, ptr %Data.i281.phi.trans.insert, align 8 +entry.if.end_crit_edge.i: ; preds = %if.then57 + %Data.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %call23, i64 456 + %.pre.i = load ptr, ptr %Data.phi.trans.insert.i, align 8 br label %_ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit -if.then.i284: ; preds = %if.then57 - %add.i285 = add nsw i32 %45, 1 - %tobool.not.i.i286 = icmp eq i32 %45, 0 - br i1 %tobool.not.i.i286, label %if.end.i.i, label %cond.true.i.i287 - -cond.true.i.i287: ; preds = %if.then.i284 - %div.i.i288 = sdiv i32 %45, 2 - %add.i.i289 = add nsw i32 %div.i.i288, %45 - br label %if.end.i.i - -if.end.i.i: ; preds = %cond.true.i.i287, %if.then.i284 - %cond.i.i290 = phi i32 [ %add.i.i289, %cond.true.i.i287 ], [ 8, %if.then.i284 ] - %cond7.i.i291 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i290, i32 %add.i285) - %conv.i.i292 = sext i32 %cond7.i.i291 to i64 - %mul.i.i293 = mul nsw i64 %conv.i.i292, 24 - %call.i.i = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i293) - %Data.i.i294 = getelementptr inbounds nuw i8, ptr %call23, i64 456 - %47 = load ptr, ptr %Data.i.i294, align 8 +if.then.i283: ; preds = %if.then57 + %add.i284 = add nsw i32 %45, 1 + %tobool.not.i.i285 = icmp eq i32 %45, 0 + br i1 %tobool.not.i.i285, label %_ZNK8ImVectorI22ImGuiTableInstanceDataE14_grow_capacityEi.exit.i, label %cond.true.i.i286 + +cond.true.i.i286: ; preds = %if.then.i283 + %div.i.i287 = sdiv i32 %45, 2 + %add.i.i288 = add nsw i32 %div.i.i287, %45 + br label %_ZNK8ImVectorI22ImGuiTableInstanceDataE14_grow_capacityEi.exit.i + +_ZNK8ImVectorI22ImGuiTableInstanceDataE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i286, %if.then.i283 + %cond.i.i289 = phi i32 [ %add.i.i288, %cond.true.i.i286 ], [ 8, %if.then.i283 ] + %cond7.i.i290 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i289, i32 %add.i284) + %conv.i.i291 = sext i32 %cond7.i.i290 to i64 + %mul.i.i292 = mul nsw i64 %conv.i.i291, 24 + %call.i.i = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i292) + %Data.i.i293 = getelementptr inbounds nuw i8, ptr %call23, i64 456 + %47 = load ptr, ptr %Data.i.i293, align 8 %tobool.not.i2.i = icmp eq ptr %47, null - br i1 %tobool.not.i2.i, label %if.end7.i.i298, label %if.then2.i.i295 + br i1 %tobool.not.i2.i, label %if.end7.i.i297, label %if.then2.i.i294 -if.then2.i.i295: ; preds = %if.end.i.i +if.then2.i.i294: ; preds = %_ZNK8ImVectorI22ImGuiTableInstanceDataE14_grow_capacityEi.exit.i %48 = load i32, ptr %InstanceDataExtra, align 8 - %conv4.i.i296 = sext i32 %48 to i64 - %mul5.i.i297 = mul nsw i64 %conv4.i.i296, 24 - call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i, ptr nonnull align 4 %47, i64 %mul5.i.i297, i1 false) - %49 = load ptr, ptr %Data.i.i294, align 8 + %conv4.i.i295 = sext i32 %48 to i64 + %mul5.i.i296 = mul nsw i64 %conv4.i.i295, 24 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i, ptr nonnull align 4 %47, i64 %mul5.i.i296, i1 false) + %49 = load ptr, ptr %Data.i.i293, align 8 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %49) - br label %if.end7.i.i298 + br label %if.end7.i.i297 -if.end7.i.i298: ; preds = %if.then2.i.i295, %if.end.i.i - store ptr %call.i.i, ptr %Data.i.i294, align 8 - store i32 %cond7.i.i291, ptr %Capacity.i278, align 4 - %.pre.i = load i32, ptr %InstanceDataExtra, align 8 +if.end7.i.i297: ; preds = %if.then2.i.i294, %_ZNK8ImVectorI22ImGuiTableInstanceDataE14_grow_capacityEi.exit.i + store ptr %call.i.i, ptr %Data.i.i293, align 8 + store i32 %cond7.i.i290, ptr %Capacity.i278, align 4 + %.pre3.i = load i32, ptr %InstanceDataExtra, align 8 br label %_ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit -_ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit: ; preds = %if.then57._ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit_crit_edge, %if.end7.i.i298 - %50 = phi ptr [ %call.i.i, %if.end7.i.i298 ], [ %.pre415, %if.then57._ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit_crit_edge ] - %51 = phi i32 [ %.pre.i, %if.end7.i.i298 ], [ %45, %if.then57._ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit_crit_edge ] - %idxprom.i282 = sext i32 %51 to i64 - %arrayidx.i283 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %50, i64 %idxprom.i282 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %arrayidx.i283, i8 0, i64 16, i1 false) - %ref.tmp59.sroa.2.0.arrayidx.i283.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i283, i64 16 - store i32 -1, ptr %ref.tmp59.sroa.2.0.arrayidx.i283.sroa_idx, align 4 - %ref.tmp59.sroa.3.0.arrayidx.i283.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i283, i64 20 - store i32 -1, ptr %ref.tmp59.sroa.3.0.arrayidx.i283.sroa_idx, align 4 +_ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit: ; preds = %entry.if.end_crit_edge.i, %if.end7.i.i297 + %50 = phi i32 [ %45, %entry.if.end_crit_edge.i ], [ %.pre3.i, %if.end7.i.i297 ] + %51 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i, %if.end7.i.i297 ] + %idxprom.i281 = sext i32 %50 to i64 + %arrayidx.i282 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %51, i64 %idxprom.i281 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %arrayidx.i282, i8 0, i64 16, i1 false) + %ref.tmp59.sroa.2.0.arrayidx.i282.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i282, i64 16 + store i32 -1, ptr %ref.tmp59.sroa.2.0.arrayidx.i282.sroa_idx, align 4 + %ref.tmp59.sroa.3.0.arrayidx.i282.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i282, i64 20 + store i32 -1, ptr %ref.tmp59.sroa.3.0.arrayidx.i282.sroa_idx, align 4 %52 = load i32, ptr %InstanceDataExtra, align 8 %inc.i = add nsw i32 %52, 1 store i32 %inc.i, ptr %InstanceDataExtra, align 8 @@ -537,29 +537,29 @@ _ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit: ; preds = %if.then5 if.end60: ; preds = %_ZN8ImVectorI22ImGuiTableInstanceDataE9push_backERKS0_.exit, %if.then54 %call61 = call noundef i32 @_ZN5ImGui13GetIDWithSeedEPKcS1_j(ptr noundef nonnull @.str, ptr noundef null, i32 noundef %id) %call62 = call noundef i32 @_ZN5ImGui13GetIDWithSeedEij(i32 noundef %cond47, i32 noundef %call61) - %.pre416 = load i16, ptr %InstanceCurrent52, align 8 + %.pre414 = load i16, ptr %InstanceCurrent52, align 8 br label %if.end63 if.end63: ; preds = %cond.end46, %if.end60 - %53 = phi i16 [ %.pre416, %if.end60 ], [ %conv51, %cond.end46 ] + %53 = phi i16 [ %.pre414, %if.end60 ], [ %conv51, %cond.end46 ] %instance_id.0 = phi i32 [ %call62, %if.end60 ], [ %id, %cond.end46 ] - %cmp.i299 = icmp eq i16 %53, 0 - br i1 %cmp.i299, label %if.then.i302, label %if.end.i300 + %cmp.i298 = icmp eq i16 %53, 0 + br i1 %cmp.i298, label %if.then.i301, label %if.end.i299 -if.then.i302: ; preds = %if.end63 +if.then.i301: ; preds = %if.end63 %InstanceDataFirst.i = getelementptr inbounds nuw i8, ptr %call23, i64 424 br label %_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei.exit -if.end.i300: ; preds = %if.end63 - %Data.i.i301 = getelementptr inbounds nuw i8, ptr %call23, i64 456 - %54 = load ptr, ptr %Data.i.i301, align 8 +if.end.i299: ; preds = %if.end63 + %Data.i.i300 = getelementptr inbounds nuw i8, ptr %call23, i64 456 + %54 = load ptr, ptr %Data.i.i300, align 8 %55 = sext i16 %53 to i64 %56 = getelementptr %struct.ImGuiTableInstanceData, ptr %54, i64 %55 %arrayidx.i.i = getelementptr i8, ptr %56, i64 -24 br label %_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei.exit -_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei.exit: ; preds = %if.then.i302, %if.end.i300 - %retval.0.i = phi ptr [ %InstanceDataFirst.i, %if.then.i302 ], [ %arrayidx.i.i, %if.end.i300 ] +_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei.exit: ; preds = %if.then.i301, %if.end.i299 + %retval.0.i = phi ptr [ %InstanceDataFirst.i, %if.then.i301 ], [ %arrayidx.i.i, %if.end.i299 ] store i32 %instance_id.0, ptr %retval.0.i, align 4 br i1 %cmp.not, label %if.else147, label %if.then68 @@ -579,8 +579,8 @@ if.then88: ; preds = %if.then68 %cond96 = select i1 %cmp85, float %override_content_size.sroa.0.0, float 0.000000e+00 %cond103 = select i1 %or.cond257, float 0x3810000000000000, float 0.000000e+00 store float %cond96, ptr %ref.tmp89, align 4 - %y.i303 = getelementptr inbounds nuw i8, ptr %ref.tmp89, i64 4 - store float %cond103, ptr %y.i303, align 4 + %y.i302 = getelementptr inbounds nuw i8, ptr %ref.tmp89, i64 4 + store float %cond103, ptr %y.i302, align 4 call void @_ZN5ImGui24SetNextWindowContentSizeERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp89) br label %if.end104 @@ -591,8 +591,8 @@ if.end104: ; preds = %if.then68, %if.then if.then107: ; preds = %if.end104 store float 0.000000e+00, ptr %ref.tmp108, align 4 - %y.i304 = getelementptr inbounds nuw i8, ptr %ref.tmp108, i64 4 - store float 0.000000e+00, ptr %y.i304, align 4 + %y.i303 = getelementptr inbounds nuw i8, ptr %ref.tmp108, i64 4 + store float 0.000000e+00, ptr %y.i303, align 4 call void @_ZN5ImGui19SetNextWindowScrollERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp108) br label %if.end109 @@ -601,14 +601,14 @@ if.end109: ; preds = %if.then107, %if.end %58 = load float, ptr %Max.i, align 8 %59 = load float, ptr %outer_rect, align 8 %sub.i = fsub float %58, %59 - %y.i306 = getelementptr inbounds nuw i8, ptr %outer_rect, i64 12 - %60 = load float, ptr %y.i306, align 4 + %y.i305 = getelementptr inbounds nuw i8, ptr %outer_rect, i64 12 + %60 = load float, ptr %y.i305, align 4 %y5.i = getelementptr inbounds nuw i8, ptr %outer_rect, i64 4 %61 = load float, ptr %y5.i, align 4 %sub6.i = fsub float %60, %61 - %retval.sroa.0.0.vec.insert.i307 = insertelement <2 x float> poison, float %sub.i, i64 0 - %retval.sroa.0.4.vec.insert.i308 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i307, float %sub6.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i308, ptr %ref.tmp113, align 8 + %retval.sroa.0.0.vec.insert.i306 = insertelement <2 x float> poison, float %sub.i, i64 0 + %retval.sroa.0.4.vec.insert.i307 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i306, float %sub6.i, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i307, ptr %ref.tmp113, align 8 %call115 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %name, i32 noundef %instance_id.0, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp113, i32 noundef 0, i32 noundef %cond112) %62 = load ptr, ptr %CurrentWindow.i, align 8 store ptr %62, ptr %InnerWindow, align 8 @@ -617,20 +617,20 @@ if.end109: ; preds = %if.then107, %if.end call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %WorkRect118, ptr noundef nonnull align 8 dereferenceable(16) %WorkRect, i64 16, i1 false) %Pos.i = getelementptr inbounds nuw i8, ptr %62, i64 40 %63 = load float, ptr %Pos.i, align 8 - %y.i309 = getelementptr inbounds nuw i8, ptr %62, i64 44 - %64 = load float, ptr %y.i309, align 4 + %y.i308 = getelementptr inbounds nuw i8, ptr %62, i64 44 + %64 = load float, ptr %y.i308, align 4 %Size.i = getelementptr inbounds nuw i8, ptr %62, i64 48 %65 = load float, ptr %Size.i, align 8 - %add.i310 = fadd float %63, %65 + %add.i309 = fadd float %63, %65 %y9.i = getelementptr inbounds nuw i8, ptr %62, i64 52 %66 = load float, ptr %y9.i, align 4 %add10.i = fadd float %64, %66 - %retval.sroa.0.0.vec.insert.i311 = insertelement <2 x float> poison, float %63, i64 0 - %retval.sroa.0.4.vec.insert.i312 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i311, float %64, i64 1 - %retval.sroa.3.8.vec.insert.i = insertelement <2 x float> poison, float %add.i310, i64 0 + %retval.sroa.0.0.vec.insert.i310 = insertelement <2 x float> poison, float %63, i64 0 + %retval.sroa.0.4.vec.insert.i311 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i310, float %64, i64 1 + %retval.sroa.3.8.vec.insert.i = insertelement <2 x float> poison, float %add.i309, i64 0 %retval.sroa.3.12.vec.insert.i = insertelement <2 x float> %retval.sroa.3.8.vec.insert.i, float %add10.i, i64 1 %OuterRect = getelementptr inbounds nuw i8, ptr %call23, i64 240 - store <2 x float> %retval.sroa.0.4.vec.insert.i312, ptr %OuterRect, align 8 + store <2 x float> %retval.sroa.0.4.vec.insert.i311, ptr %OuterRect, align 8 %ref.tmp119.sroa.2.0.OuterRect.sroa_idx = getelementptr inbounds nuw i8, ptr %call23, i64 248 store <2 x float> %retval.sroa.3.12.vec.insert.i, ptr %ref.tmp119.sroa.2.0.OuterRect.sroa_idx, align 8 %InnerRect = getelementptr inbounds nuw i8, ptr %62, i64 520 @@ -745,9 +745,9 @@ if.then178: ; preds = %if.then175 %add181 = fadd float %83, 1.000000e+00 %Max = getelementptr inbounds nuw i8, ptr %call23, i64 360 %84 = load float, ptr %Max, align 8 - %cmp.i314 = fcmp olt float %add181, %84 - %cond.i315 = select i1 %cmp.i314, float %add181, float %84 - store float %cond.i315, ptr %HostClipRect, align 8 + %cmp.i313 = fcmp olt float %add181, %84 + %cond.i314 = select i1 %cmp.i313, float %add181, float %84 + store float %cond.i314, ptr %HostClipRect, align 8 br label %if.end188 if.end188: ; preds = %if.then178, %if.then175 @@ -761,9 +761,9 @@ if.then191: ; preds = %if.end188 %add195 = fadd float %85, 1.000000e+00 %y198 = getelementptr inbounds nuw i8, ptr %call23, i64 364 %86 = load float, ptr %y198, align 4 - %cmp.i316 = fcmp olt float %add195, %86 - %cond.i317 = select i1 %cmp.i316, float %add195, float %86 - store float %cond.i317, ptr %y194, align 4 + %cmp.i315 = fcmp olt float %add195, %86 + %cond.i316 = select i1 %cmp.i315, float %add195, float %86 + store float %cond.i316, ptr %y194, align 4 br label %if.end204 if.end204: ; preds = %if.end188, %if.then191, %if.end154 @@ -792,13 +792,13 @@ cond.true240: ; preds = %if.end204 br label %cond.end245 cond.end245: ; preds = %if.end204, %cond.end234.thread, %cond.true240 - %cond235402 = phi float [ 0.000000e+00, %cond.true240 ], [ %89, %cond.end234.thread ], [ 0.000000e+00, %if.end204 ] + %cond235401 = phi float [ 0.000000e+00, %cond.true240 ], [ %89, %cond.end234.thread ], [ 0.000000e+00, %if.end204 ] %cond246 = phi float [ %90, %cond.true240 ], [ 0.000000e+00, %cond.end234.thread ], [ 0.000000e+00, %if.end204 ] - %add247 = fadd float %cond226, %cond235402 + %add247 = fadd float %cond226, %cond235401 %CellSpacingX1 = getelementptr inbounds nuw i8, ptr %call23, i64 196 store float %add247, ptr %CellSpacingX1, align 4 %CellSpacingX2 = getelementptr inbounds nuw i8, ptr %call23, i64 200 - store float %cond235402, ptr %CellSpacingX2, align 8 + store float %cond235401, ptr %CellSpacingX2, align 8 %CellPaddingX = getelementptr inbounds nuw i8, ptr %call23, i64 192 store float %cond246, ptr %CellPaddingX, align 8 %and248 = and i32 %flags.addr.6.i, 1024 @@ -841,12 +841,12 @@ cond.end257: ; preds = %cond.end245, %cond. %..i.i = select i1 %cmp.inv.i.i, float %this.val.i, float %r.val.i %cmp5.inv.i.i = fcmp oge float %this.val2.i, %r.val3.i %cond11.i.i = select i1 %cmp5.inv.i.i, float %this.val2.i, float %r.val3.i - %retval.sroa.0.0.vec.insert.i.i318 = insertelement <2 x float> poison, float %..i.i, i64 0 - %retval.sroa.0.4.vec.insert.i.i319 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i318, float %cond11.i.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i.i319, ptr %InnerClipRect, align 4 - %Max.i320 = getelementptr inbounds nuw i8, ptr %call23, i64 296 + %retval.sroa.0.0.vec.insert.i.i317 = insertelement <2 x float> poison, float %..i.i, i64 0 + %retval.sroa.0.4.vec.insert.i.i318 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i317, float %cond11.i.i, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i.i318, ptr %InnerClipRect, align 4 + %Max.i319 = getelementptr inbounds nuw i8, ptr %call23, i64 296 %Max5.i = getelementptr inbounds nuw i8, ptr %call23, i64 280 - %Max.val.i = load float, ptr %Max.i320, align 4 + %Max.val.i = load float, ptr %Max.i319, align 4 %94 = getelementptr inbounds nuw i8, ptr %call23, i64 300 %Max.val4.i = load float, ptr %94, align 4 %Max5.val.i = load float, ptr %Max5.i, align 4 @@ -858,10 +858,10 @@ cond.end257: ; preds = %cond.end245, %cond. %cond11.i7.i = select i1 %cmp5.i.i, float %Max.val4.i, float %Max5.val5.i %retval.sroa.0.0.vec.insert.i8.i = insertelement <2 x float> poison, float %..i6.i, i64 0 %retval.sroa.0.4.vec.insert.i9.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i8.i, float %cond11.i7.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i9.i, ptr %Max.i320, align 4 - %Max.i321 = getelementptr inbounds nuw i8, ptr %call23, i64 360 - %agg.tmp.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i321, align 4 - %r.val.i323 = load float, ptr %HostClipRect, align 4 + store <2 x float> %retval.sroa.0.4.vec.insert.i9.i, ptr %Max.i319, align 4 + %Max.i320 = getelementptr inbounds nuw i8, ptr %call23, i64 360 + %agg.tmp.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i320, align 4 + %r.val.i322 = load float, ptr %HostClipRect, align 4 %96 = getelementptr inbounds nuw i8, ptr %call23, i64 356 %r.val5.i = load float, ptr %96, align 4 %cmp13.i.i = fcmp olt float %cond11.i.i, %r.val5.i @@ -875,14 +875,14 @@ cond.false16.i.i: ; preds = %cond.end257 _ZL7ImClampRK6ImVec2S1_S_.exit.i: ; preds = %cond.false16.i.i, %cond.end257 %cond27.i.i = phi float [ %r.val5.i, %cond.end257 ], [ %mx.sroa.0.4.vec.extract..i.i, %cond.false16.i.i ] - %cmp.i.i324 = fcmp olt float %..i.i, %r.val.i323 + %cmp.i.i323 = fcmp olt float %..i.i, %r.val.i322 %mx.sroa.0.0.vec.extract.i.i = extractelement <2 x float> %agg.tmp.sroa.0.0.copyload.i, i64 0 - %cmp5.i.i325 = fcmp ogt float %..i.i, %mx.sroa.0.0.vec.extract.i.i - %mx.sroa.0.0.vec.extract..i.i = select i1 %cmp5.i.i325, float %mx.sroa.0.0.vec.extract.i.i, float %..i.i - %cond11.i.i326 = select i1 %cmp.i.i324, float %r.val.i323, float %mx.sroa.0.0.vec.extract..i.i - %retval.sroa.0.0.vec.insert.i.i327 = insertelement <2 x float> poison, float %cond11.i.i326, i64 0 - %retval.sroa.0.4.vec.insert.i.i328 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i327, float %cond27.i.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i.i328, ptr %InnerClipRect, align 4 + %cmp5.i.i324 = fcmp ogt float %..i.i, %mx.sroa.0.0.vec.extract.i.i + %mx.sroa.0.0.vec.extract..i.i = select i1 %cmp5.i.i324, float %mx.sroa.0.0.vec.extract.i.i, float %..i.i + %cond11.i.i325 = select i1 %cmp.i.i323, float %r.val.i322, float %mx.sroa.0.0.vec.extract..i.i + %retval.sroa.0.0.vec.insert.i.i326 = insertelement <2 x float> poison, float %cond11.i.i325, i64 0 + %retval.sroa.0.4.vec.insert.i.i327 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i326, float %cond27.i.i, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i.i327, ptr %InnerClipRect, align 4 %cmp13.i9.i = fcmp olt float %cond11.i7.i, %r.val5.i br i1 %cmp13.i9.i, label %_ZN6ImRect12ClipWithFullERKS_.exit, label %cond.false16.i10.i @@ -894,13 +894,13 @@ cond.false16.i10.i: ; preds = %_ZL7ImClampRK6ImVec _ZN6ImRect12ClipWithFullERKS_.exit: ; preds = %_ZL7ImClampRK6ImVec2S1_S_.exit.i, %cond.false16.i10.i %cond27.i14.i = phi float [ %r.val5.i, %_ZL7ImClampRK6ImVec2S1_S_.exit.i ], [ %mx.sroa.0.4.vec.extract..i13.i, %cond.false16.i10.i ] - %cmp.i15.i = fcmp olt float %..i6.i, %r.val.i323 + %cmp.i15.i = fcmp olt float %..i6.i, %r.val.i322 %cmp5.i17.i = fcmp ogt float %..i6.i, %mx.sroa.0.0.vec.extract.i.i %mx.sroa.0.0.vec.extract..i18.i = select i1 %cmp5.i17.i, float %mx.sroa.0.0.vec.extract.i.i, float %..i6.i - %cond11.i19.i = select i1 %cmp.i15.i, float %r.val.i323, float %mx.sroa.0.0.vec.extract..i18.i + %cond11.i19.i = select i1 %cmp.i15.i, float %r.val.i322, float %mx.sroa.0.0.vec.extract..i18.i %retval.sroa.0.0.vec.insert.i20.i = insertelement <2 x float> poison, float %cond11.i19.i, i64 0 %retval.sroa.0.4.vec.insert.i21.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i20.i, float %cond27.i14.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i21.i, ptr %Max.i320, align 4 + store <2 x float> %retval.sroa.0.4.vec.insert.i21.i, ptr %Max.i319, align 4 %and272 = and i32 %flags.addr.6.i, 131072 %tobool273.not = icmp eq i32 %and272, 0 br i1 %tobool273.not, label %cond.false282, label %cond.true274 @@ -908,8 +908,8 @@ _ZN6ImRect12ClipWithFullERKS_.exit: ; preds = %_ZL7ImClampRK6ImVec cond.true274: ; preds = %_ZN6ImRect12ClipWithFullERKS_.exit %y280 = getelementptr inbounds nuw i8, ptr %74, i64 564 %97 = load float, ptr %y280, align 4 - %cmp.i331 = fcmp olt float %cond27.i14.i, %97 - %cond.i332 = select i1 %cmp.i331, float %cond27.i14.i, float %97 + %cmp.i330 = fcmp olt float %cond27.i14.i, %97 + %cond.i331 = select i1 %cmp.i330, float %cond27.i14.i, float %97 br label %cond.end286 cond.false282: ; preds = %_ZN6ImRect12ClipWithFullERKS_.exit @@ -918,7 +918,7 @@ cond.false282: ; preds = %_ZN6ImRect12ClipWit br label %cond.end286 cond.end286: ; preds = %cond.false282, %cond.true274 - %cond287 = phi float [ %cond.i332, %cond.true274 ], [ %98, %cond.false282 ] + %cond287 = phi float [ %cond.i331, %cond.true274 ], [ %98, %cond.false282 ] store float %cond287, ptr %94, align 4 %RowPosY2 = getelementptr inbounds nuw i8, ptr %call23, i64 128 store float %r.val3.i, ptr %RowPosY2, align 8 @@ -989,67 +989,67 @@ if.end314: ; preds = %if.then313, %if.end if.then317: ; preds = %if.end314 %add319 = add nsw i32 %conv.i, 1 - %Capacity.i333 = getelementptr inbounds nuw i8, ptr %0, i64 19988 - %101 = load i32, ptr %Capacity.i333, align 4 - %cmp.i334.not = icmp sgt i32 %101, %conv.i - br i1 %cmp.i334.not, label %if.end.i335, label %if.then.i346 - -if.then.i346: ; preds = %if.then317 - %tobool.not.i.i347 = icmp eq i32 %101, 0 - br i1 %tobool.not.i.i347, label %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i, label %cond.true.i.i348 - -cond.true.i.i348: ; preds = %if.then.i346 - %div.i.i349 = sdiv i32 %101, 2 - %add.i.i350 = add nsw i32 %div.i.i349, %101 + %Capacity.i332 = getelementptr inbounds nuw i8, ptr %0, i64 19988 + %101 = load i32, ptr %Capacity.i332, align 4 + %cmp.i333.not = icmp sgt i32 %101, %conv.i + br i1 %cmp.i333.not, label %if.end.i334, label %if.then.i345 + +if.then.i345: ; preds = %if.then317 + %tobool.not.i.i346 = icmp eq i32 %101, 0 + br i1 %tobool.not.i.i346, label %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i, label %cond.true.i.i347 + +cond.true.i.i347: ; preds = %if.then.i345 + %div.i.i348 = sdiv i32 %101, 2 + %add.i.i349 = add nsw i32 %div.i.i348, %101 br label %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i -_ZNK8ImVectorIfE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i348, %if.then.i346 - %cond.i.i351 = phi i32 [ %add.i.i350, %cond.true.i.i348 ], [ 8, %if.then.i346 ] - %cond7.i.i352 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i351, i32 %add319) - %conv.i.i353 = sext i32 %cond7.i.i352 to i64 - %mul.i.i354 = shl nsw i64 %conv.i.i353, 2 - %call.i.i355 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i354) - %Data.i.i356 = getelementptr inbounds nuw i8, ptr %0, i64 19992 - %102 = load ptr, ptr %Data.i.i356, align 8 - %tobool.not.i8.i357 = icmp eq ptr %102, null - br i1 %tobool.not.i8.i357, label %if.end7.i.i361, label %if.then2.i.i358 - -if.then2.i.i358: ; preds = %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i +_ZNK8ImVectorIfE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i347, %if.then.i345 + %cond.i.i350 = phi i32 [ %add.i.i349, %cond.true.i.i347 ], [ 8, %if.then.i345 ] + %cond7.i.i351 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i350, i32 %add319) + %conv.i.i352 = sext i32 %cond7.i.i351 to i64 + %mul.i.i353 = shl nsw i64 %conv.i.i352, 2 + %call.i.i354 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i353) + %Data.i.i355 = getelementptr inbounds nuw i8, ptr %0, i64 19992 + %102 = load ptr, ptr %Data.i.i355, align 8 + %tobool.not.i8.i356 = icmp eq ptr %102, null + br i1 %tobool.not.i8.i356, label %if.end7.i.i360, label %if.then2.i.i357 + +if.then2.i.i357: ; preds = %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i %103 = load i32, ptr %TablesLastTimeActive, align 8 - %conv4.i.i359 = sext i32 %103 to i64 - %mul5.i.i360 = shl nsw i64 %conv4.i.i359, 2 - call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i355, ptr nonnull align 4 %102, i64 %mul5.i.i360, i1 false) - %104 = load ptr, ptr %Data.i.i356, align 8 + %conv4.i.i358 = sext i32 %103 to i64 + %mul5.i.i359 = shl nsw i64 %conv4.i.i358, 2 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i354, ptr nonnull align 4 %102, i64 %mul5.i.i359, i1 false) + %104 = load ptr, ptr %Data.i.i355, align 8 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %104) - br label %if.end7.i.i361 + br label %if.end7.i.i360 -if.end7.i.i361: ; preds = %if.then2.i.i358, %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i - store ptr %call.i.i355, ptr %Data.i.i356, align 8 - store i32 %cond7.i.i352, ptr %Capacity.i333, align 4 - %.pre418 = load i32, ptr %TablesLastTimeActive, align 8 - br label %if.end.i335 +if.end7.i.i360: ; preds = %if.then2.i.i357, %_ZNK8ImVectorIfE14_grow_capacityEi.exit.i + store ptr %call.i.i354, ptr %Data.i.i355, align 8 + store i32 %cond7.i.i351, ptr %Capacity.i332, align 4 + %.pre416 = load i32, ptr %TablesLastTimeActive, align 8 + br label %if.end.i334 -if.end.i335: ; preds = %if.end7.i.i361, %if.then317 - %105 = phi i32 [ %.pre418, %if.end7.i.i361 ], [ %100, %if.then317 ] - %cmp2.i336.not = icmp sgt i32 %105, %conv.i - br i1 %cmp2.i336.not, label %_ZN8ImVectorIfE6resizeEiRKf.exit, label %for.cond.preheader.i337 +if.end.i334: ; preds = %if.end7.i.i360, %if.then317 + %105 = phi i32 [ %.pre416, %if.end7.i.i360 ], [ %100, %if.then317 ] + %cmp2.i335.not = icmp sgt i32 %105, %conv.i + br i1 %cmp2.i335.not, label %_ZN8ImVectorIfE6resizeEiRKf.exit, label %for.cond.preheader.i336 -for.cond.preheader.i337: ; preds = %if.end.i335 - %Data.i338 = getelementptr inbounds nuw i8, ptr %0, i64 19992 +for.cond.preheader.i336: ; preds = %if.end.i334 + %Data.i337 = getelementptr inbounds nuw i8, ptr %0, i64 19992 %106 = sext i32 %105 to i64 - %wide.trip.count.i339 = sext i32 %add319 to i64 - br label %for.body.i341 - -for.body.i341: ; preds = %for.body.i341, %for.cond.preheader.i337 - %indvars.iv.i342 = phi i64 [ %106, %for.cond.preheader.i337 ], [ %indvars.iv.next.i344, %for.body.i341 ] - %107 = load ptr, ptr %Data.i338, align 8 - %arrayidx.i343 = getelementptr inbounds float, ptr %107, i64 %indvars.iv.i342 - store i32 -1082130432, ptr %arrayidx.i343, align 4 - %indvars.iv.next.i344 = add nsw i64 %indvars.iv.i342, 1 - %exitcond.not.i345 = icmp eq i64 %indvars.iv.next.i344, %wide.trip.count.i339 - br i1 %exitcond.not.i345, label %_ZN8ImVectorIfE6resizeEiRKf.exit, label %for.body.i341, !llvm.loop !6 - -_ZN8ImVectorIfE6resizeEiRKf.exit: ; preds = %for.body.i341, %if.end.i335 + %wide.trip.count.i338 = sext i32 %add319 to i64 + br label %for.body.i340 + +for.body.i340: ; preds = %for.body.i340, %for.cond.preheader.i336 + %indvars.iv.i341 = phi i64 [ %106, %for.cond.preheader.i336 ], [ %indvars.iv.next.i343, %for.body.i340 ] + %107 = load ptr, ptr %Data.i337, align 8 + %arrayidx.i342 = getelementptr inbounds float, ptr %107, i64 %indvars.iv.i341 + store i32 -1082130432, ptr %arrayidx.i342, align 4 + %indvars.iv.next.i343 = add nsw i64 %indvars.iv.i341, 1 + %exitcond.not.i344 = icmp eq i64 %indvars.iv.next.i343, %wide.trip.count.i338 + br i1 %exitcond.not.i344, label %_ZN8ImVectorIfE6resizeEiRKf.exit, label %for.body.i340, !llvm.loop !6 + +_ZN8ImVectorIfE6resizeEiRKf.exit: ; preds = %for.body.i340, %if.end.i334 store i32 %add319, ptr %TablesLastTimeActive, align 8 br label %if.end321 @@ -1057,12 +1057,12 @@ if.end321: ; preds = %_ZN8ImVectorIfE6res %Time = getelementptr inbounds nuw i8, ptr %0, i64 16216 %108 = load double, ptr %Time, align 8 %conv322 = fptrunc double %108 to float - %Data.i362 = getelementptr inbounds nuw i8, ptr %0, i64 19992 - %109 = load ptr, ptr %Data.i362, align 8 + %Data.i361 = getelementptr inbounds nuw i8, ptr %0, i64 19992 + %109 = load ptr, ptr %Data.i361, align 8 %sext = shl i64 %sub.ptr.div.i, 32 %110 = ashr exact i64 %sext, 30 - %arrayidx.i364 = getelementptr inbounds i8, ptr %109, i64 %110 - store float %conv322, ptr %arrayidx.i364, align 4 + %arrayidx.i363 = getelementptr inbounds i8, ptr %109, i64 %110 + store float %conv322, ptr %arrayidx.i363, align 4 %111 = load double, ptr %Time, align 8 %conv326 = fptrunc double %111 to float %LastTimeActive = getelementptr i8, ptr %33, i64 -116 @@ -1073,16 +1073,16 @@ if.end321: ; preds = %_ZN8ImVectorIfE6res %DataEnd.i = getelementptr inbounds nuw i8, ptr %call23, i64 32 %112 = load ptr, ptr %DataEnd.i, align 8 %113 = load ptr, ptr %Columns, align 8 - %sub.ptr.lhs.cast.i365 = ptrtoint ptr %112 to i64 - %sub.ptr.rhs.cast.i366 = ptrtoint ptr %113 to i64 - %sub.ptr.sub.i367 = sub i64 %sub.ptr.lhs.cast.i365, %sub.ptr.rhs.cast.i366 - %sub.ptr.div.i368 = sdiv exact i64 %sub.ptr.sub.i367, 112 - %conv.i369 = trunc i64 %sub.ptr.div.i368 to i32 - %cmp328.not = icmp eq i32 %conv.i369, 0 - %cmp330.not = icmp eq i32 %columns_count, %conv.i369 + %sub.ptr.lhs.cast.i364 = ptrtoint ptr %112 to i64 + %sub.ptr.rhs.cast.i365 = ptrtoint ptr %113 to i64 + %sub.ptr.sub.i366 = sub i64 %sub.ptr.lhs.cast.i364, %sub.ptr.rhs.cast.i365 + %sub.ptr.div.i367 = sdiv exact i64 %sub.ptr.sub.i366, 112 + %conv.i368 = trunc i64 %sub.ptr.div.i367 to i32 + %cmp328.not = icmp eq i32 %conv.i368, 0 + %cmp330.not = icmp eq i32 %columns_count, %conv.i368 %or.cond262 = or i1 %cmp328.not, %cmp330.not %RawData335.phi.trans.insert = getelementptr inbounds nuw i8, ptr %call23, i64 8 - %.pre419 = load ptr, ptr %RawData335.phi.trans.insert, align 8 + %.pre417 = load ptr, ptr %RawData335.phi.trans.insert, align 8 %RawData335 = getelementptr inbounds nuw i8, ptr %call23, i64 8 br i1 %or.cond262, label %if.end334, label %if.end334.thread @@ -1091,22 +1091,22 @@ if.end334.thread: ; preds = %if.end321 br label %if.then337 if.end334: ; preds = %if.end321 - %114 = icmp eq ptr %.pre419, null + %114 = icmp eq ptr %.pre417, null br i1 %114, label %if.then337, label %if.end338 if.then337: ; preds = %if.end334.thread, %if.end334 - %old_columns_to_preserve.0431 = phi ptr [ %113, %if.end334.thread ], [ null, %if.end334 ] - %old_columns_raw_data.0429 = phi ptr [ %.pre419, %if.end334.thread ], [ null, %if.end334 ] + %old_columns_to_preserve.0429 = phi ptr [ %113, %if.end334.thread ], [ null, %if.end334 ] + %old_columns_raw_data.0427 = phi ptr [ %.pre417, %if.end334.thread ], [ null, %if.end334 ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %span_allocator.i) - %add.i.i370 = add nsw i32 %columns_count, 31 + %add.i.i369 = add nsw i32 %columns_count, 31 %mul.i = mul i32 %columns_count, 112 %Offsets.i.i = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 16 %Sizes.i.i = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %Offsets.i.i, i8 0, i64 48, i1 false) store i32 %mul.i, ptr %Sizes.i.i, align 8 %mul3.i = shl i32 %columns_count, 1 - %arrayidx.i.i371 = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 20 - store i32 %mul.i, ptr %arrayidx.i.i371, align 4 + %arrayidx.i.i370 = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 20 + store i32 %mul.i, ptr %arrayidx.i.i370, align 4 %arrayidx6.i.i = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 44 store i32 %mul3.i, ptr %arrayidx6.i.i, align 4 %mul5.i = shl i32 %columns_count, 3 @@ -1118,25 +1118,25 @@ if.then337: ; preds = %if.end334.thread, % %arrayidx6.i32.i = getelementptr inbounds nuw i8, ptr %span_allocator.i, i64 48 store i32 %mul5.i, ptr %arrayidx6.i32.i, align 8 %add9.i35.i = add nsw i32 %and.i27.i, %mul5.i - %115 = ashr i32 %add.i.i370, 3 + %115 = ashr i32 %add.i.i369, 3 %116 = and i32 %115, -4 - br label %for.body.i372 + br label %for.body.i371 -for.body.i372: ; preds = %for.body.i372, %if.then337 - %indvars.iv.i373 = phi i64 [ 3, %if.then337 ], [ %indvars.iv.next.i374, %for.body.i372 ] - %117 = phi i32 [ %add9.i35.i, %if.then337 ], [ %add9.i46.i, %for.body.i372 ] +for.body.i371: ; preds = %for.body.i371, %if.then337 + %indvars.iv.i372 = phi i64 [ 3, %if.then337 ], [ %indvars.iv.next.i373, %for.body.i371 ] + %117 = phi i32 [ %add9.i35.i, %if.then337 ], [ %add9.i46.i, %for.body.i371 ] %add.i37.i = add nsw i32 %117, 3 %and.i38.i = and i32 %add.i37.i, -4 - %arrayidx.i40.i = getelementptr inbounds nuw [6 x i32], ptr %Offsets.i.i, i64 0, i64 %indvars.iv.i373 + %arrayidx.i40.i = getelementptr inbounds nuw [6 x i32], ptr %Offsets.i.i, i64 0, i64 %indvars.iv.i372 store i32 %and.i38.i, ptr %arrayidx.i40.i, align 4 - %arrayidx6.i43.i = getelementptr inbounds nuw [6 x i32], ptr %Sizes.i.i, i64 0, i64 %indvars.iv.i373 + %arrayidx6.i43.i = getelementptr inbounds nuw [6 x i32], ptr %Sizes.i.i, i64 0, i64 %indvars.iv.i372 store i32 %116, ptr %arrayidx6.i43.i, align 4 %add9.i46.i = add nsw i32 %and.i38.i, %116 - %indvars.iv.next.i374 = add nuw nsw i64 %indvars.iv.i373, 1 - %exitcond.not.i375 = icmp eq i64 %indvars.iv.next.i374, 6 - br i1 %exitcond.not.i375, label %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit, label %for.body.i372, !llvm.loop !7 + %indvars.iv.next.i373 = add nuw nsw i64 %indvars.iv.i372, 1 + %exitcond.not.i374 = icmp eq i64 %indvars.iv.next.i373, 6 + br i1 %exitcond.not.i374, label %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit, label %for.body.i371, !llvm.loop !7 -_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit: ; preds = %for.body.i372 +_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit: ; preds = %for.body.i371 %conv8.i = sext i32 %add9.i46.i to i64 %call9.i = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %conv8.i) store ptr %call9.i, ptr %RawData335, align 8 @@ -1148,7 +1148,7 @@ _ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit: ; preds = %for.body.i372 store ptr %118, ptr %Columns, align 8 store ptr %add.ptr5.i.i.i, ptr %DataEnd.i, align 8 %DisplayOrderToIndex.i = getelementptr inbounds nuw i8, ptr %call23, i64 40 - %120 = load i32, ptr %arrayidx.i.i371, align 4 + %120 = load i32, ptr %arrayidx.i.i370, align 4 %idx.ext.i.i50.i = sext i32 %120 to i64 %add.ptr.i.i51.i = getelementptr inbounds i8, ptr %118, i64 %idx.ext.i.i50.i %121 = load i32, ptr %arrayidx6.i.i, align 4 @@ -1193,8 +1193,8 @@ _ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit: ; preds = %for.body.i372 br label %if.end338 if.end338: ; preds = %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit, %if.end334 - %old_columns_to_preserve.0430 = phi ptr [ %old_columns_to_preserve.0431, %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit ], [ null, %if.end334 ] - %old_columns_raw_data.0428 = phi ptr [ %old_columns_raw_data.0429, %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit ], [ null, %if.end334 ] + %old_columns_to_preserve.0428 = phi ptr [ %old_columns_to_preserve.0429, %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit ], [ null, %if.end334 ] + %old_columns_raw_data.0426 = phi ptr [ %old_columns_raw_data.0427, %_ZN5ImGui20TableBeginInitMemoryEP10ImGuiTablei.exit ], [ null, %if.end334 ] %IsResetAllRequest = getelementptr inbounds nuw i8, ptr %call23, i64 576 %127 = load i8, ptr %IsResetAllRequest, align 8 %tobool339 = trunc i8 %127 to i1 @@ -1214,8 +1214,8 @@ if.end341.thread: ; preds = %if.end338 if.end341: ; preds = %if.end338 %IsInitializing342.phi.trans.insert = getelementptr inbounds nuw i8, ptr %call23, i64 568 - %.pre420 = load i8, ptr %IsInitializing342.phi.trans.insert, align 8 - %128 = trunc i8 %.pre420 to i1 + %.pre418 = load i8, ptr %IsInitializing342.phi.trans.insert, align 8 + %128 = trunc i8 %.pre418 to i1 br i1 %128, label %if.then344, label %if.end359 if.then344: ; preds = %if.end341.thread, %if.end341 @@ -1239,14 +1239,14 @@ if.then344: ; preds = %if.end341.thread, % store i16 -1, ptr %HoveredColumnBorder, align 4 %HoveredColumnBody = getelementptr inbounds nuw i8, ptr %call23, i64 522 store i16 -1, ptr %HoveredColumnBody, align 2 - %cmp345404 = icmp sgt i32 %columns_count, 0 - br i1 %cmp345404, label %for.body.lr.ph, label %if.end359 + %cmp345403 = icmp sgt i32 %columns_count, 0 + br i1 %cmp345403, label %for.body.lr.ph, label %if.end359 for.body.lr.ph: ; preds = %if.then344 - %tobool348.not = icmp ne ptr %old_columns_to_preserve.0430, null + %tobool348.not = icmp ne ptr %old_columns_to_preserve.0428, null %DisplayOrderToIndex = getelementptr inbounds nuw i8, ptr %call23, i64 40 - %sext423 = shl i64 %sub.ptr.div.i368, 32 - %129 = ashr exact i64 %sext423, 32 + %sext421 = shl i64 %sub.ptr.div.i367, 32 + %129 = ashr exact i64 %sext421, 32 %wide.trip.count = zext nneg i32 %columns_count to i64 %ref.tmp353.sroa.4.52.NameOffset.i.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp353.sroa.4, i64 52 br label %for.body @@ -1260,7 +1260,7 @@ for.body: ; preds = %for.body.lr.ph, %if br i1 %or.cond263, label %if.then351, label %if.else352 if.then351: ; preds = %for.body - %arrayidx = getelementptr inbounds nuw %struct.ImGuiTableColumn, ptr %old_columns_to_preserve.0430, i64 %indvars.iv + %arrayidx = getelementptr inbounds nuw %struct.ImGuiTableColumn, ptr %old_columns_to_preserve.0428, i64 %indvars.iv call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(111) %add.ptr.i, ptr noundef nonnull align 4 dereferenceable(111) %arrayidx, i64 111, i1 false) br label %if.end355 @@ -1272,8 +1272,8 @@ if.else352: ; preds = %for.body call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %add.ptr.i, i8 0, i64 16, i1 false) %ref.tmp353.sroa.2.0.add.ptr.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 16 store float -1.000000e+00, ptr %ref.tmp353.sroa.2.0.add.ptr.i.sroa_idx, align 4 - %ref.tmp353.sroa.3398.0.add.ptr.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 24 - store float -1.000000e+00, ptr %ref.tmp353.sroa.3398.0.add.ptr.i.sroa_idx, align 4 + %ref.tmp353.sroa.3397.0.add.ptr.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 24 + store float -1.000000e+00, ptr %ref.tmp353.sroa.3397.0.add.ptr.i.sroa_idx, align 4 %ref.tmp353.sroa.4.0.add.ptr.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 28 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %ref.tmp353.sroa.4.0.add.ptr.i.sroa_idx, ptr noundef nonnull align 4 dereferenceable(64) %ref.tmp353.sroa.4, i64 64, i1 false) %ref.tmp353.sroa.5.0.add.ptr.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 92 @@ -1298,8 +1298,8 @@ if.else352: ; preds = %for.body if.end355: ; preds = %if.else352, %if.then351 %conv356 = trunc i64 %indvars.iv to i16 %133 = load ptr, ptr %DisplayOrderToIndex, align 8 - %add.ptr.i377 = getelementptr inbounds nuw i16, ptr %133, i64 %indvars.iv - store i16 %conv356, ptr %add.ptr.i377, align 2 + %add.ptr.i376 = getelementptr inbounds nuw i16, ptr %133, i64 %indvars.iv + store i16 %conv356, ptr %add.ptr.i376, align 2 %DisplayOrder = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 82 store i16 %conv356, ptr %DisplayOrder, align 2 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -1307,11 +1307,11 @@ if.end355: ; preds = %if.else352, %if.the br i1 %exitcond.not, label %if.end359, label %for.body, !llvm.loop !8 if.end359: ; preds = %if.end355, %if.then344, %if.end341 - %tobool360.not = icmp eq ptr %old_columns_raw_data.0428, null + %tobool360.not = icmp eq ptr %old_columns_raw_data.0426, null br i1 %tobool360.not, label %if.end362, label %if.then361 if.then361: ; preds = %if.end359 - call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %old_columns_raw_data.0428) + call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %old_columns_raw_data.0426) br label %if.end362 if.end362: ; preds = %if.then361, %if.end359 @@ -1336,23 +1336,23 @@ if.end366: ; preds = %if.then365, %if.end if.then371: ; preds = %if.end366 %div = fdiv float %135, %136 - %cmp375406 = icmp sgt i32 %columns_count, 0 - br i1 %cmp375406, label %for.body376.preheader, label %if.end385 + %cmp375405 = icmp sgt i32 %columns_count, 0 + br i1 %cmp375405, label %for.body376.preheader, label %if.end385 for.body376.preheader: ; preds = %if.then371 - %wide.trip.count412 = zext nneg i32 %columns_count to i64 + %wide.trip.count411 = zext nneg i32 %columns_count to i64 br label %for.body376 for.body376: ; preds = %for.body376.preheader, %for.body376 - %indvars.iv409 = phi i64 [ 0, %for.body376.preheader ], [ %indvars.iv.next410, %for.body376 ] + %indvars.iv408 = phi i64 [ 0, %for.body376.preheader ], [ %indvars.iv.next409, %for.body376 ] %137 = load ptr, ptr %Columns, align 8 - %WidthRequest = getelementptr inbounds nuw %struct.ImGuiTableColumn, ptr %137, i64 %indvars.iv409, i32 4 + %WidthRequest = getelementptr inbounds nuw %struct.ImGuiTableColumn, ptr %137, i64 %indvars.iv408, i32 4 %138 = load float, ptr %WidthRequest, align 4 %mul = fmul float %div, %138 store float %mul, ptr %WidthRequest, align 4 - %indvars.iv.next410 = add nuw nsw i64 %indvars.iv409, 1 - %exitcond413.not = icmp eq i64 %indvars.iv.next410, %wide.trip.count412 - br i1 %exitcond413.not, label %if.end385, label %for.body376, !llvm.loop !9 + %indvars.iv.next409 = add nuw nsw i64 %indvars.iv408, 1 + %exitcond412.not = icmp eq i64 %indvars.iv.next409, %wide.trip.count411 + br i1 %exitcond412.not, label %if.end385, label %for.body376, !llvm.loop !9 if.end385: ; preds = %for.body376, %if.then371, %if.end366 store float %135, ptr %RefScale, align 4 @@ -1363,32 +1363,32 @@ if.end385: ; preds = %for.body376, %if.th br i1 %cmp389, label %if.then390, label %if.end393 if.then390: ; preds = %if.end385 - %Capacity.i382 = getelementptr inbounds nuw i8, ptr %call23, i64 404 - %140 = load i32, ptr %Capacity.i382, align 4 - %cmp.i383 = icmp slt i32 %140, 0 - br i1 %cmp.i383, label %if.then.i385, label %_ZN8ImVectorIcE6resizeEi.exit - -if.then.i385: ; preds = %if.then390 - %call.i.i393 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef 0) - %Data.i.i394 = getelementptr inbounds nuw i8, ptr %call23, i64 408 - %141 = load ptr, ptr %Data.i.i394, align 8 + %Capacity.i381 = getelementptr inbounds nuw i8, ptr %call23, i64 404 + %140 = load i32, ptr %Capacity.i381, align 4 + %cmp.i382 = icmp slt i32 %140, 0 + br i1 %cmp.i382, label %if.then.i384, label %_ZN8ImVectorIcE6resizeEi.exit + +if.then.i384: ; preds = %if.then390 + %call.i.i392 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef 0) + %Data.i.i393 = getelementptr inbounds nuw i8, ptr %call23, i64 408 + %141 = load ptr, ptr %Data.i.i393, align 8 %tobool.not.i4.i = icmp eq ptr %141, null - br i1 %tobool.not.i4.i, label %if.end7.i.i397, label %if.then2.i.i395 + br i1 %tobool.not.i4.i, label %if.end7.i.i396, label %if.then2.i.i394 -if.then2.i.i395: ; preds = %if.then.i385 +if.then2.i.i394: ; preds = %if.then.i384 %142 = load i32, ptr %ColumnsNames, align 8 - %conv4.i.i396 = sext i32 %142 to i64 - call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call.i.i393, ptr nonnull align 1 %141, i64 %conv4.i.i396, i1 false) - %143 = load ptr, ptr %Data.i.i394, align 8 + %conv4.i.i395 = sext i32 %142 to i64 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call.i.i392, ptr nonnull align 1 %141, i64 %conv4.i.i395, i1 false) + %143 = load ptr, ptr %Data.i.i393, align 8 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %143) - br label %if.end7.i.i397 + br label %if.end7.i.i396 -if.end7.i.i397: ; preds = %if.then2.i.i395, %if.then.i385 - store ptr %call.i.i393, ptr %Data.i.i394, align 8 - store i32 0, ptr %Capacity.i382, align 4 +if.end7.i.i396: ; preds = %if.then2.i.i394, %if.then.i384 + store ptr %call.i.i392, ptr %Data.i.i393, align 8 + store i32 0, ptr %Capacity.i381, align 4 br label %_ZN8ImVectorIcE6resizeEi.exit -_ZN8ImVectorIcE6resizeEi.exit: ; preds = %if.then390, %if.end7.i.i397 +_ZN8ImVectorIcE6resizeEi.exit: ; preds = %if.then390, %if.end7.i.i396 store i32 0, ptr %ColumnsNames, align 8 br label %if.end393 @@ -14500,8 +14500,8 @@ entry: %ref.tmp = alloca %struct.ImGuiOldColumns, align 8 %ColumnsStorage = getelementptr inbounds nuw i8, ptr %window, i64 656 %0 = load i32, ptr %ColumnsStorage, align 8 - %cmp23 = icmp sgt i32 %0, 0 - br i1 %cmp23, label %for.body.lr.ph, label %for.end + %cmp22 = icmp sgt i32 %0, 0 + br i1 %cmp22, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %entry %Data.i = getelementptr inbounds nuw i8, ptr %window, i64 664 @@ -14526,32 +14526,32 @@ for.end: ; preds = %for.cond, %entry %Capacity.i = getelementptr inbounds nuw i8, ptr %window, i64 660 %3 = load i32, ptr %Capacity.i, align 4 %cmp.i = icmp eq i32 %0, %3 - br i1 %cmp.i, label %if.then.i, label %for.end.invoke.cont_crit_edge + br i1 %cmp.i, label %if.then.i, label %entry.if.end_crit_edge.i -for.end.invoke.cont_crit_edge: ; preds = %for.end - %Data.i13.phi.trans.insert = getelementptr inbounds nuw i8, ptr %window, i64 664 - %.pre = load ptr, ptr %Data.i13.phi.trans.insert, align 8 +entry.if.end_crit_edge.i: ; preds = %for.end + %Data.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %window, i64 664 + %.pre.i = load ptr, ptr %Data.phi.trans.insert.i, align 8 br label %invoke.cont if.then.i: ; preds = %for.end %add.i = add nsw i32 %0, 1 %tobool.not.i.i = icmp eq i32 %0, 0 - br i1 %tobool.not.i.i, label %if.end.i.i, label %cond.true.i.i + br i1 %tobool.not.i.i, label %_ZNK8ImVectorI15ImGuiOldColumnsE14_grow_capacityEi.exit.i, label %cond.true.i.i cond.true.i.i: ; preds = %if.then.i %div.i.i = sdiv i32 %0, 2 %add.i.i = add nsw i32 %div.i.i, %0 - br label %if.end.i.i + br label %_ZNK8ImVectorI15ImGuiOldColumnsE14_grow_capacityEi.exit.i -if.end.i.i: ; preds = %cond.true.i.i, %if.then.i +_ZNK8ImVectorI15ImGuiOldColumnsE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i, %if.then.i %cond.i.i = phi i32 [ %add.i.i, %cond.true.i.i ], [ 8, %if.then.i ] %cond7.i.i = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i) %conv.i.i = sext i32 %cond7.i.i to i64 %mul.i.i = mul nsw i64 %conv.i.i, 136 - %call.i.i16 = invoke noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i) + %call.i.i15 = invoke noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i) to label %call.i.i.noexc unwind label %lpad -call.i.i.noexc: ; preds = %if.end.i.i +call.i.i.noexc: ; preds = %_ZNK8ImVectorI15ImGuiOldColumnsE14_grow_capacityEi.exit.i %Data.i.i = getelementptr inbounds nuw i8, ptr %window, i64 664 %4 = load ptr, ptr %Data.i.i, align 8 %tobool.not.i2.i = icmp eq ptr %4, null @@ -14561,24 +14561,23 @@ if.then2.i.i: ; preds = %call.i.i.noexc %5 = load i32, ptr %ColumnsStorage, align 8 %conv4.i.i = sext i32 %5 to i64 %mul5.i.i = mul nsw i64 %conv4.i.i, 136 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call.i.i16, ptr nonnull align 8 %4, i64 %mul5.i.i, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %call.i.i15, ptr nonnull align 8 %4, i64 %mul5.i.i, i1 false) %6 = load ptr, ptr %Data.i.i, align 8 invoke void @_ZN5ImGui7MemFreeEPv(ptr noundef %6) to label %if.end7.i.i unwind label %lpad if.end7.i.i: ; preds = %if.then2.i.i, %call.i.i.noexc - store ptr %call.i.i16, ptr %Data.i.i, align 8 + store ptr %call.i.i15, ptr %Data.i.i, align 8 store i32 %cond7.i.i, ptr %Capacity.i, align 4 - %.pre.i = load i32, ptr %ColumnsStorage, align 8 + %.pre3.i = load i32, ptr %ColumnsStorage, align 8 br label %invoke.cont -invoke.cont: ; preds = %for.end.invoke.cont_crit_edge, %if.end7.i.i - %7 = phi ptr [ %call.i.i16, %if.end7.i.i ], [ %.pre, %for.end.invoke.cont_crit_edge ] - %8 = phi i32 [ %.pre.i, %if.end7.i.i ], [ %0, %for.end.invoke.cont_crit_edge ] - %Data.i13 = getelementptr inbounds nuw i8, ptr %window, i64 664 - %idxprom.i14 = sext i32 %8 to i64 - %arrayidx.i15 = getelementptr inbounds %struct.ImGuiOldColumns, ptr %7, i64 %idxprom.i14 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %arrayidx.i15, ptr noundef nonnull align 8 dereferenceable(136) %ref.tmp, i64 136, i1 false) +invoke.cont: ; preds = %if.end7.i.i, %entry.if.end_crit_edge.i + %7 = phi i32 [ %0, %entry.if.end_crit_edge.i ], [ %.pre3.i, %if.end7.i.i ] + %8 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i15, %if.end7.i.i ] + %idxprom.i13 = sext i32 %7 to i64 + %arrayidx.i14 = getelementptr inbounds %struct.ImGuiOldColumns, ptr %8, i64 %idxprom.i13 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %arrayidx.i14, ptr noundef nonnull align 8 dereferenceable(136) %ref.tmp, i64 136, i1 false) %9 = load i32, ptr %ColumnsStorage, align 8 %inc.i = add nsw i32 %9, 1 store i32 %inc.i, ptr %ColumnsStorage, align 8 @@ -14611,10 +14610,10 @@ terminate.lpad.i.i: ; preds = %invoke.cont unreachable _ZN18ImDrawListSplitterD2Ev.exit.i: ; preds = %if.then.i.i.i, %invoke.cont.i.i - %Data.i.i17 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 104 - %15 = load ptr, ptr %Data.i.i17, align 8 - %tobool.not.i.i18 = icmp eq ptr %15, null - br i1 %tobool.not.i.i18, label %_ZN15ImGuiOldColumnsD2Ev.exit, label %if.then.i.i + %Data.i.i16 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 104 + %15 = load ptr, ptr %Data.i.i16, align 8 + %tobool.not.i.i17 = icmp eq ptr %15, null + br i1 %tobool.not.i.i17, label %_ZN15ImGuiOldColumnsD2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %_ZN18ImDrawListSplitterD2Ev.exit.i invoke void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %15) @@ -14628,22 +14627,23 @@ terminate.lpad.i1.i: ; preds = %if.then.i.i unreachable _ZN15ImGuiOldColumnsD2Ev.exit: ; preds = %_ZN18ImDrawListSplitterD2Ev.exit.i, %if.then.i.i - %18 = load ptr, ptr %Data.i13, align 8 + %Data.i18 = getelementptr inbounds nuw i8, ptr %window, i64 664 + %18 = load ptr, ptr %Data.i18, align 8 %19 = load i32, ptr %ColumnsStorage, align 8 %20 = sext i32 %19 to i64 %21 = getelementptr %struct.ImGuiOldColumns, ptr %18, i64 %20 - %arrayidx.i20 = getelementptr i8, ptr %21, i64 -136 - store i32 %id, ptr %arrayidx.i20, align 8 + %arrayidx.i19 = getelementptr i8, ptr %21, i64 -136 + store i32 %id, ptr %arrayidx.i19, align 8 br label %return -lpad: ; preds = %if.then2.i.i, %if.end.i.i +lpad: ; preds = %if.then2.i.i, %_ZNK8ImVectorI15ImGuiOldColumnsE14_grow_capacityEi.exit.i %22 = landingpad { ptr, i32 } cleanup call void @_ZN15ImGuiOldColumnsD2Ev(ptr noundef nonnull align 8 dereferenceable(136) %ref.tmp) #23 resume { ptr, i32 } %22 return: ; preds = %for.body, %_ZN15ImGuiOldColumnsD2Ev.exit - %retval.0 = phi ptr [ %arrayidx.i20, %_ZN15ImGuiOldColumnsD2Ev.exit ], [ %arrayidx.i, %for.body ] + %retval.0 = phi ptr [ %arrayidx.i19, %_ZN15ImGuiOldColumnsD2Ev.exit ], [ %arrayidx.i, %for.body ] ret ptr %retval.0 } @@ -14842,8 +14842,8 @@ if.end7.i.i: ; preds = %if.then2.i.i, %if.t if.end.thread: ; preds = %if.end7.i.i, %if.then %19 = phi i32 [ 0, %if.end7.i.i ], [ %15, %if.then ] store i32 0, ptr %Columns, align 8 - %IsFirstFrame171 = getelementptr inbounds nuw i8, ptr %call2, i64 8 - store i8 1, ptr %IsFirstFrame171, align 8 + %IsFirstFrame170 = getelementptr inbounds nuw i8, ptr %call2, i64 8 + store i8 1, ptr %IsFirstFrame170, align 8 br label %if.then49 if.end: ; preds = %entry @@ -14887,104 +14887,104 @@ if.end7.i: ; preds = %if.then2.i, %if.end br label %_ZN8ImVectorI18ImGuiOldColumnDataE7reserveEi.exit _ZN8ImVectorI18ImGuiOldColumnDataE7reserveEi.exit: ; preds = %if.then49, %if.end7.i - %cmp53.not185 = icmp slt i32 %columns_count, 0 - br i1 %cmp53.not185, label %for.end85, label %for.body.lr.ph + %cmp53.not184 = icmp slt i32 %columns_count, 0 + br i1 %cmp53.not184, label %for.end85, label %for.body.lr.ph for.body.lr.ph: ; preds = %_ZN8ImVectorI18ImGuiOldColumnDataE7reserveEi.exit %conv54 = uitofp nneg i32 %columns_count to float - %Data.i.i104 = getelementptr inbounds nuw i8, ptr %call2, i64 104 - %.pre192 = load i32, ptr %Columns, align 8 + %Data.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %call2, i64 104 + %.pre191 = load i32, ptr %Columns, align 8 br label %for.body for.body: ; preds = %for.body.lr.ph, %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit - %24 = phi i32 [ %.pre192, %for.body.lr.ph ], [ %inc.i, %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit ] - %n.0186 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit ] - %conv = uitofp nneg i32 %n.0186 to float + %24 = phi i32 [ %.pre191, %for.body.lr.ph ], [ %inc.i, %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit ] + %n.0185 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit ] + %conv = uitofp nneg i32 %n.0185 to float %div = fdiv float %conv, %conv54 %25 = load i32, ptr %Capacity.i89, align 4 %cmp.i93 = icmp eq i32 %24, %25 - br i1 %cmp.i93, label %if.then.i96, label %for.body._ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit_crit_edge + br i1 %cmp.i93, label %if.then.i95, label %entry.if.end_crit_edge.i -for.body._ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit_crit_edge: ; preds = %for.body - %.pre193 = load ptr, ptr %Data.i.i104, align 8 +entry.if.end_crit_edge.i: ; preds = %for.body + %.pre.i = load ptr, ptr %Data.phi.trans.insert.i, align 8 br label %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit -if.then.i96: ; preds = %for.body - %add.i97 = add nsw i32 %24, 1 +if.then.i95: ; preds = %for.body + %add.i96 = add nsw i32 %24, 1 %tobool.not.i.i = icmp eq i32 %24, 0 - br i1 %tobool.not.i.i, label %if.end.i.i, label %cond.true.i.i - -cond.true.i.i: ; preds = %if.then.i96 - %div.i.i98 = sdiv i32 %24, 2 - %add.i.i99 = add nsw i32 %div.i.i98, %24 - br label %if.end.i.i - -if.end.i.i: ; preds = %cond.true.i.i, %if.then.i96 - %cond.i.i = phi i32 [ %add.i.i99, %cond.true.i.i ], [ 8, %if.then.i96 ] - %cond7.i.i100 = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i97) - %conv.i.i101 = sext i32 %cond7.i.i100 to i64 - %mul.i.i102 = mul nsw i64 %conv.i.i101, 28 - %call.i.i103 = tail call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i102) - %26 = load ptr, ptr %Data.i.i104, align 8 + br i1 %tobool.not.i.i, label %_ZNK8ImVectorI18ImGuiOldColumnDataE14_grow_capacityEi.exit.i, label %cond.true.i.i + +cond.true.i.i: ; preds = %if.then.i95 + %div.i.i97 = sdiv i32 %24, 2 + %add.i.i98 = add nsw i32 %div.i.i97, %24 + br label %_ZNK8ImVectorI18ImGuiOldColumnDataE14_grow_capacityEi.exit.i + +_ZNK8ImVectorI18ImGuiOldColumnDataE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i, %if.then.i95 + %cond.i.i = phi i32 [ %add.i.i98, %cond.true.i.i ], [ 8, %if.then.i95 ] + %cond7.i.i99 = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i96) + %conv.i.i100 = sext i32 %cond7.i.i99 to i64 + %mul.i.i101 = mul nsw i64 %conv.i.i100, 28 + %call.i.i102 = tail call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %mul.i.i101) + %26 = load ptr, ptr %Data.phi.trans.insert.i, align 8 %tobool.not.i2.i = icmp eq ptr %26, null - br i1 %tobool.not.i2.i, label %if.end7.i.i108, label %if.then2.i.i105 + br i1 %tobool.not.i2.i, label %if.end7.i.i107, label %if.then2.i.i104 -if.then2.i.i105: ; preds = %if.end.i.i +if.then2.i.i104: ; preds = %_ZNK8ImVectorI18ImGuiOldColumnDataE14_grow_capacityEi.exit.i %27 = load i32, ptr %Columns, align 8 - %conv4.i.i106 = sext i32 %27 to i64 - %mul5.i.i107 = mul nsw i64 %conv4.i.i106, 28 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i103, ptr nonnull align 4 %26, i64 %mul5.i.i107, i1 false) - %28 = load ptr, ptr %Data.i.i104, align 8 + %conv4.i.i105 = sext i32 %27 to i64 + %mul5.i.i106 = mul nsw i64 %conv4.i.i105, 28 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %call.i.i102, ptr nonnull align 4 %26, i64 %mul5.i.i106, i1 false) + %28 = load ptr, ptr %Data.phi.trans.insert.i, align 8 tail call void @_ZN5ImGui7MemFreeEPv(ptr noundef %28) - br label %if.end7.i.i108 + br label %if.end7.i.i107 -if.end7.i.i108: ; preds = %if.then2.i.i105, %if.end.i.i - store ptr %call.i.i103, ptr %Data.i.i104, align 8 - store i32 %cond7.i.i100, ptr %Capacity.i89, align 4 - %.pre.i = load i32, ptr %Columns, align 8 +if.end7.i.i107: ; preds = %if.then2.i.i104, %_ZNK8ImVectorI18ImGuiOldColumnDataE14_grow_capacityEi.exit.i + store ptr %call.i.i102, ptr %Data.phi.trans.insert.i, align 8 + store i32 %cond7.i.i99, ptr %Capacity.i89, align 4 + %.pre3.i = load i32, ptr %Columns, align 8 br label %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit -_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit: ; preds = %for.body._ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit_crit_edge, %if.end7.i.i108 - %29 = phi ptr [ %call.i.i103, %if.end7.i.i108 ], [ %.pre193, %for.body._ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit_crit_edge ] - %30 = phi i32 [ %.pre.i, %if.end7.i.i108 ], [ %24, %for.body._ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit_crit_edge ] - %idxprom.i = sext i32 %30 to i64 - %arrayidx.i = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %29, i64 %idxprom.i +_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit: ; preds = %entry.if.end_crit_edge.i, %if.end7.i.i107 + %29 = phi i32 [ %24, %entry.if.end_crit_edge.i ], [ %.pre3.i, %if.end7.i.i107 ] + %30 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i102, %if.end7.i.i107 ] + %idxprom.i = sext i32 %29 to i64 + %arrayidx.i = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %30, i64 %idxprom.i store float %div, ptr %arrayidx.i, align 4 %column.sroa.3.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 4 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %column.sroa.3.0.arrayidx.i.sroa_idx, i8 0, i64 24, i1 false) %31 = load i32, ptr %Columns, align 8 %inc.i = add nsw i32 %31, 1 store i32 %inc.i, ptr %Columns, align 8 - %inc = add nuw i32 %n.0186, 1 - %exitcond.not = icmp eq i32 %n.0186, %columns_count + %inc = add nuw i32 %n.0185, 1 + %exitcond.not = icmp eq i32 %n.0185, %columns_count br i1 %exitcond.not, label %if.end56, label %for.body, !llvm.loop !67 if.end56: ; preds = %_ZN8ImVectorI18ImGuiOldColumnDataE9push_backERKS0_.exit, %if.end - %cmp59187 = icmp sgt i32 %columns_count, 0 - br i1 %cmp59187, label %for.body60.lr.ph, label %for.end85 + %cmp59186 = icmp sgt i32 %columns_count, 0 + br i1 %cmp59186, label %for.body60.lr.ph, label %for.end85 for.body60.lr.ph: ; preds = %if.end56 - %Data.i109 = getelementptr inbounds nuw i8, ptr %call2, i64 104 - %Max.i130 = getelementptr inbounds nuw i8, ptr %2, i64 592 + %Data.i108 = getelementptr inbounds nuw i8, ptr %call2, i64 104 + %Max.i129 = getelementptr inbounds nuw i8, ptr %2, i64 592 %32 = getelementptr inbounds nuw i8, ptr %2, i64 588 %wide.trip.count = zext nneg i32 %columns_count to i64 br label %for.body60 for.body60: ; preds = %for.body60.lr.ph, %_ZN6ImRect12ClipWithFullERKS_.exit %indvars.iv = phi i64 [ 0, %for.body60.lr.ph ], [ %indvars.iv.next, %_ZN6ImRect12ClipWithFullERKS_.exit ] - %33 = load ptr, ptr %Data.i109, align 8 + %33 = load ptr, ptr %Data.i108, align 8 %34 = load float, ptr %Pos, align 8 %35 = load ptr, ptr @GImGui, align 8 - %CurrentWindow.i.i112 = getelementptr inbounds nuw i8, ptr %35, i64 16392 - %36 = load ptr, ptr %CurrentWindow.i.i112, align 8 + %CurrentWindow.i.i111 = getelementptr inbounds nuw i8, ptr %35, i64 16392 + %36 = load ptr, ptr %CurrentWindow.i.i111, align 8 %CurrentColumns.i = getelementptr inbounds nuw i8, ptr %36, i64 440 %37 = load ptr, ptr %CurrentColumns.i, align 8 - %cmp.i113 = icmp eq ptr %37, null - br i1 %cmp.i113, label %_ZN5ImGui15GetColumnOffsetEi.exit129, label %if.end.i120 + %cmp.i112 = icmp eq ptr %37, null + br i1 %cmp.i112, label %_ZN5ImGui15GetColumnOffsetEi.exit128, label %if.end.i119 -if.end.i120: ; preds = %for.body60 - %Data.i.i115 = getelementptr inbounds nuw i8, ptr %37, i64 104 - %38 = load ptr, ptr %Data.i.i115, align 8 +if.end.i119: ; preds = %for.body60 + %Data.i.i114 = getelementptr inbounds nuw i8, ptr %37, i64 104 + %38 = load ptr, ptr %Data.i.i114, align 8 %arrayidx.i.i = getelementptr inbounds nuw %struct.ImGuiOldColumnData, ptr %38, i64 %indvars.iv %39 = load float, ptr %arrayidx.i.i, align 4 %OffMinX.i = getelementptr inbounds nuw i8, ptr %37, i64 20 @@ -14994,54 +14994,54 @@ if.end.i120: ; preds = %for.body60 %sub.i.i = fsub float %41, %40 %42 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i, float %39, float %40) %43 = getelementptr inbounds nuw %struct.ImGuiOldColumnData, ptr %38, i64 %indvars.iv - %arrayidx.i.i123 = getelementptr inbounds nuw i8, ptr %43, i64 28 - %44 = load float, ptr %arrayidx.i.i123, align 4 + %arrayidx.i.i122 = getelementptr inbounds nuw i8, ptr %43, i64 28 + %44 = load float, ptr %arrayidx.i.i122, align 4 %45 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i, float %44, float %40) - br label %_ZN5ImGui15GetColumnOffsetEi.exit129 - -_ZN5ImGui15GetColumnOffsetEi.exit129: ; preds = %for.body60, %if.end.i120 - %.pn = phi float [ %42, %if.end.i120 ], [ 0.000000e+00, %for.body60 ] - %retval.0.i127 = phi float [ %45, %if.end.i120 ], [ 0.000000e+00, %for.body60 ] - %conv70179.in.in.in = fadd float %34, %.pn - %conv70179.in.in = fadd float %conv70179.in.in.in, 5.000000e-01 - %conv70179.in = fptosi float %conv70179.in.in to i32 - %conv70179 = sitofp i32 %conv70179.in to float - %add75 = fadd float %34, %retval.0.i127 + br label %_ZN5ImGui15GetColumnOffsetEi.exit128 + +_ZN5ImGui15GetColumnOffsetEi.exit128: ; preds = %for.body60, %if.end.i119 + %.pn = phi float [ %42, %if.end.i119 ], [ 0.000000e+00, %for.body60 ] + %retval.0.i126 = phi float [ %45, %if.end.i119 ], [ 0.000000e+00, %for.body60 ] + %conv70178.in.in.in = fadd float %34, %.pn + %conv70178.in.in = fadd float %conv70178.in.in.in, 5.000000e-01 + %conv70178.in = fptosi float %conv70178.in.in to i32 + %conv70178 = sitofp i32 %conv70178.in to float + %add75 = fadd float %34, %retval.0.i126 %sub76 = fadd float %add75, -1.000000e+00 %add77 = fadd float %sub76, 5.000000e-01 %conv78 = fptosi float %add77 to i32 %conv79 = sitofp i32 %conv78 to float %ClipRect80 = getelementptr inbounds nuw %struct.ImGuiOldColumnData, ptr %33, i64 %indvars.iv, i32 3 - store float %conv70179, ptr %ClipRect80, align 4 + store float %conv70178, ptr %ClipRect80, align 4 %ref.tmp.sroa.2.0.ClipRect80.sroa_idx = getelementptr inbounds nuw i8, ptr %ClipRect80, i64 4 store float 0xC7EFFFFFE0000000, ptr %ref.tmp.sroa.2.0.ClipRect80.sroa_idx, align 4 %ref.tmp.sroa.3.0.ClipRect80.sroa_idx = getelementptr inbounds nuw i8, ptr %ClipRect80, i64 8 store float %conv79, ptr %ref.tmp.sroa.3.0.ClipRect80.sroa_idx, align 4 %ref.tmp.sroa.4.0.ClipRect80.sroa_idx = getelementptr inbounds nuw i8, ptr %ClipRect80, i64 12 store float 0x47EFFFFFE0000000, ptr %ref.tmp.sroa.4.0.ClipRect80.sroa_idx, align 4 - %agg.tmp.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i130, align 4 + %agg.tmp.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i129, align 4 %r.val.i = load float, ptr %ClipRect, align 4 %r.val5.i = load float, ptr %32, align 4 %cmp13.i.i = fcmp ogt float %r.val5.i, 0xC7EFFFFFE0000000 br i1 %cmp13.i.i, label %_ZL7ImClampRK6ImVec2S1_S_.exit.i, label %cond.false16.i.i -cond.false16.i.i: ; preds = %_ZN5ImGui15GetColumnOffsetEi.exit129 +cond.false16.i.i: ; preds = %_ZN5ImGui15GetColumnOffsetEi.exit128 %mx.sroa.0.4.vec.extract.i.i = extractelement <2 x float> %agg.tmp.sroa.0.0.copyload.i, i64 1 %cmp19.i.i = fcmp olt float %mx.sroa.0.4.vec.extract.i.i, 0xC7EFFFFFE0000000 %mx.sroa.0.4.vec.extract..i.i = select i1 %cmp19.i.i, float %mx.sroa.0.4.vec.extract.i.i, float 0xC7EFFFFFE0000000 br label %_ZL7ImClampRK6ImVec2S1_S_.exit.i -_ZL7ImClampRK6ImVec2S1_S_.exit.i: ; preds = %cond.false16.i.i, %_ZN5ImGui15GetColumnOffsetEi.exit129 - %cond27.i.i = phi float [ %r.val5.i, %_ZN5ImGui15GetColumnOffsetEi.exit129 ], [ %mx.sroa.0.4.vec.extract..i.i, %cond.false16.i.i ] - %cmp.i.i = fcmp ogt float %r.val.i, %conv70179 +_ZL7ImClampRK6ImVec2S1_S_.exit.i: ; preds = %cond.false16.i.i, %_ZN5ImGui15GetColumnOffsetEi.exit128 + %cond27.i.i = phi float [ %r.val5.i, %_ZN5ImGui15GetColumnOffsetEi.exit128 ], [ %mx.sroa.0.4.vec.extract..i.i, %cond.false16.i.i ] + %cmp.i.i = fcmp ogt float %r.val.i, %conv70178 %mx.sroa.0.0.vec.extract.i.i = extractelement <2 x float> %agg.tmp.sroa.0.0.copyload.i, i64 0 - %cmp5.i.i = fcmp olt float %mx.sroa.0.0.vec.extract.i.i, %conv70179 - %mx.sroa.0.0.vec.extract..i.i = select i1 %cmp5.i.i, float %mx.sroa.0.0.vec.extract.i.i, float %conv70179 + %cmp5.i.i = fcmp olt float %mx.sroa.0.0.vec.extract.i.i, %conv70178 + %mx.sroa.0.0.vec.extract..i.i = select i1 %cmp5.i.i, float %mx.sroa.0.0.vec.extract.i.i, float %conv70178 %cond11.i.i = select i1 %cmp.i.i, float %r.val.i, float %mx.sroa.0.0.vec.extract..i.i %retval.sroa.0.0.vec.insert.i.i = insertelement <2 x float> poison, float %cond11.i.i, i64 0 %retval.sroa.0.4.vec.insert.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i, float %cond27.i.i, i64 1 store <2 x float> %retval.sroa.0.4.vec.insert.i.i, ptr %ClipRect80, align 4 - %agg.tmp7.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i130, align 4 + %agg.tmp7.sroa.0.0.copyload.i = load <2 x float>, ptr %Max.i129, align 4 %r.val7.i = load float, ptr %ClipRect, align 4 %r.val8.i = load float, ptr %32, align 4 %cmp13.i9.i = fcmp ogt float %r.val8.i, 0x47EFFFFFE0000000 @@ -15064,8 +15064,8 @@ _ZN6ImRect12ClipWithFullERKS_.exit: ; preds = %_ZL7ImClampRK6ImVec %retval.sroa.0.4.vec.insert.i21.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i20.i, float %cond27.i14.i, i64 1 store <2 x float> %retval.sroa.0.4.vec.insert.i21.i, ptr %ref.tmp.sroa.3.0.ClipRect80.sroa_idx, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond191.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond191.not, label %for.end85, label %for.body60, !llvm.loop !68 + %exitcond190.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + br i1 %exitcond190.not, label %for.end85, label %for.body60, !llvm.loop !68 for.end85: ; preds = %_ZN6ImRect12ClipWithFullERKS_.exit, %_ZN8ImVectorI18ImGuiOldColumnDataE7reserveEi.exit, %if.end56 %46 = load i32, ptr %Count, align 8 @@ -15081,87 +15081,87 @@ if.then88: ; preds = %for.end85 %48 = load ptr, ptr %DrawList, align 8 tail call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %Splitter, ptr noundef %48, i32 noundef 1) %49 = load ptr, ptr @GImGui, align 8 - %CurrentWindow.i.i131 = getelementptr inbounds nuw i8, ptr %49, i64 16392 - %50 = load ptr, ptr %CurrentWindow.i.i131, align 8 - %CurrentColumns.i132 = getelementptr inbounds nuw i8, ptr %50, i64 440 - %51 = load ptr, ptr %CurrentColumns.i132, align 8 - %Data.i.i134 = getelementptr inbounds nuw i8, ptr %51, i64 104 - %52 = load ptr, ptr %Data.i.i134, align 8 + %CurrentWindow.i.i130 = getelementptr inbounds nuw i8, ptr %49, i64 16392 + %50 = load ptr, ptr %CurrentWindow.i.i130, align 8 + %CurrentColumns.i131 = getelementptr inbounds nuw i8, ptr %50, i64 440 + %51 = load ptr, ptr %CurrentColumns.i131, align 8 + %Data.i.i133 = getelementptr inbounds nuw i8, ptr %51, i64 104 + %52 = load ptr, ptr %Data.i.i133, align 8 %ClipRect.i = getelementptr inbounds nuw i8, ptr %52, i64 12 - %Max.i137 = getelementptr inbounds nuw i8, ptr %52, i64 20 - tail call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %ClipRect.i, ptr noundef nonnull align 4 dereferenceable(8) %Max.i137, i1 noundef zeroext false) + %Max.i136 = getelementptr inbounds nuw i8, ptr %52, i64 20 + tail call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %ClipRect.i, ptr noundef nonnull align 4 dereferenceable(8) %Max.i136, i1 noundef zeroext false) br label %if.end93 if.end93: ; preds = %if.then88, %for.end85 %53 = load i32, ptr %Current, align 4 %54 = load ptr, ptr @GImGui, align 8 - %CurrentWindow.i.i138 = getelementptr inbounds nuw i8, ptr %54, i64 16392 - %55 = load ptr, ptr %CurrentWindow.i.i138, align 8 - %CurrentColumns.i139 = getelementptr inbounds nuw i8, ptr %55, i64 440 - %56 = load ptr, ptr %CurrentColumns.i139, align 8 - %cmp.i140 = icmp eq ptr %56, null - br i1 %cmp.i140, label %_ZN5ImGui15GetColumnOffsetEi.exit167, label %if.end.i141 - -if.end.i141: ; preds = %if.end93 + %CurrentWindow.i.i137 = getelementptr inbounds nuw i8, ptr %54, i64 16392 + %55 = load ptr, ptr %CurrentWindow.i.i137, align 8 + %CurrentColumns.i138 = getelementptr inbounds nuw i8, ptr %55, i64 440 + %56 = load ptr, ptr %CurrentColumns.i138, align 8 + %cmp.i139 = icmp eq ptr %56, null + br i1 %cmp.i139, label %_ZN5ImGui15GetColumnOffsetEi.exit166, label %if.end.i140 + +if.end.i140: ; preds = %if.end93 %cmp1.i = icmp slt i32 %53, 0 - br i1 %cmp1.i, label %if.then2.i149, label %if.end.i154 + br i1 %cmp1.i, label %if.then2.i148, label %if.end.i153 -if.then2.i149: ; preds = %if.end.i141 +if.then2.i148: ; preds = %if.end.i140 %Current.i = getelementptr inbounds nuw i8, ptr %56, i64 12 %57 = load i32, ptr %Current.i, align 4 - br label %if.end.i154 - -if.end.i154: ; preds = %if.then2.i149, %if.end.i141 - %column_index.addr.0.i = phi i32 [ %57, %if.then2.i149 ], [ %53, %if.end.i141 ] - %Data.i.i142 = getelementptr inbounds nuw i8, ptr %56, i64 104 - %58 = load ptr, ptr %Data.i.i142, align 8 - %idxprom.i.i143 = sext i32 %column_index.addr.0.i to i64 - %arrayidx.i.i144 = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %58, i64 %idxprom.i.i143 - %59 = load float, ptr %arrayidx.i.i144, align 4 - %OffMinX.i145 = getelementptr inbounds nuw i8, ptr %56, i64 20 - %60 = load float, ptr %OffMinX.i145, align 4 - %OffMaxX.i146 = getelementptr inbounds nuw i8, ptr %56, i64 24 - %61 = load float, ptr %OffMaxX.i146, align 8 - %sub.i.i147 = fsub float %61, %60 - %62 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i147, float %59, float %60) + br label %if.end.i153 + +if.end.i153: ; preds = %if.then2.i148, %if.end.i140 + %column_index.addr.0.i = phi i32 [ %57, %if.then2.i148 ], [ %53, %if.end.i140 ] + %Data.i.i141 = getelementptr inbounds nuw i8, ptr %56, i64 104 + %58 = load ptr, ptr %Data.i.i141, align 8 + %idxprom.i.i142 = sext i32 %column_index.addr.0.i to i64 + %arrayidx.i.i143 = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %58, i64 %idxprom.i.i142 + %59 = load float, ptr %arrayidx.i.i143, align 4 + %OffMinX.i144 = getelementptr inbounds nuw i8, ptr %56, i64 20 + %60 = load float, ptr %OffMinX.i144, align 4 + %OffMaxX.i145 = getelementptr inbounds nuw i8, ptr %56, i64 24 + %61 = load float, ptr %OffMaxX.i145, align 8 + %sub.i.i146 = fsub float %61, %60 + %62 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i146, float %59, float %60) %add97 = add nsw i32 %53, 1 - %cmp1.i155 = icmp slt i32 %53, -1 - br i1 %cmp1.i155, label %if.then2.i165, label %if.end3.i156 - -if.then2.i165: ; preds = %if.end.i154 - %Current.i166 = getelementptr inbounds nuw i8, ptr %56, i64 12 - %63 = load i32, ptr %Current.i166, align 4 - br label %if.end3.i156 - -if.end3.i156: ; preds = %if.then2.i165, %if.end.i154 - %column_index.addr.0.i157 = phi i32 [ %63, %if.then2.i165 ], [ %add97, %if.end.i154 ] - %idxprom.i.i159 = sext i32 %column_index.addr.0.i157 to i64 - %arrayidx.i.i160 = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %58, i64 %idxprom.i.i159 - %64 = load float, ptr %arrayidx.i.i160, align 4 - %65 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i147, float %64, float %60) - br label %_ZN5ImGui15GetColumnOffsetEi.exit167 - -_ZN5ImGui15GetColumnOffsetEi.exit167: ; preds = %if.end93, %if.end3.i156 - %retval.0.i148183 = phi float [ %62, %if.end3.i156 ], [ 0.000000e+00, %if.end93 ] - %retval.0.i164 = phi float [ %65, %if.end3.i156 ], [ 0.000000e+00, %if.end93 ] + %cmp1.i154 = icmp slt i32 %53, -1 + br i1 %cmp1.i154, label %if.then2.i164, label %if.end3.i155 + +if.then2.i164: ; preds = %if.end.i153 + %Current.i165 = getelementptr inbounds nuw i8, ptr %56, i64 12 + %63 = load i32, ptr %Current.i165, align 4 + br label %if.end3.i155 + +if.end3.i155: ; preds = %if.then2.i164, %if.end.i153 + %column_index.addr.0.i156 = phi i32 [ %63, %if.then2.i164 ], [ %add97, %if.end.i153 ] + %idxprom.i.i158 = sext i32 %column_index.addr.0.i156 to i64 + %arrayidx.i.i159 = getelementptr inbounds %struct.ImGuiOldColumnData, ptr %58, i64 %idxprom.i.i158 + %64 = load float, ptr %arrayidx.i.i159, align 4 + %65 = tail call noundef float @llvm.fmuladd.f32(float %sub.i.i146, float %64, float %60) + br label %_ZN5ImGui15GetColumnOffsetEi.exit166 + +_ZN5ImGui15GetColumnOffsetEi.exit166: ; preds = %if.end93, %if.end3.i155 + %retval.0.i147182 = phi float [ %62, %if.end3.i155 ], [ 0.000000e+00, %if.end93 ] + %retval.0.i163 = phi float [ %65, %if.end3.i155 ], [ 0.000000e+00, %if.end93 ] %DC = getelementptr inbounds nuw i8, ptr %2, i64 272 - %sub99 = fsub float %retval.0.i164, %retval.0.i148183 + %sub99 = fsub float %retval.0.i163, %retval.0.i147182 %mul100 = fmul float %sub99, 0x3FE4CCCCC0000000 tail call void @_ZN5ImGui13PushItemWidthEf(float noundef %mul100) %66 = load float, ptr %WindowPadding, align 8 %sub103 = fsub float %7, %66 - %cmp.i168 = fcmp oge float %sub103, 0.000000e+00 - %cond.i169 = select i1 %cmp.i168, float %sub103, float 0.000000e+00 + %cmp.i167 = fcmp oge float %sub103, 0.000000e+00 + %cond.i168 = select i1 %cmp.i167, float %sub103, float 0.000000e+00 %ColumnsOffset = getelementptr inbounds nuw i8, ptr %2, i64 344 - store float %cond.i169, ptr %ColumnsOffset, align 8 + store float %cond.i168, ptr %ColumnsOffset, align 8 %67 = load float, ptr %Pos, align 8 %68 = load float, ptr %Indent, align 4 %add112 = fadd float %67, %68 - %add116 = fadd float %cond.i169, %add112 + %add116 = fadd float %cond.i168, %add112 %conv117 = fptosi float %add116 to i32 %conv118 = sitofp i32 %conv117 to float store float %conv118, ptr %DC, align 8 - %add124 = fadd float %retval.0.i164, %67 + %add124 = fadd float %retval.0.i163, %67 %sub125 = fsub float %add124, %7 store float %sub125, ptr %Max, align 8 %y130 = getelementptr inbounds nuw i8, ptr %2, i64 612 diff --git a/bench/imgui/optimized/imgui_widgets.cpp.ll b/bench/imgui/optimized/imgui_widgets.cpp.ll index c31aaf28256..ad7aceb291b 100644 --- a/bench/imgui/optimized/imgui_widgets.cpp.ll +++ b/bench/imgui/optimized/imgui_widgets.cpp.ll @@ -32168,14 +32168,14 @@ if.end15: ; preds = %while.cond.i if.then.i: ; preds = %if.end15 %add.i = add nsw i32 %6, 1 %tobool.not.i.i = icmp eq i32 %6, 0 - br i1 %tobool.not.i.i, label %if.end.i.i, label %cond.true.i.i + br i1 %tobool.not.i.i, label %_ZNK8ImVectorIjE14_grow_capacityEi.exit.i, label %cond.true.i.i cond.true.i.i: ; preds = %if.then.i %div.i.i = sdiv i32 %6, 2 %add.i.i = add nsw i32 %div.i.i, %6 - br label %if.end.i.i + br label %_ZNK8ImVectorIjE14_grow_capacityEi.exit.i -if.end.i.i: ; preds = %cond.true.i.i, %if.then.i +_ZNK8ImVectorIjE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i, %if.then.i %cond.i.i = phi i32 [ %add.i.i, %cond.true.i.i ], [ 8, %if.then.i ] %cond7.i.i = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i) %conv.i.i = sext i32 %cond7.i.i to i64 @@ -32185,7 +32185,7 @@ if.end.i.i: ; preds = %cond.true.i.i, %if. %tobool.not.i2.i = icmp eq ptr %9, null br i1 %tobool.not.i2.i, label %if.end7.i.i, label %if.then2.i.i -if.then2.i.i: ; preds = %if.end.i.i +if.then2.i.i: ; preds = %_ZNK8ImVectorIjE14_grow_capacityEi.exit.i %10 = load i32, ptr %MenusIdSubmittedThisFrame, align 8 %conv4.i.i = sext i32 %10 to i64 %mul5.i.i = shl nsw i64 %conv4.i.i, 2 @@ -32194,11 +32194,11 @@ if.then2.i.i: ; preds = %if.end.i.i tail call void @_ZN5ImGui7MemFreeEPv(ptr noundef %11) br label %if.end7.i.i -if.end7.i.i: ; preds = %if.then2.i.i, %if.end.i.i +if.end7.i.i: ; preds = %if.then2.i.i, %_ZNK8ImVectorIjE14_grow_capacityEi.exit.i store ptr %call.i.i, ptr %Data.i, align 8 store i32 %cond7.i.i, ptr %Capacity.i, align 4 - %.pre.i = load i32, ptr %MenusIdSubmittedThisFrame, align 8 - %.pre = sext i32 %.pre.i to i64 + %.pre3.i = load i32, ptr %MenusIdSubmittedThisFrame, align 8 + %.pre = sext i32 %.pre3.i to i64 br label %_ZN8ImVectorIjE9push_backERKj.exit _ZN8ImVectorIjE9push_backERKj.exit: ; preds = %if.end15, %if.end7.i.i @@ -32211,8 +32211,8 @@ _ZN8ImVectorIjE9push_backERKj.exit: ; preds = %if.end15, %if.end7. store i32 %inc.i, ptr %MenusIdSubmittedThisFrame, align 8 %call17 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %label, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00) %14 = load ptr, ptr @GImGui, align 8 - %CurrentWindow.i158 = getelementptr inbounds nuw i8, ptr %14, i64 16392 - %15 = load ptr, ptr %CurrentWindow.i158, align 8 + %CurrentWindow.i157 = getelementptr inbounds nuw i8, ptr %14, i64 16392 + %15 = load ptr, ptr %CurrentWindow.i157, align 8 %OpenPopupStack.i = getelementptr inbounds nuw i8, ptr %14, i64 19104 %16 = load i32, ptr %OpenPopupStack.i, align 8 %BeginPopupStack.i = getelementptr inbounds nuw i8, ptr %14, i64 19120 @@ -32228,8 +32228,8 @@ lor.lhs.false.i: ; preds = %_ZN8ImVectorIjE9pus br i1 %tobool.not.i, label %if.end.i, label %if.end22 if.end.i: ; preds = %lor.lhs.false.i - %Data.i.i159 = getelementptr inbounds nuw i8, ptr %14, i64 19112 - %19 = load ptr, ptr %Data.i.i159, align 8 + %Data.i.i158 = getelementptr inbounds nuw i8, ptr %14, i64 19112 + %19 = load ptr, ptr %Data.i.i158, align 8 %idxprom.i.i = sext i32 %17 to i64 %arrayidx.i.i = getelementptr inbounds %struct.ImGuiPopupData, ptr %19, i64 %idxprom.i.i %NavLayerCurrent.i = getelementptr inbounds nuw i8, ptr %15, i64 360 @@ -32261,7 +32261,7 @@ if.then21: ; preds = %_ZL19IsRootOfOpenMe br label %if.end22 if.end22: ; preds = %if.end7.i, %land.lhs.true.i, %if.end.i, %_ZN8ImVectorIjE9push_backERKj.exit, %lor.lhs.false.i, %if.then21, %_ZL19IsRootOfOpenMenuSetv.exit - %retval.0.i224 = phi i1 [ true, %if.then21 ], [ false, %_ZL19IsRootOfOpenMenuSetv.exit ], [ false, %lor.lhs.false.i ], [ false, %_ZN8ImVectorIjE9push_backERKj.exit ], [ false, %if.end.i ], [ false, %land.lhs.true.i ], [ false, %if.end7.i ] + %retval.0.i223 = phi i1 [ true, %if.then21 ], [ false, %_ZL19IsRootOfOpenMenuSetv.exit ], [ false, %lor.lhs.false.i ], [ false, %_ZN8ImVectorIjE9push_backERKj.exit ], [ false, %if.end.i ], [ false, %land.lhs.true.i ], [ false, %if.end7.i ] %y.i = getelementptr inbounds nuw i8, ptr %popup_pos, i64 4 %DC = getelementptr inbounds nuw i8, ptr %2, i64 272 %24 = load i32, ptr %DC, align 8 @@ -32294,36 +32294,36 @@ if.then28: ; preds = %if.end25 %29 = load float, ptr %y32, align 4 %sub33 = fsub float %25, %29 %30 = load i32, ptr %Flags, align 4 - %and.i161 = and i32 %30, 1024 - %tobool.not.i162 = icmp eq i32 %and.i161, 0 - br i1 %tobool.not.i162, label %_ZNK11ImGuiWindow13MenuBarHeightEv.exit, label %cond.true.i + %and.i160 = and i32 %30, 1024 + %tobool.not.i161 = icmp eq i32 %and.i160, 0 + br i1 %tobool.not.i161, label %_ZNK11ImGuiWindow13MenuBarHeightEv.exit, label %cond.true.i cond.true.i: ; preds = %if.then28 %31 = load ptr, ptr %2, align 8 - %y.i163 = getelementptr inbounds nuw i8, ptr %2, i64 376 - %32 = load float, ptr %y.i163, align 4 + %y.i162 = getelementptr inbounds nuw i8, ptr %2, i64 376 + %32 = load float, ptr %y.i162, align 4 %FontBaseSize.i.i = getelementptr inbounds nuw i8, ptr %31, i64 15684 %33 = load float, ptr %FontBaseSize.i.i, align 4 %FontWindowScale.i.i = getelementptr inbounds nuw i8, ptr %2, i64 672 %34 = load float, ptr %FontWindowScale.i.i, align 8 - %mul.i.i164 = fmul float %33, %34 + %mul.i.i163 = fmul float %33, %34 %ParentWindow.i.i = getelementptr inbounds nuw i8, ptr %2, i64 888 %35 = load ptr, ptr %ParentWindow.i.i, align 8 - %tobool.not.i.i165 = icmp eq ptr %35, null - br i1 %tobool.not.i.i165, label %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i, label %if.then.i.i + %tobool.not.i.i164 = icmp eq ptr %35, null + br i1 %tobool.not.i.i164, label %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i, label %if.then.i.i if.then.i.i: ; preds = %cond.true.i %FontWindowScale3.i.i = getelementptr inbounds nuw i8, ptr %35, i64 672 %36 = load float, ptr %FontWindowScale3.i.i, align 8 - %mul4.i.i = fmul float %mul.i.i164, %36 + %mul4.i.i = fmul float %mul.i.i163, %36 br label %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i _ZNK11ImGuiWindow12CalcFontSizeEv.exit.i: ; preds = %if.then.i.i, %cond.true.i - %scale.0.i.i = phi float [ %mul4.i.i, %if.then.i.i ], [ %mul.i.i164, %cond.true.i ] - %add.i166 = fadd float %32, %scale.0.i.i + %scale.0.i.i = phi float [ %mul4.i.i, %if.then.i.i ], [ %mul.i.i163, %cond.true.i ] + %add.i165 = fadd float %32, %scale.0.i.i %y2.i = getelementptr inbounds nuw i8, ptr %31, i64 14640 %37 = load float, ptr %y2.i, align 4 - %38 = tail call float @llvm.fmuladd.f32(float %37, float 2.000000e+00, float %add.i166) + %38 = tail call float @llvm.fmuladd.f32(float %37, float 2.000000e+00, float %add.i165) br label %_ZNK11ImGuiWindow13MenuBarHeightEv.exit _ZNK11ImGuiWindow13MenuBarHeightEv.exit: ; preds = %if.then28, %_ZNK11ImGuiWindow12CalcFontSizeEv.exit.i @@ -32339,8 +32339,8 @@ _ZNK11ImGuiWindow13MenuBarHeightEv.exit: ; preds = %if.then28, %_ZNK11I %y49 = getelementptr inbounds nuw i8, ptr %0, i64 14656 %41 = load float, ptr %y49, align 4 store float %mul47, ptr %ref.tmp44, align 4 - %y.i168 = getelementptr inbounds nuw i8, ptr %ref.tmp44, i64 4 - store float %41, ptr %y.i168, align 4 + %y.i167 = getelementptr inbounds nuw i8, ptr %ref.tmp44, i64 4 + store float %41, ptr %y.i167, align 4 call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 14, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp44) %label_size.sroa.0.0.vec.extract = extractelement <2 x float> %call17, i64 0 %42 = load float, ptr %DC, align 8 @@ -32356,8 +32356,8 @@ _ZNK11ImGuiWindow13MenuBarHeightEv.exit: ; preds = %if.then28, %_ZNK11I %text_pos.sroa.0.4.vec.insert = insertelement <2 x float> %text_pos.sroa.0.0.vec.insert, float %add61, i64 1 %label_size.sroa.0.4.vec.extract = extractelement <2 x float> %call17, i64 1 store float %label_size.sroa.0.0.vec.extract, ptr %ref.tmp63, align 4 - %y.i170 = getelementptr inbounds nuw i8, ptr %ref.tmp63, i64 4 - store float %label_size.sroa.0.4.vec.extract, ptr %y.i170, align 4 + %y.i169 = getelementptr inbounds nuw i8, ptr %ref.tmp63, i64 4 + store float %label_size.sroa.0.4.vec.extract, ptr %y.i169, align 4 %call65 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull @.str, i1 noundef zeroext %call2, i32 noundef 139460609, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp63) call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %text_pos.sroa.0.4.vec.insert, ptr noundef %label, ptr noundef null, i1 noundef zeroext true) call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1) @@ -32399,8 +32399,8 @@ cond.end: ; preds = %if.else76, %land.lh %Widths.i = getelementptr inbounds nuw i8, ptr %2, i64 398 %51 = load i16, ptr %Widths.i, align 2 %conv.i = fptoui float %cond to i16 - %cond.i.i172 = tail call noundef i16 @llvm.umax.i16(i16 %51, i16 %conv.i) - store i16 %cond.i.i172, ptr %Widths.i, align 2 + %cond.i.i171 = tail call noundef i16 @llvm.umax.i16(i16 %51, i16 %conv.i) + store i16 %cond.i.i171, ptr %Widths.i, align 2 %arrayidx5.i = getelementptr inbounds nuw i8, ptr %2, i64 400 %52 = load i16, ptr %arrayidx5.i, align 2 %conv6.i = fptoui float %label_size.sroa.0.0.vec.extract32 to i16 @@ -32419,14 +32419,14 @@ for.body.i.i: ; preds = %for.body.i.i, %cond %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %for.body.i.i ], [ 0, %cond.end ] %offset.017.i.i = phi i16 [ %add27.i.i, %for.body.i.i ], [ 0, %cond.end ] %want_spacing.015.i.i = phi i1 [ %or14.i.i, %for.body.i.i ], [ false, %cond.end ] - %arrayidx.i.i173 = getelementptr inbounds nuw [4 x i16], ptr %Widths.i, i64 0, i64 %indvars.iv.i.i - %55 = load i16, ptr %arrayidx.i.i173, align 2 + %arrayidx.i.i172 = getelementptr inbounds nuw [4 x i16], ptr %Widths.i, i64 0, i64 %indvars.iv.i.i + %55 = load i16, ptr %arrayidx.i.i172, align 2 %cmp2.i.i = icmp ne i16 %55, 0 %or.cond.i.i = select i1 %want_spacing.015.i.i, i1 %cmp2.i.i, i1 false - %add.i.i174 = select i1 %or.cond.i.i, i16 %54, i16 0 + %add.i.i173 = select i1 %or.cond.i.i, i16 %54, i16 0 %or14.i.i = or i1 %want_spacing.015.i.i, %cmp2.i.i %offset.1.i.i = add i16 %55, %offset.017.i.i - %add27.i.i = add i16 %offset.1.i.i, %add.i.i174 + %add27.i.i = add i16 %offset.1.i.i, %add.i.i173 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, 4 br i1 %exitcond.not.i.i, label %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit, label %for.body.i.i, !llvm.loop !72 @@ -32441,8 +32441,8 @@ _ZN16ImGuiMenuColumns11DeclColumnsEffff.exit: ; preds = %for.body.i.i %call95 = tail call <2 x float> @_ZN5ImGui21GetContentRegionAvailEv() %ref.tmp94.sroa.0.0.vec.extract = extractelement <2 x float> %call95, i64 0 %sub97 = fsub float %ref.tmp94.sroa.0.0.vec.extract, %conv23.i - %cmp.i175 = fcmp ole float %sub97, 0.000000e+00 - %cond.i176 = select i1 %cmp.i175, float 0.000000e+00, float %sub97 + %cmp.i174 = fcmp ole float %sub97, 0.000000e+00 + %cond.i175 = select i1 %cmp.i174, float 0.000000e+00, float %sub97 %57 = load float, ptr %DC, align 8 %OffsetLabel103 = getelementptr inbounds nuw i8, ptr %2, i64 392 %58 = load i16, ptr %OffsetLabel103, align 4 @@ -32456,43 +32456,43 @@ _ZN16ImGuiMenuColumns11DeclColumnsEffff.exit: ; preds = %for.body.i.i %text_pos99.sroa.0.4.vec.insert = insertelement <2 x float> %text_pos99.sroa.0.0.vec.insert, float %add112, i64 1 %label_size.sroa.0.4.vec.extract34 = extractelement <2 x float> %call17, i64 1 store float %conv23.i, ptr %ref.tmp114, align 4 - %y.i178 = getelementptr inbounds nuw i8, ptr %ref.tmp114, i64 4 - store float %label_size.sroa.0.4.vec.extract34, ptr %y.i178, align 4 + %y.i177 = getelementptr inbounds nuw i8, ptr %ref.tmp114, i64 4 + store float %label_size.sroa.0.4.vec.extract34, ptr %y.i177, align 4 %call116 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull @.str, i1 noundef zeroext %call2, i32 noundef 156237825, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp114) tail call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %text_pos99.sroa.0.4.vec.insert, ptr noundef %label, ptr noundef null, i1 noundef zeroext true) %cmp119 = fcmp ogt float %cond, 0.000000e+00 br i1 %cmp119, label %if.then120, label %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit.if.end125_crit_edge _ZN16ImGuiMenuColumns11DeclColumnsEffff.exit.if.end125_crit_edge: ; preds = %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit - %.pre243 = fadd float %25, 0.000000e+00 + %.pre242 = fadd float %25, 0.000000e+00 br label %if.end125 if.then120: ; preds = %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit %OffsetIcon = getelementptr inbounds nuw i8, ptr %2, i64 390 %61 = load i16, ptr %OffsetIcon, align 2 %conv123 = uitofp i16 %61 to float - %add.i180 = fadd float %26, %conv123 + %add.i179 = fadd float %26, %conv123 %add3.i = fadd float %25, 0.000000e+00 - %retval.sroa.0.0.vec.insert.i = insertelement <2 x float> poison, float %add.i180, i64 0 + %retval.sroa.0.0.vec.insert.i = insertelement <2 x float> poison, float %add.i179, i64 0 %retval.sroa.0.4.vec.insert.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i, float %add3.i, i64 1 tail call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %retval.sroa.0.4.vec.insert.i, ptr noundef %icon, ptr noundef null, i1 noundef zeroext true) br label %if.end125 if.end125: ; preds = %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit.if.end125_crit_edge, %if.then120 - %add3.i183.pre-phi = phi float [ %.pre243, %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit.if.end125_crit_edge ], [ %add3.i, %if.then120 ] + %add3.i182.pre-phi = phi float [ %.pre242, %_ZN16ImGuiMenuColumns11DeclColumnsEffff.exit.if.end125_crit_edge ], [ %add3.i, %if.then120 ] %DrawList = getelementptr inbounds nuw i8, ptr %2, i64 680 %62 = load ptr, ptr %DrawList, align 8 %OffsetMark = getelementptr inbounds nuw i8, ptr %2, i64 396 %63 = load i16, ptr %OffsetMark, align 4 %conv129 = uitofp i16 %63 to float - %add130 = fadd float %cond.i176, %conv129 + %add130 = fadd float %cond.i175, %conv129 %64 = load float, ptr %FontSize, align 8 %65 = tail call float @llvm.fmuladd.f32(float %64, float 0x3FD3333340000000, float %add130) - %add.i182 = fadd float %65, %26 - %retval.sroa.0.0.vec.insert.i184 = insertelement <2 x float> poison, float %add.i182, i64 0 - %retval.sroa.0.4.vec.insert.i185 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i184, float %add3.i183.pre-phi, i64 1 + %add.i181 = fadd float %65, %26 + %retval.sroa.0.0.vec.insert.i183 = insertelement <2 x float> poison, float %add.i181, i64 0 + %retval.sroa.0.4.vec.insert.i184 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i183, float %add3.i182.pre-phi, i64 1 %call134 = tail call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00) - tail call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2jif(ptr noundef %62, <2 x float> %retval.sroa.0.4.vec.insert.i185, i32 noundef %call134, i32 noundef 1, float noundef 1.000000e+00) + tail call void @_ZN5ImGui11RenderArrowEP10ImDrawList6ImVec2jif(ptr noundef %62, <2 x float> %retval.sroa.0.4.vec.insert.i184, i32 noundef %call134, i32 noundef 1, float noundef 1.000000e+00) br label %if.end135 if.end135: ; preds = %if.end125, %_ZNK11ImGuiWindow13MenuBarHeightEv.exit @@ -32518,7 +32518,7 @@ land.rhs: ; preds = %if.end138 land.end: ; preds = %if.end138.thread, %if.end138, %land.rhs %68 = phi i1 [ false, %if.end138 ], [ %lnot, %land.rhs ], [ false, %if.end138.thread ] - br i1 %retval.0.i224, label %if.then145, label %if.end146 + br i1 %retval.0.i223, label %if.then145, label %if.end146 if.then145: ; preds = %land.end call void @_ZN5ImGui11PopItemFlagEv() @@ -32538,20 +32538,20 @@ if.then150: ; preds = %if.end146 br i1 %cmp152, label %cond.end159, label %cond.end170.thread cond.end159: ; preds = %if.then150 - %Data.i186 = getelementptr inbounds nuw i8, ptr %0, i64 19112 - %72 = load ptr, ptr %Data.i186, align 8 + %Data.i185 = getelementptr inbounds nuw i8, ptr %0, i64 19112 + %72 = load ptr, ptr %Data.i185, align 8 %tobool161.not = icmp eq ptr %72, null br i1 %tobool161.not, label %cond.end170.thread, label %land.lhs.true162 land.lhs.true162: ; preds = %cond.end159 - %idxprom.i187 = sext i32 %70 to i64 - %Window = getelementptr inbounds %struct.ImGuiPopupData, ptr %72, i64 %idxprom.i187, i32 2 + %idxprom.i186 = sext i32 %70 to i64 + %Window = getelementptr inbounds %struct.ImGuiPopupData, ptr %72, i64 %idxprom.i186, i32 2 %73 = load ptr, ptr %Window, align 8 %tobool163.not = icmp eq ptr %73, null br i1 %tobool163.not, label %cond.end170.thread, label %cond.end170 cond.end170.thread: ; preds = %land.lhs.true162, %cond.end159, %if.then150 - %HoveredWindow233 = getelementptr inbounds nuw i8, ptr %0, i64 16400 + %HoveredWindow232 = getelementptr inbounds nuw i8, ptr %0, i64 16400 br label %if.end232 cond.end170: ; preds = %land.lhs.true162 @@ -32573,8 +32573,8 @@ if.then175: ; preds = %cond.end170 %78 = load float, ptr %Pos178, align 8 %cmp180 = fcmp olt float %77, %78 %cond181 = select i1 %cmp180, float 1.000000e+00, float -1.000000e+00 - %y.i189 = getelementptr inbounds nuw i8, ptr %73, i64 44 - %79 = load float, ptr %y.i189, align 4 + %y.i188 = getelementptr inbounds nuw i8, ptr %73, i64 44 + %79 = load float, ptr %y.i188, align 4 %Size.i = getelementptr inbounds nuw i8, ptr %73, i64 48 %80 = load float, ptr %Size.i, align 8 %y9.i = getelementptr inbounds nuw i8, ptr %73, i64 52 @@ -32590,41 +32590,41 @@ if.then175: ; preds = %cond.end170 %MouseDelta.val155 = load float, ptr %83, align 4 %sub.i = fsub float %MousePos.val, %MouseDelta.val %sub3.i = fsub float %MousePos.val154, %MouseDelta.val155 - %retval.sroa.0.0.vec.insert.i193 = insertelement <2 x float> poison, float %sub.i, i64 0 - %retval.sroa.0.4.vec.insert.i194 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i193, float %sub3.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i194, ptr %ta, align 8 + %retval.sroa.0.0.vec.insert.i192 = insertelement <2 x float> poison, float %sub.i, i64 0 + %retval.sroa.0.4.vec.insert.i193 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i192, float %sub3.i, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i193, ptr %ta, align 8 br i1 %cmp180, label %cond.true192, label %cond.false194 cond.true192: ; preds = %if.then175 %84 = insertelement <4 x float> poison, float %78, i64 0 %next_window_rect.sroa.0.0.vec.expand = insertelement <4 x float> %84, float %79, i64 1 %next_window_rect.sroa.0.0.vec.extract = shufflevector <4 x float> %next_window_rect.sroa.0.0.vec.expand, <4 x float> poison, <2 x i32> - %retval.sroa.0.0.vec.insert.i197 = shufflevector <4 x float> %84, <4 x float> poison, <2 x i32> - %retval.sroa.0.4.vec.insert.i198 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i197, float %add10.i, i64 1 + %retval.sroa.0.0.vec.insert.i196 = shufflevector <4 x float> %84, <4 x float> poison, <2 x i32> + %retval.sroa.0.4.vec.insert.i197 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i196, float %add10.i, i64 1 br label %cond.end196 cond.false194: ; preds = %if.then175 - %add.i190 = fadd float %78, %80 - %85 = insertelement <4 x float> poison, float %add.i190, i64 2 + %add.i189 = fadd float %78, %80 + %85 = insertelement <4 x float> poison, float %add.i189, i64 2 %next_window_rect.sroa.0.8.vec.expand = insertelement <4 x float> %85, float %add10.i, i64 3 - %retval.sroa.0.0.vec.insert.i195 = shufflevector <4 x float> %85, <4 x float> poison, <2 x i32> - %retval.sroa.0.4.vec.insert.i196 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i195, float %79, i64 1 + %retval.sroa.0.0.vec.insert.i194 = shufflevector <4 x float> %85, <4 x float> poison, <2 x i32> + %retval.sroa.0.4.vec.insert.i195 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i194, float %79, i64 1 %next_window_rect.sroa.0.8.vec.extract = shufflevector <4 x float> %next_window_rect.sroa.0.8.vec.expand, <4 x float> poison, <2 x i32> br label %cond.end196 cond.end196: ; preds = %cond.false194, %cond.true192 - %retval.sroa.0.4.vec.insert.i196.sink = phi <2 x float> [ %next_window_rect.sroa.0.0.vec.extract, %cond.true192 ], [ %retval.sroa.0.4.vec.insert.i196, %cond.false194 ] - %storemerge125 = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i198, %cond.true192 ], [ %next_window_rect.sroa.0.8.vec.extract, %cond.false194 ] - %86 = extractelement <2 x float> %retval.sroa.0.4.vec.insert.i196.sink, i64 0 + %retval.sroa.0.4.vec.insert.i195.sink = phi <2 x float> [ %next_window_rect.sroa.0.0.vec.extract, %cond.true192 ], [ %retval.sroa.0.4.vec.insert.i195, %cond.false194 ] + %storemerge125 = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i197, %cond.true192 ], [ %next_window_rect.sroa.0.8.vec.extract, %cond.false194 ] + %86 = extractelement <2 x float> %retval.sroa.0.4.vec.insert.i195.sink, i64 0 %sub199 = fsub float %sub.i, %86 %87 = call float @llvm.fabs.f32(float %sub199) %mul200 = fmul float %87, 0x3FD3333340000000 %mul201 = fmul float %76, 5.000000e-01 %mul202 = fmul float %76, 2.500000e+00 - %cmp.i200 = fcmp olt float %mul200, %mul201 + %cmp.i199 = fcmp olt float %mul200, %mul201 %cmp1.i = fcmp ogt float %mul200, %mul202 - %cond.i201 = select i1 %cmp1.i, float %mul202, float %mul200 - %cond5.i = select i1 %cmp.i200, float %mul201, float %cond.i201 + %cond.i200 = select i1 %cmp1.i, float %mul202, float %mul200 + %cond5.i = select i1 %cmp.i199, float %mul201, float %cond.i200 %88 = call float @llvm.fmuladd.f32(float %cond181, float -5.000000e-01, float %sub.i) store float %88, ptr %ta, align 8 %89 = call float @llvm.fmuladd.f32(float %cond181, float %76, float %86) @@ -32633,35 +32633,35 @@ cond.end196: ; preds = %cond.false194, %con %91 = call float @llvm.fmuladd.f32(float %cond181, float %76, float %90) store float %91, ptr %tc, align 4 %y211 = getelementptr inbounds nuw i8, ptr %tb, i64 4 - %92 = extractelement <2 x float> %retval.sroa.0.4.vec.insert.i196.sink, i64 1 + %92 = extractelement <2 x float> %retval.sroa.0.4.vec.insert.i195.sink, i64 1 %sub212 = fsub float %92, %cond5.i %sub214 = fsub float %sub212, %sub3.i %mul215 = fmul float %76, -8.000000e+00 - %cmp.i202 = fcmp oge float %sub214, %mul215 - %cond.i203 = select i1 %cmp.i202, float %sub214, float %mul215 - %add217 = fadd float %sub3.i, %cond.i203 + %cmp.i201 = fcmp oge float %sub214, %mul215 + %cond.i202 = select i1 %cmp.i201, float %sub214, float %mul215 + %add217 = fadd float %sub3.i, %cond.i202 store float %add217, ptr %y211, align 4 %y220 = getelementptr inbounds nuw i8, ptr %tc, i64 4 %93 = extractelement <2 x float> %storemerge125, i64 1 %add221 = fadd float %cond5.i, %93 %sub223 = fsub float %add221, %sub3.i %mul224 = fmul float %76, 8.000000e+00 - %cmp.i204 = fcmp olt float %sub223, %mul224 - %cond.i205 = select i1 %cmp.i204, float %sub223, float %mul224 - %add226 = fadd float %sub3.i, %cond.i205 + %cmp.i203 = fcmp olt float %sub223, %mul224 + %cond.i204 = select i1 %cmp.i203, float %sub223, float %mul224 + %add226 = fadd float %sub3.i, %cond.i204 store float %add226, ptr %y220, align 4 %call230 = call noundef zeroext i1 @_Z23ImTriangleContainsPointRK6ImVec2S1_S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %ta, ptr noundef nonnull align 4 dereferenceable(8) %tb, ptr noundef nonnull align 4 dereferenceable(8) %tc, ptr noundef nonnull align 4 dereferenceable(8) %MousePos) br label %if.end232 if.end232: ; preds = %cond.end170.thread, %cond.end196, %cond.end170 - %HoveredWindow237 = phi ptr [ %HoveredWindow, %cond.end196 ], [ %HoveredWindow, %cond.end170 ], [ %HoveredWindow233, %cond.end170.thread ] + %HoveredWindow236 = phi ptr [ %HoveredWindow, %cond.end196 ], [ %HoveredWindow, %cond.end170 ], [ %HoveredWindow232, %cond.end170.thread ] %moving_toward_child_menu.0 = phi i1 [ %call230, %cond.end196 ], [ false, %cond.end170 ], [ false, %cond.end170.thread ] %call2.not = xor i1 %call2, true %brmerge127 = select i1 %call2.not, i1 true, i1 %68 br i1 %brmerge127, label %if.end247, label %land.lhs.true236 land.lhs.true236: ; preds = %if.end232 - %94 = load ptr, ptr %HoveredWindow237, align 8 + %94 = load ptr, ptr %HoveredWindow236, align 8 %cmp238 = icmp ne ptr %94, %2 %brmerge128 = or i1 %moving_toward_child_menu.0, %cmp238 br i1 %brmerge128, label %if.end247, label %land.lhs.true241 @@ -32723,13 +32723,13 @@ land.lhs.true272: ; preds = %if.end270 if.else276: ; preds = %if.end146 %brmerge138.demorgan = and i1 %call2, %pressed.0.in - %brmerge139.not241 = and i1 %retval.0.i224, %brmerge138.demorgan - %not.brmerge139.not241 = xor i1 %brmerge139.not241, true - %.mux148 = xor i1 %brmerge139.not241, %call2 + %brmerge139.not240 = and i1 %retval.0.i223, %brmerge138.demorgan + %not.brmerge139.not240 = xor i1 %brmerge139.not240, true + %.mux148 = xor i1 %brmerge139.not240, %call2 br i1 %pressed.0.in, label %if.end301, label %lor.lhs.false lor.lhs.false: ; preds = %if.else276 - %brmerge142.demorgan = and i1 %retval.0.i224, %68 + %brmerge142.demorgan = and i1 %retval.0.i223, %68 %brmerge142 = xor i1 %brmerge142.demorgan, true %brmerge143 = or i1 %call2, %brmerge142 br i1 %brmerge143, label %if.else291, label %if.end301 @@ -32752,8 +32752,8 @@ if.end301.sink.split: ; preds = %land.lhs.true294, % br label %if.end301 if.end301: ; preds = %if.end301.sink.split, %if.else276, %lor.lhs.false, %if.else291, %land.lhs.true294, %if.end270, %land.lhs.true272 - %want_close.1 = phi i1 [ %want_close.0, %land.lhs.true272 ], [ %want_close.0, %if.end270 ], [ false, %land.lhs.true294 ], [ false, %if.else291 ], [ %brmerge139.not241, %if.else276 ], [ false, %lor.lhs.false ], [ %want_close.1.ph, %if.end301.sink.split ] - %want_open.1 = phi i1 [ %want_open.0, %land.lhs.true272 ], [ %want_open.0, %if.end270 ], [ false, %land.lhs.true294 ], [ false, %if.else291 ], [ %not.brmerge139.not241, %if.else276 ], [ true, %lor.lhs.false ], [ true, %if.end301.sink.split ] + %want_close.1 = phi i1 [ %want_close.0, %land.lhs.true272 ], [ %want_close.0, %if.end270 ], [ false, %land.lhs.true294 ], [ false, %if.else291 ], [ %brmerge139.not240, %if.else276 ], [ false, %lor.lhs.false ], [ %want_close.1.ph, %if.end301.sink.split ] + %want_open.1 = phi i1 [ %want_open.0, %land.lhs.true272 ], [ %want_open.0, %if.end270 ], [ false, %land.lhs.true294 ], [ false, %if.else291 ], [ %not.brmerge139.not240, %if.else276 ], [ true, %lor.lhs.false ], [ true, %if.end301.sink.split ] %menu_is_open.1 = phi i1 [ %call2, %land.lhs.true272 ], [ %call2, %if.end270 ], [ %call2, %land.lhs.true294 ], [ %call2, %if.else291 ], [ %.mux148, %if.else276 ], [ %call2, %lor.lhs.false ], [ %call2, %if.end301.sink.split ] %not.enabled = xor i1 %enabled, true %tobool305 = select i1 %not.enabled, i1 true, i1 %want_close.1 @@ -32782,9 +32782,9 @@ land.lhs.true315: ; preds = %land.lhs.true313 %BeginPopupStack318 = getelementptr inbounds nuw i8, ptr %0, i64 19120 %105 = load i32, ptr %BeginPopupStack318, align 8 %cmp320 = icmp sgt i32 %104, %105 - br i1 %cmp320, label %if.end326.thread251, label %if.end326.thread + br i1 %cmp320, label %if.end326.thread250, label %if.end326.thread -if.end326.thread251: ; preds = %land.lhs.true315 +if.end326.thread250: ; preds = %land.lhs.true315 call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef %label, i32 noundef 0) br label %if.else342 @@ -32799,8 +32799,8 @@ if.then328: ; preds = %if.end326.thread, % %LastItemData = getelementptr inbounds nuw i8, ptr %0, i64 18808 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(76) %last_item_in_parent, ptr noundef nonnull align 8 dereferenceable(76) %LastItemData, i64 76, i1 false) store float 0.000000e+00, ptr %ref.tmp329, align 4 - %y.i206 = getelementptr inbounds nuw i8, ptr %ref.tmp329, i64 4 - store float 0.000000e+00, ptr %y.i206, align 4 + %y.i205 = getelementptr inbounds nuw i8, ptr %ref.tmp329, i64 4 + store float 0.000000e+00, ptr %y.i205, align 4 call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %popup_pos, i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp329) %PopupRounding = getelementptr inbounds nuw i8, ptr %0, i64 14628 %106 = load float, ptr %PopupRounding, align 4 @@ -32823,7 +32823,7 @@ if.then337: ; preds = %if.then333 store i32 %or339, ptr %StatusFlags, align 8 br label %return -if.else342: ; preds = %if.end326.thread251, %if.end326 +if.else342: ; preds = %if.end326.thread250, %if.end326 %NextWindowData343 = getelementptr inbounds nuw i8, ptr %0, i64 18888 store i32 0, ptr %NextWindowData343, align 8 br label %return @@ -33506,24 +33506,24 @@ _ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit: ; preds = %if.end2, %if.then.i %Capacity.i = getelementptr inbounds nuw i8, ptr %0, i64 20068 %9 = load i32, ptr %Capacity.i, align 4 %cmp.i = icmp eq i32 %8, %9 - br i1 %cmp.i, label %if.then.i53, label %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit._ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit_crit_edge + br i1 %cmp.i, label %if.then.i53, label %entry.if.end_crit_edge.i -_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit._ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit_crit_edge: ; preds = %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit - %Data.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 20072 - %.pre62 = load ptr, ptr %Data.i.phi.trans.insert, align 8 +entry.if.end_crit_edge.i: ; preds = %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit + %Data.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %0, i64 20072 + %.pre.i = load ptr, ptr %Data.phi.trans.insert.i, align 8 br label %_ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit if.then.i53: ; preds = %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit %add.i = add nsw i32 %8, 1 %tobool.not.i.i = icmp eq i32 %8, 0 - br i1 %tobool.not.i.i, label %if.end.i.i, label %cond.true.i.i + br i1 %tobool.not.i.i, label %_ZNK8ImVectorI15ImGuiPtrOrIndexE14_grow_capacityEi.exit.i, label %cond.true.i.i cond.true.i.i: ; preds = %if.then.i53 %div.i.i = sdiv i32 %8, 2 %add.i.i = add nsw i32 %div.i.i, %8 - br label %if.end.i.i + br label %_ZNK8ImVectorI15ImGuiPtrOrIndexE14_grow_capacityEi.exit.i -if.end.i.i: ; preds = %cond.true.i.i, %if.then.i53 +_ZNK8ImVectorI15ImGuiPtrOrIndexE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i, %if.then.i53 %cond.i.i = phi i32 [ %add.i.i, %cond.true.i.i ], [ 8, %if.then.i53 ] %cond7.i.i = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i) %conv.i.i54 = sext i32 %cond7.i.i to i64 @@ -33534,7 +33534,7 @@ if.end.i.i: ; preds = %cond.true.i.i, %if. %tobool.not.i2.i = icmp eq ptr %10, null br i1 %tobool.not.i2.i, label %if.end7.i.i, label %if.then2.i.i -if.then2.i.i: ; preds = %if.end.i.i +if.then2.i.i: ; preds = %_ZNK8ImVectorI15ImGuiPtrOrIndexE14_grow_capacityEi.exit.i %11 = load i32, ptr %CurrentTabBarStack, align 8 %conv4.i.i = sext i32 %11 to i64 %mul5.i.i = shl nsw i64 %conv4.i.i, 4 @@ -33543,17 +33543,17 @@ if.then2.i.i: ; preds = %if.end.i.i tail call void @_ZN5ImGui7MemFreeEPv(ptr noundef %12) br label %if.end7.i.i -if.end7.i.i: ; preds = %if.then2.i.i, %if.end.i.i +if.end7.i.i: ; preds = %if.then2.i.i, %_ZNK8ImVectorI15ImGuiPtrOrIndexE14_grow_capacityEi.exit.i store ptr %call.i.i, ptr %Data.i.i55, align 8 store i32 %cond7.i.i, ptr %Capacity.i, align 4 - %.pre.i = load i32, ptr %CurrentTabBarStack, align 8 + %.pre3.i = load i32, ptr %CurrentTabBarStack, align 8 br label %_ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit -_ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit: ; preds = %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit._ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit_crit_edge, %if.end7.i.i - %13 = phi ptr [ %call.i.i, %if.end7.i.i ], [ %.pre62, %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit._ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit_crit_edge ] - %14 = phi i32 [ %.pre.i, %if.end7.i.i ], [ %8, %_ZL22GetTabBarRefFromTabBarP11ImGuiTabBar.exit._ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit_crit_edge ] - %idxprom.i = sext i32 %14 to i64 - %arrayidx.i = getelementptr inbounds %struct.ImGuiPtrOrIndex, ptr %13, i64 %idxprom.i +_ZN8ImVectorI15ImGuiPtrOrIndexE9push_backERKS0_.exit: ; preds = %entry.if.end_crit_edge.i, %if.end7.i.i + %13 = phi i32 [ %8, %entry.if.end_crit_edge.i ], [ %.pre3.i, %if.end7.i.i ] + %14 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i, %if.end7.i.i ] + %idxprom.i = sext i32 %13 to i64 + %arrayidx.i = getelementptr inbounds %struct.ImGuiPtrOrIndex, ptr %14, i64 %idxprom.i store ptr %retval.sroa.0.0.i, ptr %arrayidx.i, align 8 %ref.tmp.sroa.2.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 8 store i32 %retval.sroa.3.0.i, ptr %ref.tmp.sroa.2.0.arrayidx.i.sroa_idx, align 8 @@ -33616,11 +33616,11 @@ if.then.i57: ; preds = %if.then16 %Data = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 %26 = load ptr, ptr %Data, align 8 tail call void @qsort(ptr noundef %26, i64 noundef range(i64 -2147483648, 2147483648) %conv, i64 noundef 44, ptr noundef nonnull @_ZL27TabItemComparerByBeginOrderPKvS0_) - %.pre63 = load i32, ptr %CurrFrameVisible, align 4 + %.pre62 = load i32, ptr %CurrFrameVisible, align 4 br label %if.end18 if.end18: ; preds = %if.then.i57, %if.then16, %lor.lhs.false - %27 = phi i32 [ %.pre63, %if.then.i57 ], [ %17, %if.then16 ], [ %17, %lor.lhs.false ] + %27 = phi i32 [ %.pre62, %if.then.i57 ], [ %17, %if.then16 ], [ %17, %lor.lhs.false ] %TabsAddedNew19 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 117 store i8 0, ptr %TabsAddedNew19, align 1 %and20 = and i32 %flags, 192 @@ -35819,8 +35819,8 @@ if.end9: ; preds = %land.lhs.true, %_ZN %cmp.not.i = icmp ne i32 %retval.0.i, 0 %.pr.pre = load i32, ptr %tab_bar, align 8 %cmp110.i = icmp sgt i32 %.pr.pre, 0 - %or.cond241 = select i1 %cmp.not.i, i1 %cmp110.i, i1 false - br i1 %or.cond241, label %for.body.lr.ph.i, label %if.then17 + %or.cond239 = select i1 %cmp.not.i, i1 %cmp110.i, i1 false + br i1 %or.cond239, label %for.body.lr.ph.i, label %if.then17 for.body.lr.ph.i: ; preds = %if.end9 %Data.i.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 @@ -35844,24 +35844,24 @@ if.then17: ; preds = %for.cond.i, %if.end %Capacity.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 4 %11 = load i32, ptr %Capacity.i, align 4 %cmp.i = icmp eq i32 %.pr.pre, %11 - br i1 %cmp.i, label %if.then.i172, label %if.then17._ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit_crit_edge + br i1 %cmp.i, label %if.then.i172, label %entry.if.end_crit_edge.i -if.then17._ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit_crit_edge: ; preds = %if.then17 - %Data.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 - %.pre = load ptr, ptr %Data.i.phi.trans.insert, align 8 +entry.if.end_crit_edge.i: ; preds = %if.then17 + %Data.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 + %.pre.i = load ptr, ptr %Data.phi.trans.insert.i, align 8 br label %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit if.then.i172: ; preds = %if.then17 %add.i = add nsw i32 %.pr.pre, 1 %tobool.not.i.i = icmp eq i32 %.pr.pre, 0 - br i1 %tobool.not.i.i, label %if.end.i.i, label %cond.true.i.i + br i1 %tobool.not.i.i, label %_ZNK8ImVectorI12ImGuiTabItemE14_grow_capacityEi.exit.i, label %cond.true.i.i cond.true.i.i: ; preds = %if.then.i172 %div.i.i = sdiv i32 %.pr.pre, 2 %add.i.i = add nsw i32 %div.i.i, %.pr.pre - br label %if.end.i.i + br label %_ZNK8ImVectorI12ImGuiTabItemE14_grow_capacityEi.exit.i -if.end.i.i: ; preds = %cond.true.i.i, %if.then.i172 +_ZNK8ImVectorI12ImGuiTabItemE14_grow_capacityEi.exit.i: ; preds = %cond.true.i.i, %if.then.i172 %cond.i.i = phi i32 [ %add.i.i, %cond.true.i.i ], [ 8, %if.then.i172 ] %cond7.i.i = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i, i32 %add.i) %conv.i.i = sext i32 %cond7.i.i to i64 @@ -35872,7 +35872,7 @@ if.end.i.i: ; preds = %cond.true.i.i, %if. %tobool.not.i2.i = icmp eq ptr %12, null br i1 %tobool.not.i2.i, label %if.end7.i.i, label %if.then2.i.i -if.then2.i.i: ; preds = %if.end.i.i +if.then2.i.i: ; preds = %_ZNK8ImVectorI12ImGuiTabItemE14_grow_capacityEi.exit.i %13 = load i32, ptr %tab_bar, align 8 %conv4.i.i = sext i32 %13 to i64 %mul5.i.i = mul nsw i64 %conv4.i.i, 44 @@ -35881,18 +35881,17 @@ if.then2.i.i: ; preds = %if.end.i.i tail call void @_ZN5ImGui7MemFreeEPv(ptr noundef %14) br label %if.end7.i.i -if.end7.i.i: ; preds = %if.then2.i.i, %if.end.i.i +if.end7.i.i: ; preds = %if.then2.i.i, %_ZNK8ImVectorI12ImGuiTabItemE14_grow_capacityEi.exit.i store ptr %call.i.i, ptr %Data.i.i173, align 8 store i32 %cond7.i.i, ptr %Capacity.i, align 4 - %.pre.i = load i32, ptr %tab_bar, align 8 + %.pre3.i = load i32, ptr %tab_bar, align 8 br label %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit -_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit: ; preds = %if.then17._ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit_crit_edge, %if.end7.i.i - %15 = phi ptr [ %call.i.i, %if.end7.i.i ], [ %.pre, %if.then17._ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit_crit_edge ] - %16 = phi i32 [ %.pre.i, %if.end7.i.i ], [ %.pr.pre, %if.then17._ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit_crit_edge ] - %Data.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 - %idxprom.i = sext i32 %16 to i64 - %arrayidx.i = getelementptr inbounds %struct.ImGuiTabItem, ptr %15, i64 %idxprom.i +_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit: ; preds = %entry.if.end_crit_edge.i, %if.end7.i.i + %15 = phi i32 [ %.pr.pre, %entry.if.end_crit_edge.i ], [ %.pre3.i, %if.end7.i.i ] + %16 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i, %if.end7.i.i ] + %idxprom.i = sext i32 %15 to i64 + %arrayidx.i = getelementptr inbounds %struct.ImGuiTabItem, ptr %16, i64 %idxprom.i store i64 0, ptr %arrayidx.i, align 4 %ref.tmp18.sroa.2.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 8 store i32 -1, ptr %ref.tmp18.sroa.2.0.arrayidx.i.sroa_idx, align 4 @@ -35900,8 +35899,8 @@ _ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit: ; preds = %if.then17._ZN8ImVe store i32 -1, ptr %ref.tmp18.sroa.3.0.arrayidx.i.sroa_idx, align 4 %ref.tmp18.sroa.4.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %ref.tmp18.sroa.4.0.arrayidx.i.sroa_idx, i8 0, i64 12, i1 false) - %ref.tmp18.sroa.4221.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 28 - store float -1.000000e+00, ptr %ref.tmp18.sroa.4221.0.arrayidx.i.sroa_idx, align 4 + %ref.tmp18.sroa.4220.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 28 + store float -1.000000e+00, ptr %ref.tmp18.sroa.4220.0.arrayidx.i.sroa_idx, align 4 %ref.tmp18.sroa.5.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 32 store i64 -1, ptr %ref.tmp18.sroa.5.0.arrayidx.i.sroa_idx, align 4 %ref.tmp18.sroa.6.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 40 @@ -35909,20 +35908,21 @@ _ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit: ; preds = %if.then17._ZN8ImVe %17 = load i32, ptr %tab_bar, align 8 %inc.i = add nsw i32 %17, 1 store i32 %inc.i, ptr %tab_bar, align 8 + %Data.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 8 %18 = load ptr, ptr %Data.i, align 8 %19 = sext i32 %inc.i to i64 %20 = getelementptr %struct.ImGuiTabItem, ptr %18, i64 %19 - %arrayidx.i175 = getelementptr i8, ptr %20, i64 -44 - store i32 %retval.0.i, ptr %arrayidx.i175, align 4 + %arrayidx.i174 = getelementptr i8, ptr %20, i64 -44 + store i32 %retval.0.i, ptr %arrayidx.i174, align 4 %TabsAddedNew = getelementptr inbounds nuw i8, ptr %tab_bar, i64 117 store i8 1, ptr %TabsAddedNew, align 1 - %.pre229 = load ptr, ptr %Data.i, align 8 + %.pre = load ptr, ptr %Data.i, align 8 br label %if.end21 if.end21: ; preds = %for.body.i, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit - %21 = phi ptr [ %.pre229, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ %9, %for.body.i ] - %cmp16224 = phi i1 [ true, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ false, %for.body.i ] - %tab.0 = phi ptr [ %arrayidx.i175, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ %arrayidx.i.i, %for.body.i ] + %21 = phi ptr [ %.pre, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ %9, %for.body.i ] + %cmp16223 = phi i1 [ true, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ false, %for.body.i ] + %tab.0 = phi ptr [ %arrayidx.i174, %_ZN8ImVectorI12ImGuiTabItemE9push_backERKS0_.exit ], [ %arrayidx.i.i, %for.body.i ] %sub.ptr.lhs.cast.i = ptrtoint ptr %tab.0 to i64 %sub.ptr.rhs.cast.i = ptrtoint ptr %21 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i @@ -35935,14 +35935,14 @@ if.end21: ; preds = %for.body.i, %_ZN8Im %tobool26 = icmp ne i32 %and25, 0 %22 = select i1 %cmp24, i1 true, i1 %tobool26 %23 = load ptr, ptr @GImGui, align 8 - %call.i177 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %label, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00) + %call.i176 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %label, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00) %FramePadding.i = getelementptr inbounds nuw i8, ptr %23, i64 14636 %24 = load float, ptr %FramePadding.i, align 4 %y4.i = getelementptr inbounds nuw i8, ptr %23, i64 14640 %25 = load float, ptr %y4.i, align 4 - br i1 %22, label %if.then.i181, label %_ZN5ImGui15TabItemCalcSizeEPKcb.exit + br i1 %22, label %if.then.i180, label %_ZN5ImGui15TabItemCalcSizeEPKcb.exit -if.then.i181: ; preds = %if.end21 +if.then.i180: ; preds = %if.end21 %ItemInnerSpacing.i = getelementptr inbounds nuw i8, ptr %23, i64 14660 %26 = load float, ptr %ItemInnerSpacing.i, align 4 %FontSize.i = getelementptr inbounds nuw i8, ptr %23, i64 15680 @@ -35950,21 +35950,21 @@ if.then.i181: ; preds = %if.end21 %add10.i = fadd float %26, %27 br label %_ZN5ImGui15TabItemCalcSizeEPKcb.exit -_ZN5ImGui15TabItemCalcSizeEPKcb.exit: ; preds = %if.end21, %if.then.i181 - %.sink.i = phi float [ %add10.i, %if.then.i181 ], [ 1.000000e+00, %if.end21 ] +_ZN5ImGui15TabItemCalcSizeEPKcb.exit: ; preds = %if.end21, %if.then.i180 + %.sink.i = phi float [ %add10.i, %if.then.i180 ], [ 1.000000e+00, %if.end21 ] %add17.i = fadd float %24, %.sink.i - %label_size.sroa.0.0.vec.extract.i = extractelement <2 x float> %call.i177, i64 0 - %add.i178 = fadd float %label_size.sroa.0.0.vec.extract.i, %24 - %storemerge.i = fadd float %add.i178, %add17.i - %label_size.sroa.0.4.vec.extract.i = extractelement <2 x float> %call.i177, i64 1 + %label_size.sroa.0.0.vec.extract.i = extractelement <2 x float> %call.i176, i64 0 + %add.i177 = fadd float %label_size.sroa.0.0.vec.extract.i, %24 + %storemerge.i = fadd float %add.i177, %add17.i + %label_size.sroa.0.4.vec.extract.i = extractelement <2 x float> %call.i176, i64 1 %28 = tail call float @llvm.fmuladd.f32(float %25, float 2.000000e+00, float %label_size.sroa.0.4.vec.extract.i) %29 = load ptr, ptr @GImGui, align 8 %FontSize.i.i = getelementptr inbounds nuw i8, ptr %29, i64 15680 %30 = load float, ptr %FontSize.i.i, align 8 - %mul.i.i179 = fmul float %30, 2.000000e+01 - %cmp.i.i = fcmp olt float %storemerge.i, %mul.i.i179 - %cond.i.i180 = select i1 %cmp.i.i, float %storemerge.i, float %mul.i.i179 - %retval.sroa.0.0.vec.insert.i = insertelement <2 x float> poison, float %cond.i.i180, i64 0 + %mul.i.i178 = fmul float %30, 2.000000e+01 + %cmp.i.i = fcmp olt float %storemerge.i, %mul.i.i178 + %cond.i.i179 = select i1 %cmp.i.i, float %storemerge.i, float %mul.i.i178 + %retval.sroa.0.0.vec.insert.i = insertelement <2 x float> poison, float %cond.i.i179, i64 0 %retval.sroa.0.4.vec.insert.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i, float %28, i64 1 %RequestedWidth = getelementptr inbounds nuw i8, ptr %tab.0, i64 28 store float -1.000000e+00, ptr %RequestedWidth, align 4 @@ -35984,11 +35984,11 @@ if.then31: ; preds = %_ZN5ImGui15TabItemC if.end34: ; preds = %if.then31, %_ZN5ImGui15TabItemCalcSizeEPKcb.exit %size.sroa.0.0 = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i, %_ZN5ImGui15TabItemCalcSizeEPKcb.exit ], [ %size.sroa.0.0.vec.insert, %if.then31 ] %size.sroa.0.0.vec.extract = extractelement <2 x float> %size.sroa.0.0, i64 0 - br i1 %cmp16224, label %if.then36, label %if.end40 + br i1 %cmp16223, label %if.then36, label %if.end40 if.then36: ; preds = %if.end34 - %cmp.i182 = fcmp ole float %size.sroa.0.0.vec.extract, 1.000000e+00 - %cond.i = select i1 %cmp.i182, float 1.000000e+00, float %size.sroa.0.0.vec.extract + %cmp.i181 = fcmp ole float %size.sroa.0.0.vec.extract, 1.000000e+00 + %cond.i = select i1 %cmp.i181, float 1.000000e+00, float %size.sroa.0.0.vec.extract %Width39 = getelementptr inbounds nuw i8, ptr %tab.0, i64 20 store float %cond.i, ptr %Width39, align 4 br label %if.end40 @@ -36091,8 +36091,8 @@ land.lhs.true88: ; preds = %if.end85 if.then91: ; preds = %land.lhs.true88 %46 = load i32, ptr %tab.0, align 4 - %NextSelectedTabId.i183 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 - store i32 %46, ptr %NextSelectedTabId.i183, align 4 + %NextSelectedTabId.i182 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 + store i32 %46, ptr %NextSelectedTabId.i182, align 4 br label %if.end93 if.end93: ; preds = %if.end85, %land.lhs.true88, %if.then91, %if.end70 @@ -36126,7 +36126,7 @@ land.lhs.true108: ; preds = %if.then105 if.end114: ; preds = %land.lhs.true108, %if.then97, %land.lhs.true100, %if.then105 %tab_contents_visible.0.shrunk = phi i1 [ true, %if.then97 ], [ false, %if.then105 ], [ false, %land.lhs.true100 ], [ %tobool111.not, %land.lhs.true108 ] - %brmerge157 = or i1 %cmp16224, %cmp42 + %brmerge157 = or i1 %cmp16223, %cmp42 %or.cond164 = select i1 %cmp49, i1 %brmerge157, i1 false br i1 %or.cond164, label %if.then120, label %if.end127 @@ -36168,74 +36168,74 @@ if.then140: ; preds = %if.end132 %conv143 = fptosi float %sub to i32 %conv144 = sitofp i32 %conv143 to float %BarRect.val = load float, ptr %BarRect, align 4 - %add.i184 = fadd float %BarRect.val, %conv144 + %add.i183 = fadd float %BarRect.val, %conv144 br label %if.end157 if.else148: ; preds = %if.end132 %BarRect150.val = load float, ptr %BarRect, align 4 - %add.i188 = fadd float %56, %BarRect150.val + %add.i187 = fadd float %56, %BarRect150.val br label %if.end157 if.end157: ; preds = %if.else148, %if.then140 - %add.i188.sink = phi float [ %add.i188, %if.else148 ], [ %add.i184, %if.then140 ] + %add.i187.sink = phi float [ %add.i187, %if.else148 ], [ %add.i183, %if.then140 ] %BarRect150.val167.sink.in = getelementptr i8, ptr %tab_bar, i64 48 %BarRect150.val167.sink = load float, ptr %BarRect150.val167.sink.in, align 4 - %add3.i189 = fadd float %BarRect150.val167.sink, 0.000000e+00 - %retval.sroa.0.0.vec.insert.i190 = insertelement <2 x float> poison, float %add.i188.sink, i64 0 - %retval.sroa.0.4.vec.insert.i191 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i190, float %add3.i189, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i191, ptr %DC, align 8 + %add3.i188 = fadd float %BarRect150.val167.sink, 0.000000e+00 + %retval.sroa.0.0.vec.insert.i189 = insertelement <2 x float> poison, float %add.i187.sink, i64 0 + %retval.sroa.0.4.vec.insert.i190 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i189, float %add3.i188, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i190, ptr %DC, align 8 %size.sroa.0.4.vec.extract = extractelement <2 x float> %size.sroa.0.0, i64 1 - %add.i192 = fadd float %55, %add.i188.sink - %add3.i193 = fadd float %size.sroa.0.4.vec.extract, %add3.i189 - %retval.sroa.0.0.vec.insert.i194 = insertelement <2 x float> poison, float %add.i192, i64 0 - %retval.sroa.0.4.vec.insert.i195 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i194, float %add3.i193, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i191, ptr %bb, align 8 + %add.i191 = fadd float %55, %add.i187.sink + %add3.i192 = fadd float %size.sroa.0.4.vec.extract, %add3.i188 + %retval.sroa.0.0.vec.insert.i193 = insertelement <2 x float> poison, float %add.i191, i64 0 + %retval.sroa.0.4.vec.insert.i194 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i193, float %add3.i192, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i190, ptr %bb, align 8 %Max.i = getelementptr inbounds nuw i8, ptr %bb, i64 8 - store <2 x float> %retval.sroa.0.4.vec.insert.i195, ptr %Max.i, align 8 + store <2 x float> %retval.sroa.0.4.vec.insert.i194, ptr %Max.i, align 8 br i1 %cmp135, label %land.rhs163, label %if.end186 land.rhs163: ; preds = %if.end157 %ScrollingRectMinX = getelementptr inbounds nuw i8, ptr %tab_bar, i64 92 %58 = load float, ptr %ScrollingRectMinX, align 4 - %cmp166 = fcmp olt float %add.i188.sink, %58 + %cmp166 = fcmp olt float %add.i187.sink, %58 %ScrollingRectMaxX183.phi.trans.insert = getelementptr inbounds nuw i8, ptr %tab_bar, i64 96 - %.pre230 = load float, ptr %ScrollingRectMaxX183.phi.trans.insert, align 8 - %cmp169 = fcmp ogt float %add.i192, %.pre230 - %or.cond242 = select i1 %cmp166, i1 true, i1 %cmp169 - br i1 %or.cond242, label %if.then174, label %if.end186 + %.pre228 = load float, ptr %ScrollingRectMaxX183.phi.trans.insert, align 8 + %cmp169 = fcmp ogt float %add.i191, %.pre228 + %or.cond240 = select i1 %cmp166, i1 true, i1 %cmp169 + br i1 %or.cond240, label %if.then174, label %if.end186 if.then174: ; preds = %land.rhs163 - %cmp.i196 = fcmp oge float %add.i188.sink, %58 - %cond.i197 = select i1 %cmp.i196, float %add.i188.sink, float %58 + %cmp.i195 = fcmp oge float %add.i187.sink, %58 + %cond.i196 = select i1 %cmp.i195, float %add.i187.sink, float %58 %y = getelementptr inbounds nuw i8, ptr %bb, i64 4 - %sub181 = fadd float %add3.i189, -1.000000e+00 - store float %cond.i197, ptr %ref.tmp175, align 4 - %y.i198 = getelementptr inbounds nuw i8, ptr %ref.tmp175, i64 4 - store float %sub181, ptr %y.i198, align 4 + %sub181 = fadd float %add3.i188, -1.000000e+00 + store float %cond.i196, ptr %ref.tmp175, align 4 + %y.i197 = getelementptr inbounds nuw i8, ptr %ref.tmp175, i64 4 + store float %sub181, ptr %y.i197, align 4 %y185 = getelementptr inbounds nuw i8, ptr %bb, i64 12 - store float %.pre230, ptr %ref.tmp182, align 4 - %y.i199 = getelementptr inbounds nuw i8, ptr %ref.tmp182, i64 4 - store float %add3.i193, ptr %y.i199, align 4 + store float %.pre228, ptr %ref.tmp182, align 4 + %y.i198 = getelementptr inbounds nuw i8, ptr %ref.tmp182, i64 4 + store float %add3.i192, ptr %y.i198, align 4 call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp175, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp182, i1 noundef zeroext true) - %.pre231 = load float, ptr %Max.i, align 8 - %.pre232 = load float, ptr %bb, align 8 - %.pre233 = load float, ptr %y185, align 4 - %.pre234 = load float, ptr %y, align 4 + %.pre229 = load float, ptr %Max.i, align 8 + %.pre230 = load float, ptr %bb, align 8 + %.pre231 = load float, ptr %y185, align 4 + %.pre232 = load float, ptr %y, align 4 br label %if.end186 if.end186: ; preds = %land.rhs163, %if.end157, %if.then174 - %59 = phi float [ %.pre234, %if.then174 ], [ %add3.i189, %if.end157 ], [ %add3.i189, %land.rhs163 ] - %60 = phi float [ %.pre233, %if.then174 ], [ %add3.i193, %if.end157 ], [ %add3.i193, %land.rhs163 ] - %61 = phi float [ %.pre232, %if.then174 ], [ %add.i188.sink, %if.end157 ], [ %add.i188.sink, %land.rhs163 ] - %62 = phi float [ %.pre231, %if.then174 ], [ %add.i192, %if.end157 ], [ %add.i192, %land.rhs163 ] + %59 = phi float [ %.pre232, %if.then174 ], [ %add3.i188, %if.end157 ], [ %add3.i188, %land.rhs163 ] + %60 = phi float [ %.pre231, %if.then174 ], [ %add3.i192, %if.end157 ], [ %add3.i192, %land.rhs163 ] + %61 = phi float [ %.pre230, %if.then174 ], [ %add.i187.sink, %if.end157 ], [ %add.i187.sink, %land.rhs163 ] + %62 = phi float [ %.pre229, %if.then174 ], [ %add.i191, %if.end157 ], [ %add.i191, %land.rhs163 ] %63 = phi i1 [ true, %if.then174 ], [ false, %if.end157 ], [ false, %land.rhs163 ] %CursorMaxPos = getelementptr inbounds nuw i8, ptr %2, i64 296 %64 = load i64, ptr %CursorMaxPos, align 8 %sub.i = fsub float %62, %61 %sub6.i = fsub float %60, %59 - %retval.sroa.0.0.vec.insert.i202 = insertelement <2 x float> poison, float %sub.i, i64 0 - %retval.sroa.0.4.vec.insert.i203 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i202, float %sub6.i, i64 1 - store <2 x float> %retval.sroa.0.4.vec.insert.i203, ptr %ref.tmp188, align 8 + %retval.sroa.0.0.vec.insert.i201 = insertelement <2 x float> poison, float %sub.i, i64 0 + %retval.sroa.0.4.vec.insert.i202 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i201, float %sub6.i, i64 1 + store <2 x float> %retval.sroa.0.4.vec.insert.i202, ptr %ref.tmp188, align 8 %y190 = getelementptr inbounds nuw i8, ptr %0, i64 14640 %65 = load float, ptr %y190, align 4 call void @_ZN5ImGui8ItemSizeERK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp188, float noundef %65) @@ -36267,8 +36267,8 @@ if.end201: ; preds = %if.end186 if.then213: ; preds = %if.end201 %68 = load i32, ptr %tab.0, align 4 - %NextSelectedTabId.i204 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 - store i32 %68, ptr %NextSelectedTabId.i204, align 4 + %NextSelectedTabId.i203 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 + store i32 %68, ptr %NextSelectedTabId.i203, align 4 br label %if.end214 if.end214: ; preds = %if.end201, %if.then213 @@ -36363,8 +36363,8 @@ land.lhs.true280: ; preds = %land.lhs.true276 if.then282: ; preds = %lor.lhs.false278, %land.lhs.true280 %81 = load i32, ptr %tab.0, align 4 - %NextSelectedTabId.i205 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 - store i32 %81, ptr %NextSelectedTabId.i205, align 4 + %NextSelectedTabId.i204 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 + store i32 %81, ptr %NextSelectedTabId.i204, align 4 br label %if.end283 if.end283: ; preds = %lor.lhs.false278, %if.then282, %land.lhs.true280, %cond.end270 @@ -36393,14 +36393,14 @@ cond.end294: ; preds = %if.end283, %cond.tr if.then308: ; preds = %cond.end294 store i8 0, ptr %p_open.addr.0, align 1 %85 = load i32, ptr %Flags62, align 4 - %and.i206 = and i32 %85, 2097152 - %tobool.not.i207 = icmp eq i32 %and.i206, 0 - br i1 %tobool.not.i207, label %if.end.i, label %if.end309 + %and.i205 = and i32 %85, 2097152 + %tobool.not.i206 = icmp eq i32 %and.i205, 0 + br i1 %tobool.not.i206, label %if.end.i, label %if.end309 if.end.i: ; preds = %if.then308 %and2.i = and i32 %85, 257 - %cmp.i208 = icmp eq i32 %and2.i, 0 - br i1 %cmp.i208, label %if.then3.i, label %if.else.i209 + %cmp.i207 = icmp eq i32 %and2.i, 0 + br i1 %cmp.i207, label %if.then3.i, label %if.else.i208 if.then3.i: ; preds = %if.end.i %WantClose.i = getelementptr inbounds nuw i8, ptr %tab.0, i64 40 @@ -36412,23 +36412,23 @@ if.then3.i: ; preds = %if.end.i if.then5.i: ; preds = %if.then3.i store i32 -1, ptr %LastFrameVisible, align 4 - %NextSelectedTabId.i211 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 - store i32 0, ptr %NextSelectedTabId.i211, align 4 + %NextSelectedTabId.i210 = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 + store i32 0, ptr %NextSelectedTabId.i210, align 4 store i32 0, ptr %SelectedTabId128, align 8 br label %if.end309 -if.else.i209: ; preds = %if.end.i +if.else.i208: ; preds = %if.end.i %88 = load i32, ptr %VisibleTabId, align 8 %89 = load i32, ptr %tab.0, align 4 %cmp9.not.i = icmp eq i32 %88, %89 br i1 %cmp9.not.i, label %if.end309, label %if.then10.i -if.then10.i: ; preds = %if.else.i209 +if.then10.i: ; preds = %if.else.i208 %NextSelectedTabId.i.i = getelementptr inbounds nuw i8, ptr %tab_bar, i64 28 store i32 %89, ptr %NextSelectedTabId.i.i, align 4 br label %if.end309 -if.end309: ; preds = %if.then10.i, %if.else.i209, %if.then5.i, %if.then3.i, %if.then308, %cond.end294 +if.end309: ; preds = %if.then10.i, %if.else.i208, %if.then5.i, %if.then3.i, %if.then308, %cond.end294 br i1 %63, label %if.then311, label %if.end312 if.then311: ; preds = %if.end309 @@ -36621,24 +36621,24 @@ entry: %Capacity.i.i = getelementptr inbounds nuw i8, ptr %draw_list, i64 124 %8 = load i32, ptr %Capacity.i.i, align 4 %cmp.i.i = icmp eq i32 %7, %8 - br i1 %cmp.i.i, label %if.then.i.i, label %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i + br i1 %cmp.i.i, label %if.then.i.i, label %entry.if.end_crit_edge.i.i -entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i: ; preds = %entry - %Data.i.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %draw_list, i64 128 - %.pre.i = load ptr, ptr %Data.i.phi.trans.insert.i, align 8 +entry.if.end_crit_edge.i.i: ; preds = %entry + %Data.phi.trans.insert.i.i = getelementptr inbounds nuw i8, ptr %draw_list, i64 128 + %.pre.i.i = load ptr, ptr %Data.phi.trans.insert.i.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit if.then.i.i: ; preds = %entry %add.i.i = add nsw i32 %7, 1 %tobool.not.i.i.i = icmp eq i32 %7, 0 - br i1 %tobool.not.i.i.i, label %if.end.i.i.i, label %cond.true.i.i.i + br i1 %tobool.not.i.i.i, label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i, label %cond.true.i.i.i cond.true.i.i.i: ; preds = %if.then.i.i %div.i.i.i = sdiv i32 %7, 2 %add.i.i.i = add nsw i32 %div.i.i.i, %7 - br label %if.end.i.i.i + br label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i -if.end.i.i.i: ; preds = %cond.true.i.i.i, %if.then.i.i +_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i: ; preds = %cond.true.i.i.i, %if.then.i.i %cond.i.i.i = phi i32 [ %add.i.i.i, %cond.true.i.i.i ], [ 8, %if.then.i.i ] %cond7.i.i.i = tail call noundef i32 @llvm.smax.i32(i32 %cond.i.i.i, i32 %add.i.i) %conv.i.i.i = sext i32 %cond7.i.i.i to i64 @@ -36649,7 +36649,7 @@ if.end.i.i.i: ; preds = %cond.true.i.i.i, %i %tobool.not.i2.i.i = icmp eq ptr %9, null br i1 %tobool.not.i2.i.i, label %if.end7.i.i.i, label %if.then2.i.i.i -if.then2.i.i.i: ; preds = %if.end.i.i.i +if.then2.i.i.i: ; preds = %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i %10 = load i32, ptr %_Path.i, align 8 %conv4.i.i.i = sext i32 %10 to i64 %mul5.i.i.i = shl nsw i64 %conv4.i.i.i, 3 @@ -36658,17 +36658,17 @@ if.then2.i.i.i: ; preds = %if.end.i.i.i tail call void @_ZN5ImGui7MemFreeEPv(ptr noundef %11) br label %if.end7.i.i.i -if.end7.i.i.i: ; preds = %if.then2.i.i.i, %if.end.i.i.i +if.end7.i.i.i: ; preds = %if.then2.i.i.i, %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i store ptr %call.i.i.i, ptr %Data.i.i.i, align 8 store i32 %cond7.i.i.i, ptr %Capacity.i.i, align 4 - %.pre.i.i = load i32, ptr %_Path.i, align 8 + %.pre3.i.i = load i32, ptr %_Path.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit -_ZN10ImDrawList10PathLineToERK6ImVec2.exit: ; preds = %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i, %if.end7.i.i.i - %12 = phi ptr [ %call.i.i.i, %if.end7.i.i.i ], [ %.pre.i, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i ] - %13 = phi i32 [ %.pre.i.i, %if.end7.i.i.i ], [ %7, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i ] - %idxprom.i.i = sext i32 %13 to i64 - %arrayidx.i.i = getelementptr inbounds %struct.ImVec2, ptr %12, i64 %idxprom.i.i +_ZN10ImDrawList10PathLineToERK6ImVec2.exit: ; preds = %entry.if.end_crit_edge.i.i, %if.end7.i.i.i + %12 = phi i32 [ %7, %entry.if.end_crit_edge.i.i ], [ %.pre3.i.i, %if.end7.i.i.i ] + %13 = phi ptr [ %.pre.i.i, %entry.if.end_crit_edge.i.i ], [ %call.i.i.i, %if.end7.i.i.i ] + %idxprom.i.i = sext i32 %12 to i64 + %arrayidx.i.i = getelementptr inbounds %struct.ImVec2, ptr %13, i64 %idxprom.i.i store float %2, ptr %arrayidx.i.i, align 4 %arrayidx.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i.i, i64 4 store float %sub, ptr %arrayidx.i.i.sroa_idx, align 4 @@ -36692,24 +36692,24 @@ _ZN10ImDrawList10PathLineToERK6ImVec2.exit: ; preds = %entry._ZN8ImVectorI %18 = load i32, ptr %_Path.i, align 8 %19 = load i32, ptr %Capacity.i.i, align 4 %cmp.i.i48 = icmp eq i32 %18, %19 - br i1 %cmp.i.i48, label %if.then.i.i55, label %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i49 + br i1 %cmp.i.i48, label %if.then.i.i55, label %entry.if.end_crit_edge.i.i49 -entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i49: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit - %Data.i.phi.trans.insert.i50 = getelementptr inbounds nuw i8, ptr %draw_list, i64 128 - %.pre.i51 = load ptr, ptr %Data.i.phi.trans.insert.i50, align 8 +entry.if.end_crit_edge.i.i49: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit + %Data.phi.trans.insert.i.i50 = getelementptr inbounds nuw i8, ptr %draw_list, i64 128 + %.pre.i.i51 = load ptr, ptr %Data.phi.trans.insert.i.i50, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit74 if.then.i.i55: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit %add.i.i56 = add nsw i32 %18, 1 %tobool.not.i.i.i57 = icmp eq i32 %18, 0 - br i1 %tobool.not.i.i.i57, label %if.end.i.i.i61, label %cond.true.i.i.i58 + br i1 %tobool.not.i.i.i57, label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i61, label %cond.true.i.i.i58 cond.true.i.i.i58: ; preds = %if.then.i.i55 %div.i.i.i59 = sdiv i32 %18, 2 %add.i.i.i60 = add nsw i32 %div.i.i.i59, %18 - br label %if.end.i.i.i61 + br label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i61 -if.end.i.i.i61: ; preds = %cond.true.i.i.i58, %if.then.i.i55 +_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i61: ; preds = %cond.true.i.i.i58, %if.then.i.i55 %cond.i.i.i62 = phi i32 [ %add.i.i.i60, %cond.true.i.i.i58 ], [ 8, %if.then.i.i55 ] %cond7.i.i.i63 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i.i62, i32 %add.i.i56) %conv.i.i.i64 = sext i32 %cond7.i.i.i63 to i64 @@ -36720,7 +36720,7 @@ if.end.i.i.i61: ; preds = %cond.true.i.i.i58, %tobool.not.i2.i.i68 = icmp eq ptr %20, null br i1 %tobool.not.i2.i.i68, label %if.end7.i.i.i72, label %if.then2.i.i.i69 -if.then2.i.i.i69: ; preds = %if.end.i.i.i61 +if.then2.i.i.i69: ; preds = %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i61 %21 = load i32, ptr %_Path.i, align 8 %conv4.i.i.i70 = sext i32 %21 to i64 %mul5.i.i.i71 = shl nsw i64 %conv4.i.i.i70, 3 @@ -36729,17 +36729,17 @@ if.then2.i.i.i69: ; preds = %if.end.i.i.i61 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %22) br label %if.end7.i.i.i72 -if.end7.i.i.i72: ; preds = %if.then2.i.i.i69, %if.end.i.i.i61 +if.end7.i.i.i72: ; preds = %if.then2.i.i.i69, %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i61 store ptr %call.i.i.i66, ptr %Data.i.i.i67, align 8 store i32 %cond7.i.i.i63, ptr %Capacity.i.i, align 4 - %.pre.i.i73 = load i32, ptr %_Path.i, align 8 + %.pre3.i.i73 = load i32, ptr %_Path.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit74 -_ZN10ImDrawList10PathLineToERK6ImVec2.exit74: ; preds = %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i49, %if.end7.i.i.i72 - %23 = phi ptr [ %call.i.i.i66, %if.end7.i.i.i72 ], [ %.pre.i51, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i49 ] - %24 = phi i32 [ %.pre.i.i73, %if.end7.i.i.i72 ], [ %18, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i49 ] - %idxprom.i.i52 = sext i32 %24 to i64 - %arrayidx.i.i53 = getelementptr inbounds %struct.ImVec2, ptr %23, i64 %idxprom.i.i52 +_ZN10ImDrawList10PathLineToERK6ImVec2.exit74: ; preds = %entry.if.end_crit_edge.i.i49, %if.end7.i.i.i72 + %23 = phi i32 [ %18, %entry.if.end_crit_edge.i.i49 ], [ %.pre3.i.i73, %if.end7.i.i.i72 ] + %24 = phi ptr [ %.pre.i.i51, %entry.if.end_crit_edge.i.i49 ], [ %call.i.i.i66, %if.end7.i.i.i72 ] + %idxprom.i.i52 = sext i32 %23 to i64 + %arrayidx.i.i53 = getelementptr inbounds %struct.ImVec2, ptr %24, i64 %idxprom.i.i52 store i32 %17, ptr %arrayidx.i.i53, align 4 %arrayidx.i.i53.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i.i53, i64 4 store float %sub, ptr %arrayidx.i.i53.sroa_idx, align 4 @@ -36760,19 +36760,19 @@ if.then: ; preds = %_ZN10ImDrawList10Pa %add24 = fadd float %28, 5.000000e-01 %29 = load i32, ptr %Capacity.i.i, align 4 %cmp.i.i79 = icmp eq i32 %29, 0 - br i1 %cmp.i.i79, label %if.end.i.i.i92, label %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i80 + br i1 %cmp.i.i79, label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i92, label %entry.if.end_crit_edge.i.i80 -entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i80: ; preds = %if.then - %.pre.i82 = load ptr, ptr %Data.i, align 8 +entry.if.end_crit_edge.i.i80: ; preds = %if.then + %.pre.i.i82 = load ptr, ptr %Data.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit105 -if.end.i.i.i92: ; preds = %if.then +_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i92: ; preds = %if.then %call.i.i.i97 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef 64) %30 = load ptr, ptr %Data.i, align 8 %tobool.not.i2.i.i99 = icmp eq ptr %30, null br i1 %tobool.not.i2.i.i99, label %if.end7.i.i.i103, label %if.then2.i.i.i100 -if.then2.i.i.i100: ; preds = %if.end.i.i.i92 +if.then2.i.i.i100: ; preds = %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i92 %31 = load i32, ptr %_Path.i, align 8 %conv4.i.i.i101 = sext i32 %31 to i64 %mul5.i.i.i102 = shl nsw i64 %conv4.i.i.i101, 3 @@ -36781,16 +36781,16 @@ if.then2.i.i.i100: ; preds = %if.end.i.i.i92 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %32) br label %if.end7.i.i.i103 -if.end7.i.i.i103: ; preds = %if.then2.i.i.i100, %if.end.i.i.i92 +if.end7.i.i.i103: ; preds = %if.then2.i.i.i100, %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i92 store ptr %call.i.i.i97, ptr %Data.i, align 8 store i32 8, ptr %Capacity.i.i, align 4 - %.pre.i.i104 = load i32, ptr %_Path.i, align 8 - %33 = sext i32 %.pre.i.i104 to i64 + %.pre3.i.i104 = load i32, ptr %_Path.i, align 8 + %33 = sext i32 %.pre3.i.i104 to i64 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit105 -_ZN10ImDrawList10PathLineToERK6ImVec2.exit105: ; preds = %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i80, %if.end7.i.i.i103 - %34 = phi ptr [ %call.i.i.i97, %if.end7.i.i.i103 ], [ %.pre.i82, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i80 ] - %idxprom.i.i83 = phi i64 [ %33, %if.end7.i.i.i103 ], [ 0, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i80 ] +_ZN10ImDrawList10PathLineToERK6ImVec2.exit105: ; preds = %entry.if.end_crit_edge.i.i80, %if.end7.i.i.i103 + %idxprom.i.i83 = phi i64 [ 0, %entry.if.end_crit_edge.i.i80 ], [ %33, %if.end7.i.i.i103 ] + %34 = phi ptr [ %.pre.i.i82, %entry.if.end_crit_edge.i.i80 ], [ %call.i.i.i97, %if.end7.i.i.i103 ] %arrayidx.i.i84 = getelementptr inbounds %struct.ImVec2, ptr %34, i64 %idxprom.i.i83 store float %add24, ptr %arrayidx.i.i84, align 4 %arrayidx.i.i84.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i.i84, i64 4 @@ -36818,23 +36818,23 @@ _ZN10ImDrawList10PathLineToERK6ImVec2.exit105: ; preds = %entry._ZN8ImVectorI %39 = load i32, ptr %_Path.i, align 8 %40 = load i32, ptr %Capacity.i.i, align 4 %cmp.i.i111 = icmp eq i32 %39, %40 - br i1 %cmp.i.i111, label %if.then.i.i118, label %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i112 + br i1 %cmp.i.i111, label %if.then.i.i118, label %entry.if.end_crit_edge.i.i112 -entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i112: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit105 - %.pre.i114 = load ptr, ptr %Data.i, align 8 +entry.if.end_crit_edge.i.i112: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit105 + %.pre.i.i114 = load ptr, ptr %Data.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit137 if.then.i.i118: ; preds = %_ZN10ImDrawList10PathLineToERK6ImVec2.exit105 %add.i.i119 = add nsw i32 %39, 1 %tobool.not.i.i.i120 = icmp eq i32 %39, 0 - br i1 %tobool.not.i.i.i120, label %if.end.i.i.i124, label %cond.true.i.i.i121 + br i1 %tobool.not.i.i.i120, label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i124, label %cond.true.i.i.i121 cond.true.i.i.i121: ; preds = %if.then.i.i118 %div.i.i.i122 = sdiv i32 %39, 2 %add.i.i.i123 = add nsw i32 %div.i.i.i122, %39 - br label %if.end.i.i.i124 + br label %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i124 -if.end.i.i.i124: ; preds = %cond.true.i.i.i121, %if.then.i.i118 +_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i124: ; preds = %cond.true.i.i.i121, %if.then.i.i118 %cond.i.i.i125 = phi i32 [ %add.i.i.i123, %cond.true.i.i.i121 ], [ 8, %if.then.i.i118 ] %cond7.i.i.i126 = call noundef i32 @llvm.smax.i32(i32 %cond.i.i.i125, i32 %add.i.i119) %conv.i.i.i127 = sext i32 %cond7.i.i.i126 to i64 @@ -36844,7 +36844,7 @@ if.end.i.i.i124: ; preds = %cond.true.i.i.i121, %tobool.not.i2.i.i131 = icmp eq ptr %41, null br i1 %tobool.not.i2.i.i131, label %if.end7.i.i.i135, label %if.then2.i.i.i132 -if.then2.i.i.i132: ; preds = %if.end.i.i.i124 +if.then2.i.i.i132: ; preds = %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i124 %42 = load i32, ptr %_Path.i, align 8 %conv4.i.i.i133 = sext i32 %42 to i64 %mul5.i.i.i134 = shl nsw i64 %conv4.i.i.i133, 3 @@ -36853,17 +36853,17 @@ if.then2.i.i.i132: ; preds = %if.end.i.i.i124 call void @_ZN5ImGui7MemFreeEPv(ptr noundef %43) br label %if.end7.i.i.i135 -if.end7.i.i.i135: ; preds = %if.then2.i.i.i132, %if.end.i.i.i124 +if.end7.i.i.i135: ; preds = %if.then2.i.i.i132, %_ZNK8ImVectorI6ImVec2E14_grow_capacityEi.exit.i.i124 store ptr %call.i.i.i129, ptr %Data.i, align 8 store i32 %cond7.i.i.i126, ptr %Capacity.i.i, align 4 - %.pre.i.i136 = load i32, ptr %_Path.i, align 8 + %.pre3.i.i136 = load i32, ptr %_Path.i, align 8 br label %_ZN10ImDrawList10PathLineToERK6ImVec2.exit137 -_ZN10ImDrawList10PathLineToERK6ImVec2.exit137: ; preds = %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i112, %if.end7.i.i.i135 - %44 = phi ptr [ %call.i.i.i129, %if.end7.i.i.i135 ], [ %.pre.i114, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i112 ] - %45 = phi i32 [ %.pre.i.i136, %if.end7.i.i.i135 ], [ %39, %entry._ZN8ImVectorI6ImVec2E9push_backERKS0_.exit_crit_edge.i112 ] - %idxprom.i.i115 = sext i32 %45 to i64 - %arrayidx.i.i116 = getelementptr inbounds %struct.ImVec2, ptr %44, i64 %idxprom.i.i115 +_ZN10ImDrawList10PathLineToERK6ImVec2.exit137: ; preds = %entry.if.end_crit_edge.i.i112, %if.end7.i.i.i135 + %44 = phi i32 [ %39, %entry.if.end_crit_edge.i.i112 ], [ %.pre3.i.i136, %if.end7.i.i.i135 ] + %45 = phi ptr [ %.pre.i.i114, %entry.if.end_crit_edge.i.i112 ], [ %call.i.i.i129, %if.end7.i.i.i135 ] + %idxprom.i.i115 = sext i32 %44 to i64 + %arrayidx.i.i116 = getelementptr inbounds %struct.ImVec2, ptr %45, i64 %idxprom.i.i115 store float %sub42, ptr %arrayidx.i.i116, align 4 %arrayidx.i.i116.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i.i116, i64 4 store float %sub, ptr %arrayidx.i.i116.sroa_idx, align 4 @@ -38552,43 +38552,26 @@ cond.end20: ; preds = %if.then3, %cond.tru %conv22 = sitofp i32 %spec.select63 to float %1 = tail call noundef float @llvm.fabs.f32(float %conv22) %cmp24 = fcmp olt float %1, %logarithmic_zero_epsilon - br i1 %cmp24, label %cond.true25, label %cond.end35 + br i1 %cmp24, label %cond.true25, label %if.else cond.true25: ; preds = %cond.end20 %cmp27 = icmp slt i32 %spec.select63, 0 %fneg29 = fneg float %logarithmic_zero_epsilon %cond32 = select i1 %cmp27, float %fneg29, float %logarithmic_zero_epsilon - br label %cond.end35 + br label %if.else -cond.end35: ; preds = %cond.end20, %cond.true25 +if.else: ; preds = %cond.true25, %cond.end20 %cond36 = phi float [ %cond32, %cond.true25 ], [ %conv22, %cond.end20 ] - %cmp38 = icmp eq i32 %spec.select, 0 - %cmp40 = icmp slt i32 %spec.select63, 0 - %or.cond = and i1 %cmp38, %cmp40 - br i1 %or.cond, label %if.then41, label %if.else - -if.then41: ; preds = %cond.end35 - %fneg42 = fneg float %logarithmic_zero_epsilon - br label %if.end51 - -if.else: ; preds = %cond.end35 %cmp44 = icmp eq i32 %spec.select63, 0 %cmp47 = icmp slt i32 %spec.select, 0 %or.cond35 = and i1 %cmp44, %cmp47 - br i1 %or.cond35, label %if.then48, label %if.end51 - -if.then48: ; preds = %if.else %fneg49 = fneg float %logarithmic_zero_epsilon - br label %if.end51 - -if.end51: ; preds = %if.else, %if.then48, %if.then41 - %v_max_fudged.0 = phi float [ %cond36, %if.then41 ], [ %fneg49, %if.then48 ], [ %cond36, %if.else ] - %v_min_fudged.0 = phi float [ %fneg42, %if.then41 ], [ %cond21, %if.then48 ], [ %cond21, %if.else ] + %v_max_fudged.0 = select i1 %or.cond35, float %fneg49, float %cond36 %conv52 = sitofp i32 %cond5.i39 to float - %cmp53 = fcmp ult float %v_min_fudged.0, %conv52 + %cmp53 = fcmp ult float %cond21, %conv52 br i1 %cmp53, label %if.else55, label %if.end123 -if.else55: ; preds = %if.end51 +if.else55: ; preds = %if.else %cmp57 = fcmp ugt float %v_max_fudged.0, %conv52 br i1 %cmp57, label %if.else59, label %if.end123 @@ -38614,7 +38597,7 @@ if.then74: ; preds = %if.else71 %fneg76 = fneg float %conv52 %div77 = fdiv float %fneg76, %logarithmic_zero_epsilon %call.i = tail call noundef float @logf(float noundef %div77) #39 - %fneg79 = fneg float %v_min_fudged.0 + %fneg79 = fneg float %cond21 %div80 = fdiv float %fneg79, %logarithmic_zero_epsilon %call.i40 = tail call noundef float @logf(float noundef %div80) #39 %div82 = fdiv float %call.i, %call.i40 @@ -38640,22 +38623,22 @@ if.else96: ; preds = %if.else59 if.then101: ; preds = %if.else96 %div105 = fdiv float %conv52, %v_max_fudged.0 %call.i43 = tail call noundef float @logf(float noundef %div105) #39 - %div109 = fdiv float %v_min_fudged.0, %v_max_fudged.0 + %div109 = fdiv float %cond21, %v_max_fudged.0 %call.i44 = tail call noundef float @logf(float noundef %div109) #39 %div111 = fdiv float %call.i43, %call.i44 %sub112 = fsub float 1.000000e+00, %div111 br label %if.end123 if.else113: ; preds = %if.else96 - %div115 = fdiv float %conv52, %v_min_fudged.0 + %div115 = fdiv float %conv52, %cond21 %call.i45 = tail call noundef float @logf(float noundef %div115) #39 - %div117 = fdiv float %v_max_fudged.0, %v_min_fudged.0 + %div117 = fdiv float %v_max_fudged.0, %cond21 %call.i46 = tail call noundef float @logf(float noundef %div117) #39 %div119 = fdiv float %call.i45, %call.i46 br label %if.end123 -if.end123: ; preds = %if.then62, %if.else55, %if.end51, %if.then101, %if.else113, %if.else85, %if.then74 - %result.0 = phi float [ %mul84, %if.then74 ], [ %2, %if.else85 ], [ %sub112, %if.then101 ], [ %div119, %if.else113 ], [ 0.000000e+00, %if.end51 ], [ 1.000000e+00, %if.else55 ], [ %div, %if.then62 ] +if.end123: ; preds = %if.then62, %if.else55, %if.else, %if.then101, %if.else113, %if.else85, %if.then74 + %result.0 = phi float [ %mul84, %if.then74 ], [ %2, %if.else85 ], [ %sub112, %if.then101 ], [ %div119, %if.else113 ], [ 0.000000e+00, %if.else ], [ 1.000000e+00, %if.else55 ], [ %div, %if.then62 ] %sub126 = fsub float 1.000000e+00, %result.0 %cond129 = select i1 %cmp4, float %sub126, float %result.0 br label %return @@ -39110,46 +39093,28 @@ cond.end22: ; preds = %if.then3, %cond.tru %conv24 = sitofp i64 %spec.select63 to double %1 = tail call noundef double @llvm.fabs.f64(double %conv24) %cmp27 = fcmp olt double %1, %conv10 - br i1 %cmp27, label %cond.true28, label %cond.end39 + br i1 %cmp27, label %cond.true28, label %if.else cond.true28: ; preds = %cond.end22 %cmp30 = icmp slt i64 %spec.select63, 0 %fneg32 = fneg float %logarithmic_zero_epsilon %cond35 = select i1 %cmp30, float %fneg32, float %logarithmic_zero_epsilon %conv36 = fpext float %cond35 to double - br label %cond.end39 + br label %if.else -cond.end39: ; preds = %cond.end22, %cond.true28 +if.else: ; preds = %cond.true28, %cond.end22 %cond40 = phi double [ %conv36, %cond.true28 ], [ %conv24, %cond.end22 ] - %cmp42 = icmp eq i64 %spec.select, 0 - %cmp44 = icmp slt i64 %spec.select63, 0 - %or.cond = and i1 %cmp42, %cmp44 - br i1 %or.cond, label %if.then45, label %if.else - -if.then45: ; preds = %cond.end39 - %fneg46 = fneg float %logarithmic_zero_epsilon - %conv47 = fpext float %fneg46 to double - br label %if.end57 - -if.else: ; preds = %cond.end39 %cmp49 = icmp eq i64 %spec.select63, 0 %cmp52 = icmp slt i64 %spec.select, 0 %or.cond35 = and i1 %cmp49, %cmp52 - br i1 %or.cond35, label %if.then53, label %if.end57 - -if.then53: ; preds = %if.else %fneg54 = fneg float %logarithmic_zero_epsilon %conv55 = fpext float %fneg54 to double - br label %if.end57 - -if.end57: ; preds = %if.else, %if.then53, %if.then45 - %v_max_fudged.0 = phi double [ %cond40, %if.then45 ], [ %conv55, %if.then53 ], [ %cond40, %if.else ] - %v_min_fudged.0 = phi double [ %conv47, %if.then45 ], [ %cond23, %if.then53 ], [ %cond23, %if.else ] + %v_max_fudged.0 = select i1 %or.cond35, double %conv55, double %cond40 %conv58 = sitofp i64 %cond5.i39 to double - %cmp59 = fcmp ult double %v_min_fudged.0, %conv58 + %cmp59 = fcmp ult double %cond23, %conv58 br i1 %cmp59, label %if.else61, label %if.end137 -if.else61: ; preds = %if.end57 +if.else61: ; preds = %if.else %cmp63 = fcmp ugt double %v_max_fudged.0, %conv58 br i1 %cmp63, label %if.else65, label %if.end137 @@ -39177,7 +39142,7 @@ if.then80: ; preds = %if.else77 %fneg82 = fneg double %conv58 %div84 = fdiv double %fneg82, %conv10 %call.i = tail call noundef double @log(double noundef %div84) #39 - %fneg86 = fneg double %v_min_fudged.0 + %fneg86 = fneg double %cond23 %div88 = fdiv double %fneg86, %conv10 %call.i40 = tail call noundef double @log(double noundef %div88) #39 %div90 = fdiv double %call.i, %call.i40 @@ -39205,7 +39170,7 @@ if.else108: ; preds = %if.else65 if.then113: ; preds = %if.else108 %div117 = fdiv double %conv58, %v_max_fudged.0 %call.i43 = tail call noundef double @log(double noundef %div117) #39 - %div121 = fdiv double %v_min_fudged.0, %v_max_fudged.0 + %div121 = fdiv double %cond23, %v_max_fudged.0 %call.i44 = tail call noundef double @log(double noundef %div121) #39 %div123 = fdiv double %call.i43, %call.i44 %conv124 = fptrunc double %div123 to float @@ -39213,16 +39178,16 @@ if.then113: ; preds = %if.else108 br label %if.end137 if.else126: ; preds = %if.else108 - %div128 = fdiv double %conv58, %v_min_fudged.0 + %div128 = fdiv double %conv58, %cond23 %call.i45 = tail call noundef double @log(double noundef %div128) #39 - %div130 = fdiv double %v_max_fudged.0, %v_min_fudged.0 + %div130 = fdiv double %v_max_fudged.0, %cond23 %call.i46 = tail call noundef double @log(double noundef %div130) #39 %div132 = fdiv double %call.i45, %call.i46 %conv133 = fptrunc double %div132 to float br label %if.end137 -if.end137: ; preds = %if.then68, %if.else61, %if.end57, %if.then113, %if.else126, %if.else94, %if.then80 - %result.0 = phi float [ %mul93, %if.then80 ], [ %2, %if.else94 ], [ %sub125, %if.then113 ], [ %conv133, %if.else126 ], [ 0.000000e+00, %if.end57 ], [ 1.000000e+00, %if.else61 ], [ %div, %if.then68 ] +if.end137: ; preds = %if.then68, %if.else61, %if.else, %if.then113, %if.else126, %if.else94, %if.then80 + %result.0 = phi float [ %mul93, %if.then80 ], [ %2, %if.else94 ], [ %sub125, %if.then113 ], [ %conv133, %if.else126 ], [ 0.000000e+00, %if.else ], [ 1.000000e+00, %if.else61 ], [ %div, %if.then68 ] %sub140 = fsub float 1.000000e+00, %result.0 %cond143 = select i1 %cmp4, float %sub140, float %result.0 br label %return diff --git a/bench/oiio/optimized/deepdata.cpp.ll b/bench/oiio/optimized/deepdata.cpp.ll index 775927b6b27..661e823e472 100644 --- a/bench/oiio/optimized/deepdata.cpp.ll +++ b/bench/oiio/optimized/deepdata.cpp.ll @@ -2311,13 +2311,14 @@ for.cond.preheader.i: ; preds = %if.end.i42 _ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph.i: ; preds = %for.cond.preheader.i %13 = load ptr, ptr %9, align 8, !noalias !22 - %14 = zext nneg i32 %7 to i64 + %14 = load ptr, ptr %11, align 8, !noalias !25 + %wide.trip.count.i = zext nneg i32 %7 to i64 br label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i -for.cond.i: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21.i +for.cond.i: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %14 - br i1 %exitcond.not.i, label %if.then19, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i, !llvm.loop !25 + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + br i1 %exitcond.not.i, label %if.then19, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i, !llvm.loop !28 _ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i: ; preds = %for.cond.i, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph.i %indvars.iv.i = phi i64 [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph.i ], [ %indvars.iv.next.i, %for.cond.i ] @@ -2329,36 +2330,24 @@ _ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i: ; preds = %for.cond.i, %17 = load i8, ptr %vecsemantics4.i.i.i, align 2, !noalias !22 %arraylen5.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i.i, i64 4 %18 = load i32, ptr %arraylen5.i.i.i, align 4, !noalias !22 - %cmp2.i9.i = icmp samesign ult i64 %indvars.iv.i, %14 - br i1 %cmp2.i9.i, label %cond.true.i15.i, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21.i - -cond.true.i15.i: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i - %19 = load ptr, ptr %11, align 8, !noalias !26 - %add.ptr.i.i17.i = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %19, i64 %indvars.iv.i - %20 = load i8, ptr %add.ptr.i.i17.i, align 4, !noalias !26 + %add.ptr.i.i17.i = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %14, i64 %indvars.iv.i + %19 = load i8, ptr %add.ptr.i.i17.i, align 4, !noalias !25 %aggregate3.i.i18.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17.i, i64 1 - %21 = load i8, ptr %aggregate3.i.i18.i, align 1, !noalias !26 + %20 = load i8, ptr %aggregate3.i.i18.i, align 1, !noalias !25 %vecsemantics4.i.i19.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17.i, i64 2 - %22 = load i8, ptr %vecsemantics4.i.i19.i, align 2, !noalias !26 + %21 = load i8, ptr %vecsemantics4.i.i19.i, align 2, !noalias !25 %arraylen5.i.i20.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17.i, i64 4 - %23 = load i32, ptr %arraylen5.i.i20.i, align 4, !noalias !26 - br label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21.i - -_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21.i: ; preds = %cond.true.i15.i, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i - %.sink8.i11.i = phi i8 [ %20, %cond.true.i15.i ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i ] - %.sink7.i12.i = phi i8 [ %21, %cond.true.i15.i ], [ 1, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i ] - %.sink6.i13.i = phi i8 [ %22, %cond.true.i15.i ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i ] - %.sink.i14.i = phi i32 [ %23, %cond.true.i15.i ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i ] - %cmp.i.i.i = icmp eq i8 %15, %.sink8.i11.i - %cmp7.i.i.i = icmp eq i8 %16, %.sink7.i12.i + %22 = load i32, ptr %arraylen5.i.i20.i, align 4, !noalias !25 + %cmp.i.i.i = icmp eq i8 %15, %19 + %cmp7.i.i.i = icmp eq i8 %16, %20 %or.cond.not73.not79.i = select i1 %cmp.i.i.i, i1 %cmp7.i.i.i, i1 false - %cmp12.i.i.i = icmp eq i8 %17, %.sink6.i13.i + %cmp12.i.i.i = icmp eq i8 %17, %21 %or.cond70.not72.not78.i = select i1 %or.cond.not73.not79.i, i1 %cmp12.i.i.i, i1 false - %cmp14.i.i.i = icmp eq i32 %18, %.sink.i14.i + %cmp14.i.i.i = icmp eq i32 %18, %22 %or.cond71.not.i = select i1 %or.cond70.not72.not78.i, i1 %cmp14.i.i.i, i1 false br i1 %or.cond71.not.i, label %for.cond.i, label %_ZNK18OpenImageIO_v2_6_08DeepData17same_channeltypesERKS0_.exit -_ZNK18OpenImageIO_v2_6_08DeepData17same_channeltypesERKS0_.exit: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21.i, %if.end17, %if.end.i42 +_ZNK18OpenImageIO_v2_6_08DeepData17same_channeltypesERKS0_.exit: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.i, %if.end17, %if.end.i42 %cmp2382 = icmp sgt i32 %2, 0 br i1 %cmp2382, label %for.body.lr.ph, label %return @@ -2370,68 +2359,68 @@ for.body.lr.ph: ; preds = %_ZNK18OpenImageIO_v if.then19: ; preds = %for.cond.i, %for.cond.preheader.i %call20 = tail call noundef ptr @_ZN18OpenImageIO_v2_6_08DeepData8data_ptrElii(ptr noundef nonnull align 8 dereferenceable(20) %this, i64 noundef %pixel, i32 noundef 0, i32 noundef 0) %call21 = tail call noundef ptr @_ZNK18OpenImageIO_v2_6_08DeepData8data_ptrElii(ptr noundef nonnull align 8 dereferenceable(20) %src, i64 noundef %srcpixel, i32 noundef 0, i32 noundef 0) - %24 = load ptr, ptr %this, align 8 - %m_samplesize.i = getelementptr inbounds nuw i8, ptr %24, i64 216 - %25 = load i64, ptr %m_samplesize.i, align 8 + %23 = load ptr, ptr %this, align 8 + %m_samplesize.i = getelementptr inbounds nuw i8, ptr %23, i64 216 + %24 = load i64, ptr %m_samplesize.i, align 8 %conv = sext i32 %6 to i64 - %mul = mul i64 %25, %conv + %mul = mul i64 %24, %conv tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %call20, ptr align 1 %call21, i64 %mul, i1 false) br label %return for.body: ; preds = %for.body.lr.ph, %for.inc42 %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.inc42 ] - %26 = load i32, ptr %m_nchannels.i, align 8, !noalias !29 - %27 = sext i32 %26 to i64 - %cmp2.i = icmp slt i64 %indvars.iv, %27 + %25 = load i32, ptr %m_nchannels.i, align 8, !noalias !29 + %26 = sext i32 %25 to i64 + %cmp2.i = icmp slt i64 %indvars.iv, %26 br i1 %cmp2.i, label %cond.true.i, label %if.else32 cond.true.i: ; preds = %for.body - %28 = load ptr, ptr %this, align 8, !noalias !29 - %29 = load ptr, ptr %28, align 8, !noalias !29 - %add.ptr.i.i46 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %29, i64 %indvars.iv - %30 = load i8, ptr %add.ptr.i.i46, align 4, !noalias !29 + %27 = load ptr, ptr %this, align 8, !noalias !29 + %28 = load ptr, ptr %27, align 8, !noalias !29 + %add.ptr.i.i46 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %28, i64 %indvars.iv + %29 = load i8, ptr %add.ptr.i.i46, align 4, !noalias !29 %aggregate3.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i46, i64 1 - %31 = load i8, ptr %aggregate3.i.i, align 1, !noalias !29 + %30 = load i8, ptr %aggregate3.i.i, align 1, !noalias !29 %arraylen5.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i46, i64 4 - %32 = load i32, ptr %arraylen5.i.i, align 4, !noalias !29 - %33 = icmp eq i8 %30, 6 - %34 = icmp eq i8 %31, 1 - %35 = select i1 %33, i1 %34, i1 false - %36 = icmp eq i32 %32, 0 - %37 = select i1 %35, i1 %36, i1 false - %38 = load i32, ptr %m_nchannels.i38, align 8 - %39 = sext i32 %38 to i64 - %cmp2.i53 = icmp slt i64 %indvars.iv, %39 - %or.cond76 = select i1 %37, i1 %cmp2.i53, i1 false + %31 = load i32, ptr %arraylen5.i.i, align 4, !noalias !29 + %32 = icmp eq i8 %29, 6 + %33 = icmp eq i8 %30, 1 + %34 = select i1 %32, i1 %33, i1 false + %35 = icmp eq i32 %31, 0 + %36 = select i1 %34, i1 %35, i1 false + %37 = load i32, ptr %m_nchannels.i38, align 8 + %38 = sext i32 %37 to i64 + %cmp2.i53 = icmp slt i64 %indvars.iv, %38 + %or.cond76 = select i1 %36, i1 %cmp2.i53, i1 false br i1 %or.cond76, label %cond.true.i59, label %if.else32 cond.true.i59: ; preds = %cond.true.i - %40 = load ptr, ptr %src, align 8, !noalias !32 - %41 = load ptr, ptr %40, align 8, !noalias !32 - %add.ptr.i.i61 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %41, i64 %indvars.iv - %42 = load i8, ptr %add.ptr.i.i61, align 4, !noalias !32 + %39 = load ptr, ptr %src, align 8, !noalias !32 + %40 = load ptr, ptr %39, align 8, !noalias !32 + %add.ptr.i.i61 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %40, i64 %indvars.iv + %41 = load i8, ptr %add.ptr.i.i61, align 4, !noalias !32 %aggregate3.i.i62 = getelementptr inbounds nuw i8, ptr %add.ptr.i.i61, i64 1 - %43 = load i8, ptr %aggregate3.i.i62, align 1, !noalias !32 + %42 = load i8, ptr %aggregate3.i.i62, align 1, !noalias !32 %arraylen5.i.i64 = getelementptr inbounds nuw i8, ptr %add.ptr.i.i61, i64 4 - %44 = load i32, ptr %arraylen5.i.i64, align 4, !noalias !32 - %45 = icmp eq i8 %42, 6 - %46 = icmp eq i8 %43, 1 - %47 = select i1 %45, i1 %46, i1 false - %48 = icmp eq i32 %44, 0 - %49 = select i1 %47, i1 %48, i1 false - br i1 %49, label %for.cond28.preheader, label %if.else32 + %43 = load i32, ptr %arraylen5.i.i64, align 4, !noalias !32 + %44 = icmp eq i8 %41, 6 + %45 = icmp eq i8 %42, 1 + %46 = select i1 %44, i1 %45, i1 false + %47 = icmp eq i32 %43, 0 + %48 = select i1 %46, i1 %47, i1 false + br i1 %48, label %for.cond28.preheader, label %if.else32 for.cond28.preheader: ; preds = %cond.true.i59 br i1 %cmp3578, label %for.body30.preheader, label %for.inc42 for.body30.preheader: ; preds = %for.cond28.preheader - %50 = trunc nuw nsw i64 %indvars.iv to i32 + %49 = trunc nuw nsw i64 %indvars.iv to i32 br label %for.body30 for.body30: ; preds = %for.body30.preheader, %for.body30 %s.081 = phi i32 [ %inc, %for.body30 ], [ 0, %for.body30.preheader ] - %call31 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData15deep_value_uintElii(ptr noundef nonnull align 8 dereferenceable(20) %src, i64 noundef %srcpixel, i32 noundef %50, i32 noundef %s.081) - tail call void @_ZN18OpenImageIO_v2_6_08DeepData14set_deep_valueEliij(ptr noundef nonnull align 8 dereferenceable(20) %this, i64 noundef %pixel, i32 noundef %50, i32 noundef %s.081, i32 noundef %call31) + %call31 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData15deep_value_uintElii(ptr noundef nonnull align 8 dereferenceable(20) %src, i64 noundef %srcpixel, i32 noundef %49, i32 noundef %s.081) + tail call void @_ZN18OpenImageIO_v2_6_08DeepData14set_deep_valueEliij(ptr noundef nonnull align 8 dereferenceable(20) %this, i64 noundef %pixel, i32 noundef %49, i32 noundef %s.081, i32 noundef %call31) %inc = add nuw nsw i32 %s.081, 1 %exitcond86.not = icmp eq i32 %inc, %6 br i1 %exitcond86.not, label %for.inc42, label %for.body30, !llvm.loop !35 @@ -2440,13 +2429,13 @@ if.else32: ; preds = %for.body, %cond.tru br i1 %cmp3578, label %for.body36.preheader, label %for.inc42 for.body36.preheader: ; preds = %if.else32 - %51 = trunc nuw nsw i64 %indvars.iv to i32 + %50 = trunc nuw nsw i64 %indvars.iv to i32 br label %for.body36 for.body36: ; preds = %for.body36.preheader, %for.body36 %s33.079 = phi i32 [ %inc39, %for.body36 ], [ 0, %for.body36.preheader ] - %call37 = tail call noundef float @_ZNK18OpenImageIO_v2_6_08DeepData10deep_valueElii(ptr noundef nonnull align 8 dereferenceable(20) %src, i64 noundef %srcpixel, i32 noundef %51, i32 noundef %s33.079) - tail call void @_ZN18OpenImageIO_v2_6_08DeepData14set_deep_valueEliif(ptr noundef nonnull align 8 dereferenceable(20) %this, i64 noundef %pixel, i32 noundef %51, i32 noundef %s33.079, float noundef %call37) + %call37 = tail call noundef float @_ZNK18OpenImageIO_v2_6_08DeepData10deep_valueElii(ptr noundef nonnull align 8 dereferenceable(20) %src, i64 noundef %srcpixel, i32 noundef %50, i32 noundef %s33.079) + tail call void @_ZN18OpenImageIO_v2_6_08DeepData14set_deep_valueEliif(ptr noundef nonnull align 8 dereferenceable(20) %this, i64 noundef %pixel, i32 noundef %50, i32 noundef %s33.079, float noundef %call37) %inc39 = add nuw nsw i32 %s33.079, 1 %exitcond.not = icmp eq i32 %inc39, %6 br i1 %exitcond.not, label %for.inc42, label %for.body36, !llvm.loop !36 @@ -4978,12 +4967,12 @@ for.cond.preheader: ; preds = %if.end _ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph: ; preds = %for.cond.preheader %6 = load ptr, ptr %2, align 8, !noalias !65 - %7 = zext nneg i32 %0 to i64 + %7 = load ptr, ptr %4, align 8, !noalias !68 %wide.trip.count = zext nneg i32 %0 to i64 br label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit -_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph - %indvars.iv = phi i64 [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph ], [ %indvars.iv.next, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21 ] +_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph + %indvars.iv = phi i64 [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit.lr.ph ], [ %indvars.iv.next, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] %add.ptr.i.i = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %6, i64 %indvars.iv %8 = load i8, ptr %add.ptr.i.i, align 4, !noalias !65 %aggregate3.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i, i64 1 @@ -4992,40 +4981,28 @@ _ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit: ; preds = %_ZNK18OpenImag %10 = load i8, ptr %vecsemantics4.i.i, align 2, !noalias !65 %arraylen5.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i.i, i64 4 %11 = load i32, ptr %arraylen5.i.i, align 4, !noalias !65 - %cmp2.i9 = icmp samesign ult i64 %indvars.iv, %7 - br i1 %cmp2.i9, label %cond.true.i15, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21 - -cond.true.i15: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit - %12 = load ptr, ptr %4, align 8, !noalias !68 - %add.ptr.i.i17 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %12, i64 %indvars.iv - %13 = load i8, ptr %add.ptr.i.i17, align 4, !noalias !68 + %add.ptr.i.i17 = getelementptr inbounds nuw %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %7, i64 %indvars.iv + %12 = load i8, ptr %add.ptr.i.i17, align 4, !noalias !68 %aggregate3.i.i18 = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17, i64 1 - %14 = load i8, ptr %aggregate3.i.i18, align 1, !noalias !68 + %13 = load i8, ptr %aggregate3.i.i18, align 1, !noalias !68 %vecsemantics4.i.i19 = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17, i64 2 - %15 = load i8, ptr %vecsemantics4.i.i19, align 2, !noalias !68 + %14 = load i8, ptr %vecsemantics4.i.i19, align 2, !noalias !68 %arraylen5.i.i20 = getelementptr inbounds nuw i8, ptr %add.ptr.i.i17, i64 4 - %16 = load i32, ptr %arraylen5.i.i20, align 4, !noalias !68 - br label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21 - -_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit, %cond.true.i15 - %.sink8.i11 = phi i8 [ %13, %cond.true.i15 ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] - %.sink7.i12 = phi i8 [ %14, %cond.true.i15 ], [ 1, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] - %.sink6.i13 = phi i8 [ %15, %cond.true.i15 ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] - %.sink.i14 = phi i32 [ %16, %cond.true.i15 ], [ 0, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] - %cmp.i.i = icmp eq i8 %8, %.sink8.i11 - %cmp7.i.i = icmp eq i8 %9, %.sink7.i12 + %15 = load i32, ptr %arraylen5.i.i20, align 4, !noalias !68 + %cmp.i.i = icmp eq i8 %8, %12 + %cmp7.i.i = icmp eq i8 %9, %13 %or.cond.not73.not79 = select i1 %cmp.i.i, i1 %cmp7.i.i, i1 false - %cmp12.i.i = icmp eq i8 %10, %.sink6.i13 + %cmp12.i.i = icmp eq i8 %10, %14 %or.cond70.not72.not78 = select i1 %or.cond.not73.not79, i1 %cmp12.i.i, i1 false - %cmp14.i.i = icmp eq i32 %11, %.sink.i14 + %cmp14.i.i = icmp eq i32 %11, %15 %or.cond71.not = select i1 %or.cond70.not72.not78, i1 %cmp14.i.i, i1 false %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp ne i64 %indvars.iv.next, %wide.trip.count %or.cond.not = select i1 %or.cond71.not, i1 %exitcond.not, i1 false - br i1 %or.cond.not, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit, label %return, !llvm.loop !25 + br i1 %or.cond.not, label %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit, label %return, !llvm.loop !28 -return: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21, %for.cond.preheader, %if.end, %entry - %retval.0 = phi i1 [ false, %entry ], [ false, %if.end ], [ true, %for.cond.preheader ], [ %or.cond71.not, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit21 ] +return: ; preds = %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit, %for.cond.preheader, %if.end, %entry + %retval.0 = phi i1 [ false, %entry ], [ false, %if.end ], [ true, %for.cond.preheader ], [ %or.cond71.not, %_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi.exit ] ret i1 %retval.0 } @@ -12490,10 +12467,10 @@ attributes #34 = { noreturn nounwind } !22 = !{!23} !23 = distinct !{!23, !24, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi: %agg.result"} !24 = distinct !{!24, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi"} -!25 = distinct !{!25, !5} -!26 = !{!27} -!27 = distinct !{!27, !28, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi: %agg.result"} -!28 = distinct !{!28, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi"} +!25 = !{!26} +!26 = distinct !{!26, !27, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi: %agg.result"} +!27 = distinct !{!27, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi"} +!28 = distinct !{!28, !5} !29 = !{!30} !30 = distinct !{!30, !31, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi: %agg.result"} !31 = distinct !{!31, !"_ZNK18OpenImageIO_v2_6_08DeepData11channeltypeEi"} diff --git a/bench/opencv/optimized/stereo_binary_bm.cpp.ll b/bench/opencv/optimized/stereo_binary_bm.cpp.ll index 0e1f1c90c93..94325816292 100644 --- a/bench/opencv/optimized/stereo_binary_bm.cpp.ll +++ b/bench/opencv/optimized/stereo_binary_bm.cpp.ll @@ -4520,8 +4520,8 @@ define linkonce_odr hidden void @_ZNK2cv6stereo16PrefilterInvokerclERKNS_5RangeE %14 = sext i32 %5 to i64 br label %15 -15: ; preds = %.lr.ph, %373 - %indvars.iv = phi i64 [ %14, %.lr.ph ], [ %indvars.iv.next, %373 ] +15: ; preds = %.lr.ph, %371 + %indvars.iv = phi i64 [ %14, %.lr.ph ], [ %indvars.iv.next, %371 ] %16 = load ptr, ptr %9, align 8 %17 = load i32, ptr %16, align 4 %18 = icmp eq i32 %17, 0 @@ -4879,7 +4879,7 @@ define linkonce_odr hidden void @_ZNK2cv6stereo16PrefilterInvokerclERKNS_5RangeE _ZN2cv6stereoL13prefilterNormERKNS_3MatERS1_iiPh.exit: ; preds = %._crit_edge196.i, %.preheader172.i call void @llvm.lifetime.end.p0(i64 2816, ptr nonnull %4) - br label %373 + br label %371 242: ; preds = %15 %243 = getelementptr inbounds nuw i8, ptr %16, i64 8 @@ -4928,177 +4928,177 @@ _ZN2cv6stereoL13prefilterNormERKNS_3MatERS1_iiPh.exit: ; preds = %._crit_edge196 %273 = add i32 %248, -1 %274 = sext i32 %273 to i64 %275 = icmp sgt i32 %248, 2 - br i1 %275, label %.lr.ph96.split.us.preheader.i, label %.lr.ph96.split.split.us.preheader.i + br i1 %275, label %.lr.ph96.split.us.preheader.i, label %.lr.ph96.split.preheader.i + +.lr.ph96.split.preheader.i: ; preds = %.lr.ph96.i + %276 = zext nneg i32 %265 to i64 + br label %.lr.ph96.split.i .lr.ph96.split.us.preheader.i: ; preds = %.lr.ph96.i - %276 = add nsw i32 %249, -2 - %277 = zext nneg i32 %276 to i64 - %278 = zext nneg i32 %265 to i64 + %277 = add nsw i32 %249, -2 + %278 = zext nneg i32 %277 to i64 + %279 = zext nneg i32 %265 to i64 %wide.trip.count.i = zext nneg i32 %273 to i64 br label %.lr.ph96.split.us.i .lr.ph96.split.us.i: ; preds = %._crit_edge.us.i14, %.lr.ph96.split.us.preheader.i - %indvars.iv119.i = phi i64 [ 0, %.lr.ph96.split.us.preheader.i ], [ %indvars.iv.next120.i, %._crit_edge.us.i14 ] - %279 = load ptr, ptr %267, align 8 - %280 = load ptr, ptr %268, align 8 - %281 = load i64, ptr %280, align 8 - %282 = mul i64 %281, %indvars.iv119.i - %283 = getelementptr inbounds i8, ptr %279, i64 %282 - %.not.us.i = icmp eq i64 %indvars.iv119.i, 0 - %284 = load i64, ptr %269, align 8 - %285 = sub i64 0, %284 - %.pn.i = select i1 %.not.us.i, i64 %284, i64 %285 - %286 = getelementptr inbounds i8, ptr %283, i64 %.pn.i - %287 = getelementptr inbounds i8, ptr %283, i64 %284 - %288 = icmp samesign ult i64 %indvars.iv119.i, %277 - %289 = shl i64 %284, 1 - %.idx.us.i = select i1 %288, i64 %289, i64 0 - %290 = getelementptr inbounds i8, ptr %283, i64 %.idx.us.i - %291 = load ptr, ptr %270, align 8 - %292 = load ptr, ptr %271, align 8 - %293 = load i64, ptr %292, align 8 - %294 = mul i64 %293, %indvars.iv119.i - %295 = getelementptr inbounds i8, ptr %291, i64 %294 - %296 = load i64, ptr %272, align 8 - %297 = getelementptr inbounds i8, ptr %295, i64 %296 - %298 = getelementptr inbounds i8, ptr %297, i64 %274 - store i8 %264, ptr %298, align 1 - store i8 %264, ptr %297, align 1 - %299 = getelementptr inbounds i8, ptr %295, i64 %274 + %indvars.iv114.i = phi i64 [ 0, %.lr.ph96.split.us.preheader.i ], [ %indvars.iv.next115.i, %._crit_edge.us.i14 ] + %280 = load ptr, ptr %267, align 8 + %281 = load ptr, ptr %268, align 8 + %282 = load i64, ptr %281, align 8 + %283 = mul i64 %282, %indvars.iv114.i + %284 = getelementptr inbounds i8, ptr %280, i64 %283 + %.not.us.i = icmp eq i64 %indvars.iv114.i, 0 + %285 = load i64, ptr %269, align 8 + %286 = sub i64 0, %285 + %.v.i = select i1 %.not.us.i, i64 %285, i64 %286 + %287 = getelementptr inbounds i8, ptr %284, i64 %.v.i + %288 = getelementptr inbounds i8, ptr %284, i64 %285 + %289 = icmp samesign ult i64 %indvars.iv114.i, %278 + %290 = shl i64 %285, 1 + %.idx.us.i = select i1 %289, i64 %290, i64 0 + %291 = getelementptr inbounds i8, ptr %284, i64 %.idx.us.i + %292 = load ptr, ptr %270, align 8 + %293 = load ptr, ptr %271, align 8 + %294 = load i64, ptr %293, align 8 + %295 = mul i64 %294, %indvars.iv114.i + %296 = getelementptr inbounds i8, ptr %292, i64 %295 + %297 = load i64, ptr %272, align 8 + %298 = getelementptr inbounds i8, ptr %296, i64 %297 + %299 = getelementptr inbounds i8, ptr %298, i64 %274 store i8 %264, ptr %299, align 1 - store i8 %264, ptr %295, align 1 - br label %300 - -300: ; preds = %300, %.lr.ph96.split.us.i - %indvars.iv115.i = phi i64 [ 1, %.lr.ph96.split.us.i ], [ %indvars.iv.next116.i, %300 ] - %indvars.iv.next116.i = add nuw nsw i64 %indvars.iv115.i, 1 - %301 = getelementptr inbounds nuw i8, ptr %286, i64 %indvars.iv.next116.i - %302 = load i8, ptr %301, align 1 - %303 = zext i8 %302 to i32 - %304 = add nsw i64 %indvars.iv115.i, -1 - %305 = getelementptr inbounds i8, ptr %286, i64 %304 - %306 = load i8, ptr %305, align 1 - %307 = zext i8 %306 to i32 - %308 = getelementptr inbounds nuw i8, ptr %283, i64 %indvars.iv.next116.i - %309 = load i8, ptr %308, align 1 - %310 = zext i8 %309 to i32 - %311 = getelementptr inbounds i8, ptr %283, i64 %304 - %312 = load i8, ptr %311, align 1 - %313 = zext i8 %312 to i32 - %314 = sub nsw i32 %310, %313 - %315 = getelementptr inbounds nuw i8, ptr %287, i64 %indvars.iv.next116.i - %316 = load i8, ptr %315, align 1 - %317 = zext i8 %316 to i32 - %318 = getelementptr inbounds i8, ptr %287, i64 %304 - %319 = load i8, ptr %318, align 1 - %320 = zext i8 %319 to i32 - %321 = sub nsw i32 %317, %320 - %322 = getelementptr inbounds nuw i8, ptr %290, i64 %indvars.iv.next116.i - %323 = load i8, ptr %322, align 1 - %324 = zext i8 %323 to i32 - %325 = getelementptr inbounds i8, ptr %290, i64 %304 - %326 = load i8, ptr %325, align 1 - %327 = zext i8 %326 to i32 - %328 = shl nsw i32 %314, 1 - %329 = or disjoint i32 %303, 1024 - %330 = sub nuw nsw i32 %329, %307 - %331 = add nsw i32 %330, %328 - %332 = add nsw i32 %331, %321 - %333 = zext nneg i32 %332 to i64 - %334 = getelementptr inbounds nuw [2304 x i8], ptr %3, i64 0, i64 %333 - %335 = load i8, ptr %334, align 1 - %336 = shl nsw i32 %321, 1 - %337 = add nsw i32 %314, 1024 - %338 = add nuw nsw i32 %337, %324 - %339 = add nsw i32 %338, %336 - %340 = sub nuw nsw i32 %339, %327 - %341 = zext nneg i32 %340 to i64 - %342 = getelementptr inbounds nuw [2304 x i8], ptr %3, i64 0, i64 %341 - %343 = load i8, ptr %342, align 1 - %344 = getelementptr inbounds nuw i8, ptr %295, i64 %indvars.iv115.i - store i8 %335, ptr %344, align 1 - %345 = getelementptr inbounds nuw i8, ptr %297, i64 %indvars.iv115.i - store i8 %343, ptr %345, align 1 - %exitcond118.not.i = icmp eq i64 %indvars.iv.next116.i, %wide.trip.count.i - br i1 %exitcond118.not.i, label %._crit_edge.us.i14, label %300, !llvm.loop !42 - -._crit_edge.us.i14: ; preds = %300 - %indvars.iv.next120.i = add nuw nsw i64 %indvars.iv119.i, 2 - %346 = icmp samesign ult i64 %indvars.iv.next120.i, %278 - br i1 %346, label %.lr.ph96.split.us.i, label %.preheader.loopexit.i, !llvm.loop !43 - -.lr.ph96.split.split.us.preheader.i: ; preds = %.lr.ph96.i - %347 = zext nneg i32 %265 to i64 - br label %.lr.ph96.split.split.us.i - -.lr.ph96.split.split.us.i: ; preds = %.lr.ph96.split.split.us.i, %.lr.ph96.split.split.us.preheader.i - %indvars.iv112.i = phi i64 [ 0, %.lr.ph96.split.split.us.preheader.i ], [ %indvars.iv.next113.i, %.lr.ph96.split.split.us.i ] - %348 = load ptr, ptr %270, align 8 - %349 = load ptr, ptr %271, align 8 - %350 = load i64, ptr %349, align 8 - %351 = mul i64 %350, %indvars.iv112.i - %352 = getelementptr inbounds i8, ptr %348, i64 %351 - %353 = load i64, ptr %272, align 8 - %354 = getelementptr inbounds i8, ptr %352, i64 %353 - %355 = getelementptr inbounds i8, ptr %354, i64 %274 - store i8 %264, ptr %355, align 1 - store i8 %264, ptr %354, align 1 - %356 = getelementptr inbounds i8, ptr %352, i64 %274 - store i8 %264, ptr %356, align 1 - store i8 %264, ptr %352, align 1 - %indvars.iv.next113.i = add nuw nsw i64 %indvars.iv112.i, 2 - %357 = icmp samesign ult i64 %indvars.iv.next113.i, %347 - br i1 %357, label %.lr.ph96.split.split.us.i, label %.preheader.loopexit108.i, !llvm.loop !43 + store i8 %264, ptr %298, align 1 + %300 = getelementptr inbounds i8, ptr %296, i64 %274 + store i8 %264, ptr %300, align 1 + store i8 %264, ptr %296, align 1 + br label %301 + +301: ; preds = %301, %.lr.ph96.split.us.i + %indvars.iv110.i = phi i64 [ 1, %.lr.ph96.split.us.i ], [ %indvars.iv.next111.i, %301 ] + %indvars.iv.next111.i = add nuw nsw i64 %indvars.iv110.i, 1 + %302 = getelementptr inbounds nuw i8, ptr %287, i64 %indvars.iv.next111.i + %303 = load i8, ptr %302, align 1 + %304 = zext i8 %303 to i32 + %305 = add nsw i64 %indvars.iv110.i, -1 + %306 = getelementptr inbounds i8, ptr %287, i64 %305 + %307 = load i8, ptr %306, align 1 + %308 = zext i8 %307 to i32 + %309 = getelementptr inbounds nuw i8, ptr %284, i64 %indvars.iv.next111.i + %310 = load i8, ptr %309, align 1 + %311 = zext i8 %310 to i32 + %312 = getelementptr inbounds i8, ptr %284, i64 %305 + %313 = load i8, ptr %312, align 1 + %314 = zext i8 %313 to i32 + %315 = sub nsw i32 %311, %314 + %316 = getelementptr inbounds nuw i8, ptr %288, i64 %indvars.iv.next111.i + %317 = load i8, ptr %316, align 1 + %318 = zext i8 %317 to i32 + %319 = getelementptr inbounds i8, ptr %288, i64 %305 + %320 = load i8, ptr %319, align 1 + %321 = zext i8 %320 to i32 + %322 = sub nsw i32 %318, %321 + %323 = getelementptr inbounds nuw i8, ptr %291, i64 %indvars.iv.next111.i + %324 = load i8, ptr %323, align 1 + %325 = zext i8 %324 to i32 + %326 = getelementptr inbounds i8, ptr %291, i64 %305 + %327 = load i8, ptr %326, align 1 + %328 = zext i8 %327 to i32 + %329 = shl nsw i32 %315, 1 + %330 = or disjoint i32 %304, 1024 + %331 = sub nuw nsw i32 %330, %308 + %332 = add nsw i32 %331, %329 + %333 = add nsw i32 %332, %322 + %334 = zext nneg i32 %333 to i64 + %335 = getelementptr inbounds nuw [2304 x i8], ptr %3, i64 0, i64 %334 + %336 = load i8, ptr %335, align 1 + %337 = shl nsw i32 %322, 1 + %338 = add nsw i32 %315, 1024 + %339 = add nuw nsw i32 %338, %325 + %340 = add nsw i32 %339, %337 + %341 = sub nuw nsw i32 %340, %328 + %342 = zext nneg i32 %341 to i64 + %343 = getelementptr inbounds nuw [2304 x i8], ptr %3, i64 0, i64 %342 + %344 = load i8, ptr %343, align 1 + %345 = getelementptr inbounds nuw i8, ptr %296, i64 %indvars.iv110.i + store i8 %336, ptr %345, align 1 + %346 = getelementptr inbounds nuw i8, ptr %298, i64 %indvars.iv110.i + store i8 %344, ptr %346, align 1 + %exitcond113.not.i = icmp eq i64 %indvars.iv.next111.i, %wide.trip.count.i + br i1 %exitcond113.not.i, label %._crit_edge.us.i14, label %301, !llvm.loop !42 + +._crit_edge.us.i14: ; preds = %301 + %indvars.iv.next115.i = add nuw nsw i64 %indvars.iv114.i, 2 + %347 = icmp samesign ult i64 %indvars.iv.next115.i, %279 + br i1 %347, label %.lr.ph96.split.us.i, label %.preheader.loopexit.i, !llvm.loop !43 .preheader.loopexit.i: ; preds = %._crit_edge.us.i14 - %358 = trunc nuw nsw i64 %indvars.iv.next120.i to i32 + %348 = trunc nuw nsw i64 %indvars.iv.next115.i to i32 br label %.preheader.i13 -.preheader.loopexit108.i: ; preds = %.lr.ph96.split.split.us.i - %359 = trunc nuw nsw i64 %indvars.iv.next113.i to i32 +.preheader.loopexit104.i: ; preds = %.lr.ph96.split.i + %349 = trunc nuw nsw i64 %indvars.iv.next108.i to i32 br label %.preheader.i13 -.preheader.i13: ; preds = %.preheader.loopexit108.i, %.preheader.loopexit.i, %263 - %.086.lcssa.i = phi i32 [ 0, %263 ], [ %358, %.preheader.loopexit.i ], [ %359, %.preheader.loopexit108.i ] - %360 = icmp slt i32 %.086.lcssa.i, %249 - br i1 %360, label %.lr.ph103.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit - -.lr.ph103.i: ; preds = %.preheader.i13 - %361 = getelementptr inbounds nuw i8, ptr %22, i64 16 - %362 = getelementptr inbounds nuw i8, ptr %22, i64 72 - %363 = icmp sgt i32 %248, 0 - br i1 %363, label %.lr.ph.us105.preheader.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit - -.lr.ph.us105.preheader.i: ; preds = %.lr.ph103.i - %364 = zext nneg i32 %248 to i64 - %365 = zext i32 %.086.lcssa.i to i64 - br label %.lr.ph.us105.i - -.lr.ph.us105.i: ; preds = %.lr.ph.us105.i, %.lr.ph.us105.preheader.i - %indvars.iv125.i = phi i64 [ %365, %.lr.ph.us105.preheader.i ], [ %indvars.iv.next126.i, %.lr.ph.us105.i ] - %366 = load ptr, ptr %361, align 8 - %367 = load ptr, ptr %362, align 8 - %368 = load i64, ptr %367, align 8 - %369 = mul i64 %368, %indvars.iv125.i - %370 = getelementptr inbounds i8, ptr %366, i64 %369 - tail call void @llvm.memset.p0.i64(ptr align 1 %370, i8 %264, i64 %364, i1 false) - %indvars.iv.next126.i = add nuw nsw i64 %indvars.iv125.i, 1 - %371 = trunc nuw i64 %indvars.iv.next126.i to i32 - %372 = icmp sgt i32 %249, %371 - br i1 %372, label %.lr.ph.us105.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit, !llvm.loop !44 - -_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit: ; preds = %.lr.ph.us105.i, %.preheader.i13, %.lr.ph103.i +.preheader.i13: ; preds = %.preheader.loopexit104.i, %.preheader.loopexit.i, %263 + %.086.lcssa.i = phi i32 [ 0, %263 ], [ %348, %.preheader.loopexit.i ], [ %349, %.preheader.loopexit104.i ] + %350 = icmp slt i32 %.086.lcssa.i, %249 + br i1 %350, label %.lr.ph99.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit + +.lr.ph99.i: ; preds = %.preheader.i13 + %351 = getelementptr inbounds nuw i8, ptr %22, i64 16 + %352 = getelementptr inbounds nuw i8, ptr %22, i64 72 + %353 = icmp sgt i32 %248, 0 + br i1 %353, label %.lr.ph.us101.preheader.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit + +.lr.ph.us101.preheader.i: ; preds = %.lr.ph99.i + %354 = zext nneg i32 %248 to i64 + %355 = zext nneg i32 %.086.lcssa.i to i64 + %wide.trip.count123.i = zext i32 %249 to i64 + br label %.lr.ph.us101.i + +.lr.ph.us101.i: ; preds = %.lr.ph.us101.i, %.lr.ph.us101.preheader.i + %indvars.iv120.i = phi i64 [ %355, %.lr.ph.us101.preheader.i ], [ %indvars.iv.next121.i, %.lr.ph.us101.i ] + %356 = load ptr, ptr %351, align 8 + %357 = load ptr, ptr %352, align 8 + %358 = load i64, ptr %357, align 8 + %359 = mul i64 %358, %indvars.iv120.i + %360 = getelementptr inbounds i8, ptr %356, i64 %359 + tail call void @llvm.memset.p0.i64(ptr align 1 %360, i8 %264, i64 %354, i1 false) + %indvars.iv.next121.i = add nuw nsw i64 %indvars.iv120.i, 1 + %exitcond124.not.i = icmp eq i64 %indvars.iv.next121.i, %wide.trip.count123.i + br i1 %exitcond124.not.i, label %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit, label %.lr.ph.us101.i, !llvm.loop !44 + +.lr.ph96.split.i: ; preds = %.lr.ph96.split.i, %.lr.ph96.split.preheader.i + %indvars.iv107.i = phi i64 [ 0, %.lr.ph96.split.preheader.i ], [ %indvars.iv.next108.i, %.lr.ph96.split.i ] + %361 = load ptr, ptr %270, align 8 + %362 = load ptr, ptr %271, align 8 + %363 = load i64, ptr %362, align 8 + %364 = mul i64 %363, %indvars.iv107.i + %365 = getelementptr inbounds i8, ptr %361, i64 %364 + %366 = load i64, ptr %272, align 8 + %367 = getelementptr inbounds i8, ptr %365, i64 %366 + %368 = getelementptr inbounds i8, ptr %367, i64 %274 + store i8 %264, ptr %368, align 1 + store i8 %264, ptr %367, align 1 + %369 = getelementptr inbounds i8, ptr %365, i64 %274 + store i8 %264, ptr %369, align 1 + store i8 %264, ptr %365, align 1 + %indvars.iv.next108.i = add nuw nsw i64 %indvars.iv107.i, 2 + %370 = icmp samesign ult i64 %indvars.iv.next108.i, %276 + br i1 %370, label %.lr.ph96.split.i, label %.preheader.loopexit104.i, !llvm.loop !43 + +_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit: ; preds = %.lr.ph.us101.i, %.preheader.i13, %.lr.ph99.i call void @llvm.lifetime.end.p0(i64 2304, ptr nonnull %3) - br label %373 + br label %371 -373: ; preds = %_ZN2cv6stereoL13prefilterNormERKNS_3MatERS1_iiPh.exit, %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit +371: ; preds = %_ZN2cv6stereoL13prefilterNormERKNS_3MatERS1_iiPh.exit, %_ZN2cv6stereoL15prefilterXSobelERKNS_3MatERS1_i.exit %indvars.iv.next = add nsw i64 %indvars.iv, 1 - %374 = load i32, ptr %6, align 4 - %375 = sext i32 %374 to i64 - %376 = icmp slt i64 %indvars.iv.next, %375 - br i1 %376, label %15, label %._crit_edge, !llvm.loop !45 + %372 = load i32, ptr %6, align 4 + %373 = sext i32 %372 to i64 + %374 = icmp slt i64 %indvars.iv.next, %373 + br i1 %374, label %15, label %._crit_edge, !llvm.loop !45 -._crit_edge: ; preds = %373, %2 +._crit_edge: ; preds = %371, %2 ret void } diff --git a/bench/openjdk/optimized/shenandoahSimpleBitMap.ll b/bench/openjdk/optimized/shenandoahSimpleBitMap.ll index 3cab23ab09b..bbcfb8d8d06 100644 --- a/bench/openjdk/optimized/shenandoahSimpleBitMap.ll +++ b/bench/openjdk/optimized/shenandoahSimpleBitMap.ll @@ -238,29 +238,31 @@ define hidden noundef i64 @_ZNK22ShenandoahSimpleBitMap31find_first_consecutive_ %.047.us = phi i64 [ %.047.us.be, %.split.us.backedge ], [ %8, %7 ] %.046.us = phi i64 [ %.046.us.be, %.split.us.backedge ], [ %1, %7 ] %16 = icmp eq i64 %.152.us, 0 - br i1 %16, label %60, label %.lr.ph.i.us + br i1 %16, label %66, label %.lr.ph.i.preheader.us -.lr.ph.i.us: ; preds = %.split.us, %56 - %.02127.i.us = phi i64 [ %57, %56 ], [ %.046.us, %.split.us ] - %.02226.i.us = phi i64 [ %58, %56 ], [ %3, %.split.us ] - %17 = ashr i64 %.02127.i.us, 6 - %18 = and i64 %.02127.i.us, 63 +.lr.ph.i.preheader.us: ; preds = %.split.us + %17 = ashr i64 %.046.us, 6 + %18 = and i64 %.046.us, 63 %19 = getelementptr inbounds i64, ptr %11, i64 %17 %20 = load i64, ptr %19, align 8 %21 = sub nuw nsw i64 64, %18 %22 = lshr i64 %20, %18 - %.not.i.us = icmp eq i64 %22, -1 + %.not.i67.us = icmp eq i64 %22, -1 %23 = xor i64 %22, -1 %24 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %23, i1 true) - %.0.i.us = select i1 %.not.i.us, i64 %21, i64 %24 - %.not25.i.us = icmp samesign ult i64 %.0.i.us, %.02226.i.us - br i1 %.not25.i.us, label %25, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread - -25: ; preds = %.lr.ph.i.us - %26 = icmp eq i64 %.0.i.us, %21 - br i1 %26, label %56, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.us - -_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.us: ; preds = %25 + %.0.i68.us = select i1 %.not.i67.us, i64 %21, i64 %24 + %.not25.i69.us = icmp samesign ult i64 %.0.i68.us, %3 + br i1 %.not25.i69.us, label %.lr.ph.us, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread + +.lr.ph.us: ; preds = %.lr.ph.i.preheader.us, %.lr.ph.i.us + %.0.i72.us = phi i64 [ %.0.i.us, %.lr.ph.i.us ], [ %.0.i68.us, %.lr.ph.i.preheader.us ] + %25 = phi i64 [ %62, %.lr.ph.i.us ], [ %21, %.lr.ph.i.preheader.us ] + %.02226.i71.us = phi i64 [ %57, %.lr.ph.i.us ], [ %3, %.lr.ph.i.preheader.us ] + %.02127.i70.us = phi i64 [ %56, %.lr.ph.i.us ], [ %.046.us, %.lr.ph.i.preheader.us ] + %26 = icmp eq i64 %.0.i72.us, %25 + br i1 %26, label %.lr.ph.i.us, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.us + +_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.us: ; preds = %.lr.ph.us %27 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %.152.us, i1 true) %28 = shl i64 %.047.us, 6 %29 = or disjoint i64 %28, %27 @@ -316,53 +318,63 @@ _ZNK22ShenandoahSimpleBitMap19count_trailing_onesEl.exit.us: ; preds = %.lr.ph.i %55 = and i64 %52, %notmask61.us br label %.split.us.backedge -56: ; preds = %25 - %57 = add i64 %21, %.02127.i.us - %58 = sub nsw i64 %.02226.i.us, %21 - %59 = icmp sgt i64 %58, 0 - br i1 %59, label %.lr.ph.i.us, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, !llvm.loop !10 - -60: ; preds = %.split.us +.lr.ph.i.us: ; preds = %.lr.ph.us + %56 = add i64 %.0.i72.us, %.02127.i70.us + %57 = sub nsw i64 %.02226.i71.us, %.0.i72.us + %58 = ashr i64 %56, 6 + %59 = and i64 %56, 63 + %60 = getelementptr inbounds i64, ptr %11, i64 %58 + %61 = load i64, ptr %60, align 8 + %62 = sub nuw nsw i64 64, %59 + %63 = lshr i64 %61, %59 + %.not.i.us = icmp eq i64 %63, -1 + %64 = xor i64 %63, -1 + %65 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %64, i1 true) + %.0.i.us = select i1 %.not.i.us, i64 %62, i64 %65 + %.not25.i.us = icmp samesign ult i64 %.0.i.us, %57 + br i1 %.not25.i.us, label %.lr.ph.us, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread + +66: ; preds = %.split.us %reass.sub.us = sub i64 %.046.us, %.049.us - %61 = add i64 %reass.sub.us, 64 - %62 = icmp sgt i64 %61, %5 - br i1 %62, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, label %63 - -63: ; preds = %60 - %64 = add i64 %.047.us, 1 - %65 = getelementptr inbounds i64, ptr %11, i64 %64 - %66 = load i64, ptr %65, align 8 + %67 = add i64 %reass.sub.us, 64 + %68 = icmp sgt i64 %67, %5 + br i1 %68, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, label %69 + +69: ; preds = %66 + %70 = add i64 %.047.us, 1 + %71 = getelementptr inbounds i64, ptr %11, i64 %70 + %72 = load i64, ptr %71, align 8 br label %.split.us.backedge -.split.us.backedge: ; preds = %63, %54, %49 - %.152.us.be = phi i64 [ %66, %63 ], [ %55, %54 ], [ %52, %49 ] - %.049.us.be = phi i64 [ 0, %63 ], [ %53, %54 ], [ 0, %49 ] - %.047.us.be = phi i64 [ %64, %63 ], [ %50, %54 ], [ %50, %49 ] - %.046.us.be = phi i64 [ %61, %63 ], [ %47, %54 ], [ %47, %49 ] +.split.us.backedge: ; preds = %69, %54, %49 + %.152.us.be = phi i64 [ %72, %69 ], [ %55, %54 ], [ %52, %49 ] + %.049.us.be = phi i64 [ 0, %69 ], [ %53, %54 ], [ 0, %49 ] + %.047.us.be = phi i64 [ %70, %69 ], [ %50, %54 ], [ %50, %49 ] + %.046.us.be = phi i64 [ %67, %69 ], [ %47, %54 ], [ %47, %49 ] br label %.split.us, !llvm.loop !12 .split: ; preds = %7 - %67 = icmp eq i64 %14, 0 - br i1 %67, label %.lr.ph, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread - -.lr.ph: ; preds = %.split, %70 - %.04671 = phi i64 [ %68, %70 ], [ %1, %.split ] - %.04770 = phi i64 [ %71, %70 ], [ %8, %.split ] - %.04969 = phi i64 [ 0, %70 ], [ %9, %.split ] - %reass.sub = sub i64 %.04671, %.04969 - %68 = add i64 %reass.sub, 64 - %69 = icmp sgt i64 %68, %5 - br i1 %69, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, label %70 - -70: ; preds = %.lr.ph - %71 = add i64 %.04770, 1 - %72 = getelementptr inbounds i64, ptr %11, i64 %71 - %73 = load i64, ptr %72, align 8 - %74 = icmp eq i64 %73, 0 - br i1 %74, label %.lr.ph, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, !llvm.loop !12 - -_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread: ; preds = %.lr.ph, %70, %60, %_ZNK22ShenandoahSimpleBitMap19count_trailing_onesEl.exit.us, %56, %.lr.ph.i.us, %.split, %4 - %.0 = phi i64 [ %2, %4 ], [ %1, %.split ], [ %.046.us, %.lr.ph.i.us ], [ %.046.us, %56 ], [ %2, %_ZNK22ShenandoahSimpleBitMap19count_trailing_onesEl.exit.us ], [ %2, %60 ], [ %68, %70 ], [ %2, %.lr.ph ] + %73 = icmp eq i64 %14, 0 + br i1 %73, label %.lr.ph, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread + +.lr.ph: ; preds = %.split, %76 + %.04679 = phi i64 [ %74, %76 ], [ %1, %.split ] + %.04778 = phi i64 [ %77, %76 ], [ %8, %.split ] + %.04977 = phi i64 [ 0, %76 ], [ %9, %.split ] + %reass.sub = sub i64 %.04679, %.04977 + %74 = add i64 %reass.sub, 64 + %75 = icmp sgt i64 %74, %5 + br i1 %75, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, label %76 + +76: ; preds = %.lr.ph + %77 = add i64 %.04778, 1 + %78 = getelementptr inbounds i64, ptr %11, i64 %77 + %79 = load i64, ptr %78, align 8 + %80 = icmp eq i64 %79, 0 + br i1 %80, label %.lr.ph, label %_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread, !llvm.loop !12 + +_ZNK22ShenandoahSimpleBitMap27is_forward_consecutive_onesEll.exit.thread: ; preds = %.lr.ph, %76, %66, %_ZNK22ShenandoahSimpleBitMap19count_trailing_onesEl.exit.us, %.lr.ph.i.preheader.us, %.lr.ph.i.us, %.split, %4 + %.0 = phi i64 [ %2, %4 ], [ %1, %.split ], [ %.046.us, %.lr.ph.i.us ], [ %.046.us, %.lr.ph.i.preheader.us ], [ %2, %_ZNK22ShenandoahSimpleBitMap19count_trailing_onesEl.exit.us ], [ %2, %66 ], [ %74, %76 ], [ %2, %.lr.ph ] ret i64 %.0 } @@ -393,30 +405,32 @@ define hidden noundef i64 @_ZNK22ShenandoahSimpleBitMap30find_last_consecutive_s %.048.us = phi i64 [ %.048.us.be, %.split.us.backedge ], [ %8, %7 ] %.047.us = phi i64 [ %.047.us.be, %.split.us.backedge ], [ %2, %7 ] %18 = icmp eq i64 %.153.us, 0 - br i1 %18, label %59, label %.lr.ph.i.us + br i1 %18, label %66, label %.lr.ph.i.preheader.us -.lr.ph.i.us: ; preds = %.split.us, %55 - %.02126.i.us = phi i64 [ %56, %55 ], [ %.047.us, %.split.us ] - %.02225.i.us = phi i64 [ %57, %55 ], [ %3, %.split.us ] - %19 = ashr i64 %.02126.i.us, 6 - %20 = and i64 %.02126.i.us, 63 +.lr.ph.i.preheader.us: ; preds = %.split.us + %19 = ashr i64 %.047.us, 6 + %20 = and i64 %.047.us, 63 %21 = getelementptr inbounds i64, ptr %11, i64 %19 %22 = load i64, ptr %21, align 8 %23 = add nuw nsw i64 %20, 1 %24 = xor i64 %20, 63 %25 = shl i64 %22, %24 - %.not.i.us = icmp eq i64 %25, -1 + %.not.i73.us = icmp eq i64 %25, -1 %26 = xor i64 %25, -1 %27 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %26, i1 true) - %.0.i.us = select i1 %.not.i.us, i64 %23, i64 %27 - %.not24.i.us = icmp samesign ult i64 %.0.i.us, %.02225.i.us - br i1 %.not24.i.us, label %28, label %.loopexit - -28: ; preds = %.lr.ph.i.us - %29 = icmp eq i64 %.0.i.us, %23 - br i1 %29, label %55, label %_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us - -_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us: ; preds = %28 + %.0.i74.us = select i1 %.not.i73.us, i64 %23, i64 %27 + %.not24.i75.us = icmp samesign ult i64 %.0.i74.us, %3 + br i1 %.not24.i75.us, label %.lr.ph.us, label %.loopexit + +.lr.ph.us: ; preds = %.lr.ph.i.preheader.us, %.lr.ph.i.us + %.0.i78.us = phi i64 [ %.0.i.us, %.lr.ph.i.us ], [ %.0.i74.us, %.lr.ph.i.preheader.us ] + %28 = phi i64 [ %61, %.lr.ph.i.us ], [ %23, %.lr.ph.i.preheader.us ] + %.02225.i77.us = phi i64 [ %56, %.lr.ph.i.us ], [ %3, %.lr.ph.i.preheader.us ] + %.02126.i76.us = phi i64 [ %55, %.lr.ph.i.us ], [ %.047.us, %.lr.ph.i.preheader.us ] + %29 = icmp eq i64 %.0.i78.us, %28 + br i1 %29, label %.lr.ph.i.us, label %_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us + +_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us: ; preds = %.lr.ph.us %30 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %.153.us, i1 true) %31 = shl i64 %.048.us, 6 %32 = or disjoint i64 %31, %30 @@ -435,8 +449,8 @@ _ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us: ; preds = %.026.i.us = phi i64 [ %38, %.lr.ph.i64.us ], [ %35, %_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us ] %.01925.i.us = phi i64 [ 0, %.lr.ph.i64.us ], [ %36, %_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us ] %.02024.i.us = phi i64 [ %37, %.lr.ph.i64.us ], [ 0, %_ZNK22ShenandoahSimpleBitMap28is_backward_consecutive_onesEll.exit.us ] - %reass.sub78 = sub i64 %.02024.i.us, %.01925.i.us - %37 = add i64 %reass.sub78, 64 + %reass.sub86 = sub i64 %.02024.i.us, %.01925.i.us + %37 = add i64 %reass.sub86, 64 %38 = add i64 %.026.i.us, 1 %.018.in.i.us = getelementptr inbounds i64, ptr %11, i64 %38 %.018.i.us = load i64, ptr %.018.in.i.us, align 8 @@ -470,62 +484,73 @@ _ZNK22ShenandoahSimpleBitMap18count_leading_onesEl.exit.us: ; preds = %.lr.ph.i6 %54 = and i64 %50, %53 br label %.split.us.backedge -55: ; preds = %28 - %56 = sub i64 %.02126.i.us, %23 - %57 = sub nsw i64 %.02225.i.us, %23 - %58 = icmp sgt i64 %57, 0 - br i1 %58, label %.lr.ph.i.us, label %.loopexit, !llvm.loop !11 - -59: ; preds = %.split.us +.lr.ph.i.us: ; preds = %.lr.ph.us + %55 = sub i64 %.02126.i76.us, %.0.i78.us + %56 = sub nsw i64 %.02225.i77.us, %.0.i78.us + %57 = ashr i64 %55, 6 + %58 = and i64 %55, 63 + %59 = getelementptr inbounds i64, ptr %11, i64 %57 + %60 = load i64, ptr %59, align 8 + %61 = add nuw nsw i64 %58, 1 + %62 = xor i64 %58, 63 + %63 = shl i64 %60, %62 + %.not.i.us = icmp eq i64 %63, -1 + %64 = xor i64 %63, -1 + %65 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %64, i1 true) + %.0.i.us = select i1 %.not.i.us, i64 %61, i64 %65 + %.not24.i.us = icmp samesign ult i64 %.0.i.us, %56 + br i1 %.not24.i.us, label %.lr.ph.us, label %.loopexit + +66: ; preds = %.split.us %.neg62.us = xor i64 %.050.us, -1 - %60 = add i64 %.047.us, %.neg62.us - %61 = icmp slt i64 %60, %5 - br i1 %61, label %.loopexit69, label %62 - -62: ; preds = %59 - %63 = add i64 %.048.us, -1 - %64 = getelementptr inbounds i64, ptr %11, i64 %63 - %65 = load i64, ptr %64, align 8 + %67 = add i64 %.047.us, %.neg62.us + %68 = icmp slt i64 %67, %5 + br i1 %68, label %.loopexit69, label %69 + +69: ; preds = %66 + %70 = add i64 %.048.us, -1 + %71 = getelementptr inbounds i64, ptr %11, i64 %70 + %72 = load i64, ptr %71, align 8 br label %.split.us.backedge -.split.us.backedge: ; preds = %62, %51, %46 - %.153.us.be = phi i64 [ %65, %62 ], [ %54, %51 ], [ %50, %46 ] - %.050.us.be = phi i64 [ 63, %62 ], [ %48, %51 ], [ 63, %46 ] - %.048.us.be = phi i64 [ %63, %62 ], [ %47, %51 ], [ %47, %46 ] - %.047.us.be = phi i64 [ %60, %62 ], [ %44, %51 ], [ %44, %46 ] +.split.us.backedge: ; preds = %69, %51, %46 + %.153.us.be = phi i64 [ %72, %69 ], [ %54, %51 ], [ %50, %46 ] + %.050.us.be = phi i64 [ 63, %69 ], [ %48, %51 ], [ 63, %46 ] + %.048.us.be = phi i64 [ %70, %69 ], [ %47, %51 ], [ %47, %46 ] + %.047.us.be = phi i64 [ %67, %69 ], [ %44, %51 ], [ %44, %46 ] br label %.split.us, !llvm.loop !13 .split: ; preds = %7 - %66 = icmp eq i64 %.052, 0 - br i1 %66, label %.lr.ph.preheader, label %.loopexit + %73 = icmp eq i64 %.052, 0 + br i1 %73, label %.lr.ph.preheader, label %.loopexit .lr.ph.preheader: ; preds = %.split - %67 = xor i64 %9, -1 + %74 = xor i64 %9, -1 br label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %70 - %.04777 = phi i64 [ %68, %70 ], [ %2, %.lr.ph.preheader ] - %.04876 = phi i64 [ %71, %70 ], [ %8, %.lr.ph.preheader ] - %.05075 = phi i64 [ -64, %70 ], [ %67, %.lr.ph.preheader ] - %68 = add i64 %.04777, %.05075 - %69 = icmp slt i64 %68, %5 - br i1 %69, label %.loopexit69, label %70 - -70: ; preds = %.lr.ph - %71 = add i64 %.04876, -1 - %72 = getelementptr inbounds i64, ptr %11, i64 %71 - %73 = load i64, ptr %72, align 8 - %74 = icmp eq i64 %73, 0 - br i1 %74, label %.lr.ph, label %.loopexit, !llvm.loop !13 - -.loopexit: ; preds = %70, %55, %.lr.ph.i.us, %.split - %.04772 = phi i64 [ %2, %.split ], [ %.047.us, %.lr.ph.i.us ], [ %.047.us, %55 ], [ %68, %70 ] - %reass.sub79 = sub i64 %.04772, %3 - %75 = add i64 %reass.sub79, 1 +.lr.ph: ; preds = %.lr.ph.preheader, %77 + %.04785 = phi i64 [ %75, %77 ], [ %2, %.lr.ph.preheader ] + %.04884 = phi i64 [ %78, %77 ], [ %8, %.lr.ph.preheader ] + %.05083 = phi i64 [ -64, %77 ], [ %74, %.lr.ph.preheader ] + %75 = add i64 %.04785, %.05083 + %76 = icmp slt i64 %75, %5 + br i1 %76, label %.loopexit69, label %77 + +77: ; preds = %.lr.ph + %78 = add i64 %.04884, -1 + %79 = getelementptr inbounds i64, ptr %11, i64 %78 + %80 = load i64, ptr %79, align 8 + %81 = icmp eq i64 %80, 0 + br i1 %81, label %.lr.ph, label %.loopexit, !llvm.loop !13 + +.loopexit: ; preds = %77, %.lr.ph.i.preheader.us, %.lr.ph.i.us, %.split + %.04772 = phi i64 [ %2, %.split ], [ %.047.us, %.lr.ph.i.us ], [ %.047.us, %.lr.ph.i.preheader.us ], [ %75, %77 ] + %reass.sub87 = sub i64 %.04772, %3 + %82 = add i64 %reass.sub87, 1 br label %.loopexit69 -.loopexit69: ; preds = %.lr.ph, %59, %_ZNK22ShenandoahSimpleBitMap18count_leading_onesEl.exit.us, %4, %.loopexit - %.0 = phi i64 [ %75, %.loopexit ], [ %1, %4 ], [ %1, %_ZNK22ShenandoahSimpleBitMap18count_leading_onesEl.exit.us ], [ %1, %59 ], [ %1, %.lr.ph ] +.loopexit69: ; preds = %.lr.ph, %66, %_ZNK22ShenandoahSimpleBitMap18count_leading_onesEl.exit.us, %4, %.loopexit + %.0 = phi i64 [ %82, %.loopexit ], [ %1, %4 ], [ %1, %_ZNK22ShenandoahSimpleBitMap18count_leading_onesEl.exit.us ], [ %1, %66 ], [ %1, %.lr.ph ] ret i64 %.0 } diff --git a/bench/redis/optimized/ldebug.ll b/bench/redis/optimized/ldebug.ll index eaac4e913f8..12e8d180d10 100644 --- a/bench/redis/optimized/ldebug.ll +++ b/bench/redis/optimized/ldebug.ll @@ -1323,7 +1323,6 @@ sw.bb377: ; preds = %if.end141 br i1 %or.cond576, label %if.end387, label %cleanup423 if.end387: ; preds = %sw.bb377 - %dec388 = add nsw i32 %b.0, -1 %cmp389 = icmp eq i32 %b.0, 0 br i1 %cmp389, label %if.then391, label %if.end400 @@ -1340,12 +1339,10 @@ if.then391: ; preds = %if.end387 luaG_checkopenop.exit612: ; preds = %if.then391, %if.then391, %if.then391, %if.then391 %cmp.i609 = icmp ugt i32 %41, 8388607 - %add401 = add nsw i32 %dec388, %and2 - %cmp405.not = icmp sgt i32 %add401, %conv.i - %or.cond632 = select i1 %cmp.i609, i1 true, i1 %cmp405.not - br i1 %or.cond632, label %cleanup423, label %for.inc417 + br i1 %cmp.i609, label %cleanup423, label %for.inc417 if.end400: ; preds = %if.end387 + %dec388 = add nsw i32 %b.0, -1 %add401.old = add nsw i32 %dec388, %and2 %cmp405.not.old = icmp sgt i32 %add401.old, %conv.i br i1 %cmp405.not.old, label %cleanup423, label %for.inc417 diff --git a/bench/velox/optimized/FlatVector.cpp.ll b/bench/velox/optimized/FlatVector.cpp.ll index 62a4d94f617..ff2c89f2575 100644 --- a/bench/velox/optimized/FlatVector.cpp.ll +++ b/bench/velox/optimized/FlatVector.cpp.ll @@ -1559,16 +1559,12 @@ if.end.i.i: ; preds = %while.end land.rhs.i.i: ; preds = %if.end.i.i %6 = load ptr, ptr %rows, align 8 - %cmp.not.i.i.i = icmp sgt i32 %1, 0 - br i1 %cmp.not.i.i.i, label %if.end.i.i.i.i, label %land.end.i.i - -if.end.i.i.i.i: ; preds = %land.rhs.i.i %7 = and i32 %1, 2147483584 %8 = zext nneg i32 %7 to i64 br label %for.cond.i.i.i.i -for.cond.i.i.i.i: ; preds = %for.body.i.i.i.i, %if.end.i.i.i.i - %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %for.body.i.i.i.i ], [ 0, %if.end.i.i.i.i ] +for.cond.i.i.i.i: ; preds = %for.body.i.i.i.i, %land.rhs.i.i + %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %for.body.i.i.i.i ], [ 0, %land.rhs.i.i ] %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 64 %cmp19.not.i.i.i.i = icmp samesign ugt i64 %indvars.iv.next.i.i, %8 br i1 %cmp19.not.i.i.i.i, label %for.end.i.i.i.i, label %for.body.i.i.i.i @@ -1598,8 +1594,8 @@ if.then26.i.i.i.i: ; preds = %for.end.i.i.i.i %13 = or disjoint i16 %12, 256 br label %land.end.i.i -land.end.i.i: ; preds = %for.body.i.i.i.i, %if.then26.i.i.i.i, %for.end.i.i.i.i, %land.rhs.i.i, %if.end.i.i - %frombool.i.i = phi i16 [ 256, %if.end.i.i ], [ 257, %land.rhs.i.i ], [ %13, %if.then26.i.i.i.i ], [ 257, %for.end.i.i.i.i ], [ 256, %for.body.i.i.i.i ] +land.end.i.i: ; preds = %for.body.i.i.i.i, %if.then26.i.i.i.i, %for.end.i.i.i.i, %if.end.i.i + %frombool.i.i = phi i16 [ 256, %if.end.i.i ], [ %13, %if.then26.i.i.i.i ], [ 257, %for.end.i.i.i.i ], [ 256, %for.body.i.i.i.i ] store i16 %frombool.i.i, ptr %allSelected_.i.i, align 4 %14 = trunc i16 %frombool.i.i to i8 br label %_ZNK8facebook5velox17SelectivityVector13isAllSelectedEv.exit.i @@ -1961,16 +1957,12 @@ if.end.i.i19: ; preds = %if.else land.rhs.i.i222: ; preds = %if.end.i.i19 %64 = load ptr, ptr %rows, align 8 - %cmp.not.i.i.i223 = icmp sgt i32 %1, 0 - br i1 %cmp.not.i.i.i223, label %if.end.i.i.i.i224, label %land.end.i.i22 - -if.end.i.i.i.i224: ; preds = %land.rhs.i.i222 %65 = and i32 %1, 2147483584 %66 = zext nneg i32 %65 to i64 br label %for.cond.i.i.i.i225 -for.cond.i.i.i.i225: ; preds = %for.body.i.i.i.i229, %if.end.i.i.i.i224 - %indvars.iv.i.i226 = phi i64 [ %indvars.iv.next.i.i227, %for.body.i.i.i.i229 ], [ 0, %if.end.i.i.i.i224 ] +for.cond.i.i.i.i225: ; preds = %for.body.i.i.i.i229, %land.rhs.i.i222 + %indvars.iv.i.i226 = phi i64 [ %indvars.iv.next.i.i227, %for.body.i.i.i.i229 ], [ 0, %land.rhs.i.i222 ] %indvars.iv.next.i.i227 = add nuw nsw i64 %indvars.iv.i.i226, 64 %cmp19.not.i.i.i.i228 = icmp samesign ugt i64 %indvars.iv.next.i.i227, %66 br i1 %cmp19.not.i.i.i.i228, label %for.end.i.i.i.i232, label %for.body.i.i.i.i229 @@ -2000,8 +1992,8 @@ if.then26.i.i.i.i234: ; preds = %for.end.i.i.i.i232 %71 = or disjoint i16 %70, 256 br label %land.end.i.i22 -land.end.i.i22: ; preds = %for.body.i.i.i.i229, %if.then26.i.i.i.i234, %for.end.i.i.i.i232, %land.rhs.i.i222, %if.end.i.i19 - %frombool.i.i23 = phi i16 [ 256, %if.end.i.i19 ], [ 257, %land.rhs.i.i222 ], [ %71, %if.then26.i.i.i.i234 ], [ 257, %for.end.i.i.i.i232 ], [ 256, %for.body.i.i.i.i229 ] +land.end.i.i22: ; preds = %for.body.i.i.i.i229, %if.then26.i.i.i.i234, %for.end.i.i.i.i232, %if.end.i.i19 + %frombool.i.i23 = phi i16 [ 256, %if.end.i.i19 ], [ %71, %if.then26.i.i.i.i234 ], [ 257, %for.end.i.i.i.i232 ], [ 256, %for.body.i.i.i.i229 ] store i16 %frombool.i.i23, ptr %allSelected_.i.i, align 4 %72 = trunc i16 %frombool.i.i23 to i8 br label %_ZNK8facebook5velox17SelectivityVector13isAllSelectedEv.exit.i24 diff --git a/bench/wolfssl/optimized/server.c.ll b/bench/wolfssl/optimized/server.c.ll index 0aea2038530..69cab1e09a4 100644 --- a/bench/wolfssl/optimized/server.c.ll +++ b/bench/wolfssl/optimized/server.c.ll @@ -1589,14 +1589,14 @@ if.else.i240: ; preds = %sw.default321 if.then325.sink.split: ; preds = %do.body2.i243, %do.body2.i234 %version.2505542.ph = phi i32 [ -98, %do.body2.i234 ], [ %version.2505544, %do.body2.i243 ] - %cmp301506536.ph = phi i1 [ %cmp301, %do.body2.i234 ], [ %cmp301506538, %do.body2.i243 ] + %cmp301506536.ph = phi i1 [ false, %do.body2.i234 ], [ %cmp301506538, %do.body2.i243 ] %72 = load ptr, ptr @stderr, align 8 %73 = tail call i64 @fwrite(ptr nonnull @.str.69, i64 32, i64 1, ptr %72) #23 br label %if.then325 if.then325: ; preds = %if.then325.sink.split, %do.body2.i234, %do.body2.i243 %version.2505542 = phi i32 [ -98, %do.body2.i234 ], [ %version.2505544, %do.body2.i243 ], [ %version.2505542.ph, %if.then325.sink.split ] - %cmp301506536 = phi i1 [ %cmp301, %do.body2.i234 ], [ %cmp301506538, %do.body2.i243 ], [ %cmp301506536.ph, %if.then325.sink.split ] + %cmp301506536 = phi i1 [ false, %do.body2.i234 ], [ %cmp301506538, %do.body2.i243 ], [ %cmp301506536.ph, %if.then325.sink.split ] %.pr = load i32, ptr @runWithErrors, align 4 %cmp.i248 = icmp eq i32 %.pr, 1 br i1 %cmp.i248, label %do.body.i250, label %if.else.i249 @@ -1657,7 +1657,7 @@ if.end332: ; preds = %if.end312.thread, % %minDhKeyBits.013642348 = phi i32 [ %minDhKeyBits.01391, %sw.bb315 ], [ %minDhKeyBits.01391, %if.end312 ], [ %minDhKeyBits.01391, %sw.bb316 ], [ %minDhKeyBits.01391, %if.then277 ], [ 1024, %if.end312.thread ], [ %minDhKeyBits.01391, %sw.bb314 ] %port.013842342 = phi i16 [ %port.01389, %sw.bb315 ], [ %port.01389, %if.end312 ], [ %port.01389, %sw.bb316 ], [ %port.01389, %if.then277 ], [ 11111, %if.end312.thread ], [ %port.01389, %sw.bb314 ] %version.2505551 = phi i32 [ %version.2, %sw.bb315 ], [ %version.2, %if.end312 ], [ -98, %sw.bb316 ], [ 3, %if.then277 ], [ 3, %if.end312.thread ], [ %version.2, %sw.bb314 ] - %cmp301506549 = phi i1 [ %cmp301, %sw.bb315 ], [ %cmp301, %if.end312 ], [ %cmp301, %sw.bb316 ], [ false, %if.then277 ], [ false, %if.end312.thread ], [ %cmp301, %sw.bb314 ] + %cmp301506549 = phi i1 [ true, %sw.bb315 ], [ %cmp301, %if.end312 ], [ false, %sw.bb316 ], [ false, %if.then277 ], [ false, %if.end312.thread ], [ false, %sw.bb314 ] %method.0 = phi ptr [ @wolfTLSv1_3_server_method_ex, %sw.bb315 ], [ @wolfTLSv1_1_server_method_ex, %if.end312 ], [ @wolfSSLv23_server_method_ex, %sw.bb316 ], [ @wolfTLSv1_2_server_method_ex, %if.then277 ], [ @wolfTLSv1_2_server_method_ex, %if.end312.thread ], [ @wolfTLSv1_2_server_method_ex, %sw.bb314 ] %call330 = tail call ptr %method.0(ptr noundef null) #25, !callees !13 %call331 = tail call ptr @wolfSSL_CTX_new(ptr noundef %call330) #25 @@ -1701,7 +1701,7 @@ if.then335: ; preds = %do.body.i232, %do.b %minDhKeyBits.013642346 = phi i32 [ %minDhKeyBits.013642348, %if.end332 ], [ %minDhKeyBits.01391, %if.then4.i255 ], [ %minDhKeyBits.01391, %do.body2.i252 ], [ %minDhKeyBits.01391, %do.body.i250 ], [ %minDhKeyBits.01391, %do.body.i232 ], [ %minDhKeyBits.01391, %do.body.i241 ] %port.013842340 = phi i16 [ %port.013842342, %if.end332 ], [ %port.01389, %if.then4.i255 ], [ %port.01389, %do.body2.i252 ], [ %port.01389, %do.body.i250 ], [ %port.01389, %do.body.i232 ], [ %port.01389, %do.body.i241 ] %version.2505540 = phi i32 [ %version.2505551, %if.end332 ], [ %version.2505542, %if.then4.i255 ], [ %version.2505542, %do.body2.i252 ], [ %version.2505542, %do.body.i250 ], [ -98, %do.body.i232 ], [ %version.2505544, %do.body.i241 ] - %cmp301506534 = phi i1 [ %cmp301506549, %if.end332 ], [ %cmp301506536, %if.then4.i255 ], [ %cmp301506536, %do.body2.i252 ], [ %cmp301506536, %do.body.i250 ], [ %cmp301, %do.body.i232 ], [ %cmp301506538, %do.body.i241 ] + %cmp301506534 = phi i1 [ %cmp301506549, %if.end332 ], [ %cmp301506536, %if.then4.i255 ], [ %cmp301506536, %do.body2.i252 ], [ %cmp301506536, %do.body.i250 ], [ false, %do.body.i232 ], [ %cmp301506538, %do.body.i241 ] %77 = load i32, ptr @catastrophic, align 4 %cmp.i257 = icmp eq i32 %77, 1 br i1 %cmp.i257, label %do.body.i259, label %if.else.i258 @@ -3301,8 +3301,8 @@ do.end809: ; preds = %if.then800 br label %exit exit: ; preds = %do.end809, %if.then738, %if.else626 - %.sink3573 = phi i32 [ 0, %do.end809 ], [ %call728, %if.then738 ], [ %call614, %if.else626 ] - store i32 %.sink3573, ptr %return_code, align 8 + %.sink3572 = phi i32 [ 0, %do.end809 ], [ %call728, %if.then738 ], [ %call614, %if.else626 ] + store i32 %.sink3572, ptr %return_code, align 8 ret ptr null }