From 77e24e4e9a118a231efd1984ebea0741a4d9105c Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Tue, 10 Jun 2025 14:34:54 +0800 Subject: [PATCH 1/3] pre-commit: PR143471 --- 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..4ad8478649a 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/143471 export COMPTIME_MODE=0 # Please rebase manually From a14915703761b408c60920a0bcda5a506163e192 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 06:54:14 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/abc/optimized/abcPart.ll | 2 +- bench/casadi/optimized/integrator.ll | 18 +- bench/chibicc/optimized/codegen.ll | 81 +-- bench/ffmpeg/optimized/fic.ll | 271 ++++---- bench/ffmpeg/optimized/vf_xfade.ll | 16 +- bench/graphviz/optimized/sfcvt.ll | 4 +- bench/icu/optimized/umutablecptrie.ll | 6 +- bench/openblas/optimized/dorcsd2by1.ll | 90 +-- bench/openblas/optimized/dtgsen.ll | 10 +- .../optimized/trackerCSRTSegmentation.ll | 11 +- bench/openusd/optimized/warped_motion.ll | 596 +++++++++--------- .../generated_message_tctable_lite.ll | 8 +- bench/velox/optimized/JsonType.ll | 12 +- 13 files changed, 557 insertions(+), 568 deletions(-) diff --git a/bench/abc/optimized/abcPart.ll b/bench/abc/optimized/abcPart.ll index 7cbf4df16ec..b37df5192f9 100644 --- a/bench/abc/optimized/abcPart.ll +++ b/bench/abc/optimized/abcPart.ll @@ -4615,7 +4615,7 @@ define ptr @Abc_NtkPartStartHop(ptr noundef %0) local_unnamed_addr #4 { %.val55.val = load i32, ptr %4, align 4, !tbaa !12 %5 = tail call noalias dereferenceable_or_null(16) ptr @malloc(i64 noundef 16) #24 %6 = tail call i32 @llvm.umax.i32(i32 %.val55.val, i32 7) - %spec.store.select.i = add i32 %6, 1 + %spec.store.select.i = add nsw i32 %6, 1 %7 = getelementptr inbounds nuw i8, ptr %5, i64 4 store i32 %spec.store.select.i, ptr %5, align 8, !tbaa !14 %.not.i = icmp eq i32 %spec.store.select.i, 0 diff --git a/bench/casadi/optimized/integrator.ll b/bench/casadi/optimized/integrator.ll index 72e0ba57340..c78c46077f2 100644 --- a/bench/casadi/optimized/integrator.ll +++ b/bench/casadi/optimized/integrator.ll @@ -14931,11 +14931,13 @@ _ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread: ; preds = %801, %.loopexit8 %.not.not24.i = icmp sgt i64 %.fr.i564, 0 %smin.i = call i64 @llvm.smin.i64(i64 %901, i64 0) %912 = add i64 %smin.i, -1 + br i1 %.not.not24.i, label %.preheader.split.us.preheader.i569, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread + +.preheader.split.us.preheader.i569: ; preds = %.preheader.i566 %913 = icmp sgt i64 %901, 0 - %or.cond1646 = and i1 %.not.not24.i, %913 - br i1 %or.cond1646, label %.lr.ph.us.i571.preheader, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit + br i1 %913, label %.lr.ph.us.i571.preheader, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit -.lr.ph.us.i571.preheader: ; preds = %.preheader.i566 +.lr.ph.us.i571.preheader: ; preds = %.preheader.split.us.preheader.i569 %.pre1578 = load double, ptr %784, align 8, !tbaa !342 br label %.lr.ph.us.i571 @@ -14967,8 +14969,8 @@ _ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread: ; preds = %801, %.loopexit8 %927 = add nuw i64 %920, 1 br i1 %926, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit, label %.lr.ph34.i, !llvm.loop !397 -_ZNK6casadi10Integrator10next_stopBExPKd.exit: ; preds = %.preheader.split.us.i570.loopexit, %921, %.preheader.i566, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread - %.3208 = phi i64 [ %.22071491, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread ], [ %912, %.preheader.i566 ], [ %916, %921 ], [ %912, %.preheader.split.us.i570.loopexit ] +_ZNK6casadi10Integrator10next_stopBExPKd.exit: ; preds = %.preheader.split.us.i570.loopexit, %921, %.preheader.split.us.preheader.i569, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread + %.3208 = phi i64 [ %.22071491, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread ], [ %912, %.preheader.split.us.preheader.i569 ], [ %916, %921 ], [ %912, %.preheader.split.us.i570.loopexit ] %928 = icmp slt i64 %.3208, 0 br i1 %928, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 @@ -14978,9 +14980,9 @@ _ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848: ; preds = %.lr.ph.us.i5 %930 = getelementptr inbounds nuw double, ptr %929, i64 %.3208850 br label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread -_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread: ; preds = %907, %_ZNK6casadi10Integrator10next_stopBExPKd.exit, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 - %.3208847 = phi i64 [ %.3208850, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %.3208, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ -1, %907 ] - %.in260 = phi ptr [ %930, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %114, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ %114, %907 ] +_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread: ; preds = %.preheader.i566, %907, %_ZNK6casadi10Integrator10next_stopBExPKd.exit, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 + %.3208847 = phi i64 [ %.3208850, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %.3208, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ -1, %907 ], [ %912, %.preheader.i566 ] + %.in260 = phi ptr [ %930, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %114, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ %114, %907 ], [ %114, %.preheader.i566 ] %931 = load double, ptr %.in260, align 8, !tbaa !342 store double %931, ptr %723, align 8, !tbaa !360 %932 = load i8, ptr %713, align 8, !tbaa !366, !range !364, !noundef !365 diff --git a/bench/chibicc/optimized/codegen.ll b/bench/chibicc/optimized/codegen.ll index f4a0854b5f9..4c7ce65f6c4 100644 --- a/bench/chibicc/optimized/codegen.ll +++ b/bench/chibicc/optimized/codegen.ll @@ -3230,53 +3230,57 @@ define internal fastcc void @copy_struct_reg() unnamed_addr #4 { tail call void (ptr, ...) @println(ptr noundef nonnull @.str.41) %11 = getelementptr inbounds nuw i8, ptr %5, i64 4 %12 = load i32, ptr %11, align 4, !tbaa !32 - %13 = tail call i32 @llvm.smin.i32(i32 %12, i32 8) - %.02532 = add i32 %13, -1 - %14 = icmp sgt i32 %.02532, -1 - br i1 %14, label %select.unfold, label %.loopexit31 + %13 = icmp sgt i32 %12, 0 + br i1 %13, label %select.unfold.preheader, label %.loopexit31 -select.unfold: ; preds = %10, %select.unfold - %.02533 = phi i32 [ %.025, %select.unfold ], [ %.02532, %10 ] +select.unfold.preheader: ; preds = %10 + %14 = tail call i32 @llvm.umin.i32(i32 %12, i32 8) + br label %select.unfold + +select.unfold: ; preds = %select.unfold.preheader, %select.unfold + %.025.in32 = phi i32 [ %.025, %select.unfold ], [ %14, %select.unfold.preheader ] + %.025 = add nsw i32 %.025.in32, -1 tail call void (ptr, ...) @println(ptr noundef nonnull @.str.271) - tail call void (ptr, ...) @println(ptr noundef nonnull @.str.272, i32 noundef %.02533) - %.025 = add nsw i32 %.02533, -1 - %.not = icmp eq i32 %.02533, 0 - br i1 %.not, label %.loopexit31, label %select.unfold, !llvm.loop !126 + tail call void (ptr, ...) @println(ptr noundef nonnull @.str.272, i32 noundef %.025) + %15 = icmp samesign ugt i32 %.025.in32, 1 + br i1 %15, label %select.unfold, label %.loopexit31, !llvm.loop !126 .loopexit31: ; preds = %select.unfold, %.loopexit31.sink.split, %10 %.024 = phi i32 [ 0, %10 ], [ 1, %.loopexit31.sink.split ], [ 0, %select.unfold ] - %15 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %16 = load i32, ptr %15, align 4, !tbaa !32 - %17 = icmp sgt i32 %16, 8 - br i1 %17, label %18, label %.loopexit + %16 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %17 = load i32, ptr %16, align 4, !tbaa !32 + %18 = icmp sgt i32 %17, 8 + br i1 %18, label %19, label %.loopexit -18: ; preds = %.loopexit31 - %19 = tail call fastcc zeroext i1 @has_flonum(ptr noundef nonnull %5, i32 noundef 8, i32 noundef 16, i32 noundef 0) - br i1 %19, label %20, label %21 +19: ; preds = %.loopexit31 + %20 = tail call fastcc zeroext i1 @has_flonum(ptr noundef nonnull %5, i32 noundef 8, i32 noundef 16, i32 noundef 0) + br i1 %20, label %21, label %22 -20: ; preds = %18 +21: ; preds = %19 tail call void (ptr, ...) @println(ptr noundef nonnull @.str.274, i32 noundef %.024) br label %.loopexit -21: ; preds = %18 - %22 = select i1 %6, ptr @.str.258, ptr @.str.54 - %23 = select i1 %6, ptr @.str.85, ptr @.str.72 - tail call void (ptr, ...) @println(ptr noundef nonnull @.str.182, ptr noundef nonnull %23) - %24 = load i32, ptr %15, align 4, !tbaa !32 - %25 = tail call i32 @llvm.smin.i32(i32 %24, i32 16) - %.034 = add i32 %25, -1 - %26 = icmp sgt i32 %.034, 7 - br i1 %26, label %select.unfold29, label %.loopexit - -select.unfold29: ; preds = %21, %select.unfold29 - %.035 = phi i32 [ %.0, %select.unfold29 ], [ %.034, %21 ] - tail call void (ptr, ...) @println(ptr noundef nonnull @.str.275, ptr noundef nonnull %23) - tail call void (ptr, ...) @println(ptr noundef nonnull @.str.276, i32 noundef %.035, ptr noundef nonnull %22) - %.0 = add nsw i32 %.035, -1 - %27 = icmp samesign ugt i32 %.035, 8 - br i1 %27, label %select.unfold29, label %.loopexit, !llvm.loop !127 - -.loopexit: ; preds = %select.unfold29, %21, %20, %.loopexit31 +22: ; preds = %19 + %23 = select i1 %6, ptr @.str.258, ptr @.str.54 + %24 = select i1 %6, ptr @.str.85, ptr @.str.72 + tail call void (ptr, ...) @println(ptr noundef nonnull @.str.182, ptr noundef nonnull %24) + %25 = load i32, ptr %16, align 4, !tbaa !32 + %26 = icmp sgt i32 %25, 8 + br i1 %26, label %select.unfold29.preheader, label %.loopexit + +select.unfold29.preheader: ; preds = %22 + %27 = tail call i32 @llvm.umin.i32(i32 %25, i32 16) + br label %select.unfold29 + +select.unfold29: ; preds = %select.unfold29.preheader, %select.unfold29 + %.0.in33 = phi i32 [ %.0, %select.unfold29 ], [ %27, %select.unfold29.preheader ] + %.0 = add nsw i32 %.0.in33, -1 + tail call void (ptr, ...) @println(ptr noundef nonnull @.str.275, ptr noundef nonnull %24) + tail call void (ptr, ...) @println(ptr noundef nonnull @.str.276, i32 noundef %.0, ptr noundef nonnull %23) + %28 = icmp samesign ugt i32 %.0.in33, 9 + br i1 %28, label %select.unfold29, label %.loopexit, !llvm.loop !127 + +.loopexit: ; preds = %select.unfold29, %22, %21, %.loopexit31 ret void } @@ -3822,6 +3826,9 @@ declare i32 @llvm.smax.i32(i32, i32) #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #12 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umin.i32(i32, i32) #12 + attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/ffmpeg/optimized/fic.ll b/bench/ffmpeg/optimized/fic.ll index bf5163ff24c..ca790d820f7 100644 --- a/bench/ffmpeg/optimized/fic.ll +++ b/bench/ffmpeg/optimized/fic.ll @@ -1125,7 +1125,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %54 = getelementptr inbounds nuw i8, ptr %8, i64 24 %55 = load ptr, ptr %54, align 8, !tbaa !44 %56 = getelementptr inbounds nuw i8, ptr %55, i64 64 - br label %96 + br label %95 .preheader94: ; preds = %.preheader95, %82 %indvars.iv125 = phi i64 [ 0, %.preheader95 ], [ %indvars.iv.next126, %82 ] @@ -1172,210 +1172,205 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %85 = icmp samesign ult i64 %indvars.iv128, 30 br i1 %85, label %.preheader95, label %.preheader93, !llvm.loop !80 -.preheader: ; preds = %96 +.preheader: ; preds = %95 %86 = getelementptr inbounds nuw i8, ptr %0, i64 116 %87 = load i32, ptr %86, align 4, !tbaa !34 %88 = sub nsw i32 %87, %2 - %89 = tail call i32 @llvm.smin.i32(i32 %88, i32 32) - %spec.select110 = add i32 %89, -1 - %90 = icmp sgt i32 %spec.select110, 0 - br i1 %90, label %.lr.ph112, label %._crit_edge + %89 = icmp sgt i32 %88, 1 + br i1 %89, label %.lr.ph112, label %._crit_edge .lr.ph112: ; preds = %.preheader %.promoted = load ptr, ptr %4, align 16 - %91 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %92 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %93 = getelementptr inbounds nuw i8, ptr %6, i64 512 - %94 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %95 = getelementptr inbounds nuw i8, ptr %6, i64 256 - %.promoted113 = load ptr, ptr %92, align 8, !tbaa !66 - %.promoted115 = load ptr, ptr %94, align 16, !tbaa !66 - br label %113 - -96: ; preds = %.preheader93, %96 - %indvars.iv131 = phi i64 [ 0, %.preheader93 ], [ %indvars.iv.next132, %96 ] - %97 = getelementptr inbounds nuw [8 x ptr], ptr %55, i64 0, i64 %indvars.iv131 - %98 = load ptr, ptr %97, align 8, !tbaa !66 - %99 = getelementptr inbounds nuw [8 x i32], ptr %56, i64 0, i64 %indvars.iv131 - %100 = load i32, ptr %99, align 4, !tbaa !65 - %101 = icmp ne i64 %indvars.iv131, 0 - %102 = zext i1 %101 to i32 - %103 = lshr i32 %2, %102 - %104 = mul nsw i32 %100, %103 - %105 = sext i32 %104 to i64 - %106 = getelementptr inbounds i8, ptr %98, i64 %105 - %107 = lshr i32 %1, %102 - %108 = zext nneg i32 %107 to i64 - %109 = getelementptr inbounds nuw i8, ptr %106, i64 %108 - %110 = zext i1 %101 to i64 - %111 = getelementptr inbounds nuw i8, ptr %109, i64 %110 - %112 = getelementptr inbounds nuw [3 x ptr], ptr %4, i64 0, i64 %indvars.iv131 - store ptr %111, ptr %112, align 8, !tbaa !66 + %90 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %91 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %92 = getelementptr inbounds nuw i8, ptr %6, i64 512 + %93 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %94 = getelementptr inbounds nuw i8, ptr %6, i64 256 + %.promoted113 = load ptr, ptr %91, align 8, !tbaa !66 + %.promoted115 = load ptr, ptr %93, align 16, !tbaa !66 + br label %112 + +95: ; preds = %.preheader93, %95 + %indvars.iv131 = phi i64 [ 0, %.preheader93 ], [ %indvars.iv.next132, %95 ] + %96 = getelementptr inbounds nuw [8 x ptr], ptr %55, i64 0, i64 %indvars.iv131 + %97 = load ptr, ptr %96, align 8, !tbaa !66 + %98 = getelementptr inbounds nuw [8 x i32], ptr %56, i64 0, i64 %indvars.iv131 + %99 = load i32, ptr %98, align 4, !tbaa !65 + %100 = icmp ne i64 %indvars.iv131, 0 + %101 = zext i1 %100 to i32 + %102 = lshr i32 %2, %101 + %103 = mul nsw i32 %99, %102 + %104 = sext i32 %103 to i64 + %105 = getelementptr inbounds i8, ptr %97, i64 %104 + %106 = lshr i32 %1, %101 + %107 = zext nneg i32 %106 to i64 + %108 = getelementptr inbounds nuw i8, ptr %105, i64 %107 + %109 = zext i1 %100 to i64 + %110 = getelementptr inbounds nuw i8, ptr %108, i64 %109 + %111 = getelementptr inbounds nuw [3 x ptr], ptr %4, i64 0, i64 %indvars.iv131 + store ptr %110, ptr %111, align 8, !tbaa !66 %indvars.iv.next132 = add nuw nsw i64 %indvars.iv131, 1 %exitcond134.not = icmp eq i64 %indvars.iv.next132, 3 - br i1 %exitcond134.not, label %.preheader, label %96, !llvm.loop !81 + br i1 %exitcond134.not, label %.preheader, label %95, !llvm.loop !81 -113: ; preds = %.lr.ph112, %fic_alpha_blend.exit89 +112: ; preds = %.lr.ph112, %fic_alpha_blend.exit89 %indvars.iv157 = phi i64 [ 0, %.lr.ph112 ], [ %indvars.iv.next158, %fic_alpha_blend.exit89 ] - %114 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %207, %fic_alpha_blend.exit89 ] - %115 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ] - %116 = phi ptr [ %.promoted, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ] - %117 = load i32, ptr %91, align 8, !tbaa !32 - %118 = sub nsw i32 %117, %1 - %spec.select83 = tail call i32 @llvm.smin.i32(i32 %118, i32 32) - %119 = sdiv i32 %spec.select83, 2 - %120 = trunc nuw nsw i64 %indvars.iv157 to i32 - %121 = shl i32 %120, 5 - %122 = zext nneg i32 %121 to i64 - %123 = getelementptr inbounds nuw i8, ptr %5, i64 %122 - %124 = getelementptr inbounds nuw i8, ptr %12, i64 %122 - %125 = icmp sgt i32 %118, 0 - br i1 %125, label %.lr.ph.preheader, label %fic_alpha_blend.exit89 - -.lr.ph.preheader: ; preds = %113 + %113 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ] + %114 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ] + %115 = phi ptr [ %.promoted, %.lr.ph112 ], [ %195, %fic_alpha_blend.exit89 ] + %116 = load i32, ptr %90, align 8, !tbaa !32 + %117 = sub nsw i32 %116, %1 + %spec.select83 = tail call i32 @llvm.smin.i32(i32 %117, i32 32) + %118 = sdiv i32 %spec.select83, 2 + %119 = shl i64 %indvars.iv157, 5 + %120 = getelementptr inbounds nuw i8, ptr %5, i64 %119 + %121 = getelementptr inbounds nuw i8, ptr %12, i64 %119 + %122 = icmp sgt i32 %117, 0 + br i1 %122, label %.lr.ph.preheader, label %fic_alpha_blend.exit89 + +.lr.ph.preheader: ; preds = %112 %smax = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) %wide.trip.count = zext nneg i32 %smax to i64 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph %indvars.iv135 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next136, %.lr.ph ] - %126 = getelementptr inbounds nuw i8, ptr %123, i64 %indvars.iv135 + %123 = getelementptr inbounds nuw i8, ptr %120, i64 %indvars.iv135 + %124 = load i8, ptr %123, align 1, !tbaa !43 + %125 = zext i8 %124 to i16 + %126 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv135 %127 = load i8, ptr %126, align 1, !tbaa !43 %128 = zext i8 %127 to i16 - %129 = getelementptr inbounds nuw i8, ptr %116, i64 %indvars.iv135 - %130 = load i8, ptr %129, align 1, !tbaa !43 - %131 = zext i8 %130 to i16 - %132 = sub nsw i16 %128, %131 - %133 = getelementptr inbounds nuw i8, ptr %124, i64 %indvars.iv135 - %134 = load i8, ptr %133, align 1, !tbaa !43 - %135 = zext i8 %134 to i16 - %136 = mul i16 %132, %135 - %137 = lshr i16 %136, 8 - %138 = trunc nuw i16 %137 to i8 - %139 = add i8 %130, %138 - store i8 %139, ptr %129, align 1, !tbaa !43 + %129 = sub nsw i16 %125, %128 + %130 = getelementptr inbounds nuw i8, ptr %121, i64 %indvars.iv135 + %131 = load i8, ptr %130, align 1, !tbaa !43 + %132 = zext i8 %131 to i16 + %133 = mul i16 %129, %132 + %134 = lshr i16 %133, 8 + %135 = trunc nuw i16 %134 to i8 + %136 = add i8 %127, %135 + store i8 %136, ptr %126, align 1, !tbaa !43 %indvars.iv.next136 = add nuw nsw i64 %indvars.iv135, 1 %exitcond138.not = icmp eq i64 %indvars.iv.next136, %wide.trip.count br i1 %exitcond138.not, label %.lr.ph105.preheader, label %.lr.ph, !llvm.loop !82 .lr.ph105.preheader: ; preds = %.lr.ph %.pre = load ptr, ptr %54, align 8, !tbaa !44 - %140 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 - %141 = load i32, ptr %140, align 8, !tbaa !65 - %142 = sext i32 %141 to i64 - %143 = getelementptr inbounds i8, ptr %116, i64 %142 - %144 = or disjoint i32 %121, 32 - %145 = sext i32 %144 to i64 - %146 = getelementptr inbounds i8, ptr %5, i64 %145 - %147 = getelementptr inbounds i8, ptr %12, i64 %145 + %137 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 + %138 = load i32, ptr %137, align 8, !tbaa !65 + %139 = sext i32 %138 to i64 + %140 = getelementptr inbounds i8, ptr %115, i64 %139 + %141 = or disjoint i64 %119, 32 + %142 = getelementptr inbounds i8, ptr %5, i64 %141 + %143 = getelementptr inbounds i8, ptr %12, i64 %141 %smax142 = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) %wide.trip.count143 = zext nneg i32 %smax142 to i64 br label %.lr.ph105 .lr.ph105: ; preds = %.lr.ph105.preheader, %.lr.ph105 %indvars.iv139 = phi i64 [ 0, %.lr.ph105.preheader ], [ %indvars.iv.next140, %.lr.ph105 ] - %148 = getelementptr inbounds nuw i8, ptr %146, i64 %indvars.iv139 - %149 = load i8, ptr %148, align 1, !tbaa !43 - %150 = zext i8 %149 to i16 + %144 = getelementptr inbounds nuw i8, ptr %142, i64 %indvars.iv139 + %145 = load i8, ptr %144, align 1, !tbaa !43 + %146 = zext i8 %145 to i16 + %147 = getelementptr inbounds nuw i8, ptr %140, i64 %indvars.iv139 + %148 = load i8, ptr %147, align 1, !tbaa !43 + %149 = zext i8 %148 to i16 + %150 = sub nsw i16 %146, %149 %151 = getelementptr inbounds nuw i8, ptr %143, i64 %indvars.iv139 %152 = load i8, ptr %151, align 1, !tbaa !43 %153 = zext i8 %152 to i16 - %154 = sub nsw i16 %150, %153 - %155 = getelementptr inbounds nuw i8, ptr %147, i64 %indvars.iv139 - %156 = load i8, ptr %155, align 1, !tbaa !43 - %157 = zext i8 %156 to i16 - %158 = mul i16 %154, %157 - %159 = lshr i16 %158, 8 - %160 = trunc nuw i16 %159 to i8 - %161 = add i8 %152, %160 - store i8 %161, ptr %151, align 1, !tbaa !43 + %154 = mul i16 %150, %153 + %155 = lshr i16 %154, 8 + %156 = trunc nuw i16 %155 to i8 + %157 = add i8 %148, %156 + store i8 %157, ptr %147, align 1, !tbaa !43 %indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1 %exitcond144.not = icmp eq i64 %indvars.iv.next140, %wide.trip.count143 br i1 %exitcond144.not, label %fic_alpha_blend.exit85, label %.lr.ph105, !llvm.loop !82 fic_alpha_blend.exit85: ; preds = %.lr.ph105 - %162 = shl nuw nsw i64 %indvars.iv157, 3 - %163 = getelementptr inbounds nuw i8, ptr %6, i64 %162 - %164 = getelementptr inbounds nuw i8, ptr %93, i64 %162 - %.not = icmp eq i32 %118, 1 + %158 = shl nuw nsw i64 %indvars.iv157, 3 + %159 = getelementptr inbounds nuw i8, ptr %6, i64 %158 + %160 = getelementptr inbounds nuw i8, ptr %92, i64 %158 + %.not = icmp eq i32 %117, 1 br i1 %.not, label %fic_alpha_blend.exit89, label %.lr.ph107.preheader .lr.ph107.preheader: ; preds = %fic_alpha_blend.exit85 - %smax148 = tail call i32 @llvm.smax.i32(i32 %119, i32 1) + %smax148 = tail call i32 @llvm.smax.i32(i32 %118, i32 1) %wide.trip.count149 = zext nneg i32 %smax148 to i64 br label %.lr.ph107 .lr.ph107: ; preds = %.lr.ph107.preheader, %.lr.ph107 %indvars.iv145 = phi i64 [ 0, %.lr.ph107.preheader ], [ %indvars.iv.next146, %.lr.ph107 ] - %165 = getelementptr inbounds nuw i8, ptr %163, i64 %indvars.iv145 - %166 = load i8, ptr %165, align 1, !tbaa !43 - %167 = zext i8 %166 to i16 - %168 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv145 + %161 = getelementptr inbounds nuw i8, ptr %159, i64 %indvars.iv145 + %162 = load i8, ptr %161, align 1, !tbaa !43 + %163 = zext i8 %162 to i16 + %164 = getelementptr inbounds nuw i8, ptr %114, i64 %indvars.iv145 + %165 = load i8, ptr %164, align 1, !tbaa !43 + %166 = zext i8 %165 to i16 + %167 = sub nsw i16 %163, %166 + %168 = getelementptr inbounds nuw i8, ptr %160, i64 %indvars.iv145 %169 = load i8, ptr %168, align 1, !tbaa !43 %170 = zext i8 %169 to i16 - %171 = sub nsw i16 %167, %170 - %172 = getelementptr inbounds nuw i8, ptr %164, i64 %indvars.iv145 - %173 = load i8, ptr %172, align 1, !tbaa !43 - %174 = zext i8 %173 to i16 - %175 = mul i16 %171, %174 - %176 = lshr i16 %175, 8 - %177 = trunc nuw i16 %176 to i8 - %178 = add i8 %169, %177 - store i8 %178, ptr %168, align 1, !tbaa !43 + %171 = mul i16 %167, %170 + %172 = lshr i16 %171, 8 + %173 = trunc nuw i16 %172 to i8 + %174 = add i8 %165, %173 + store i8 %174, ptr %164, align 1, !tbaa !43 %indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1 %exitcond150.not = icmp eq i64 %indvars.iv.next146, %wide.trip.count149 br i1 %exitcond150.not, label %.lr.ph109.preheader, label %.lr.ph107, !llvm.loop !82 .lr.ph109.preheader: ; preds = %.lr.ph107 - %179 = getelementptr inbounds nuw i8, ptr %95, i64 %162 - %smax154 = tail call i32 @llvm.smax.i32(i32 %119, i32 1) + %175 = getelementptr inbounds nuw i8, ptr %94, i64 %158 + %smax154 = tail call i32 @llvm.smax.i32(i32 %118, i32 1) %wide.trip.count155 = zext nneg i32 %smax154 to i64 br label %.lr.ph109 .lr.ph109: ; preds = %.lr.ph109.preheader, %.lr.ph109 %indvars.iv151 = phi i64 [ 0, %.lr.ph109.preheader ], [ %indvars.iv.next152, %.lr.ph109 ] - %180 = getelementptr inbounds nuw i8, ptr %179, i64 %indvars.iv151 - %181 = load i8, ptr %180, align 1, !tbaa !43 - %182 = zext i8 %181 to i16 - %183 = getelementptr inbounds nuw i8, ptr %114, i64 %indvars.iv151 + %176 = getelementptr inbounds nuw i8, ptr %175, i64 %indvars.iv151 + %177 = load i8, ptr %176, align 1, !tbaa !43 + %178 = zext i8 %177 to i16 + %179 = getelementptr inbounds nuw i8, ptr %113, i64 %indvars.iv151 + %180 = load i8, ptr %179, align 1, !tbaa !43 + %181 = zext i8 %180 to i16 + %182 = sub nsw i16 %178, %181 + %183 = getelementptr inbounds nuw i8, ptr %160, i64 %indvars.iv151 %184 = load i8, ptr %183, align 1, !tbaa !43 %185 = zext i8 %184 to i16 - %186 = sub nsw i16 %182, %185 - %187 = getelementptr inbounds nuw i8, ptr %164, i64 %indvars.iv151 - %188 = load i8, ptr %187, align 1, !tbaa !43 - %189 = zext i8 %188 to i16 - %190 = mul i16 %186, %189 - %191 = lshr i16 %190, 8 - %192 = trunc nuw i16 %191 to i8 - %193 = add i8 %184, %192 - store i8 %193, ptr %183, align 1, !tbaa !43 + %186 = mul i16 %182, %185 + %187 = lshr i16 %186, 8 + %188 = trunc nuw i16 %187 to i8 + %189 = add i8 %180, %188 + store i8 %189, ptr %179, align 1, !tbaa !43 %indvars.iv.next152 = add nuw nsw i64 %indvars.iv151, 1 %exitcond156.not = icmp eq i64 %indvars.iv.next152, %wide.trip.count155 br i1 %exitcond156.not, label %fic_alpha_blend.exit89, label %.lr.ph109, !llvm.loop !82 -fic_alpha_blend.exit89: ; preds = %.lr.ph109, %113, %fic_alpha_blend.exit85 - %194 = load ptr, ptr %54, align 8, !tbaa !44 - %195 = getelementptr inbounds nuw i8, ptr %194, i64 64 - %196 = load i32, ptr %195, align 8, !tbaa !65 - %197 = shl nsw i32 %196, 1 +fic_alpha_blend.exit89: ; preds = %.lr.ph109, %112, %fic_alpha_blend.exit85 + %190 = load ptr, ptr %54, align 8, !tbaa !44 + %191 = getelementptr inbounds nuw i8, ptr %190, i64 64 + %192 = load i32, ptr %191, align 8, !tbaa !65 + %193 = shl nsw i32 %192, 1 + %194 = sext i32 %193 to i64 + %195 = getelementptr inbounds i8, ptr %115, i64 %194 + %196 = getelementptr inbounds nuw i8, ptr %190, i64 68 + %197 = load i32, ptr %196, align 4, !tbaa !65 %198 = sext i32 %197 to i64 - %199 = getelementptr inbounds i8, ptr %116, i64 %198 - %200 = getelementptr inbounds nuw i8, ptr %194, i64 68 - %201 = load i32, ptr %200, align 4, !tbaa !65 + %199 = getelementptr inbounds i8, ptr %114, i64 %198 + %200 = getelementptr inbounds nuw i8, ptr %190, i64 72 + %201 = load i32, ptr %200, align 8, !tbaa !65 %202 = sext i32 %201 to i64 - %203 = getelementptr inbounds i8, ptr %115, i64 %202 - %204 = getelementptr inbounds nuw i8, ptr %194, i64 72 - %205 = load i32, ptr %204, align 8, !tbaa !65 - %206 = sext i32 %205 to i64 - %207 = getelementptr inbounds i8, ptr %114, i64 %206 + %203 = getelementptr inbounds i8, ptr %113, i64 %202 %indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 2 - %208 = load i32, ptr %86, align 4, !tbaa !34 - %209 = sub nsw i32 %208, %2 - %210 = tail call i32 @llvm.smin.i32(i32 %209, i32 32) - %spec.select = add i32 %210, -1 - %211 = sext i32 %spec.select to i64 - %212 = icmp slt i64 %indvars.iv.next158, %211 - br i1 %212, label %113, label %._crit_edge, !llvm.loop !83 + %204 = load i32, ptr %86, align 4, !tbaa !34 + %205 = sub nsw i32 %204, %2 + %206 = tail call i32 @llvm.smin.i32(i32 %205, i32 32) + %spec.select = add nsw i32 %206, -1 + %207 = sext i32 %spec.select to i64 + %208 = icmp slt i64 %indvars.iv.next158, %207 + br i1 %208, label %112, label %._crit_edge, !llvm.loop !83 ._crit_edge: ; preds = %fic_alpha_blend.exit89, %.preheader call void @llvm.lifetime.end.p0(i64 768, ptr nonnull %6) #9 diff --git a/bench/ffmpeg/optimized/vf_xfade.ll b/bench/ffmpeg/optimized/vf_xfade.ll index 3e38700d910..7334ed5c3b9 100644 --- a/bench/ffmpeg/optimized/vf_xfade.ll +++ b/bench/ffmpeg/optimized/vf_xfade.ll @@ -15145,7 +15145,7 @@ define internal double @a0(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 1) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15206,7 +15206,7 @@ define internal double @a1(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 2) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15267,7 +15267,7 @@ define internal double @a2(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 3) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15328,7 +15328,7 @@ define internal double @a3(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 4) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15389,7 +15389,7 @@ define internal double @b0(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 1) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15450,7 +15450,7 @@ define internal double @b1(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 2) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15511,7 +15511,7 @@ define internal double @b2(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 3) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 @@ -15572,7 +15572,7 @@ define internal double @b3(ptr noundef readonly captures(none) %0, double nounde %6 = getelementptr inbounds nuw i8, ptr %0, i64 40 %7 = load i32, ptr %6, align 8, !tbaa !77 %8 = tail call i32 @llvm.smin.i32(i32 %7, i32 4) - %9 = add i32 %8, -1 + %9 = add nsw i32 %8, -1 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds [8 x ptr], ptr %5, i64 0, i64 %10 %12 = load ptr, ptr %11, align 8, !tbaa !89 diff --git a/bench/graphviz/optimized/sfcvt.ll b/bench/graphviz/optimized/sfcvt.ll index 25a24756fb1..6419049752f 100644 --- a/bench/graphviz/optimized/sfcvt.ll +++ b/bench/graphviz/optimized/sfcvt.ll @@ -534,8 +534,8 @@ define nonnull ptr @_sfcvt(ptr noundef readonly captures(none) %0, i32 noundef % 250: ; preds = %248 %251 = tail call i32 @llvm.smax.i32(i32 %.promoted, i32 0) - %narrow389 = add nuw i32 %251, 1 - %252 = zext i32 %narrow389 to i64 + %narrow389 = add nuw nsw i32 %251, 1 + %252 = zext nneg i32 %narrow389 to i64 %253 = sub nsw i64 %252, %.5276 %narrow = tail call i32 @llvm.smax.i32(i32 %1, i32 0) %254 = zext nneg i32 %narrow to i64 diff --git a/bench/icu/optimized/umutablecptrie.ll b/bench/icu/optimized/umutablecptrie.ll index f0a246bdb01..e81acdd23b1 100644 --- a/bench/icu/optimized/umutablecptrie.ll +++ b/bench/icu/optimized/umutablecptrie.ll @@ -4360,12 +4360,12 @@ define internal fastcc void @_ZN6icu_7712_GLOBAL__N_111MixedBlocks6extendIjEEvPK %6 = load i32, ptr %5, align 8, !tbaa !62 %7 = sub nsw i32 %2, %6 %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) - %.0 = add i32 %8, 1 %9 = sub nsw i32 %3, %6 - %.not25 = icmp sgt i32 %.0, %9 - br i1 %.not25, label %._crit_edge, label %.lr.ph + %.not25.not = icmp slt i32 %8, %9 + br i1 %.not25.not, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4 + %.0 = add nsw i32 %8, 1 %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 %11 = getelementptr inbounds nuw i8, ptr %0, i64 12 %12 = load ptr, ptr %0, align 8, !tbaa !58 diff --git a/bench/openblas/optimized/dorcsd2by1.ll b/bench/openblas/optimized/dorcsd2by1.ll index 63a16ad42a6..d5c1f1fae68 100644 --- a/bench/openblas/optimized/dorcsd2by1.ll +++ b/bench/openblas/optimized/dorcsd2by1.ll @@ -144,7 +144,7 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou 91: ; preds = %81 %92 = tail call i32 @llvm.smax.i32(i32 %88, i32 2) - %93 = add nuw i32 %92, 1 + %93 = add nuw nsw i32 %92, 1 %94 = tail call i32 @llvm.smax.i32(i32 %88, i32 1) %95 = add nuw nsw i32 %93, %94 %96 = tail call i32 @llvm.smax.i32(i32 %88, i32 2) @@ -161,9 +161,9 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou store i32 1, ptr %22, align 4, !tbaa !3 store i32 %84, ptr %23, align 4, !tbaa !3 %106 = tail call i32 @llvm.smax.i32(i32 %84, i32 1) - %107 = add nsw i32 %105, %106 + %107 = add nuw nsw i32 %105, %106 %108 = tail call i32 @llvm.smax.i32(i32 %86, i32 1) - %109 = add nsw i32 %107, %108 + %109 = add nuw nsw i32 %107, %108 %110 = icmp eq i32 %88, %86 br i1 %110, label %111, label %149 @@ -550,9 +550,9 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou %295 = add i32 %104, -1 %296 = add i32 %295, %287 %297 = call i32 @llvm.smax.i32(i32 %294, i32 %296) - %298 = add i32 %289, %.2 + %298 = add nuw i32 %289, %.2 %299 = call i32 @llvm.smax.i32(i32 %290, i32 %298) - %300 = add i32 %289, %.11147 + %300 = add nuw i32 %289, %.11147 %301 = call i32 @llvm.smax.i32(i32 %299, i32 %300) store i32 %301, ptr %22, align 4, !tbaa !3 store i32 %296, ptr %23, align 4, !tbaa !3 @@ -596,14 +596,14 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou 318: ; preds = %312 %319 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %320 = sext i32 %93 to i64 - %321 = getelementptr inbounds double, ptr %48, i64 %320 - %322 = sext i32 %105 to i64 - %323 = getelementptr inbounds double, ptr %48, i64 %322 - %324 = sext i32 %107 to i64 - %325 = getelementptr inbounds double, ptr %48, i64 %324 - %326 = sext i32 %109 to i64 - %327 = getelementptr inbounds double, ptr %48, i64 %326 + %320 = zext nneg i32 %93 to i64 + %321 = getelementptr inbounds nuw double, ptr %48, i64 %320 + %322 = zext nneg i32 %105 to i64 + %323 = getelementptr inbounds nuw double, ptr %48, i64 %322 + %324 = zext nneg i32 %107 to i64 + %325 = getelementptr inbounds nuw double, ptr %48, i64 %324 + %326 = zext nneg i32 %109 to i64 + %327 = getelementptr inbounds nuw double, ptr %48, i64 %326 call void @dorbdb1_(ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %319, ptr noundef nonnull %321, ptr noundef nonnull %323, ptr noundef nonnull %325, ptr noundef nonnull %327, ptr noundef nonnull %28, ptr noundef nonnull %26) #4 %.not1275 = icmp eq i32 %50, 0 br i1 %.not1275, label %332, label %328 @@ -695,8 +695,8 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou br label %362 362: ; preds = %._crit_edge1358, %344, %343 - %363 = sext i32 %95 to i64 - %364 = getelementptr inbounds double, ptr %48, i64 %363 + %363 = zext nneg i32 %95 to i64 + %364 = getelementptr inbounds nuw double, ptr %48, i64 %363 %365 = sext i32 %98 to i64 %366 = getelementptr inbounds double, ptr %48, i64 %365 %367 = sext i32 %99 to i64 @@ -781,14 +781,14 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou 405: ; preds = %402 %406 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %407 = sext i32 %93 to i64 - %408 = getelementptr inbounds double, ptr %48, i64 %407 - %409 = sext i32 %105 to i64 - %410 = getelementptr inbounds double, ptr %48, i64 %409 - %411 = sext i32 %107 to i64 - %412 = getelementptr inbounds double, ptr %48, i64 %411 - %413 = sext i32 %109 to i64 - %414 = getelementptr inbounds double, ptr %48, i64 %413 + %407 = zext nneg i32 %93 to i64 + %408 = getelementptr inbounds nuw double, ptr %48, i64 %407 + %409 = zext nneg i32 %105 to i64 + %410 = getelementptr inbounds nuw double, ptr %48, i64 %409 + %411 = zext nneg i32 %107 to i64 + %412 = getelementptr inbounds nuw double, ptr %48, i64 %411 + %413 = zext nneg i32 %109 to i64 + %414 = getelementptr inbounds nuw double, ptr %48, i64 %413 call void @dorbdb2_(ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %406, ptr noundef nonnull %408, ptr noundef nonnull %410, ptr noundef nonnull %412, ptr noundef nonnull %414, ptr noundef nonnull %28, ptr noundef nonnull %26) #4 %.not1269 = icmp eq i32 %50, 0 br i1 %.not1269, label %432, label %415 @@ -879,8 +879,8 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou br label %448 448: ; preds = %447, %444, %443 - %449 = sext i32 %95 to i64 - %450 = getelementptr inbounds double, ptr %48, i64 %449 + %449 = zext nneg i32 %95 to i64 + %450 = getelementptr inbounds nuw double, ptr %48, i64 %449 %451 = sext i32 %98 to i64 %452 = getelementptr inbounds double, ptr %48, i64 %451 %453 = sext i32 %99 to i64 @@ -966,14 +966,14 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou 492: ; preds = %488 %493 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %494 = sext i32 %93 to i64 - %495 = getelementptr inbounds double, ptr %48, i64 %494 - %496 = sext i32 %105 to i64 - %497 = getelementptr inbounds double, ptr %48, i64 %496 - %498 = sext i32 %107 to i64 - %499 = getelementptr inbounds double, ptr %48, i64 %498 - %500 = sext i32 %109 to i64 - %501 = getelementptr inbounds double, ptr %48, i64 %500 + %494 = zext nneg i32 %93 to i64 + %495 = getelementptr inbounds nuw double, ptr %48, i64 %494 + %496 = zext nneg i32 %105 to i64 + %497 = getelementptr inbounds nuw double, ptr %48, i64 %496 + %498 = zext nneg i32 %107 to i64 + %499 = getelementptr inbounds nuw double, ptr %48, i64 %498 + %500 = zext nneg i32 %109 to i64 + %501 = getelementptr inbounds nuw double, ptr %48, i64 %500 call void @dorbdb3_(ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %493, ptr noundef nonnull %495, ptr noundef nonnull %497, ptr noundef nonnull %499, ptr noundef nonnull %501, ptr noundef nonnull %28, ptr noundef nonnull %26) #4 %.not1263 = icmp eq i32 %50, 0 br i1 %.not1263, label %506, label %502 @@ -1072,8 +1072,8 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou %540 = load i32, ptr %4, align 4, !tbaa !3 %541 = sub nsw i32 %538, %540 store i32 %541, ptr %23, align 4, !tbaa !3 - %542 = sext i32 %95 to i64 - %543 = getelementptr inbounds double, ptr %48, i64 %542 + %542 = zext nneg i32 %95 to i64 + %543 = getelementptr inbounds nuw double, ptr %48, i64 %542 %544 = sext i32 %98 to i64 %545 = getelementptr inbounds double, ptr %48, i64 %544 %546 = sext i32 %99 to i64 @@ -1158,14 +1158,14 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou %578 = sub nsw i32 %288, %489 store i32 %578, ptr %22, align 4, !tbaa !3 %579 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %580 = sext i32 %93 to i64 - %581 = getelementptr inbounds double, ptr %48, i64 %580 - %582 = sext i32 %105 to i64 - %583 = getelementptr inbounds double, ptr %48, i64 %582 - %584 = sext i32 %107 to i64 - %585 = getelementptr inbounds double, ptr %48, i64 %584 - %586 = sext i32 %109 to i64 - %587 = getelementptr inbounds double, ptr %48, i64 %586 + %580 = zext nneg i32 %93 to i64 + %581 = getelementptr inbounds nuw double, ptr %48, i64 %580 + %582 = zext nneg i32 %105 to i64 + %583 = getelementptr inbounds nuw double, ptr %48, i64 %582 + %584 = zext nneg i32 %107 to i64 + %585 = getelementptr inbounds nuw double, ptr %48, i64 %584 + %586 = zext nneg i32 %109 to i64 + %587 = getelementptr inbounds nuw double, ptr %48, i64 %586 %588 = add nsw i32 %489, %109 %589 = sext i32 %588 to i64 %590 = getelementptr inbounds double, ptr %48, i64 %589 @@ -1350,8 +1350,8 @@ define void @dorcsd2by1_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nou store i32 %685, ptr %22, align 4, !tbaa !3 %686 = sub nsw i32 %683, %682 store i32 %686, ptr %23, align 4, !tbaa !3 - %687 = sext i32 %95 to i64 - %688 = getelementptr inbounds double, ptr %48, i64 %687 + %687 = zext nneg i32 %95 to i64 + %688 = getelementptr inbounds nuw double, ptr %48, i64 %687 %689 = sext i32 %98 to i64 %690 = getelementptr inbounds double, ptr %48, i64 %689 %691 = sext i32 %99 to i64 diff --git a/bench/openblas/optimized/dtgsen.ll b/bench/openblas/optimized/dtgsen.ll index 5e0263024d1..1a12699cd73 100644 --- a/bench/openblas/optimized/dtgsen.ll +++ b/bench/openblas/optimized/dtgsen.ll @@ -224,20 +224,20 @@ define void @dtgsen_(ptr noundef readonly captures(none) %0, ptr noundef %1, ptr %122 = load i32, ptr %4, align 4, !tbaa !3 %123 = shl i32 %122, 2 %124 = tail call i32 @llvm.smax.i32(i32 %123, i32 -15) - %125 = add i32 %124, 16 + %125 = add nsw i32 %124, 16 %126 = shl i32 %120, 1 %127 = sub nsw i32 %122, %120 %128 = mul nsw i32 %126, %127 %129 = tail call i32 @llvm.smax.i32(i32 %125, i32 %128) %130 = tail call i32 @llvm.smax.i32(i32 %122, i32 -5) - %131 = add i32 %130, 6 + %131 = add nsw i32 %130, 6 br label %150 132: ; preds = %._crit_edge, %._crit_edge %133 = load i32, ptr %4, align 4, !tbaa !3 %134 = shl i32 %133, 2 %135 = tail call i32 @llvm.smax.i32(i32 %134, i32 -15) - %136 = add i32 %135, 16 + %136 = add nsw i32 %135, 16 %137 = shl i32 %120, 2 %138 = sub nsw i32 %133, %120 %139 = mul nsw i32 %137, %138 @@ -253,13 +253,13 @@ define void @dtgsen_(ptr noundef readonly captures(none) %0, ptr noundef %1, ptr %146 = load i32, ptr %4, align 4, !tbaa !3 %147 = shl i32 %146, 2 %148 = tail call i32 @llvm.smax.i32(i32 %147, i32 -15) - %149 = add i32 %148, 16 + %149 = add nsw i32 %148, 16 br label %150 150: ; preds = %132, %.thread585, %121 %.0524 = phi i32 [ %129, %121 ], [ %140, %132 ], [ %149, %.thread585 ] %.0 = phi i32 [ %131, %121 ], [ %145, %132 ], [ 1, %.thread585 ] - %151 = sitofp i32 %.0524 to double + %151 = uitofp nneg i32 %.0524 to double store double %151, ptr %20, align 8, !tbaa !7 store i32 %.0, ptr %22, align 4, !tbaa !3 %152 = load i32, ptr %21, align 4, !tbaa !3 diff --git a/bench/opencv/optimized/trackerCSRTSegmentation.ll b/bench/opencv/optimized/trackerCSRTSegmentation.ll index b1820f7630a..e34fb067ab0 100644 --- a/bench/opencv/optimized/trackerCSRTSegmentation.ll +++ b/bench/opencv/optimized/trackerCSRTSegmentation.ll @@ -4414,10 +4414,11 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS %80 = sub nsw i32 %.sroa.speculated211, %.sroa.speculated233 %81 = sub nsw i32 %.sroa.speculated, %.sroa.speculated222 %82 = tail call i32 @llvm.smax.i32(i32 %80, i32 0) - %83 = add nuw i32 %82, 1 - %84 = tail call i32 @llvm.smin.i32(i32 %75, i32 %83) + %83 = add nuw nsw i32 %82, 1 + %.not266 = icmp sgt i32 %75, %82 + %84 = select i1 %.not266, i32 %83, i32 %75 %85 = tail call i32 @llvm.smax.i32(i32 %81, i32 0) - %86 = add nuw i32 %85, 1 + %86 = add nuw nsw i32 %85, 1 %87 = tail call i32 @llvm.smin.i32(i32 %78, i32 %86) %88 = fsub double 1.000000e+00, %6 %89 = mul nsw i32 %87, %84 @@ -4478,8 +4479,8 @@ _ZNSt12_Vector_baseIN2cv3MatESaIS1_EEC2EmRKS2_.exit.i: ; preds = %73 store ptr %112, ptr %108, align 8, !tbaa !67 %114 = load ptr, ptr %53, align 8, !tbaa !67 %115 = load ptr, ptr %1, align 8, !tbaa !29 - %.not266 = icmp eq ptr %114, %115 - br i1 %.not266, label %._crit_edge, label %.lr.ph + %.not267 = icmp eq ptr %114, %115 + br i1 %.not267, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %113 %116 = getelementptr inbounds nuw i8, ptr %16, i64 16 diff --git a/bench/openusd/optimized/warped_motion.ll b/bench/openusd/optimized/warped_motion.ll index 68f38c68b54..90ce0a765bc 100644 --- a/bench/openusd/optimized/warped_motion.ll +++ b/bench/openusd/optimized/warped_motion.ll @@ -301,154 +301,147 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) br i1 %46, label %.preheader217.us, label %._crit_edge239 .preheader217.us: ; preds = %.preheader217.lr.ph, %._crit_edge.us244 - %indvars.iv273 = phi i32 [ %indvars.iv.next274, %._crit_edge.us244 ], [ %9, %.preheader217.lr.ph ] - %.0238.us = phi i32 [ %252, %._crit_edge.us244 ], [ %7, %.preheader217.lr.ph ] - %smin275 = tail call i32 @llvm.smin.i32(i32 %indvars.iv273, i32 8) - %77 = add i32 %smin275, -4 - %78 = add nsw i32 %.0238.us, 4 - %79 = shl i32 %78, %12 - %80 = sub nsw i32 %40, %.0238.us - %81 = tail call i32 @llvm.smin.i32(i32 %80, i32 8) - %spec.select205.us = add i32 %81, -4 - %82 = icmp sgt i32 %spec.select205.us, -4 + %.0238.us = phi i32 [ %254, %._crit_edge.us244 ], [ %7, %.preheader217.lr.ph ] + %77 = add nsw i32 %.0238.us, 4 + %78 = shl i32 %77, %12 + %79 = sub nsw i32 %40, %.0238.us + %80 = tail call i32 @llvm.smin.i32(i32 %79, i32 8) + %spec.select205.us = add nsw i32 %80, -4 + %81 = icmp sgt i32 %79, 0 %reass.sub = sub i32 %.0238.us, %7 %invariant.op236.us = add nuw nsw i32 %reass.sub, 4 - %wide.trip.count276 = sext i32 %77 to i64 + %82 = sext i32 %spec.select205.us to i64 br label %83 83: ; preds = %.preheader217.us, %._crit_edge235.us - %indvars.iv267 = phi i32 [ %8, %.preheader217.us ], [ %indvars.iv.next268, %._crit_edge235.us ] - %.0183237.us = phi i32 [ %6, %.preheader217.us ], [ %111, %._crit_edge235.us ] - %smin = tail call i32 @llvm.smin.i32(i32 %indvars.iv267, i32 8) - %84 = add i32 %smin, -4 - %85 = add nsw i32 %.0183237.us, 4 - %86 = shl i32 %85, %11 - %87 = load i32, ptr %47, align 4 - %88 = mul nsw i32 %87, %86 - %89 = load i32, ptr %48, align 4 - %90 = mul nsw i32 %89, %79 - %91 = add nsw i32 %90, %88 - %92 = load i32, ptr %0, align 4 - %93 = add nsw i32 %91, %92 - %94 = load i32, ptr %49, align 4 - %95 = mul nsw i32 %94, %86 - %96 = load i32, ptr %50, align 4 - %97 = mul nsw i32 %96, %79 - %98 = add nsw i32 %97, %95 - %99 = load i32, ptr %51, align 4 - %100 = add nsw i32 %98, %99 - %101 = ashr i32 %93, %11 - %102 = ashr i32 %100, %12 - %103 = ashr i32 %101, 16 - %104 = and i32 %101, 65532 - %105 = ashr i32 %102, 16 - %106 = sub nsw i32 %104, %55 - %107 = and i32 %106, -64 - %108 = add nsw i32 %103, -3 - %109 = sext i32 %108 to i64 - %110 = sext i32 %105 to i64 - br label %113 + %.0183237.us = phi i32 [ %6, %.preheader217.us ], [ %110, %._crit_edge235.us ] + %84 = add nsw i32 %.0183237.us, 4 + %85 = shl i32 %84, %11 + %86 = load i32, ptr %47, align 4 + %87 = mul nsw i32 %86, %85 + %88 = load i32, ptr %48, align 4 + %89 = mul nsw i32 %88, %78 + %90 = add nsw i32 %89, %87 + %91 = load i32, ptr %0, align 4 + %92 = add nsw i32 %90, %91 + %93 = load i32, ptr %49, align 4 + %94 = mul nsw i32 %93, %85 + %95 = load i32, ptr %50, align 4 + %96 = mul nsw i32 %95, %78 + %97 = add nsw i32 %96, %94 + %98 = load i32, ptr %51, align 4 + %99 = add nsw i32 %97, %98 + %100 = ashr i32 %92, %11 + %101 = ashr i32 %99, %12 + %102 = ashr i32 %100, 16 + %103 = and i32 %100, 65532 + %104 = ashr i32 %101, 16 + %105 = sub nsw i32 %103, %55 + %106 = and i32 %105, -64 + %107 = add nsw i32 %102, -3 + %108 = sext i32 %107 to i64 + %109 = sext i32 %104 to i64 + br label %112 ._crit_edge235.us: ; preds = %._crit_edge.us.us, %.lr.ph234.us, %.preheader.us - %111 = add nsw i32 %.0183237.us, 8 - %112 = icmp slt i32 %111, %45 - %indvars.iv.next268 = add i32 %indvars.iv267, -8 - br i1 %112, label %83, label %._crit_edge.us244, !llvm.loop !4 - -113: ; preds = %126, %83 - %indvars.iv256 = phi i64 [ %indvars.iv.next257, %126 ], [ -7, %83 ] - %114 = add nsw i64 %indvars.iv256, %110 - %115 = icmp slt i64 %114, 0 - %116 = trunc nsw i64 %114 to i32 - %117 = tail call i32 @llvm.smin.i32(i32 %116, i32 range(i32 -2147483648, 2147483647) %60) - %118 = select i1 %115, i32 0, i32 %117 - %119 = mul nsw i32 %118, %4 - %120 = shl i64 %indvars.iv256, 3 - %121 = add nsw i64 %120, 60 - %122 = trunc i64 %indvars.iv256 to i32 - %123 = add i32 %122, 4 - %124 = mul i32 %123, %53 - %125 = add i32 %124, %107 - br label %127 - -126: ; preds = %134 + %110 = add nsw i32 %.0183237.us, 8 + %111 = icmp slt i32 %110, %45 + br i1 %111, label %83, label %._crit_edge.us244, !llvm.loop !4 + +112: ; preds = %125, %83 + %indvars.iv256 = phi i64 [ %indvars.iv.next257, %125 ], [ -7, %83 ] + %113 = add nsw i64 %indvars.iv256, %109 + %114 = icmp slt i64 %113, 0 + %115 = trunc nsw i64 %113 to i32 + %116 = tail call i32 @llvm.smin.i32(i32 %115, i32 range(i32 -2147483648, 2147483647) %60) + %117 = select i1 %114, i32 0, i32 %116 + %118 = mul nsw i32 %117, %4 + %119 = shl i64 %indvars.iv256, 3 + %120 = add nsw i64 %119, 60 + %121 = trunc i64 %indvars.iv256 to i32 + %122 = add i32 %121, 4 + %123 = mul i32 %122, %53 + %124 = add i32 %123, %106 + br label %126 + +125: ; preds = %133 %indvars.iv.next257 = add nsw i64 %indvars.iv256, 1 %exitcond259.not = icmp eq i64 %indvars.iv.next257, 8 - br i1 %exitcond259.not, label %.preheader.us, label %113, !llvm.loop !6 - -127: ; preds = %134, %113 - %indvars.iv252 = phi i64 [ %indvars.iv.next253, %134 ], [ -4, %113 ] - %.0190221.us = phi i32 [ %139, %134 ], [ %125, %113 ] - %128 = add nsw i32 %.0190221.us, 512 - %129 = ashr i32 %128, 10 - %130 = add nsw i32 %129, 64 - %131 = sext i32 %130 to i64 - %132 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %131 - %133 = add nsw i64 %indvars.iv252, %109 - br label %140 - -134: ; preds = %140 - %135 = add nsw i32 %155, %64 - %136 = ashr i32 %135, %26 - %137 = add nsw i64 %121, %indvars.iv252 - %138 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %137 - store i32 %136, ptr %138, align 4 - %139 = add nsw i32 %.0190221.us, %52 + br i1 %exitcond259.not, label %.preheader.us, label %112, !llvm.loop !6 + +126: ; preds = %133, %112 + %indvars.iv252 = phi i64 [ %indvars.iv.next253, %133 ], [ -4, %112 ] + %.0190221.us = phi i32 [ %138, %133 ], [ %124, %112 ] + %127 = add nsw i32 %.0190221.us, 512 + %128 = ashr i32 %127, 10 + %129 = add nsw i32 %128, 64 + %130 = sext i32 %129 to i64 + %131 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %130 + %132 = add nsw i64 %indvars.iv252, %108 + br label %139 + +133: ; preds = %139 + %134 = add nsw i32 %154, %64 + %135 = ashr i32 %134, %26 + %136 = add nsw i64 %120, %indvars.iv252 + %137 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %136 + store i32 %135, ptr %137, align 4 + %138 = add nsw i32 %.0190221.us, %52 %indvars.iv.next253 = add nsw i64 %indvars.iv252, 1 %exitcond255.not = icmp eq i64 %indvars.iv.next253, 4 - br i1 %exitcond255.not, label %126, label %127, !llvm.loop !7 - -140: ; preds = %140, %127 - %indvars.iv = phi i64 [ %indvars.iv.next, %140 ], [ 0, %127 ] - %.0192218.us = phi i32 [ %155, %140 ], [ %61, %127 ] - %141 = add nsw i64 %133, %indvars.iv - %142 = icmp slt i64 %141, 0 - %143 = trunc nsw i64 %141 to i32 - %144 = tail call i32 @llvm.smin.i32(i32 %143, i32 range(i32 -2147483648, 2147483647) %62) - %145 = select i1 %142, i32 0, i32 %144 - %146 = add nsw i32 %145, %119 - %147 = sext i32 %146 to i64 - %148 = getelementptr inbounds i16, ptr %1, i64 %147 - %149 = load i16, ptr %148, align 2 - %150 = zext i16 %149 to i32 - %151 = getelementptr inbounds nuw i16, ptr %132, i64 %indvars.iv - %152 = load i16, ptr %151, align 2 - %153 = sext i16 %152 to i32 - %154 = mul nsw i32 %153, %150 - %155 = add nsw i32 %154, %.0192218.us + br i1 %exitcond255.not, label %125, label %126, !llvm.loop !7 + +139: ; preds = %139, %126 + %indvars.iv = phi i64 [ %indvars.iv.next, %139 ], [ 0, %126 ] + %.0192218.us = phi i32 [ %154, %139 ], [ %61, %126 ] + %140 = add nsw i64 %132, %indvars.iv + %141 = icmp slt i64 %140, 0 + %142 = trunc nsw i64 %140 to i32 + %143 = tail call i32 @llvm.smin.i32(i32 %142, i32 range(i32 -2147483648, 2147483647) %62) + %144 = select i1 %141, i32 0, i32 %143 + %145 = add nsw i32 %144, %118 + %146 = sext i32 %145 to i64 + %147 = getelementptr inbounds i16, ptr %1, i64 %146 + %148 = load i16, ptr %147, align 2 + %149 = zext i16 %148 to i32 + %150 = getelementptr inbounds nuw i16, ptr %131, i64 %indvars.iv + %151 = load i16, ptr %150, align 2 + %152 = sext i16 %151 to i32 + %153 = mul nsw i32 %152, %149 + %154 = add nsw i32 %153, %.0192218.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 8 - br i1 %exitcond.not, label %134, label %140, !llvm.loop !8 + br i1 %exitcond.not, label %133, label %139, !llvm.loop !8 -.preheader.us: ; preds = %126 - %156 = and i32 %102, 65532 - %157 = sub nsw i32 %156, %59 - %158 = and i32 %157, -64 - br i1 %82, label %.lr.ph234.us, label %._crit_edge235.us +.preheader.us: ; preds = %125 + %155 = and i32 %101, 65532 + %156 = sub nsw i32 %155, %59 + %157 = and i32 %156, -64 + br i1 %81, label %.lr.ph234.us, label %._crit_edge235.us .lr.ph234.us: ; preds = %.preheader.us - %159 = sub nsw i32 %45, %.0183237.us - %160 = tail call i32 @llvm.smin.i32(i32 %159, i32 8) - %spec.select206.us = add i32 %160, -4 - %161 = icmp sgt i32 %spec.select206.us, -4 + %158 = sub nsw i32 %45, %.0183237.us + %159 = icmp sgt i32 %158, 0 %reass.sub246 = sub i32 %.0183237.us, %6 - %162 = add nuw nsw i32 %reass.sub246, 4 - br i1 %161, label %.lr.ph.us.us.preheader, label %._crit_edge235.us + %160 = add nuw nsw i32 %reass.sub246, 4 + br i1 %159, label %.lr.ph.us.us.preheader, label %._crit_edge235.us .lr.ph.us.us.preheader: ; preds = %.lr.ph234.us - %wide.trip.count = sext i32 %84 to i64 + %161 = tail call i32 @llvm.umin.i32(i32 %158, i32 8) + %spec.select206.us = add nsw i32 %161, -4 + %162 = sext i32 %spec.select206.us to i64 br label %.lr.ph.us.us .lr.ph.us.us: ; preds = %.lr.ph.us.us.preheader, %._crit_edge.us.us - %indvars.iv270 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next271, %._crit_edge.us.us ] - %163 = trunc nsw i64 %indvars.iv270 to i32 + %indvars.iv267 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next268, %._crit_edge.us.us ] + %163 = trunc nsw i64 %indvars.iv267 to i32 %.reass.reass.us.us = add i32 %invariant.op236.us, %163 %164 = mul nsw i32 %.reass.reass.us.us, %10 - %invariant.op229.us.us = add i32 %162, %164 - %165 = trunc i64 %indvars.iv270 to i32 + %invariant.op229.us.us = add i32 %160, %164 + %165 = trunc i64 %indvars.iv267 to i32 %166 = add i32 %165, 4 %167 = mul i32 %166, %57 - %168 = add i32 %167, %158 + %168 = add i32 %167, %157 br label %169 169: ; preds = %237, %.lr.ph.us.us @@ -461,9 +454,9 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %174 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %173 %175 = trunc nsw i64 %indvars.iv264 to i32 %176 = add i32 %175, 36 - br label %239 + br label %240 -177: ; preds = %239 +177: ; preds = %240 %178 = load i32, ptr %27, align 8 %.not199.us.us = icmp eq i32 %178, 0 br i1 %.not199.us.us, label %223, label %179 @@ -472,11 +465,11 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %180 = load ptr, ptr %66, align 8 %181 = load i32, ptr %67, align 8 %182 = mul nsw i32 %181, %.reass.reass.us.us - %183 = add i32 %162, %175 + %183 = add i32 %160, %175 %184 = add nsw i32 %182, %183 %185 = sext i32 %184 to i64 %186 = getelementptr inbounds i16, ptr %180, i64 %185 - %187 = add nsw i32 %251, %69 + %187 = add nsw i32 %252, %69 %188 = ashr i32 %187, %36 %189 = load i32, ptr %14, align 8 %.not201.us.us = icmp eq i32 %189, 0 @@ -551,7 +544,7 @@ clip_pixel_highbd.exit.us.us: ; preds = %219, %217, %215 %224 = add i32 %invariant.op229.us.us, %175 %225 = sext i32 %224 to i64 %226 = getelementptr inbounds i16, ptr %5, i64 %225 - %227 = add nsw i32 %251, %69 + %227 = add nsw i32 %252, %69 %228 = ashr i32 %227, %36 %229 = add i32 %76, %228 %230 = tail call i32 @llvm.smax.i32(i32 %229, i32 0) @@ -581,38 +574,37 @@ clip_pixel_highbd.exit209.us.us: ; preds = %235, %233, %231 237: ; preds = %clip_pixel_highbd.exit209.us.us, %221, %clip_pixel_highbd.exit.us.us %238 = add nsw i32 %.0188227.us.us, %56 %indvars.iv.next265 = add nsw i64 %indvars.iv264, 1 - %exitcond269.not = icmp eq i64 %indvars.iv.next265, %wide.trip.count - br i1 %exitcond269.not, label %._crit_edge.us.us, label %169, !llvm.loop !9 - -239: ; preds = %239, %169 - %indvars.iv260 = phi i64 [ %indvars.iv.next261, %239 ], [ 0, %169 ] - %.0185223.us.us = phi i32 [ %251, %239 ], [ %65, %169 ] - %240 = add nsw i64 %indvars.iv260, %indvars.iv270 - %241 = trunc nsw i64 %240 to i32 - %242 = shl i32 %241, 3 - %243 = add i32 %176, %242 - %244 = sext i32 %243 to i64 - %245 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %244 - %246 = load i32, ptr %245, align 4 - %247 = getelementptr inbounds nuw i16, ptr %174, i64 %indvars.iv260 - %248 = load i16, ptr %247, align 2 - %249 = sext i16 %248 to i32 - %250 = mul nsw i32 %246, %249 - %251 = add nsw i32 %250, %.0185223.us.us + %239 = icmp slt i64 %indvars.iv.next265, %162 + br i1 %239, label %169, label %._crit_edge.us.us, !llvm.loop !9 + +240: ; preds = %240, %169 + %indvars.iv260 = phi i64 [ %indvars.iv.next261, %240 ], [ 0, %169 ] + %.0185223.us.us = phi i32 [ %252, %240 ], [ %65, %169 ] + %241 = add nsw i64 %indvars.iv260, %indvars.iv267 + %242 = trunc nsw i64 %241 to i32 + %243 = shl i32 %242, 3 + %244 = add i32 %176, %243 + %245 = sext i32 %244 to i64 + %246 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %245 + %247 = load i32, ptr %246, align 4 + %248 = getelementptr inbounds nuw i16, ptr %174, i64 %indvars.iv260 + %249 = load i16, ptr %248, align 2 + %250 = sext i16 %249 to i32 + %251 = mul nsw i32 %247, %250 + %252 = add nsw i32 %251, %.0185223.us.us %indvars.iv.next261 = add nuw nsw i64 %indvars.iv260, 1 %exitcond263.not = icmp eq i64 %indvars.iv.next261, 8 - br i1 %exitcond263.not, label %177, label %239, !llvm.loop !10 + br i1 %exitcond263.not, label %177, label %240, !llvm.loop !10 ._crit_edge.us.us: ; preds = %237 - %indvars.iv.next271 = add nsw i64 %indvars.iv270, 1 - %exitcond277.not = icmp eq i64 %indvars.iv.next271, %wide.trip.count276 - br i1 %exitcond277.not, label %._crit_edge235.us, label %.lr.ph.us.us, !llvm.loop !11 + %indvars.iv.next268 = add nsw i64 %indvars.iv267, 1 + %253 = icmp slt i64 %indvars.iv.next268, %82 + br i1 %253, label %.lr.ph.us.us, label %._crit_edge235.us, !llvm.loop !11 ._crit_edge.us244: ; preds = %._crit_edge235.us - %252 = add nsw i32 %.0238.us, 8 - %253 = icmp slt i32 %252, %40 - %indvars.iv.next274 = add i32 %indvars.iv273, -8 - br i1 %253, label %.preheader217.us, label %._crit_edge239, !llvm.loop !12 + %254 = add nsw i32 %.0238.us, 8 + %255 = icmp slt i32 %254, %40 + br i1 %255, label %.preheader217.us, label %._crit_edge239, !llvm.loop !12 ._crit_edge239: ; preds = %._crit_edge.us244, %.preheader217.lr.ph, %34 ret void @@ -784,154 +776,147 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt br i1 %39, label %.preheader195.us, label %._crit_edge215 .preheader195.us: ; preds = %.preheader195.lr.ph, %._crit_edge.us220 - %indvars.iv249 = phi i32 [ %indvars.iv.next250, %._crit_edge.us220 ], [ %9, %.preheader195.lr.ph ] - %.0214.us = phi i32 [ %235, %._crit_edge.us220 ], [ %7, %.preheader195.lr.ph ] - %smin251 = tail call i32 @llvm.smin.i32(i32 %indvars.iv249, i32 8) - %67 = add i32 %smin251, -4 - %68 = add nsw i32 %.0214.us, 4 - %69 = shl i32 %68, %12 - %70 = sub nsw i32 %35, %.0214.us - %71 = tail call i32 @llvm.smin.i32(i32 %70, i32 8) - %spec.select.us = add i32 %71, -4 - %72 = icmp sgt i32 %spec.select.us, -4 + %.0214.us = phi i32 [ %237, %._crit_edge.us220 ], [ %7, %.preheader195.lr.ph ] + %67 = add nsw i32 %.0214.us, 4 + %68 = shl i32 %67, %12 + %69 = sub nsw i32 %35, %.0214.us + %70 = tail call i32 @llvm.smin.i32(i32 %69, i32 8) + %spec.select.us = add nsw i32 %70, -4 + %71 = icmp sgt i32 %69, 0 %reass.sub = sub i32 %.0214.us, %7 %invariant.op212.us = add nuw nsw i32 %reass.sub, 4 - %wide.trip.count252 = sext i32 %67 to i64 + %72 = sext i32 %spec.select.us to i64 br label %73 73: ; preds = %.preheader195.us, %._crit_edge211.us - %indvars.iv243 = phi i32 [ %8, %.preheader195.us ], [ %indvars.iv.next244, %._crit_edge211.us ] - %.0170213.us = phi i32 [ %6, %.preheader195.us ], [ %101, %._crit_edge211.us ] - %smin = tail call i32 @llvm.smin.i32(i32 %indvars.iv243, i32 8) - %74 = add i32 %smin, -4 - %75 = add nsw i32 %.0170213.us, 4 - %76 = shl i32 %75, %11 - %77 = load i32, ptr %40, align 4 - %78 = mul nsw i32 %77, %76 - %79 = load i32, ptr %41, align 4 - %80 = mul nsw i32 %79, %69 - %81 = add nsw i32 %80, %78 - %82 = load i32, ptr %0, align 4 - %83 = add nsw i32 %81, %82 - %84 = load i32, ptr %42, align 4 - %85 = mul nsw i32 %84, %76 - %86 = load i32, ptr %43, align 4 - %87 = mul nsw i32 %86, %69 - %88 = add nsw i32 %87, %85 - %89 = load i32, ptr %44, align 4 - %90 = add nsw i32 %88, %89 - %91 = ashr i32 %83, %11 - %92 = ashr i32 %90, %12 - %93 = ashr i32 %91, 16 - %94 = and i32 %91, 65532 - %95 = ashr i32 %92, 16 - %96 = sub nsw i32 %94, %48 - %97 = and i32 %96, -64 - %98 = add nsw i32 %93, -3 - %99 = sext i32 %98 to i64 - %100 = sext i32 %95 to i64 - br label %103 + %.0170213.us = phi i32 [ %6, %.preheader195.us ], [ %100, %._crit_edge211.us ] + %74 = add nsw i32 %.0170213.us, 4 + %75 = shl i32 %74, %11 + %76 = load i32, ptr %40, align 4 + %77 = mul nsw i32 %76, %75 + %78 = load i32, ptr %41, align 4 + %79 = mul nsw i32 %78, %68 + %80 = add nsw i32 %79, %77 + %81 = load i32, ptr %0, align 4 + %82 = add nsw i32 %80, %81 + %83 = load i32, ptr %42, align 4 + %84 = mul nsw i32 %83, %75 + %85 = load i32, ptr %43, align 4 + %86 = mul nsw i32 %85, %68 + %87 = add nsw i32 %86, %84 + %88 = load i32, ptr %44, align 4 + %89 = add nsw i32 %87, %88 + %90 = ashr i32 %82, %11 + %91 = ashr i32 %89, %12 + %92 = ashr i32 %90, 16 + %93 = and i32 %90, 65532 + %94 = ashr i32 %91, 16 + %95 = sub nsw i32 %93, %48 + %96 = and i32 %95, -64 + %97 = add nsw i32 %92, -3 + %98 = sext i32 %97 to i64 + %99 = sext i32 %94 to i64 + br label %102 ._crit_edge211.us: ; preds = %._crit_edge.us.us, %.lr.ph210.us, %.preheader.us - %101 = add nsw i32 %.0170213.us, 8 - %102 = icmp slt i32 %101, %38 - %indvars.iv.next244 = add i32 %indvars.iv243, -8 - br i1 %102, label %73, label %._crit_edge.us220, !llvm.loop !15 - -103: ; preds = %116, %73 - %indvars.iv232 = phi i64 [ %indvars.iv.next233, %116 ], [ -7, %73 ] - %104 = add nsw i64 %indvars.iv232, %100 - %105 = icmp slt i64 %104, 0 - %106 = trunc nsw i64 %104 to i32 - %107 = tail call i32 @llvm.smin.i32(i32 %106, i32 range(i32 -2147483648, 2147483647) %53) - %108 = select i1 %105, i32 0, i32 %107 - %109 = mul nsw i32 %108, %4 - %110 = shl i64 %indvars.iv232, 3 - %111 = add nsw i64 %110, 60 - %112 = trunc i64 %indvars.iv232 to i32 - %113 = add i32 %112, 4 - %114 = mul i32 %113, %46 - %115 = add i32 %114, %97 - br label %117 - -116: ; preds = %124 + %100 = add nsw i32 %.0170213.us, 8 + %101 = icmp slt i32 %100, %38 + br i1 %101, label %73, label %._crit_edge.us220, !llvm.loop !15 + +102: ; preds = %115, %73 + %indvars.iv232 = phi i64 [ %indvars.iv.next233, %115 ], [ -7, %73 ] + %103 = add nsw i64 %indvars.iv232, %99 + %104 = icmp slt i64 %103, 0 + %105 = trunc nsw i64 %103 to i32 + %106 = tail call i32 @llvm.smin.i32(i32 %105, i32 range(i32 -2147483648, 2147483647) %53) + %107 = select i1 %104, i32 0, i32 %106 + %108 = mul nsw i32 %107, %4 + %109 = shl i64 %indvars.iv232, 3 + %110 = add nsw i64 %109, 60 + %111 = trunc i64 %indvars.iv232 to i32 + %112 = add i32 %111, 4 + %113 = mul i32 %112, %46 + %114 = add i32 %113, %96 + br label %116 + +115: ; preds = %123 %indvars.iv.next233 = add nsw i64 %indvars.iv232, 1 %exitcond235.not = icmp eq i64 %indvars.iv.next233, 8 - br i1 %exitcond235.not, label %.preheader.us, label %103, !llvm.loop !16 - -117: ; preds = %124, %103 - %indvars.iv228 = phi i64 [ %indvars.iv.next229, %124 ], [ -4, %103 ] - %.0177199.us = phi i32 [ %129, %124 ], [ %115, %103 ] - %118 = add nsw i32 %.0177199.us, 512 - %119 = ashr i32 %118, 10 - %120 = add nsw i32 %119, 64 - %121 = sext i32 %120 to i64 - %122 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %121 - %123 = add nsw i64 %indvars.iv228, %99 - br label %130 - -124: ; preds = %130 - %125 = add nsw i32 %145, %56 - %126 = ashr i32 %125, %21 - %127 = add nsw i64 %111, %indvars.iv228 - %128 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %127 - store i32 %126, ptr %128, align 4 - %129 = add nsw i32 %.0177199.us, %45 + br i1 %exitcond235.not, label %.preheader.us, label %102, !llvm.loop !16 + +116: ; preds = %123, %102 + %indvars.iv228 = phi i64 [ %indvars.iv.next229, %123 ], [ -4, %102 ] + %.0177199.us = phi i32 [ %128, %123 ], [ %114, %102 ] + %117 = add nsw i32 %.0177199.us, 512 + %118 = ashr i32 %117, 10 + %119 = add nsw i32 %118, 64 + %120 = sext i32 %119 to i64 + %121 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %120 + %122 = add nsw i64 %indvars.iv228, %98 + br label %129 + +123: ; preds = %129 + %124 = add nsw i32 %144, %56 + %125 = ashr i32 %124, %21 + %126 = add nsw i64 %110, %indvars.iv228 + %127 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %126 + store i32 %125, ptr %127, align 4 + %128 = add nsw i32 %.0177199.us, %45 %indvars.iv.next229 = add nsw i64 %indvars.iv228, 1 %exitcond231.not = icmp eq i64 %indvars.iv.next229, 4 - br i1 %exitcond231.not, label %116, label %117, !llvm.loop !17 - -130: ; preds = %130, %117 - %indvars.iv = phi i64 [ %indvars.iv.next, %130 ], [ 0, %117 ] - %.0179196.us = phi i32 [ %145, %130 ], [ 16384, %117 ] - %131 = add nsw i64 %123, %indvars.iv - %132 = icmp slt i64 %131, 0 - %133 = trunc nsw i64 %131 to i32 - %134 = tail call i32 @llvm.smin.i32(i32 %133, i32 range(i32 -2147483648, 2147483647) %54) - %135 = select i1 %132, i32 0, i32 %134 - %136 = add nsw i32 %135, %109 - %137 = sext i32 %136 to i64 - %138 = getelementptr inbounds i8, ptr %1, i64 %137 - %139 = load i8, ptr %138, align 1 - %140 = zext i8 %139 to i32 - %141 = getelementptr inbounds nuw i16, ptr %122, i64 %indvars.iv - %142 = load i16, ptr %141, align 2 - %143 = sext i16 %142 to i32 - %144 = mul nsw i32 %143, %140 - %145 = add nsw i32 %144, %.0179196.us + br i1 %exitcond231.not, label %115, label %116, !llvm.loop !17 + +129: ; preds = %129, %116 + %indvars.iv = phi i64 [ %indvars.iv.next, %129 ], [ 0, %116 ] + %.0179196.us = phi i32 [ %144, %129 ], [ 16384, %116 ] + %130 = add nsw i64 %122, %indvars.iv + %131 = icmp slt i64 %130, 0 + %132 = trunc nsw i64 %130 to i32 + %133 = tail call i32 @llvm.smin.i32(i32 %132, i32 range(i32 -2147483648, 2147483647) %54) + %134 = select i1 %131, i32 0, i32 %133 + %135 = add nsw i32 %134, %108 + %136 = sext i32 %135 to i64 + %137 = getelementptr inbounds i8, ptr %1, i64 %136 + %138 = load i8, ptr %137, align 1 + %139 = zext i8 %138 to i32 + %140 = getelementptr inbounds nuw i16, ptr %121, i64 %indvars.iv + %141 = load i16, ptr %140, align 2 + %142 = sext i16 %141 to i32 + %143 = mul nsw i32 %142, %139 + %144 = add nsw i32 %143, %.0179196.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 8 - br i1 %exitcond.not, label %124, label %130, !llvm.loop !18 + br i1 %exitcond.not, label %123, label %129, !llvm.loop !18 -.preheader.us: ; preds = %116 - %146 = and i32 %92, 65532 - %147 = sub nsw i32 %146, %52 - %148 = and i32 %147, -64 - br i1 %72, label %.lr.ph210.us, label %._crit_edge211.us +.preheader.us: ; preds = %115 + %145 = and i32 %91, 65532 + %146 = sub nsw i32 %145, %52 + %147 = and i32 %146, -64 + br i1 %71, label %.lr.ph210.us, label %._crit_edge211.us .lr.ph210.us: ; preds = %.preheader.us - %149 = sub nsw i32 %38, %.0170213.us - %150 = tail call i32 @llvm.smin.i32(i32 %149, i32 8) - %spec.select189.us = add i32 %150, -4 - %151 = icmp sgt i32 %spec.select189.us, -4 + %148 = sub nsw i32 %38, %.0170213.us + %149 = icmp sgt i32 %148, 0 %reass.sub222 = sub i32 %.0170213.us, %6 - %152 = add nuw nsw i32 %reass.sub222, 4 - br i1 %151, label %.lr.ph.us.us.preheader, label %._crit_edge211.us + %150 = add nuw nsw i32 %reass.sub222, 4 + br i1 %149, label %.lr.ph.us.us.preheader, label %._crit_edge211.us .lr.ph.us.us.preheader: ; preds = %.lr.ph210.us - %wide.trip.count = sext i32 %74 to i64 + %151 = tail call i32 @llvm.umin.i32(i32 %148, i32 8) + %spec.select189.us = add nsw i32 %151, -4 + %152 = sext i32 %spec.select189.us to i64 br label %.lr.ph.us.us .lr.ph.us.us: ; preds = %.lr.ph.us.us.preheader, %._crit_edge.us.us - %indvars.iv246 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next247, %._crit_edge.us.us ] - %153 = trunc nsw i64 %indvars.iv246 to i32 + %indvars.iv243 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next244, %._crit_edge.us.us ] + %153 = trunc nsw i64 %indvars.iv243 to i32 %.reass.reass.us.us = add i32 %invariant.op212.us, %153 %154 = mul nsw i32 %.reass.reass.us.us, %10 - %invariant.op207.us.us = add i32 %152, %154 - %155 = trunc i64 %indvars.iv246 to i32 + %invariant.op207.us.us = add i32 %150, %154 + %155 = trunc i64 %indvars.iv243 to i32 %156 = add i32 %155, 4 %157 = mul i32 %156, %50 - %158 = add i32 %157, %148 + %158 = add i32 %157, %147 br label %159 159: ; preds = %220, %.lr.ph.us.us @@ -944,9 +929,9 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %164 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %163 %165 = trunc nsw i64 %indvars.iv240 to i32 %166 = add i32 %165, 36 - br label %222 + br label %223 -167: ; preds = %222 +167: ; preds = %223 %168 = load i32, ptr %22, align 8 %.not185.us.us = icmp eq i32 %168, 0 br i1 %.not185.us.us, label %210, label %169 @@ -955,11 +940,11 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %170 = load ptr, ptr %58, align 8 %171 = load i32, ptr %59, align 8 %172 = mul nsw i32 %171, %.reass.reass.us.us - %173 = add i32 %152, %165 + %173 = add i32 %150, %165 %174 = add nsw i32 %172, %173 %175 = sext i32 %174 to i64 %176 = getelementptr inbounds i16, ptr %170, i64 %175 - %177 = add nsw i32 %234, %61 + %177 = add nsw i32 %235, %61 %178 = ashr i32 %177, %31 %179 = load i32, ptr %13, align 8 %.not186.us.us = icmp eq i32 %179, 0 @@ -1016,7 +1001,7 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %211 = add i32 %invariant.op207.us.us, %165 %212 = sext i32 %211 to i64 %213 = getelementptr inbounds i8, ptr %5, i64 %212 - %214 = add nsw i32 %234, %61 + %214 = add nsw i32 %235, %61 %215 = ashr i32 %214, %31 %216 = tail call i32 @llvm.smax.i32(i32 %215, i32 384) %217 = add nsw i32 %216, -384 @@ -1028,38 +1013,37 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt 220: ; preds = %210, %208, %196 %221 = add nsw i32 %.0175205.us.us, %49 %indvars.iv.next241 = add nsw i64 %indvars.iv240, 1 - %exitcond245.not = icmp eq i64 %indvars.iv.next241, %wide.trip.count - br i1 %exitcond245.not, label %._crit_edge.us.us, label %159, !llvm.loop !19 - -222: ; preds = %222, %159 - %indvars.iv236 = phi i64 [ %indvars.iv.next237, %222 ], [ 0, %159 ] - %.0172201.us.us = phi i32 [ %234, %222 ], [ %57, %159 ] - %223 = add nsw i64 %indvars.iv236, %indvars.iv246 - %224 = trunc nsw i64 %223 to i32 - %225 = shl i32 %224, 3 - %226 = add i32 %166, %225 - %227 = sext i32 %226 to i64 - %228 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %227 - %229 = load i32, ptr %228, align 4 - %230 = getelementptr inbounds nuw i16, ptr %164, i64 %indvars.iv236 - %231 = load i16, ptr %230, align 2 - %232 = sext i16 %231 to i32 - %233 = mul nsw i32 %229, %232 - %234 = add nsw i32 %233, %.0172201.us.us + %222 = icmp slt i64 %indvars.iv.next241, %152 + br i1 %222, label %159, label %._crit_edge.us.us, !llvm.loop !19 + +223: ; preds = %223, %159 + %indvars.iv236 = phi i64 [ %indvars.iv.next237, %223 ], [ 0, %159 ] + %.0172201.us.us = phi i32 [ %235, %223 ], [ %57, %159 ] + %224 = add nsw i64 %indvars.iv236, %indvars.iv243 + %225 = trunc nsw i64 %224 to i32 + %226 = shl i32 %225, 3 + %227 = add i32 %166, %226 + %228 = sext i32 %227 to i64 + %229 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %228 + %230 = load i32, ptr %229, align 4 + %231 = getelementptr inbounds nuw i16, ptr %164, i64 %indvars.iv236 + %232 = load i16, ptr %231, align 2 + %233 = sext i16 %232 to i32 + %234 = mul nsw i32 %230, %233 + %235 = add nsw i32 %234, %.0172201.us.us %indvars.iv.next237 = add nuw nsw i64 %indvars.iv236, 1 %exitcond239.not = icmp eq i64 %indvars.iv.next237, 8 - br i1 %exitcond239.not, label %167, label %222, !llvm.loop !20 + br i1 %exitcond239.not, label %167, label %223, !llvm.loop !20 ._crit_edge.us.us: ; preds = %220 - %indvars.iv.next247 = add nsw i64 %indvars.iv246, 1 - %exitcond253.not = icmp eq i64 %indvars.iv.next247, %wide.trip.count252 - br i1 %exitcond253.not, label %._crit_edge211.us, label %.lr.ph.us.us, !llvm.loop !21 + %indvars.iv.next244 = add nsw i64 %indvars.iv243, 1 + %236 = icmp slt i64 %indvars.iv.next244, %72 + br i1 %236, label %.lr.ph.us.us, label %._crit_edge211.us, !llvm.loop !21 ._crit_edge.us220: ; preds = %._crit_edge211.us - %235 = add nsw i32 %.0214.us, 8 - %236 = icmp slt i32 %235, %35 - %indvars.iv.next250 = add i32 %indvars.iv249, -8 - br i1 %236, label %.preheader195.us, label %._crit_edge215, !llvm.loop !22 + %237 = add nsw i32 %.0214.us, 8 + %238 = icmp slt i32 %237, %35 + br i1 %238, label %.preheader195.us, label %._crit_edge215, !llvm.loop !22 ._crit_edge215: ; preds = %._crit_edge.us220, %.preheader195.lr.ph, %29 ret void diff --git a/bench/protobuf/optimized/generated_message_tctable_lite.ll b/bench/protobuf/optimized/generated_message_tctable_lite.ll index 47b4e134874..cdbcc55b0c0 100644 --- a/bench/protobuf/optimized/generated_message_tctable_lite.ll +++ b/bench/protobuf/optimized/generated_message_tctable_lite.ll @@ -41657,7 +41657,7 @@ _ZN6google8protobuf8internal8ReadSizeEPPKc.exit: ; preds = %if.then.i, %if.end. %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %conv.i.i = trunc i64 %sub.ptr.sub.i.i to i32 %10 = tail call i32 @llvm.smax.i32(i32 %conv.i.i, i32 1008) - %11 = add nuw i32 %10, 16 + %11 = add nuw nsw i32 %10, 16 %.sroa.speculated8.i = tail call i32 @llvm.smin.i32(i32 %11, i32 %retval.0.i) %conv6.i = sext i32 %.sroa.speculated8.i to i64 %add.i = add nsw i64 %conv6.i, %conv.i19 @@ -42078,7 +42078,7 @@ _ZN6google8protobuf8internal8ReadSizeEPPKc.exit: ; preds = %if.then.i, %if.end. %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %conv.i.i = trunc i64 %sub.ptr.sub.i.i to i32 %10 = tail call i32 @llvm.smax.i32(i32 %conv.i.i, i32 1008) - %11 = add nuw i32 %10, 16 + %11 = add nuw nsw i32 %10, 16 %.sroa.speculated8.i = tail call i32 @llvm.smin.i32(i32 %11, i32 %retval.0.i) %conv6.i = sext i32 %.sroa.speculated8.i to i64 %add.i = add nsw i64 %conv6.i, %conv.i19 @@ -42508,7 +42508,7 @@ _ZN6google8protobuf8internal8ReadSizeEPPKc.exit: ; preds = %if.then.i, %if.end. %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %conv.i.i = trunc i64 %sub.ptr.sub.i.i to i32 %10 = tail call i32 @llvm.smax.i32(i32 %conv.i.i, i32 1008) - %11 = add nuw i32 %10, 16 + %11 = add nuw nsw i32 %10, 16 %.sroa.speculated8.i = tail call i32 @llvm.smin.i32(i32 %11, i32 %retval.0.i) %conv6.i = sext i32 %.sroa.speculated8.i to i64 %add.i = add nsw i64 %conv6.i, %conv.i19 @@ -42929,7 +42929,7 @@ _ZN6google8protobuf8internal8ReadSizeEPPKc.exit: ; preds = %if.then.i, %if.end. %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %conv.i.i = trunc i64 %sub.ptr.sub.i.i to i32 %10 = tail call i32 @llvm.smax.i32(i32 %conv.i.i, i32 1008) - %11 = add nuw i32 %10, 16 + %11 = add nuw nsw i32 %10, 16 %.sroa.speculated8.i = tail call i32 @llvm.smin.i32(i32 %11, i32 %retval.0.i) %conv6.i = sext i32 %.sroa.speculated8.i to i64 %add.i = add nsw i64 %conv6.i, %conv.i19 diff --git a/bench/velox/optimized/JsonType.ll b/bench/velox/optimized/JsonType.ll index 6ee50ad5dcc..73aef0bd9f5 100644 --- a/bench/velox/optimized/JsonType.ll +++ b/bench/velox/optimized/JsonType.ll @@ -39832,8 +39832,8 @@ _ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit.i.i.i.i.i.i.i: ; preds for.end.i.i.i.i.i.i.i: ; preds = %_ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit.i.i.i.i.i.i.i, %if.end.i23.i.i.i.i.i.i %188 = call i32 @llvm.smax.i32(i32 %161, i32 1) - %cond.i.i.i.i.i.i.i = add nuw i32 %188, 1 - %conv11.i24.i.i.i.i.i.i = sext i32 %cond.i.i.i.i.i.i.i to i64 + %cond.i.i.i.i.i.i.i = add nuw nsw i32 %188, 1 + %conv11.i24.i.i.i.i.i.i = zext nneg i32 %cond.i.i.i.i.i.i.i to i64 %189 = load ptr, ptr %agg.tmp17.i.sroa.4.0.agg.tmp17.i22.sroa_idx, align 8 %190 = load i64, ptr %189, align 8 %add12.i.i.i.i.i.i.i = add i64 %190, %conv11.i24.i.i.i.i.i.i @@ -40113,8 +40113,8 @@ _ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit.i.i.i.i.i.i: ; preds = for.end.i.i.i.i.i.i: ; preds = %_ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit.i.i.i.i.i.i, %if.end.i.i.i.i.i.i %239 = call i32 @llvm.smax.i32(i32 %212, i32 1) - %cond.i36.i.i.i.i.i = add nuw i32 %239, 1 - %conv8.i.i.i.i.i.i = sext i32 %cond.i36.i.i.i.i.i to i64 + %cond.i36.i.i.i.i.i = add nuw nsw i32 %239, 1 + %conv8.i.i.i.i.i.i = zext nneg i32 %cond.i36.i.i.i.i.i to i64 %240 = load ptr, ptr %agg.tmp17.i.sroa.4.0.agg.tmp17.i22.sroa_idx, align 8 %241 = load i64, ptr %240, align 8 %add9.i37.i.i.i.i.i = add i64 %241, %conv8.i.i.i.i.i.i @@ -53752,8 +53752,8 @@ _ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit: ; preds = %if.then4.i. for.end: ; preds = %_ZNK8facebook5velox12_GLOBAL__N_16AsJson8lengthAtEi.exit, %if.end %35 = tail call i32 @llvm.smax.i32(i32 %6, i32 1) - %cond = add nuw i32 %35, 1 - %conv8 = sext i32 %cond to i64 + %cond = add nuw nsw i32 %35, 1 + %conv8 = zext nneg i32 %cond to i64 %36 = getelementptr inbounds nuw i8, ptr %this, i64 8 %37 = load ptr, ptr %36, align 8 %38 = load i64, ptr %37, align 8 From 601dd544c70450bb3af544625c475cae29f75d36 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 06:54:18 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- bench/chibicc/optimized/codegen.ll | 36 +- bench/ffmpeg/optimized/fic.ll | 156 ++++---- bench/icu/optimized/umutablecptrie.ll | 4 +- .../optimized/trackerCSRTSegmentation.ll | 4 +- bench/openusd/optimized/warped_motion.ll | 378 +++++++++--------- 5 files changed, 289 insertions(+), 289 deletions(-) diff --git a/bench/chibicc/optimized/codegen.ll b/bench/chibicc/optimized/codegen.ll index 4c7ce65f6c4..d5a3f6af9dc 100644 --- a/bench/chibicc/optimized/codegen.ll +++ b/bench/chibicc/optimized/codegen.ll @@ -3231,9 +3231,9 @@ define internal fastcc void @copy_struct_reg() unnamed_addr #4 { %11 = getelementptr inbounds nuw i8, ptr %5, i64 4 %12 = load i32, ptr %11, align 4, !tbaa !32 %13 = icmp sgt i32 %12, 0 - br i1 %13, label %select.unfold.preheader, label %.loopexit31 + br i1 %13, label %select.unfold, label %.loopexit31 -select.unfold.preheader: ; preds = %10 +select.unfold: ; preds = %10 %14 = tail call i32 @llvm.umin.i32(i32 %12, i32 8) br label %select.unfold @@ -3247,32 +3247,32 @@ select.unfold: ; preds = %select.unfold.prehe .loopexit31: ; preds = %select.unfold, %.loopexit31.sink.split, %10 %.024 = phi i32 [ 0, %10 ], [ 1, %.loopexit31.sink.split ], [ 0, %select.unfold ] - %16 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %17 = load i32, ptr %16, align 4, !tbaa !32 - %18 = icmp sgt i32 %17, 8 - br i1 %18, label %19, label %.loopexit + %15 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %16 = load i32, ptr %15, align 4, !tbaa !32 + %17 = icmp sgt i32 %16, 8 + br i1 %17, label %18, label %.loopexit -19: ; preds = %.loopexit31 - %20 = tail call fastcc zeroext i1 @has_flonum(ptr noundef nonnull %5, i32 noundef 8, i32 noundef 16, i32 noundef 0) - br i1 %20, label %21, label %22 +18: ; preds = %.loopexit31 + %19 = tail call fastcc zeroext i1 @has_flonum(ptr noundef nonnull %5, i32 noundef 8, i32 noundef 16, i32 noundef 0) + br i1 %19, label %20, label %21 -21: ; preds = %19 +20: ; preds = %18 tail call void (ptr, ...) @println(ptr noundef nonnull @.str.274, i32 noundef %.024) br label %.loopexit -22: ; preds = %19 - %23 = select i1 %6, ptr @.str.258, ptr @.str.54 - %24 = select i1 %6, ptr @.str.85, ptr @.str.72 - tail call void (ptr, ...) @println(ptr noundef nonnull @.str.182, ptr noundef nonnull %24) - %25 = load i32, ptr %16, align 4, !tbaa !32 - %26 = icmp sgt i32 %25, 8 +21: ; preds = %18 + %22 = select i1 %6, ptr @.str.258, ptr @.str.54 + %23 = select i1 %6, ptr @.str.85, ptr @.str.72 + tail call void (ptr, ...) @println(ptr noundef nonnull @.str.182, ptr noundef nonnull %23) + %24 = load i32, ptr %15, align 4, !tbaa !32 + %26 = icmp sgt i32 %24, 8 br i1 %26, label %select.unfold29.preheader, label %.loopexit -select.unfold29.preheader: ; preds = %22 +select.unfold29.preheader:; preds = %22 %27 = tail call i32 @llvm.umin.i32(i32 %25, i32 16) br label %select.unfold29 -select.unfold29: ; preds = %select.unfold29.preheader, %select.unfold29 +select.unfold29:; preds = %select.unfold29.preheader, %select.unfold29 %.0.in33 = phi i32 [ %.0, %select.unfold29 ], [ %27, %select.unfold29.preheader ] %.0 = add nsw i32 %.0.in33, -1 tail call void (ptr, ...) @println(ptr noundef nonnull @.str.275, ptr noundef nonnull %24) diff --git a/bench/ffmpeg/optimized/fic.ll b/bench/ffmpeg/optimized/fic.ll index ca790d820f7..a7980483492 100644 --- a/bench/ffmpeg/optimized/fic.ll +++ b/bench/ffmpeg/optimized/fic.ll @@ -1125,7 +1125,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %54 = getelementptr inbounds nuw i8, ptr %8, i64 24 %55 = load ptr, ptr %54, align 8, !tbaa !44 %56 = getelementptr inbounds nuw i8, ptr %55, i64 64 - br label %95 + br label %96 .preheader94: ; preds = %.preheader95, %82 %indvars.iv125 = phi i64 [ 0, %.preheader95 ], [ %indvars.iv.next126, %82 ] @@ -1172,7 +1172,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %85 = icmp samesign ult i64 %indvars.iv128, 30 br i1 %85, label %.preheader95, label %.preheader93, !llvm.loop !80 -.preheader: ; preds = %95 +.preheader: ; preds = %96 %86 = getelementptr inbounds nuw i8, ptr %0, i64 116 %87 = load i32, ptr %86, align 4, !tbaa !34 %88 = sub nsw i32 %87, %2 @@ -1181,61 +1181,61 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) .lr.ph112: ; preds = %.preheader %.promoted = load ptr, ptr %4, align 16 - %90 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %91 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %92 = getelementptr inbounds nuw i8, ptr %6, i64 512 - %93 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %94 = getelementptr inbounds nuw i8, ptr %6, i64 256 - %.promoted113 = load ptr, ptr %91, align 8, !tbaa !66 - %.promoted115 = load ptr, ptr %93, align 16, !tbaa !66 - br label %112 - -95: ; preds = %.preheader93, %95 + %91 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %92 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %93 = getelementptr inbounds nuw i8, ptr %6, i64 512 + %94 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %95 = getelementptr inbounds nuw i8, ptr %6, i64 256 + %.promoted113 = load ptr, ptr %92, align 8, !tbaa !66 + %.promoted115 = load ptr, ptr %94, align 16, !tbaa !66 + br label %113 + +96: ; preds = %.preheader93, %96 %indvars.iv131 = phi i64 [ 0, %.preheader93 ], [ %indvars.iv.next132, %95 ] - %96 = getelementptr inbounds nuw [8 x ptr], ptr %55, i64 0, i64 %indvars.iv131 - %97 = load ptr, ptr %96, align 8, !tbaa !66 - %98 = getelementptr inbounds nuw [8 x i32], ptr %56, i64 0, i64 %indvars.iv131 - %99 = load i32, ptr %98, align 4, !tbaa !65 - %100 = icmp ne i64 %indvars.iv131, 0 - %101 = zext i1 %100 to i32 - %102 = lshr i32 %2, %101 - %103 = mul nsw i32 %99, %102 - %104 = sext i32 %103 to i64 - %105 = getelementptr inbounds i8, ptr %97, i64 %104 - %106 = lshr i32 %1, %101 - %107 = zext nneg i32 %106 to i64 - %108 = getelementptr inbounds nuw i8, ptr %105, i64 %107 - %109 = zext i1 %100 to i64 - %110 = getelementptr inbounds nuw i8, ptr %108, i64 %109 - %111 = getelementptr inbounds nuw [3 x ptr], ptr %4, i64 0, i64 %indvars.iv131 - store ptr %110, ptr %111, align 8, !tbaa !66 + %97 = getelementptr inbounds nuw [8 x ptr], ptr %55, i64 0, i64 %indvars.iv131 + %98 = load ptr, ptr %97, align 8, !tbaa !66 + %99 = getelementptr inbounds nuw [8 x i32], ptr %56, i64 0, i64 %indvars.iv131 + %100 = load i32, ptr %99, align 4, !tbaa !65 + %101 = icmp ne i64 %indvars.iv131, 0 + %102 = zext i1 %101 to i32 + %103 = lshr i32 %2, %102 + %104 = mul nsw i32 %100, %103 + %105 = sext i32 %104 to i64 + %106 = getelementptr inbounds i8, ptr %98, i64 %105 + %107 = lshr i32 %1, %102 + %108 = zext nneg i32 %107 to i64 + %109 = getelementptr inbounds nuw i8, ptr %106, i64 %108 + %110 = zext i1 %101 to i64 + %111 = getelementptr inbounds nuw i8, ptr %109, i64 %110 + %112 = getelementptr inbounds nuw [3 x ptr], ptr %4, i64 0, i64 %indvars.iv131 + store ptr %111, ptr %112, align 8, !tbaa !66 %indvars.iv.next132 = add nuw nsw i64 %indvars.iv131, 1 %exitcond134.not = icmp eq i64 %indvars.iv.next132, 3 - br i1 %exitcond134.not, label %.preheader, label %95, !llvm.loop !81 + br i1 %exitcond134.not, label %.preheader, label %96, !llvm.loop !81 -112: ; preds = %.lr.ph112, %fic_alpha_blend.exit89 +113: ; preds = %.lr.ph112, %fic_alpha_blend.exit89 %indvars.iv157 = phi i64 [ 0, %.lr.ph112 ], [ %indvars.iv.next158, %fic_alpha_blend.exit89 ] - %113 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ] - %114 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ] - %115 = phi ptr [ %.promoted, %.lr.ph112 ], [ %195, %fic_alpha_blend.exit89 ] - %116 = load i32, ptr %90, align 8, !tbaa !32 - %117 = sub nsw i32 %116, %1 - %spec.select83 = tail call i32 @llvm.smin.i32(i32 %117, i32 32) - %118 = sdiv i32 %spec.select83, 2 + %114 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ] + %115 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ] + %116 = phi ptr [ %.promoted, %.lr.ph112 ], [ %195, %fic_alpha_blend.exit89 ] + %117 = load i32, ptr %91, align 8, !tbaa !32 + %118 = sub nsw i32 %117, %1 + %spec.select83 = tail call i32 @llvm.smin.i32(i32 %118, i32 32) + %119 = sdiv i32 %spec.select83, 2 %119 = shl i64 %indvars.iv157, 5 %120 = getelementptr inbounds nuw i8, ptr %5, i64 %119 %121 = getelementptr inbounds nuw i8, ptr %12, i64 %119 %122 = icmp sgt i32 %117, 0 br i1 %122, label %.lr.ph.preheader, label %fic_alpha_blend.exit89 -.lr.ph.preheader: ; preds = %112 +.lr.ph.preheader:; preds = %112 %smax = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) %wide.trip.count = zext nneg i32 %smax to i64 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph %indvars.iv135 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next136, %.lr.ph ] - %123 = getelementptr inbounds nuw i8, ptr %120, i64 %indvars.iv135 + %126 = getelementptr inbounds nuw i8, ptr %120, i64 %indvars.iv135 %124 = load i8, ptr %123, align 1, !tbaa !43 %125 = zext i8 %124 to i16 %126 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv135 @@ -1256,22 +1256,22 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) .lr.ph105.preheader: ; preds = %.lr.ph %.pre = load ptr, ptr %54, align 8, !tbaa !44 - %137 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 - %138 = load i32, ptr %137, align 8, !tbaa !65 - %139 = sext i32 %138 to i64 - %140 = getelementptr inbounds i8, ptr %115, i64 %139 - %141 = or disjoint i64 %119, 32 - %142 = getelementptr inbounds i8, ptr %5, i64 %141 - %143 = getelementptr inbounds i8, ptr %12, i64 %141 + %140 = getelementptr inbounds nuw i8, ptr %.pre, i64 64 + %141 = load i32, ptr %140, align 8, !tbaa !65 + %142 = sext i32 %141 to i64 + %143 = getelementptr inbounds i8, ptr %116, i64 %142 + %144 = or disjoint i64 %119, 32 + %142 = getelementptr inbounds i8, ptr %5, i64 %144 + %146 = getelementptr inbounds i8, ptr %12, i64 %141 %smax142 = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) %wide.trip.count143 = zext nneg i32 %smax142 to i64 br label %.lr.ph105 .lr.ph105: ; preds = %.lr.ph105.preheader, %.lr.ph105 %indvars.iv139 = phi i64 [ 0, %.lr.ph105.preheader ], [ %indvars.iv.next140, %.lr.ph105 ] - %144 = getelementptr inbounds nuw i8, ptr %142, i64 %indvars.iv139 - %145 = load i8, ptr %144, align 1, !tbaa !43 - %146 = zext i8 %145 to i16 + %148 = getelementptr inbounds nuw i8, ptr %142, i64 %indvars.iv139 + %149 = load i8, ptr %148, align 1, !tbaa !43 + %150 = zext i8 %149 to i16 %147 = getelementptr inbounds nuw i8, ptr %140, i64 %indvars.iv139 %148 = load i8, ptr %147, align 1, !tbaa !43 %149 = zext i8 %148 to i16 @@ -1289,23 +1289,23 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) br i1 %exitcond144.not, label %fic_alpha_blend.exit85, label %.lr.ph105, !llvm.loop !82 fic_alpha_blend.exit85: ; preds = %.lr.ph105 - %158 = shl nuw nsw i64 %indvars.iv157, 3 - %159 = getelementptr inbounds nuw i8, ptr %6, i64 %158 - %160 = getelementptr inbounds nuw i8, ptr %92, i64 %158 - %.not = icmp eq i32 %117, 1 + %162 = shl nuw nsw i64 %indvars.iv157, 3 + %163 = getelementptr inbounds nuw i8, ptr %6, i64 %162 + %164 = getelementptr inbounds nuw i8, ptr %93, i64 %162 + %.not = icmp eq i32 %118, 1 br i1 %.not, label %fic_alpha_blend.exit89, label %.lr.ph107.preheader .lr.ph107.preheader: ; preds = %fic_alpha_blend.exit85 - %smax148 = tail call i32 @llvm.smax.i32(i32 %118, i32 1) + %smax148 = tail call i32 @llvm.smax.i32(i32 %119, i32 1) %wide.trip.count149 = zext nneg i32 %smax148 to i64 br label %.lr.ph107 .lr.ph107: ; preds = %.lr.ph107.preheader, %.lr.ph107 %indvars.iv145 = phi i64 [ 0, %.lr.ph107.preheader ], [ %indvars.iv.next146, %.lr.ph107 ] - %161 = getelementptr inbounds nuw i8, ptr %159, i64 %indvars.iv145 - %162 = load i8, ptr %161, align 1, !tbaa !43 - %163 = zext i8 %162 to i16 - %164 = getelementptr inbounds nuw i8, ptr %114, i64 %indvars.iv145 + %165 = getelementptr inbounds nuw i8, ptr %163, i64 %indvars.iv145 + %166 = load i8, ptr %165, align 1, !tbaa !43 + %167 = zext i8 %166 to i16 + %168 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv145 %165 = load i8, ptr %164, align 1, !tbaa !43 %166 = zext i8 %165 to i16 %167 = sub nsw i16 %163, %166 @@ -1322,17 +1322,17 @@ fic_alpha_blend.exit85: ; preds = %.lr.ph105 br i1 %exitcond150.not, label %.lr.ph109.preheader, label %.lr.ph107, !llvm.loop !82 .lr.ph109.preheader: ; preds = %.lr.ph107 - %175 = getelementptr inbounds nuw i8, ptr %94, i64 %158 - %smax154 = tail call i32 @llvm.smax.i32(i32 %118, i32 1) + %179 = getelementptr inbounds nuw i8, ptr %95, i64 %162 + %smax154 = tail call i32 @llvm.smax.i32(i32 %119, i32 1) %wide.trip.count155 = zext nneg i32 %smax154 to i64 br label %.lr.ph109 .lr.ph109: ; preds = %.lr.ph109.preheader, %.lr.ph109 %indvars.iv151 = phi i64 [ 0, %.lr.ph109.preheader ], [ %indvars.iv.next152, %.lr.ph109 ] - %176 = getelementptr inbounds nuw i8, ptr %175, i64 %indvars.iv151 - %177 = load i8, ptr %176, align 1, !tbaa !43 - %178 = zext i8 %177 to i16 - %179 = getelementptr inbounds nuw i8, ptr %113, i64 %indvars.iv151 + %180 = getelementptr inbounds nuw i8, ptr %179, i64 %indvars.iv151 + %181 = load i8, ptr %180, align 1, !tbaa !43 + %182 = zext i8 %181 to i16 + %183 = getelementptr inbounds nuw i8, ptr %114, i64 %indvars.iv151 %180 = load i8, ptr %179, align 1, !tbaa !43 %181 = zext i8 %180 to i16 %182 = sub nsw i16 %178, %181 @@ -1348,29 +1348,29 @@ fic_alpha_blend.exit85: ; preds = %.lr.ph105 %exitcond156.not = icmp eq i64 %indvars.iv.next152, %wide.trip.count155 br i1 %exitcond156.not, label %fic_alpha_blend.exit89, label %.lr.ph109, !llvm.loop !82 -fic_alpha_blend.exit89: ; preds = %.lr.ph109, %112, %fic_alpha_blend.exit85 - %190 = load ptr, ptr %54, align 8, !tbaa !44 - %191 = getelementptr inbounds nuw i8, ptr %190, i64 64 - %192 = load i32, ptr %191, align 8, !tbaa !65 - %193 = shl nsw i32 %192, 1 +fic_alpha_blend.exit89: ; preds = %.lr.ph109, %113, %fic_alpha_blend.exit85 + %194 = load ptr, ptr %54, align 8, !tbaa !44 + %195 = getelementptr inbounds nuw i8, ptr %194, i64 64 + %196 = load i32, ptr %195, align 8, !tbaa !65 + %197 = shl nsw i32 %196, 1 %194 = sext i32 %193 to i64 %195 = getelementptr inbounds i8, ptr %115, i64 %194 %196 = getelementptr inbounds nuw i8, ptr %190, i64 68 %197 = load i32, ptr %196, align 4, !tbaa !65 %198 = sext i32 %197 to i64 %199 = getelementptr inbounds i8, ptr %114, i64 %198 - %200 = getelementptr inbounds nuw i8, ptr %190, i64 72 + %200 = getelementptr inbounds nuw i8, ptr %194, i64 72 %201 = load i32, ptr %200, align 8, !tbaa !65 %202 = sext i32 %201 to i64 %203 = getelementptr inbounds i8, ptr %113, i64 %202 %indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 2 - %204 = load i32, ptr %86, align 4, !tbaa !34 - %205 = sub nsw i32 %204, %2 - %206 = tail call i32 @llvm.smin.i32(i32 %205, i32 32) - %spec.select = add nsw i32 %206, -1 - %207 = sext i32 %spec.select to i64 - %208 = icmp slt i64 %indvars.iv.next158, %207 - br i1 %208, label %112, label %._crit_edge, !llvm.loop !83 + %208 = load i32, ptr %86, align 4, !tbaa !34 + %209 = sub nsw i32 %208, %2 + %210 = tail call i32 @llvm.smin.i32(i32 %209, i32 32) + %spec.select = add nsw i32 %210, -1 + %211 = sext i32 %spec.select to i64 + %212 = icmp slt i64 %indvars.iv.next158, %211 + br i1 %212, label %113, label %._crit_edge, !llvm.loop !83 ._crit_edge: ; preds = %fic_alpha_blend.exit89, %.preheader call void @llvm.lifetime.end.p0(i64 768, ptr nonnull %6) #9 diff --git a/bench/icu/optimized/umutablecptrie.ll b/bench/icu/optimized/umutablecptrie.ll index e81acdd23b1..9151ee48ef0 100644 --- a/bench/icu/optimized/umutablecptrie.ll +++ b/bench/icu/optimized/umutablecptrie.ll @@ -4361,8 +4361,8 @@ define internal fastcc void @_ZN6icu_7712_GLOBAL__N_111MixedBlocks6extendIjEEvPK %7 = sub nsw i32 %2, %6 %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) %9 = sub nsw i32 %3, %6 - %.not25.not = icmp slt i32 %8, %9 - br i1 %.not25.not, label %.lr.ph, label %._crit_edge + %.not25 = icmp slt i32 %8, %9 + br i1 %.not25, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %4 %.0 = add nsw i32 %8, 1 diff --git a/bench/opencv/optimized/trackerCSRTSegmentation.ll b/bench/opencv/optimized/trackerCSRTSegmentation.ll index e34fb067ab0..5269b2b6a78 100644 --- a/bench/opencv/optimized/trackerCSRTSegmentation.ll +++ b/bench/opencv/optimized/trackerCSRTSegmentation.ll @@ -4479,8 +4479,8 @@ _ZNSt12_Vector_baseIN2cv3MatESaIS1_EEC2EmRKS2_.exit.i: ; preds = %73 store ptr %112, ptr %108, align 8, !tbaa !67 %114 = load ptr, ptr %53, align 8, !tbaa !67 %115 = load ptr, ptr %1, align 8, !tbaa !29 - %.not267 = icmp eq ptr %114, %115 - br i1 %.not267, label %._crit_edge, label %.lr.ph + %.not266 = icmp eq ptr %114, %115 + br i1 %.not266, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %113 %116 = getelementptr inbounds nuw i8, ptr %16, i64 16 diff --git a/bench/openusd/optimized/warped_motion.ll b/bench/openusd/optimized/warped_motion.ll index 90ce0a765bc..a84bcbdc5dd 100644 --- a/bench/openusd/optimized/warped_motion.ll +++ b/bench/openusd/optimized/warped_motion.ll @@ -301,8 +301,8 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) br i1 %46, label %.preheader217.us, label %._crit_edge239 .preheader217.us: ; preds = %.preheader217.lr.ph, %._crit_edge.us244 - %.0238.us = phi i32 [ %254, %._crit_edge.us244 ], [ %7, %.preheader217.lr.ph ] - %77 = add nsw i32 %.0238.us, 4 + %indvars.iv273 = phi i32 [ %254, %._crit_edge.us244 ], [ %7, %.preheader217.lr.ph ] + %77 = add nsw i32 %indvars.iv273, 4 %78 = shl i32 %77, %12 %79 = sub nsw i32 %40, %.0238.us %80 = tail call i32 @llvm.smin.i32(i32 %79, i32 8) @@ -310,46 +310,46 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %81 = icmp sgt i32 %79, 0 %reass.sub = sub i32 %.0238.us, %7 %invariant.op236.us = add nuw nsw i32 %reass.sub, 4 - %82 = sext i32 %spec.select205.us to i64 + %wide.trip.count276 = sext i32 %spec.select205.us to i64 br label %83 83: ; preds = %.preheader217.us, %._crit_edge235.us - %.0183237.us = phi i32 [ %6, %.preheader217.us ], [ %110, %._crit_edge235.us ] + %indvars.iv267 = phi i32 [ %6, %.preheader217.us ], [ %110, %._crit_edge235.us ] %84 = add nsw i32 %.0183237.us, 4 %85 = shl i32 %84, %11 %86 = load i32, ptr %47, align 4 %87 = mul nsw i32 %86, %85 - %88 = load i32, ptr %48, align 4 + %86 = load i32, ptr %48, align 4 %89 = mul nsw i32 %88, %78 %90 = add nsw i32 %89, %87 - %91 = load i32, ptr %0, align 4 + %89 = load i32, ptr %0, align 4 %92 = add nsw i32 %90, %91 %93 = load i32, ptr %49, align 4 - %94 = mul nsw i32 %93, %85 + %92 = mul nsw i32 %93, %85 %95 = load i32, ptr %50, align 4 - %96 = mul nsw i32 %95, %78 - %97 = add nsw i32 %96, %94 - %98 = load i32, ptr %51, align 4 + %94 = mul nsw i32 %95, %78 + %97 = add nsw i32 %94, %94 + %96 = load i32, ptr %51, align 4 %99 = add nsw i32 %97, %98 %100 = ashr i32 %92, %11 %101 = ashr i32 %99, %12 %102 = ashr i32 %100, 16 %103 = and i32 %100, 65532 - %104 = ashr i32 %101, 16 + %102 = ashr i32 %101, 16 %105 = sub nsw i32 %103, %55 - %106 = and i32 %105, -64 + %104 = and i32 %105, -64 %107 = add nsw i32 %102, -3 %108 = sext i32 %107 to i64 %109 = sext i32 %104 to i64 br label %112 ._crit_edge235.us: ; preds = %._crit_edge.us.us, %.lr.ph234.us, %.preheader.us - %110 = add nsw i32 %.0183237.us, 8 - %111 = icmp slt i32 %110, %45 - br i1 %111, label %83, label %._crit_edge.us244, !llvm.loop !4 + %111 = add nsw i32 %.0183237.us, 8 + %112 = icmp slt i32 %111, %45 + br i1 %112, label %83, label %._crit_edge.us244, !llvm.loop !4 112: ; preds = %125, %83 - %indvars.iv256 = phi i64 [ %indvars.iv.next257, %125 ], [ -7, %83 ] + %indvars.iv256 = phi i64 [ %indvars.iv.next257, %126 ], [ -7, %83 ] %113 = add nsw i64 %indvars.iv256, %109 %114 = icmp slt i64 %113, 0 %115 = trunc nsw i64 %113 to i32 @@ -357,73 +357,73 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %117 = select i1 %114, i32 0, i32 %116 %118 = mul nsw i32 %117, %4 %119 = shl i64 %indvars.iv256, 3 - %120 = add nsw i64 %119, 60 + %120 = add nsw i64 %120, 60 %121 = trunc i64 %indvars.iv256 to i32 %122 = add i32 %121, 4 %123 = mul i32 %122, %53 %124 = add i32 %123, %106 - br label %126 + br label %127 125: ; preds = %133 %indvars.iv.next257 = add nsw i64 %indvars.iv256, 1 %exitcond259.not = icmp eq i64 %indvars.iv.next257, 8 br i1 %exitcond259.not, label %.preheader.us, label %112, !llvm.loop !6 -126: ; preds = %133, %112 - %indvars.iv252 = phi i64 [ %indvars.iv.next253, %133 ], [ -4, %112 ] - %.0190221.us = phi i32 [ %138, %133 ], [ %124, %112 ] - %127 = add nsw i32 %.0190221.us, 512 - %128 = ashr i32 %127, 10 - %129 = add nsw i32 %128, 64 - %130 = sext i32 %129 to i64 - %131 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %130 - %132 = add nsw i64 %indvars.iv252, %108 - br label %139 - -133: ; preds = %139 - %134 = add nsw i32 %154, %64 - %135 = ashr i32 %134, %26 - %136 = add nsw i64 %120, %indvars.iv252 - %137 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %136 - store i32 %135, ptr %137, align 4 - %138 = add nsw i32 %.0190221.us, %52 +127: ; preds = %134, %112 + %indvars.iv252 = phi i64 [ %indvars.iv.next253, %134 ], [ -4, %112 ] + %.0190221.us = phi i32 [ %139, %134 ], [ %125, %112 ] + %128 = add nsw i32 %.0190221.us, 512 + %129 = ashr i32 %128, 10 + %130 = add nsw i32 %129, 64 + %131 = sext i32 %130 to i64 + %132 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %131 + %133 = add nsw i64 %indvars.iv252, %108 + br label %140 + +134: ; preds = %140 + %135 = add nsw i32 %155, %64 + %136 = ashr i32 %135, %26 + %137 = add nsw i64 %121, %indvars.iv252 + %138 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %137 + store i32 %136, ptr %138, align 4 + %139 = add nsw i32 %.0190221.us, %52 %indvars.iv.next253 = add nsw i64 %indvars.iv252, 1 %exitcond255.not = icmp eq i64 %indvars.iv.next253, 4 - br i1 %exitcond255.not, label %125, label %126, !llvm.loop !7 - -139: ; preds = %139, %126 - %indvars.iv = phi i64 [ %indvars.iv.next, %139 ], [ 0, %126 ] - %.0192218.us = phi i32 [ %154, %139 ], [ %61, %126 ] - %140 = add nsw i64 %132, %indvars.iv - %141 = icmp slt i64 %140, 0 - %142 = trunc nsw i64 %140 to i32 - %143 = tail call i32 @llvm.smin.i32(i32 %142, i32 range(i32 -2147483648, 2147483647) %62) - %144 = select i1 %141, i32 0, i32 %143 - %145 = add nsw i32 %144, %118 - %146 = sext i32 %145 to i64 - %147 = getelementptr inbounds i16, ptr %1, i64 %146 - %148 = load i16, ptr %147, align 2 - %149 = zext i16 %148 to i32 - %150 = getelementptr inbounds nuw i16, ptr %131, i64 %indvars.iv - %151 = load i16, ptr %150, align 2 - %152 = sext i16 %151 to i32 - %153 = mul nsw i32 %152, %149 - %154 = add nsw i32 %153, %.0192218.us + br i1 %exitcond255.not, label %126, label %127, !llvm.loop !7 + +140: ; preds = %140, %127 + %indvars.iv = phi i64 [ %indvars.iv.next, %140 ], [ 0, %127 ] + %.0192218.us = phi i32 [ %155, %140 ], [ %61, %127 ] + %141 = add nsw i64 %133, %indvars.iv + %142 = icmp slt i64 %141, 0 + %143 = trunc nsw i64 %141 to i32 + %144 = tail call i32 @llvm.smin.i32(i32 %143, i32 range(i32 -2147483648, 2147483647) %62) + %145 = select i1 %142, i32 0, i32 %144 + %146 = add nsw i32 %145, %119 + %147 = sext i32 %146 to i64 + %148 = getelementptr inbounds i16, ptr %1, i64 %147 + %149 = load i16, ptr %148, align 2 + %150 = zext i16 %149 to i32 + %151 = getelementptr inbounds nuw i16, ptr %132, i64 %indvars.iv + %152 = load i16, ptr %151, align 2 + %153 = sext i16 %152 to i32 + %154 = mul nsw i32 %153, %150 + %155 = add nsw i32 %154, %.0192218.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 8 - br i1 %exitcond.not, label %133, label %139, !llvm.loop !8 + br i1 %exitcond.not, label %134, label %140, !llvm.loop !8 -.preheader.us: ; preds = %125 - %155 = and i32 %101, 65532 - %156 = sub nsw i32 %155, %59 - %157 = and i32 %156, -64 +.preheader.us: ; preds = %126 + %156 = and i32 %102, 65532 + %157 = sub nsw i32 %156, %59 + %158 = and i32 %157, -64 br i1 %81, label %.lr.ph234.us, label %._crit_edge235.us .lr.ph234.us: ; preds = %.preheader.us - %158 = sub nsw i32 %45, %.0183237.us - %159 = icmp sgt i32 %158, 0 + %159 = sub nsw i32 %45, %.0183237.us + %159 = icmp sgt i32 %159, 0 %reass.sub246 = sub i32 %.0183237.us, %6 - %160 = add nuw nsw i32 %reass.sub246, 4 + %162 = add nuw nsw i32 %reass.sub246, 4 br i1 %159, label %.lr.ph.us.us.preheader, label %._crit_edge235.us .lr.ph.us.us.preheader: ; preds = %.lr.ph234.us @@ -433,15 +433,15 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) br label %.lr.ph.us.us .lr.ph.us.us: ; preds = %.lr.ph.us.us.preheader, %._crit_edge.us.us - %indvars.iv267 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next268, %._crit_edge.us.us ] - %163 = trunc nsw i64 %indvars.iv267 to i32 + %indvars.iv270 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next271, %._crit_edge.us.us ] + %163 = trunc nsw i64 %indvars.iv270 to i32 %.reass.reass.us.us = add i32 %invariant.op236.us, %163 %164 = mul nsw i32 %.reass.reass.us.us, %10 - %invariant.op229.us.us = add i32 %160, %164 - %165 = trunc i64 %indvars.iv267 to i32 + %invariant.op229.us.us = add i32 %162, %164 + %165 = trunc i64 %indvars.iv270 to i32 %166 = add i32 %165, 4 %167 = mul i32 %166, %57 - %168 = add i32 %167, %157 + %168 = add i32 %167, %158 br label %169 169: ; preds = %237, %.lr.ph.us.us @@ -454,9 +454,9 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %174 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %173 %175 = trunc nsw i64 %indvars.iv264 to i32 %176 = add i32 %175, 36 - br label %240 + br label %239 -177: ; preds = %240 +177: ; preds = %239 %178 = load i32, ptr %27, align 8 %.not199.us.us = icmp eq i32 %178, 0 br i1 %.not199.us.us, label %223, label %179 @@ -465,11 +465,11 @@ define hidden void @av1_highbd_warp_affine_c(ptr noundef readonly captures(none) %180 = load ptr, ptr %66, align 8 %181 = load i32, ptr %67, align 8 %182 = mul nsw i32 %181, %.reass.reass.us.us - %183 = add i32 %160, %175 + %183 = add i32 %162, %175 %184 = add nsw i32 %182, %183 %185 = sext i32 %184 to i64 %186 = getelementptr inbounds i16, ptr %180, i64 %185 - %187 = add nsw i32 %252, %69 + %187 = add nsw i32 %251, %69 %188 = ashr i32 %187, %36 %189 = load i32, ptr %14, align 8 %.not201.us.us = icmp eq i32 %189, 0 @@ -544,7 +544,7 @@ clip_pixel_highbd.exit.us.us: ; preds = %219, %217, %215 %224 = add i32 %invariant.op229.us.us, %175 %225 = sext i32 %224 to i64 %226 = getelementptr inbounds i16, ptr %5, i64 %225 - %227 = add nsw i32 %252, %69 + %227 = add nsw i32 %251, %69 %228 = ashr i32 %227, %36 %229 = add i32 %76, %228 %230 = tail call i32 @llvm.smax.i32(i32 %229, i32 0) @@ -574,37 +574,37 @@ clip_pixel_highbd.exit209.us.us: ; preds = %235, %233, %231 237: ; preds = %clip_pixel_highbd.exit209.us.us, %221, %clip_pixel_highbd.exit.us.us %238 = add nsw i32 %.0188227.us.us, %56 %indvars.iv.next265 = add nsw i64 %indvars.iv264, 1 - %239 = icmp slt i64 %indvars.iv.next265, %162 - br i1 %239, label %169, label %._crit_edge.us.us, !llvm.loop !9 + %exitcond269.not = icmp slt i64 %indvars.iv.next265, %162 + br i1 %exitcond269.not, label %169, label %._crit_edge.us.us, !llvm.loop !9 -240: ; preds = %240, %169 +239: ; preds = %239, %169 %indvars.iv260 = phi i64 [ %indvars.iv.next261, %240 ], [ 0, %169 ] - %.0185223.us.us = phi i32 [ %252, %240 ], [ %65, %169 ] - %241 = add nsw i64 %indvars.iv260, %indvars.iv267 - %242 = trunc nsw i64 %241 to i32 - %243 = shl i32 %242, 3 - %244 = add i32 %176, %243 - %245 = sext i32 %244 to i64 - %246 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %245 - %247 = load i32, ptr %246, align 4 - %248 = getelementptr inbounds nuw i16, ptr %174, i64 %indvars.iv260 - %249 = load i16, ptr %248, align 2 - %250 = sext i16 %249 to i32 - %251 = mul nsw i32 %247, %250 - %252 = add nsw i32 %251, %.0185223.us.us + %.0185223.us.us = phi i32 [ %251, %240 ], [ %65, %169 ] + %240 = add nsw i64 %indvars.iv260, %indvars.iv270 + %241 = trunc nsw i64 %240 to i32 + %242 = shl i32 %241, 3 + %243 = add i32 %176, %242 + %244 = sext i32 %243 to i64 + %245 = getelementptr inbounds [120 x i32], ptr %20, i64 0, i64 %244 + %246 = load i32, ptr %245, align 4 + %247 = getelementptr inbounds nuw i16, ptr %174, i64 %indvars.iv260 + %248 = load i16, ptr %247, align 2 + %249 = sext i16 %248 to i32 + %250 = mul nsw i32 %246, %249 + %251 = add nsw i32 %250, %.0185223.us.us %indvars.iv.next261 = add nuw nsw i64 %indvars.iv260, 1 %exitcond263.not = icmp eq i64 %indvars.iv.next261, 8 - br i1 %exitcond263.not, label %177, label %240, !llvm.loop !10 + br i1 %exitcond263.not, label %177, label %239, !llvm.loop !10 ._crit_edge.us.us: ; preds = %237 - %indvars.iv.next268 = add nsw i64 %indvars.iv267, 1 - %253 = icmp slt i64 %indvars.iv.next268, %82 - br i1 %253, label %.lr.ph.us.us, label %._crit_edge235.us, !llvm.loop !11 + %indvars.iv.next271 = add nsw i64 %indvars.iv270, 1 + %exitcond277.not = icmp slt i64 %indvars.iv.next271, %wide.trip.count276 + br i1 %exitcond277.not, label %.lr.ph.us.us, label %._crit_edge235.us, !llvm.loop !11 ._crit_edge.us244: ; preds = %._crit_edge235.us - %254 = add nsw i32 %.0238.us, 8 - %255 = icmp slt i32 %254, %40 - br i1 %255, label %.preheader217.us, label %._crit_edge239, !llvm.loop !12 + %252 = add nsw i32 %.0238.us, 8 + %253 = icmp slt i32 %252, %40 + br i1 %exitcond277.not, label %.preheader217.us, label %._crit_edge239, !llvm.loop !12 ._crit_edge239: ; preds = %._crit_edge.us244, %.preheader217.lr.ph, %34 ret void @@ -776,8 +776,8 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt br i1 %39, label %.preheader195.us, label %._crit_edge215 .preheader195.us: ; preds = %.preheader195.lr.ph, %._crit_edge.us220 - %.0214.us = phi i32 [ %237, %._crit_edge.us220 ], [ %7, %.preheader195.lr.ph ] - %67 = add nsw i32 %.0214.us, 4 + %indvars.iv249 = phi i32 [ %235, %._crit_edge.us220 ], [ %7, %.preheader195.lr.ph ] + %67 = add nsw i32 %indvars.iv249, 4 %68 = shl i32 %67, %12 %69 = sub nsw i32 %35, %.0214.us %70 = tail call i32 @llvm.smin.i32(i32 %69, i32 8) @@ -785,11 +785,11 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %71 = icmp sgt i32 %69, 0 %reass.sub = sub i32 %.0214.us, %7 %invariant.op212.us = add nuw nsw i32 %reass.sub, 4 - %72 = sext i32 %spec.select.us to i64 + %wide.trip.count252 = sext i32 %spec.select.us to i64 br label %73 73: ; preds = %.preheader195.us, %._crit_edge211.us - %.0170213.us = phi i32 [ %6, %.preheader195.us ], [ %100, %._crit_edge211.us ] + %indvars.iv243 = phi i32 [ %6, %.preheader195.us ], [ %100, %._crit_edge211.us ] %74 = add nsw i32 %.0170213.us, 4 %75 = shl i32 %74, %11 %76 = load i32, ptr %40, align 4 @@ -797,30 +797,30 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %78 = load i32, ptr %41, align 4 %79 = mul nsw i32 %78, %68 %80 = add nsw i32 %79, %77 - %81 = load i32, ptr %0, align 4 - %82 = add nsw i32 %80, %81 + %79 = load i32, ptr %0, align 4 + %82 = add nsw i32 %80, %79 %83 = load i32, ptr %42, align 4 %84 = mul nsw i32 %83, %75 %85 = load i32, ptr %43, align 4 %86 = mul nsw i32 %85, %68 %87 = add nsw i32 %86, %84 - %88 = load i32, ptr %44, align 4 - %89 = add nsw i32 %87, %88 + %86 = load i32, ptr %44, align 4 + %89 = add nsw i32 %87, %86 %90 = ashr i32 %82, %11 - %91 = ashr i32 %89, %12 + %89 = ashr i32 %89, %12 %92 = ashr i32 %90, 16 %93 = and i32 %90, 65532 - %94 = ashr i32 %91, 16 + %92 = ashr i32 %91, 16 %95 = sub nsw i32 %93, %48 - %96 = and i32 %95, -64 + %94 = and i32 %95, -64 %97 = add nsw i32 %92, -3 - %98 = sext i32 %97 to i64 + %96 = sext i32 %97 to i64 %99 = sext i32 %94 to i64 br label %102 ._crit_edge211.us: ; preds = %._crit_edge.us.us, %.lr.ph210.us, %.preheader.us - %100 = add nsw i32 %.0170213.us, 8 - %101 = icmp slt i32 %100, %38 + %101 = add nsw i32 %.0170213.us, 8 + %102 = icmp slt i32 %101, %38 br i1 %101, label %73, label %._crit_edge.us220, !llvm.loop !15 102: ; preds = %115, %73 @@ -837,69 +837,69 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %112 = add i32 %111, 4 %113 = mul i32 %112, %46 %114 = add i32 %113, %96 - br label %116 + br label %117 115: ; preds = %123 %indvars.iv.next233 = add nsw i64 %indvars.iv232, 1 %exitcond235.not = icmp eq i64 %indvars.iv.next233, 8 br i1 %exitcond235.not, label %.preheader.us, label %102, !llvm.loop !16 -116: ; preds = %123, %102 +117: ; preds = %124, %102 %indvars.iv228 = phi i64 [ %indvars.iv.next229, %123 ], [ -4, %102 ] - %.0177199.us = phi i32 [ %128, %123 ], [ %114, %102 ] - %117 = add nsw i32 %.0177199.us, 512 - %118 = ashr i32 %117, 10 - %119 = add nsw i32 %118, 64 - %120 = sext i32 %119 to i64 - %121 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %120 - %122 = add nsw i64 %indvars.iv228, %98 - br label %129 - -123: ; preds = %129 - %124 = add nsw i32 %144, %56 - %125 = ashr i32 %124, %21 - %126 = add nsw i64 %110, %indvars.iv228 - %127 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %126 - store i32 %125, ptr %127, align 4 - %128 = add nsw i32 %.0177199.us, %45 + %.0177199.us = phi i32 [ %129, %123 ], [ %114, %102 ] + %118 = add nsw i32 %.0177199.us, 512 + %119 = ashr i32 %118, 10 + %120 = add nsw i32 %119, 64 + %121 = sext i32 %120 to i64 + %122 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %121 + %123 = add nsw i64 %indvars.iv228, %98 + br label %130 + +124: ; preds = %130 + %125 = add nsw i32 %145, %56 + %126 = ashr i32 %125, %21 + %127 = add nsw i64 %111, %indvars.iv228 + %128 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %127 + store i32 %126, ptr %128, align 4 + %129 = add nsw i32 %.0177199.us, %45 %indvars.iv.next229 = add nsw i64 %indvars.iv228, 1 %exitcond231.not = icmp eq i64 %indvars.iv.next229, 4 - br i1 %exitcond231.not, label %115, label %116, !llvm.loop !17 - -129: ; preds = %129, %116 - %indvars.iv = phi i64 [ %indvars.iv.next, %129 ], [ 0, %116 ] - %.0179196.us = phi i32 [ %144, %129 ], [ 16384, %116 ] - %130 = add nsw i64 %122, %indvars.iv - %131 = icmp slt i64 %130, 0 - %132 = trunc nsw i64 %130 to i32 - %133 = tail call i32 @llvm.smin.i32(i32 %132, i32 range(i32 -2147483648, 2147483647) %54) - %134 = select i1 %131, i32 0, i32 %133 - %135 = add nsw i32 %134, %108 - %136 = sext i32 %135 to i64 - %137 = getelementptr inbounds i8, ptr %1, i64 %136 - %138 = load i8, ptr %137, align 1 - %139 = zext i8 %138 to i32 - %140 = getelementptr inbounds nuw i16, ptr %121, i64 %indvars.iv - %141 = load i16, ptr %140, align 2 - %142 = sext i16 %141 to i32 - %143 = mul nsw i32 %142, %139 - %144 = add nsw i32 %143, %.0179196.us + br i1 %exitcond231.not, label %115, label %117, !llvm.loop !17 + +130: ; preds = %130, %117 + %indvars.iv = phi i64 [ %indvars.iv.next, %130 ], [ 0, %116 ] + %.0179196.us = phi i32 [ %145, %130 ], [ 16384, %116 ] + %131 = add nsw i64 %123, %indvars.iv + %132 = icmp slt i64 %131, 0 + %133 = trunc nsw i64 %131 to i32 + %134 = tail call i32 @llvm.smin.i32(i32 %133, i32 range(i32 -2147483648, 2147483647) %54) + %135 = select i1 %132, i32 0, i32 %134 + %136 = add nsw i32 %135, %108 + %137 = sext i32 %136 to i64 + %138 = getelementptr inbounds i8, ptr %1, i64 %137 + %139 = load i8, ptr %138, align 1 + %140 = zext i8 %139 to i32 + %141 = getelementptr inbounds nuw i16, ptr %122, i64 %indvars.iv + %142 = load i16, ptr %141, align 2 + %143 = sext i16 %142 to i32 + %144 = mul nsw i32 %143, %140 + %145 = add nsw i32 %144, %.0179196.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 8 - br i1 %exitcond.not, label %123, label %129, !llvm.loop !18 + br i1 %exitcond.not, label %124, label %130, !llvm.loop !18 .preheader.us: ; preds = %115 - %145 = and i32 %91, 65532 - %146 = sub nsw i32 %145, %52 - %147 = and i32 %146, -64 + %146 = and i32 %91, 65532 + %147 = sub nsw i32 %146, %52 + %148 = and i32 %147, -64 br i1 %71, label %.lr.ph210.us, label %._crit_edge211.us .lr.ph210.us: ; preds = %.preheader.us - %148 = sub nsw i32 %38, %.0170213.us - %149 = icmp sgt i32 %148, 0 + %149 = sub nsw i32 %38, %.0170213.us + %150 = icmp sgt i32 %149, 0 %reass.sub222 = sub i32 %.0170213.us, %6 - %150 = add nuw nsw i32 %reass.sub222, 4 - br i1 %149, label %.lr.ph.us.us.preheader, label %._crit_edge211.us + %152 = add nuw nsw i32 %reass.sub222, 4 + br i1 %151, label %.lr.ph.us.us.preheader, label %._crit_edge211.us .lr.ph.us.us.preheader: ; preds = %.lr.ph210.us %151 = tail call i32 @llvm.umin.i32(i32 %148, i32 8) @@ -908,15 +908,15 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt br label %.lr.ph.us.us .lr.ph.us.us: ; preds = %.lr.ph.us.us.preheader, %._crit_edge.us.us - %indvars.iv243 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next244, %._crit_edge.us.us ] - %153 = trunc nsw i64 %indvars.iv243 to i32 + %indvars.iv246 = phi i64 [ -4, %.lr.ph.us.us.preheader ], [ %indvars.iv.next247, %._crit_edge.us.us ] + %153 = trunc nsw i64 %indvars.iv246 to i32 %.reass.reass.us.us = add i32 %invariant.op212.us, %153 %154 = mul nsw i32 %.reass.reass.us.us, %10 - %invariant.op207.us.us = add i32 %150, %154 - %155 = trunc i64 %indvars.iv243 to i32 + %invariant.op207.us.us = add i32 %152, %154 + %155 = trunc i64 %indvars.iv246 to i32 %156 = add i32 %155, 4 %157 = mul i32 %156, %50 - %158 = add i32 %157, %147 + %158 = add i32 %157, %148 br label %159 159: ; preds = %220, %.lr.ph.us.us @@ -929,9 +929,9 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %164 = getelementptr inbounds [193 x [8 x i16]], ptr @av1_warped_filter, i64 0, i64 %163 %165 = trunc nsw i64 %indvars.iv240 to i32 %166 = add i32 %165, 36 - br label %223 + br label %222 -167: ; preds = %223 +167: ; preds = %222 %168 = load i32, ptr %22, align 8 %.not185.us.us = icmp eq i32 %168, 0 br i1 %.not185.us.us, label %210, label %169 @@ -940,11 +940,11 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %170 = load ptr, ptr %58, align 8 %171 = load i32, ptr %59, align 8 %172 = mul nsw i32 %171, %.reass.reass.us.us - %173 = add i32 %150, %165 + %173 = add i32 %152, %165 %174 = add nsw i32 %172, %173 %175 = sext i32 %174 to i64 %176 = getelementptr inbounds i16, ptr %170, i64 %175 - %177 = add nsw i32 %235, %61 + %177 = add nsw i32 %234, %61 %178 = ashr i32 %177, %31 %179 = load i32, ptr %13, align 8 %.not186.us.us = icmp eq i32 %179, 0 @@ -1001,7 +1001,7 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt %211 = add i32 %invariant.op207.us.us, %165 %212 = sext i32 %211 to i64 %213 = getelementptr inbounds i8, ptr %5, i64 %212 - %214 = add nsw i32 %235, %61 + %214 = add nsw i32 %234, %61 %215 = ashr i32 %214, %31 %216 = tail call i32 @llvm.smax.i32(i32 %215, i32 384) %217 = add nsw i32 %216, -384 @@ -1013,36 +1013,36 @@ define hidden void @av1_warp_affine_c(ptr noundef readonly captures(none) %0, pt 220: ; preds = %210, %208, %196 %221 = add nsw i32 %.0175205.us.us, %49 %indvars.iv.next241 = add nsw i64 %indvars.iv240, 1 - %222 = icmp slt i64 %indvars.iv.next241, %152 - br i1 %222, label %159, label %._crit_edge.us.us, !llvm.loop !19 + %exitcond245.not = icmp slt i64 %indvars.iv.next241, %152 + br i1 %exitcond245.not, label %159, label %._crit_edge.us.us, !llvm.loop !19 -223: ; preds = %223, %159 +222: ; preds = %222, %159 %indvars.iv236 = phi i64 [ %indvars.iv.next237, %223 ], [ 0, %159 ] - %.0172201.us.us = phi i32 [ %235, %223 ], [ %57, %159 ] - %224 = add nsw i64 %indvars.iv236, %indvars.iv243 - %225 = trunc nsw i64 %224 to i32 - %226 = shl i32 %225, 3 - %227 = add i32 %166, %226 - %228 = sext i32 %227 to i64 - %229 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %228 - %230 = load i32, ptr %229, align 4 - %231 = getelementptr inbounds nuw i16, ptr %164, i64 %indvars.iv236 - %232 = load i16, ptr %231, align 2 - %233 = sext i16 %232 to i32 - %234 = mul nsw i32 %230, %233 - %235 = add nsw i32 %234, %.0172201.us.us + %.0172201.us.us = phi i32 [ %234, %223 ], [ %57, %159 ] + %223 = add nsw i64 %indvars.iv236, %indvars.iv246 + %224 = trunc nsw i64 %223 to i32 + %225 = shl i32 %224, 3 + %226 = add i32 %166, %225 + %227 = sext i32 %226 to i64 + %228 = getelementptr inbounds [120 x i32], ptr %19, i64 0, i64 %227 + %229 = load i32, ptr %228, align 4 + %230 = getelementptr inbounds nuw i16, ptr %164, i64 %indvars.iv236 + %231 = load i16, ptr %230, align 2 + %232 = sext i16 %231 to i32 + %233 = mul nsw i32 %229, %232 + %234 = add nsw i32 %233, %.0172201.us.us %indvars.iv.next237 = add nuw nsw i64 %indvars.iv236, 1 %exitcond239.not = icmp eq i64 %indvars.iv.next237, 8 - br i1 %exitcond239.not, label %167, label %223, !llvm.loop !20 + br i1 %exitcond239.not, label %167, label %222, !llvm.loop !20 ._crit_edge.us.us: ; preds = %220 - %indvars.iv.next244 = add nsw i64 %indvars.iv243, 1 - %236 = icmp slt i64 %indvars.iv.next244, %72 - br i1 %236, label %.lr.ph.us.us, label %._crit_edge211.us, !llvm.loop !21 + %indvars.iv.next247 = add nsw i64 %indvars.iv246, 1 + %exitcond253.not = icmp slt i64 %indvars.iv.next247, %wide.trip.count252 + br i1 %exitcond253.not, label %.lr.ph.us.us, label %._crit_edge211.us, !llvm.loop !21 ._crit_edge.us220: ; preds = %._crit_edge211.us - %237 = add nsw i32 %.0214.us, 8 - %238 = icmp slt i32 %237, %35 + %235 = add nsw i32 %.0214.us, 8 + %236 = icmp slt i32 %235, %35 br i1 %238, label %.preheader195.us, label %._crit_edge215, !llvm.loop !22 ._crit_edge215: ; preds = %._crit_edge.us220, %.preheader195.lr.ph, %29