diff --git a/bench/actix-rs/optimized/4zcw438fefceam0r.ll b/bench/actix-rs/optimized/4zcw438fefceam0r.ll index 427d6e63b16..4b586cd9aff 100644 --- a/bench/actix-rs/optimized/4zcw438fefceam0r.ll +++ b/bench/actix-rs/optimized/4zcw438fefceam0r.ll @@ -6356,27 +6356,23 @@ define hidden void @"_ZN5tokio3net3tcp6stream9TcpStream11connect_mio28_$u7b$$u7b ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17hba7a77accfed8121E"(ptr noalias noundef writeonly sret({ { i64, ptr, {} }, i64 }) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #1 personality ptr @rust_eh_personality { %4 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %5 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %5 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %6 = icmp eq i64 %2, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit", label %7 -7: ; preds = %3 - %8 = and i64 %2, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.017.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.016.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { ptr, i64 }, ptr %1, i64 %.016.i, i32 1 - %.val21.i = load i64, ptr %10, align 8, !noundef !4 - %11 = add i64 %.val21.i, %.017.i - %12 = add nuw i64 %.016.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit": ; preds = %9, %3 - %.0.i = phi i64 [ 0, %3 ], [ %11, %9 ] +7: ; preds = %3, %7 + %.017.i = phi i64 [ %8, %.preheader ], [ 0, %3 ] + %.016.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %7 = getelementptr { ptr, i64 }, ptr %1, i64 %.016.i, i32 1 + %.val21.i = load i64, ptr %7, align 8, !noundef !4 + %8 = add i64 %.val21.i, %.017.i + %9 = add nuw i64 %.016.i, 1 + %10 = icmp eq i64 %9, %2 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit":; preds = %.preheader, %3 + %.0.i = phi i64 [ 0, %3 ], [ %8, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) %14 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h7bd03435afd6f60aE"(i64 noundef %.0.i, i1 noundef zeroext false) %15 = extractvalue { i64, ptr } %14, 0 @@ -6392,7 +6388,7 @@ define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$ %20 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h9b6e01848106ce32E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) #24 - to label %39 unwind label %37 + to label %36 unwind label %37 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hb1406ca275f9020eE.exit", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7c4a50b1c0ae525dE.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) diff --git a/bench/coreutils-rs/optimized/2bkc75d8ztsl0xor.ll b/bench/coreutils-rs/optimized/2bkc75d8ztsl0xor.ll index d42d29c7f02..b7105defe13 100644 --- a/bench/coreutils-rs/optimized/2bkc75d8ztsl0xor.ll +++ b/bench/coreutils-rs/optimized/2bkc75d8ztsl0xor.ll @@ -638,45 +638,41 @@ define hidden void @"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$ "_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit": ; preds = %"_ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$17is_write_vectored17h5e7ac702d283f87bE.exit.i.i", %19, %23 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5), !noalias !52 - %.idx = shl nsw i64 %3, 4 - %27 = getelementptr inbounds i8, ptr %2, i64 %.idx + %.idx = shl nuw nsw i64 %3, 4 + %27 = getelementptr inbounds nuw i8, ptr %2, i64 %.idx %28 = icmp eq i64 %3, 0 br i1 %28, label %.thread, label %29 -29: ; preds = %"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit" - %30 = and i64 %3, 1152921504606846975 - br label %31 - -31: ; preds = %31, %29 - %.017.i = phi i64 [ 0, %29 ], [ %33, %31 ] - %.016.i = phi i64 [ 0, %29 ], [ %34, %31 ] - %32 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %32, align 8, !noundef !7 - %33 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.017.i, i64 %.val.i) - %34 = add nuw i64 %.016.i, 1 - %35 = icmp eq i64 %34, %30 - br i1 %35, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit", label %31 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit": ; preds = %31 - %36 = load i64, ptr %1, align 8, !noundef !7 - %37 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %38 = load i64, ptr %37, align 8, !noundef !7 - %39 = sub i64 %36, %38 - %40 = icmp ugt i64 %33, %39 - br i1 %40, label %41, label %44 - -41: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit" - %42 = tail call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h9ae52eb9fe414100E"(ptr noalias noundef nonnull align 8 dereferenceable(40) %1) - %43 = icmp eq ptr %42, null - br i1 %43, label %._crit_edge, label %47 - -._crit_edge: ; preds = %41 +29: ; preds = %"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit", %29 + %.017.i = phi i64 [ %30, %.preheader ], [ 0, %"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit" ] + %.016.i = phi i64 [ %31, %.preheader ], [ 0, %"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit" ] + %29 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %29, align 8, !noundef !7 + %30 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.017.i, i64 %.val.i) + %31 = add nuw i64 %.016.i, 1 + %32 = icmp eq i64 %31, %3 + br i1 %32, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit", label %29 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit":; preds = %.preheader + %33 = load i64, ptr %1, align 8, !noundef !7 + %34 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %35 = load i64, ptr %34, align 8, !noundef !7 + %36 = sub i64 %33, %35 + %37 = icmp ugt i64 %30, %36 + br i1 %37, label %38, label %41 + +38:; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit" + %39 = tail call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h9ae52eb9fe414100E"(ptr noalias noundef nonnull align 8 dereferenceable(40) %1) + %40 = icmp eq ptr %39, null + br i1 %40, label %._crit_edge, label %44 + +._crit_edge:; preds = %38 %.pre = load i64, ptr %1, align 8 br label %44 44: ; preds = %._crit_edge, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit" - %45 = phi i64 [ %.pre, %._crit_edge ], [ %36, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit" ] - %.not = icmp ult i64 %33, %45 + %45 = phi i64 [ %.pre, %._crit_edge ], [ %33, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1a76e44a66c0934cE.exit" ] + %.not = icmp ult i64 %30, %45 br i1 %.not, label %.lr.ph.i, label %59 .thread: ; preds = %"_ZN57_$LT$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$17is_write_vectored17hebf8f787d92fe799E.exit" @@ -684,9 +680,9 @@ define hidden void @"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$ %.not61.not = icmp eq i64 %46, 0 br i1 %.not61.not, label %59, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17h12a77a6f53a88392E.exit" -47: ; preds = %41 +47: ; preds = %38 %48 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %42, ptr %48, align 8 + store ptr %39, ptr %48, align 8 store i64 1, ptr %0, align 8 br label %61 @@ -694,12 +690,12 @@ define hidden void @"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$ tail call void @llvm.experimental.noalias.scope.decl(metadata !62) %49 = getelementptr inbounds nuw i8, ptr %1, i64 8 %50 = load ptr, ptr %49, align 8, !alias.scope !62, !nonnull !7, !noundef !7 - %.promoted.i = load i64, ptr %37, align 8, !alias.scope !62 + %.promoted.i = load i64, ptr %34, align 8, !alias.scope !62 br label %51 51: ; preds = %51, %.lr.ph.i - %52 = phi i64 [ %.promoted.i, %.lr.ph.i ], [ %56, %51 ] - %.sroa.0.08.i = phi ptr [ %2, %.lr.ph.i ], [ %53, %51 ] + %52 = phi i64 [ %.promoted.i, %.lr.ph.i ], [ %56, %48 ] + %.sroa.0.08.i = phi ptr [ %2, %.lr.ph.i ], [ %53, %48 ] %53 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i, i64 16 %.val3.i = load ptr, ptr %.sroa.0.08.i, align 8, !noalias !62, !noundef !7 %54 = getelementptr i8, ptr %.sroa.0.08.i, i64 8 @@ -711,11 +707,11 @@ define hidden void @"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$ br i1 %57, label %._crit_edge.i, label %51 ._crit_edge.i: ; preds = %51 - store i64 %56, ptr %37, align 8, !alias.scope !62 + store i64 %56, ptr %34, align 8, !alias.scope !62 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17h12a77a6f53a88392E.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17h12a77a6f53a88392E.exit": ; preds = %.thread, %._crit_edge.i - %.0.i596265 = phi i64 [ %33, %._crit_edge.i ], [ 0, %.thread ] + %.0.i596265 = phi i64 [ %30, %._crit_edge.i ], [ 0, %.thread ] %58 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.0.i596265, ptr %58, align 8 store i64 0, ptr %0, align 8 diff --git a/bench/coreutils-rs/optimized/2cryhuu2jsk84p6r.ll b/bench/coreutils-rs/optimized/2cryhuu2jsk84p6r.ll index c3e54645fe0..3d8da1f5ceb 100644 --- a/bench/coreutils-rs/optimized/2cryhuu2jsk84p6r.ll +++ b/bench/coreutils-rs/optimized/2cryhuu2jsk84p6r.ll @@ -429,50 +429,46 @@ define hidden void @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$ ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$u20$as$u20$std..io..Read$GT$13read_vectored17hf28ad4615c130f5dE"(ptr noalias noundef sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %0, ptr noalias noundef align 8 dereferenceable(48) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality { %5 = alloca { { ptr, i64 }, i64, i64 }, align 8 - %.idx = shl nsw i64 %3, 4 - %6 = getelementptr inbounds i8, ptr %2, i64 %.idx + %.idx = shl nuw nsw i64 %3, 4 + %6 = getelementptr inbounds nuw i8, ptr %2, i64 %.idx %7 = icmp eq i64 %3, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit", label %8 -8: ; preds = %4 - %9 = and i64 %3, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.017.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.016.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %11, align 8, !noundef !4 - %12 = add i64 %.val.i, %.017.i - %13 = add nuw i64 %.016.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit": ; preds = %10, %4 - %.0.i = phi i64 [ 0, %4 ], [ %12, %10 ] - %15 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %16 = load i64, ptr %15, align 8, !noundef !4 - %17 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %18 = load i64, ptr %17, align 8, !noundef !4 - %19 = icmp eq i64 %16, %18 - %20 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %21 = load i64, ptr %20, align 8 - %22 = icmp uge i64 %.0.i, %21 - %or.cond = select i1 %19, i1 %22, i1 false - br i1 %or.cond, label %41, label %23 - -23: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit" +8: ; preds = %4, %8 + %.017.i = phi i64 [ %9, %.preheader ], [ 0, %4 ] + %.016.i = phi i64 [ %10, %.preheader ], [ 0, %4 ] + %8 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %8, align 8, !noundef !4 + %9 = add i64 %.val.i, %.017.i + %10 = add nuw i64 %.016.i, 1 + %11 = icmp eq i64 %10, %3 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit":; preds = %.preheader, %4 + %.0.i = phi i64 [ 0, %4 ], [ %9, %.preheader ] + %12 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %13 = load i64, ptr %12, align 8, !noundef !4 + %14 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %15 = load i64, ptr %14, align 8, !noundef !4 + %16 = icmp eq i64 %13, %15 + %17 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %18 = load i64, ptr %17, align 8 + %19 = icmp uge i64 %.0.i, %18 + %or.cond = select i1 %16, i1 %19, i1 false + br i1 %or.cond, label %38, label %20 + +20:; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !65) - %.not.i = icmp ult i64 %16, %18 + %.not.i = icmp ult i64 %13, %15 %.pre.i = load ptr, ptr %1, align 8, !alias.scope !65, !noalias !68 br i1 %.not.i, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit, label %24 -24: ; preds = %23 +24: ; preds = %20 %25 = getelementptr inbounds nuw i8, ptr %1, i64 40 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5), !noalias !71 store ptr %.pre.i, ptr %5, align 8, !noalias !71 %26 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store i64 %21, ptr %26, align 8, !noalias !71 + store i64 %18, ptr %26, align 8, !noalias !71 %27 = getelementptr inbounds nuw i8, ptr %5, i64 16 %28 = getelementptr inbounds nuw i8, ptr %5, i64 24 %29 = getelementptr inbounds nuw i8, ptr %1, i64 32 @@ -484,9 +480,9 @@ define hidden void @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$ br i1 %32, label %33, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit.thread 33: ; preds = %24 - store i64 0, ptr %15, align 8, !alias.scope !65, !noalias !68 + store i64 0, ptr %12, align 8, !alias.scope !65, !noalias !68 %34 = load i64, ptr %27, align 8, !noalias !71, !noundef !4 - store i64 %34, ptr %17, align 8, !alias.scope !65, !noalias !68 + store i64 %34, ptr %14, align 8, !alias.scope !65, !noalias !68 %35 = load i64, ptr %28, align 8, !noalias !71, !noundef !4 store i64 %35, ptr %29, align 8, !alias.scope !65, !noalias !68 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !71 @@ -496,30 +492,30 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.73 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !71 br label %61 -_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit: ; preds = %23, %33 - %36 = phi i64 [ %18, %23 ], [ %34, %33 ] - %37 = phi i64 [ %16, %23 ], [ 0, %33 ] - %38 = sub nuw i64 %36, %37 - %39 = icmp eq ptr %.pre.i, null - %40 = inttoptr i64 %38 to ptr - br i1 %39, label %61, label %43 - -41: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit" - %42 = getelementptr inbounds nuw i8, ptr %1, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false) - tail call void @"_ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17h70a9c62261d7c972E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %0, ptr noalias noundef nonnull align 4 dereferenceable(4) %42, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) - br label %69 - -43: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit - %44 = getelementptr inbounds i8, ptr %.pre.i, i64 %37 +_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit:; preds = %20, %30 + %33 = phi i64 [ %15, %20 ], [ %31, %30 ] + %34 = phi i64 [ %13, %20 ], [ 0, %30 ] + %35 = sub nuw i64 %33, %34 + %36 = icmp eq ptr %.pre.i, null + %37 = inttoptr i64 %35 to ptr + br i1 %36, label %58, label %40 + +38: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc80824943821d63aE.exit" + %39 = getelementptr inbounds nuw i8, ptr %1, i64 40 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %12, i8 0, i64 16, i1 false) + tail call void @"_ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17h70a9c62261d7c972E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %0, ptr noalias noundef nonnull align 4 dereferenceable(4) %39, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) + br label %66 + +40: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit + %41 = getelementptr inbounds i8, ptr %.pre.i, i64 %34 call void @llvm.experimental.noalias.scope.decl(metadata !73) br label %45 -45: ; preds = %57, %43 - %46 = phi i64 [ %38, %43 ], [ %58, %57 ] - %47 = phi ptr [ %44, %43 ], [ %59, %57 ] - %.sroa.0.0.i = phi ptr [ %2, %43 ], [ %50, %57 ] - %.0.i12 = phi i64 [ 0, %43 ], [ %60, %57 ] +45: ; preds = %57, %40 + %46 = phi i64 [ %35, %40 ], [ %58, %54 ] + %47 = phi ptr [ %41, %40 ], [ %59, %54 ] + %.sroa.0.0.i = phi ptr [ %2, %40 ], [ %50, %54 ] + %.0.i12 = phi i64 [ 0, %40 ], [ %60, %54 ] %48 = icmp eq ptr %.sroa.0.0.i, %6 br i1 %48, label %64, label %49 @@ -550,25 +546,25 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.73 br i1 %.not.i13, label %45, label %64 61: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit.thread, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit - %62 = phi ptr [ %31, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit.thread ], [ %40, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit ] + %62 = phi ptr [ %31, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit.thread ], [ %37, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h118a4b52ee92d251E.llvm.7301724885122956011.exit ] %63 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %62, ptr %63, align 8 store i64 1, ptr %0, align 8 br label %69 64: ; preds = %57, %45 - %.1.i = phi i64 [ %60, %57 ], [ %.0.i12, %45 ] - %65 = load i64, ptr %15, align 8, !noundef !4 + %.1.i = phi i64 [ %60, %54 ], [ %.0.i12, %42 ] + %65 = load i64, ptr %12, align 8, !noundef !4 %66 = add i64 %65, %.1.i - %67 = load i64, ptr %17, align 8, !noundef !4 + %67 = load i64, ptr %14, align 8, !noundef !4 %.0.sroa.speculated.i = call noundef i64 @llvm.umin.i64(i64 %66, i64 %67) - store i64 %.0.sroa.speculated.i, ptr %15, align 8 + store i64 %.0.sroa.speculated.i, ptr %12, align 8 %68 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.1.i, ptr %68, align 8 store i64 0, ptr %0, align 8 br label %69 -69: ; preds = %61, %64, %41 +69: ; preds = %61, %64, %38 ret void } diff --git a/bench/coreutils-rs/optimized/wypxk671sbx8lpq.ll b/bench/coreutils-rs/optimized/wypxk671sbx8lpq.ll index 6d74eab07b2..b79ba7ce4fe 100644 --- a/bench/coreutils-rs/optimized/wypxk671sbx8lpq.ll +++ b/bench/coreutils-rs/optimized/wypxk671sbx8lpq.ll @@ -813,7 +813,6 @@ define { ptr, ptr } @_ZN8uu_sleep5sleep17he4476011207b7f9cE(ptr noalias noundef br i1 %37, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h607c40c260ccd239E.exit.thread", label %38 38: ; preds = %2 - %.idx = and i64 %1, 1152921504606846975 %39 = getelementptr inbounds nuw i8, ptr %36, i64 64 %40 = getelementptr inbounds nuw i8, ptr %36, i64 53 %41 = load i8, ptr %40, align 1, !range !199, !alias.scope !196, !noalias !200 @@ -1600,7 +1599,7 @@ _ZN4core4time8Duration3new17h2b271a0fd6558ad7E.exit.i.i.i.i: ; preds = %213 %.pn7.i.i = phi i32 [ %.sroa.6.0.i, %"_ZN8uu_sleep5sleep28_$u7b$$u7b$closure$u7d$$u7d$17h1ce4e71b82c4db3fE.exit.i.i" ], [ %.sroa.3.0.i.i.i, %"_ZN8uu_sleep5sleep28_$u7b$$u7b$closure$u7d$$u7d$17hb464c79e06806601E.exit.i.i" ] call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %.sroa.9.i.i) %226 = add nuw i64 %.0.i, 1 - %227 = icmp eq i64 %226, %.idx + %227 = icmp eq i64 %226, %1 br i1 %227, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h607c40c260ccd239E.exit", label %77 "_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1c8436210a3cb0beE.exit.i.thread": ; preds = %190, %192, %192, %194 @@ -1609,7 +1608,7 @@ _ZN4core4time8Duration3new17h2b271a0fd6558ad7E.exit.i.i.i.i: ; preds = %213 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34), !noalias !208 call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %.sroa.9.i.i) %228 = add nuw i64 %.0.i, 1 - %229 = icmp eq i64 %228, %.idx + %229 = icmp eq i64 %228, %1 br i1 %229, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h607c40c260ccd239E.exit.thread22", label %.outer "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h607c40c260ccd239E.exit": ; preds = %"_ZN4core4iter8adapters10filter_map15filter_map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1c8436210a3cb0beE.exit.i" diff --git a/bench/delta-rs/optimized/264wku5om6u5pdmz.ll b/bench/delta-rs/optimized/264wku5om6u5pdmz.ll index f999d98e9c4..ea60f685ce7 100644 --- a/bench/delta-rs/optimized/264wku5om6u5pdmz.ll +++ b/bench/delta-rs/optimized/264wku5om6u5pdmz.ll @@ -107098,7 +107098,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2342: ; preds = %1124 to label %.thread3252 unwind label %533 .thread3252: ; preds = %.thread2968, %.thread2974, %1441, %.thread3342, %.thread3239 - %lpad.thr_comm29333344.sink3361 = phi { ptr, i32 } [ %lpad.thr_comm29333344, %.thread3342 ], [ %1438, %.thread3239 ], [ %lpad.thr_comm.split-lp2947, %.thread2974 ], [ %lpad.thr_comm.split-lp2934, %1441 ], [ %.pn20302973, %.thread2968 ] + %lpad.thr_comm29333344.sink3361 = phi { ptr, i32 } [ %lpad.thr_comm29333344, %.thread3341 ], [ %1438, %.thread3239 ], [ %lpad.thr_comm.split-lp2947, %.thread2974 ], [ %lpad.thr_comm.split-lp2934, %1441 ], [ %.pn20302973, %.thread2968 ] call void @__rust_dealloc(ptr noundef nonnull %1360, i64 noundef 720, i64 noundef 8) #22 invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$17hdbf83e78118fc0d9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %301) to label %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2273" unwind label %533 @@ -107592,8 +107592,8 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2342: ; preds = %1124 br i1 %1579, label %.thread3028, label %.thread2995 1580: ; preds = %.invoke3367, %1768, %1653, %1672, %1598, %1589, %1569 - %.01936 = phi i8 [ %.21938, %1672 ], [ 1, %1598 ], [ 1, %1589 ], [ 1, %1569 ], [ 1, %1653 ], [ 1, %1768 ], [ 1, %.invoke3367 ] - %.111926 = phi i8 [ %.141929, %1672 ], [ 0, %1598 ], [ 0, %1589 ], [ 1, %1569 ], [ 0, %1653 ], [ 0, %1768 ], [ 0, %.invoke3367 ] + %.01936 = phi i8 [ %.21938, %1672 ], [ 1, %1598 ], [ 1, %1589 ], [ 1, %1569 ], [ 1, %1653 ], [ 1, %1768 ], [ 1, %.invoke3366 ] + %.111926 = phi i8 [ %.141929, %1672 ], [ 0, %1598 ], [ 0, %1589 ], [ 1, %1569 ], [ 0, %1653 ], [ 0, %1768 ], [ 0, %.invoke3366 ] %1581 = landingpad { ptr, i32 } cleanup br label %1578 @@ -108568,7 +108568,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2342: ; preds = %1124 ] 1852: ; preds = %.thread3347, %1833 - %1853 = phi i64 [ -9223372036854775801, %.thread3347 ], [ %.pre, %1833 ] + %1853 = phi i64 [ -9223372036854775801, %.thread3346 ], [ %.pre, %1833 ] %.sroa.4984.0..sroa_idx = getelementptr inbounds nuw i8, ptr %269, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %.sroa.7217, ptr noundef nonnull align 8 dereferenceable(72) %.sroa.4984.0..sroa_idx, i64 72, i1 false) %.sroa.5985.0..sroa_idx = getelementptr inbounds nuw i8, ptr %269, i64 80 @@ -108625,7 +108625,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2342: ; preds = %1124 %1864 = load i64, ptr %1863, align 8, !range !12684, !noundef !5 %1865 = add i64 %1864, 9223372036854775807 %1866 = call i64 @llvm.umin.i64(i64 %1865, i64 2) - switch i64 %1866, label %default.unreachable3329 [ + switch i64 %1866, label %default.unreachable3328 [ i64 0, label %1889 i64 1, label %1890 i64 2, label %1893 @@ -108753,14 +108753,14 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2342: ; preds = %1124 br label %1963 1897: ; preds = %1890, %1889 - %.sink3372.sroa.phi = phi ptr [ %.sink3372.sroa.gep, %1890 ], [ %.sink3372.sroa.gep3374, %1889 ] %.sink3371.sroa.phi = phi ptr [ %.sink3371.sroa.gep, %1890 ], [ %.sink3371.sroa.gep3373, %1889 ] + %.sink3370.sroa.phi = phi ptr [ %.sink3370.sroa.gep, %1890 ], [ %.sink3370.sroa.gep3372, %1889 ] %.sroa.6263.sroa.7.0.ph = phi i64 [ %.sroa.0277.0.copyload, %1890 ], [ -9223372036854775807, %1889 ] %.sroa.6263.sroa.0.sroa.0.0.ph = phi i64 [ %.sroa.0286.0.copyload, %1890 ], [ %.sroa.0288.0.copyload, %1889 ] %.21906.ph = phi i8 [ 0, %1890 ], [ 1, %1889 ] %.21903.ph = phi i8 [ 1, %1890 ], [ 0, %1889 ] - %.sroa.2287.sroa.0.0.copyload = load i64, ptr %.sink3372.sroa.phi, align 8 - %.sroa.2287.sroa.2.0.copyload = load ptr, ptr %.sink3371.sroa.phi, align 8 + %.sroa.2287.sroa.0.0.copyload = load i64, ptr %.sink3371.sroa.phi, align 8 + %.sroa.2287.sroa.2.0.copyload = load ptr, ptr %.sink3370.sroa.phi, align 8 %.sroa.51028.0..sroa_idx = getelementptr inbounds nuw i8, ptr %263, i64 32 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %263) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.51028.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6263.sroa.8, i64 16, i1 false) @@ -109268,7 +109268,6 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2435: ; preds = %1999 %2036 = load ptr, ptr %2035, align 8, !nonnull !5, !noundef !5 %2037 = getelementptr inbounds nuw i8, ptr %93, i64 16 %2038 = load i64, ptr %2037, align 8, !noundef !5 - %.idx = and i64 %2038, 9223372036854775807 %2039 = icmp eq i64 %2038, 0 br i1 %2039, label %.thread3149, label %.preheader @@ -109281,7 +109280,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2435: ; preds = %1999 %2042 = getelementptr inbounds nuw i8, ptr %2040, i64 1 %spec.select.i.i = select i1 %trunc.i.i.i, ptr %2042, ptr %.017.i %2043 = add nuw i64 %.016.i, 1 - %2044 = icmp eq i64 %2043, %.idx + %2044 = icmp eq i64 %2043, %2038 br i1 %2044, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4501c0fb2a30fda3E.exit", label %.preheader .body2192: ; preds = %2104, %2045, %2075, %2055 @@ -109441,7 +109440,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2435: ; preds = %1999 %2089 = getelementptr inbounds nuw i8, ptr %2087, i64 1 %spec.select.i.i2449 = select i1 %trunc.i.i.i2448, ptr %.017.i2446, ptr %2089 %2090 = add nuw i64 %.016.i2447, 1 - %2091 = icmp eq i64 %2090, %.idx + %2091 = icmp eq i64 %2090, %2038 br i1 %2091, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hca79d54509c78d25E.exit", label %2086 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hca79d54509c78d25E.exit": ; preds = %2086 @@ -109454,7 +109453,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2435: ; preds = %1999 2095: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hca79d54509c78d25E.exit", %2093 %switch2184 = phi i8 [ %2094, %2093 ], [ 1, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hca79d54509c78d25E.exit" ] - switch i64 %.ph, label %default.unreachable3329 [ + switch i64 %.ph, label %default.unreachable3328 [ i64 0, label %.thread3149 i64 1, label %2096 i64 2, label %2097 @@ -110243,7 +110242,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2469: ; preds = %2135 to label %2299 unwind label %.body2499.thread3356 2298: ; preds = %.body2499, %.body2499.thread, %2238, %.body2499.thread3356, %2309 - %.pn1969 = phi { ptr, i32 } [ %2310, %2309 ], [ %.pn19673265, %.body2499.thread ], [ %.pn1967, %.body2499 ], [ %2239, %2238 ], [ %lpad.thr_comm.split-lp3351, %.body2499.thread3356 ] + %.pn1969 = phi { ptr, i32 } [ %2310, %2309 ], [ %.pn19673265, %.body2499.thread ], [ %.pn1967, %.body2499 ], [ %2239, %2238 ], [ %lpad.thr_comm.split-lp3351, %.body2499.thread3355 ] call void @__rust_dealloc(ptr noundef nonnull %2244, i64 noundef 928, i64 noundef 8) #22, !noalias !5 invoke void @"_ZN4core3ptr42drop_in_place$LT$sqlparser..ast..Ident$GT$17h63603302f2bab53aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %254) #20 to label %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2273" unwind label %533 @@ -110285,8 +110284,8 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2469: ; preds = %2135 to label %.thread3162 unwind label %533 .thread3162: ; preds = %.thread3352, %2263, %2305, %2257 - %.pn19653167 = phi { ptr, i32 } [ %.pn.pn, %2257 ], [ %2264, %2263 ], [ %2306, %2305 ], [ %lpad.thr_comm3350, %.thread3352 ] - %.415943166 = phi i1 [ false, %2257 ], [ true, %2263 ], [ true, %2305 ], [ %.21592.ph, %.thread3352 ] + %.pn19653167 = phi { ptr, i32 } [ %.pn.pn, %2257 ], [ %2264, %2263 ], [ %2306, %2305 ], [ %lpad.thr_comm3350, %.thread3351 ] + %.415943166 = phi i1 [ false, %2257 ], [ true, %2263 ], [ true, %2305 ], [ %.21592.ph, %.thread3351 ] invoke void @"_ZN4core3ptr76drop_in_place$LT$alloc..vec..Vec$LT$arrow_schema..datatype..DataType$GT$$GT$17h8d714c3d66308b46E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %253) #20 to label %.body2499 unwind label %533 @@ -110410,8 +110409,8 @@ common.resume: ; preds = %3008, %"_ZN4core3pt resume { ptr, i32 } %common.resume.op "_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2581": ; preds = %.thread3236.invoke, %.invoke3360, %.invoke3359, %.invoke, %3144, %3134, %3132, %3126, %.thread3228, %3196, %3119, %.thread3222, %3117, %.thread3218, %3115, %2742, %2746, %"_ZN4core3ptr69drop_in_place$LT$core..option..Option$LT$sqlparser..ast..Expr$GT$$GT$17h44db93a0c161ab1fE.exit2586", %2694, %2660, %2664, %3272, %3267, %3265, %3263, %.thread3234, %3253, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2702", %3150, %3148, %3146, %3140, %3138, %3136, %3130, %3128, %3124, %3113, %3112, %3106, %3081, %3052, %3044, %3032, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2654", %2762, %2440, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2522", %2332 - %.sroa.01480.98 = phi ptr [ %.sroa.01480.129, %2762 ], [ %.sroa.01480.147, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2654" ], [ %3035, %3032 ], [ %3047, %3044 ], [ %3055, %3052 ], [ %.sroa.01480.148, %3081 ], [ %.sroa.01480.149, %3106 ], [ %.sroa.01480.0, %3112 ], [ %.sroa.01480.0, %3150 ], [ %.sroa.01480.0, %3113 ], [ %.sroa.01480.0, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2702" ], [ %.sroa.01480.0, %3253 ], [ %.sroa.01480.0, %3124 ], [ %.sroa.01480.0, %.thread3234 ], [ %.sroa.01480.0, %3128 ], [ %.sroa.01480.0, %3130 ], [ %.sroa.01480.0, %3263 ], [ %.sroa.01480.0, %3136 ], [ %.sroa.01480.0, %3265 ], [ %.sroa.01480.0, %3138 ], [ %.sroa.01480.0, %3267 ], [ %.sroa.01480.0, %3140 ], [ %.sroa.01480.0, %3272 ], [ %.sroa.01480.0, %3146 ], [ %.sroa.01480.0, %3148 ], [ %2334, %2332 ], [ %.sroa.01480.110, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2522" ], [ %2442, %2440 ], [ %.sroa.01480.118, %2664 ], [ %.sroa.01480.118, %2660 ], [ %.sroa.01480.121, %2694 ], [ %.sroa.01480.121, %"_ZN4core3ptr69drop_in_place$LT$core..option..Option$LT$sqlparser..ast..Expr$GT$$GT$17h44db93a0c161ab1fE.exit2586" ], [ %.sroa.01480.126, %2746 ], [ %.sroa.01480.126, %2742 ], [ %.sroa.01480.0, %3115 ], [ %.sroa.01480.0, %.thread3218 ], [ %.sroa.01480.0, %3117 ], [ %.sroa.01480.0, %.thread3222 ], [ %.sroa.01480.0, %3119 ], [ %.sroa.01480.0, %3196 ], [ %.sroa.01480.0, %.thread3228 ], [ %.sroa.01480.0, %3126 ], [ %.sroa.01480.0, %3132 ], [ %.sroa.01480.0, %3134 ], [ %.sroa.01480.0, %3144 ], [ %.sroa.01480.0, %.invoke ], [ %.sroa.01480.0, %.invoke3359 ], [ %.sroa.01480.0, %.invoke3360 ], [ %.sroa.01480.0, %.thread3236.invoke ] - %.sroa.462.98 = phi i32 [ %.sroa.462.129, %2762 ], [ %.sroa.462.147, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2654" ], [ %3034, %3032 ], [ %3046, %3044 ], [ %3054, %3052 ], [ %.sroa.462.148, %3081 ], [ %.sroa.462.149, %3106 ], [ %.sroa.462.0, %3112 ], [ %.sroa.462.0, %3150 ], [ %.sroa.462.0, %3113 ], [ %.sroa.462.0, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2702" ], [ %.sroa.462.0, %3253 ], [ %.sroa.462.0, %3124 ], [ %.sroa.462.0, %.thread3234 ], [ %.sroa.462.0, %3128 ], [ %.sroa.462.0, %3130 ], [ %.sroa.462.0, %3263 ], [ %.sroa.462.0, %3136 ], [ %.sroa.462.0, %3265 ], [ %.sroa.462.0, %3138 ], [ %.sroa.462.0, %3267 ], [ %.sroa.462.0, %3140 ], [ %.sroa.462.0, %3272 ], [ %.sroa.462.0, %3146 ], [ %.sroa.462.0, %3148 ], [ %2335, %2332 ], [ %.sroa.462.110, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2522" ], [ %2443, %2440 ], [ %.sroa.462.118, %2664 ], [ %.sroa.462.118, %2660 ], [ %.sroa.462.121, %2694 ], [ %.sroa.462.121, %"_ZN4core3ptr69drop_in_place$LT$core..option..Option$LT$sqlparser..ast..Expr$GT$$GT$17h44db93a0c161ab1fE.exit2586" ], [ %.sroa.462.126, %2746 ], [ %.sroa.462.126, %2742 ], [ %.sroa.462.0, %3115 ], [ %.sroa.462.0, %.thread3218 ], [ %.sroa.462.0, %3117 ], [ %.sroa.462.0, %.thread3222 ], [ %.sroa.462.0, %3119 ], [ %.sroa.462.0, %3196 ], [ %.sroa.462.0, %.thread3228 ], [ %.sroa.462.0, %3126 ], [ %.sroa.462.0, %3132 ], [ %.sroa.462.0, %3134 ], [ %.sroa.462.0, %3144 ], [ %.sroa.462.0, %.invoke ], [ %.sroa.462.0, %.invoke3359 ], [ %.sroa.462.0, %.invoke3360 ], [ %.sroa.462.0, %.thread3236.invoke ] + %.sroa.01480.98 = phi ptr [ %.sroa.01480.129, %2762 ], [ %.sroa.01480.147, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2654" ], [ %3035, %3032 ], [ %3047, %3044 ], [ %3055, %3052 ], [ %.sroa.01480.148, %3081 ], [ %.sroa.01480.149, %3106 ], [ %.sroa.01480.0, %3112 ], [ %.sroa.01480.0, %3150 ], [ %.sroa.01480.0, %3113 ], [ %.sroa.01480.0, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2702" ], [ %.sroa.01480.0, %3253 ], [ %.sroa.01480.0, %3124 ], [ %.sroa.01480.0, %.thread3234 ], [ %.sroa.01480.0, %3128 ], [ %.sroa.01480.0, %3130 ], [ %.sroa.01480.0, %3263 ], [ %.sroa.01480.0, %3136 ], [ %.sroa.01480.0, %3265 ], [ %.sroa.01480.0, %3138 ], [ %.sroa.01480.0, %3267 ], [ %.sroa.01480.0, %3140 ], [ %.sroa.01480.0, %3272 ], [ %.sroa.01480.0, %3146 ], [ %.sroa.01480.0, %3148 ], [ %2334, %2332 ], [ %.sroa.01480.110, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2522" ], [ %2442, %2440 ], [ %.sroa.01480.118, %2664 ], [ %.sroa.01480.118, %2660 ], [ %.sroa.01480.121, %2694 ], [ %.sroa.01480.121, %"_ZN4core3ptr69drop_in_place$LT$core..option..Option$LT$sqlparser..ast..Expr$GT$$GT$17h44db93a0c161ab1fE.exit2586" ], [ %.sroa.01480.126, %2746 ], [ %.sroa.01480.126, %2742 ], [ %.sroa.01480.0, %3115 ], [ %.sroa.01480.0, %.thread3218 ], [ %.sroa.01480.0, %3117 ], [ %.sroa.01480.0, %.thread3222 ], [ %.sroa.01480.0, %3119 ], [ %.sroa.01480.0, %3196 ], [ %.sroa.01480.0, %.thread3228 ], [ %.sroa.01480.0, %3126 ], [ %.sroa.01480.0, %3132 ], [ %.sroa.01480.0, %3134 ], [ %.sroa.01480.0, %3144 ], [ %.sroa.01480.0, %.invoke ], [ %.sroa.01480.0, %.invoke3358 ], [ %.sroa.01480.0, %.invoke3359 ], [ %.sroa.01480.0, %.thread3236.invoke ] + %.sroa.462.98 = phi i32 [ %.sroa.462.129, %2762 ], [ %.sroa.462.147, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2654" ], [ %3034, %3032 ], [ %3046, %3044 ], [ %3054, %3052 ], [ %.sroa.462.148, %3081 ], [ %.sroa.462.149, %3106 ], [ %.sroa.462.0, %3112 ], [ %.sroa.462.0, %3150 ], [ %.sroa.462.0, %3113 ], [ %.sroa.462.0, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2702" ], [ %.sroa.462.0, %3253 ], [ %.sroa.462.0, %3124 ], [ %.sroa.462.0, %.thread3234 ], [ %.sroa.462.0, %3128 ], [ %.sroa.462.0, %3130 ], [ %.sroa.462.0, %3263 ], [ %.sroa.462.0, %3136 ], [ %.sroa.462.0, %3265 ], [ %.sroa.462.0, %3138 ], [ %.sroa.462.0, %3267 ], [ %.sroa.462.0, %3140 ], [ %.sroa.462.0, %3272 ], [ %.sroa.462.0, %3146 ], [ %.sroa.462.0, %3148 ], [ %2335, %2332 ], [ %.sroa.462.110, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..Ident$GT$$GT$$GT$17h6f2784b1cf95c7d7E.exit2522" ], [ %2443, %2440 ], [ %.sroa.462.118, %2664 ], [ %.sroa.462.118, %2660 ], [ %.sroa.462.121, %2694 ], [ %.sroa.462.121, %"_ZN4core3ptr69drop_in_place$LT$core..option..Option$LT$sqlparser..ast..Expr$GT$$GT$17h44db93a0c161ab1fE.exit2586" ], [ %.sroa.462.126, %2746 ], [ %.sroa.462.126, %2742 ], [ %.sroa.462.0, %3115 ], [ %.sroa.462.0, %.thread3218 ], [ %.sroa.462.0, %3117 ], [ %.sroa.462.0, %.thread3222 ], [ %.sroa.462.0, %3119 ], [ %.sroa.462.0, %3196 ], [ %.sroa.462.0, %.thread3228 ], [ %.sroa.462.0, %3126 ], [ %.sroa.462.0, %3132 ], [ %.sroa.462.0, %3134 ], [ %.sroa.462.0, %3144 ], [ %.sroa.462.0, %.invoke ], [ %.sroa.462.0, %.invoke3358 ], [ %.sroa.462.0, %.invoke3359 ], [ %.sroa.462.0, %.thread3236.invoke ] %2339 = insertvalue { ptr, i32 } poison, ptr %.sroa.01480.98, 0 %2340 = insertvalue { ptr, i32 } %2339, i32 %.sroa.462.98, 1 br label %common.resume @@ -110689,7 +110688,7 @@ common.resume: ; preds = %3008, %"_ZN4core3pt br label %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2577" .body2499.thread: ; preds = %.thread3348, %2246, %2255, %.body2499 - %.pn19673265 = phi { ptr, i32 } [ %.pn1967, %.body2499 ], [ %2247, %2255 ], [ %2247, %2246 ], [ %2252, %.thread3348 ] + %.pn19673265 = phi { ptr, i32 } [ %.pn1967, %.body2499 ], [ %2247, %2255 ], [ %2247, %2246 ], [ %2252, %.thread3347 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$sqlparser..ast..Statement$GT$17h8b9b2386f7354845E.llvm.7162415618632116964"(ptr noalias noundef nonnull align 8 dereferenceable(928) %2244) #20 to label %2298 unwind label %533 @@ -111732,7 +111731,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2562: ; preds = %2530 2778: ; preds = %2588, %.thread3199 %2779 = getelementptr inbounds nuw i8, ptr %2, i64 24 %2780 = load i8, ptr %2779, align 8, !range !2131, !alias.scope !13067, !noundef !5 - switch i8 %2780, label %default.unreachable3329 [ + switch i8 %2780, label %default.unreachable3328 [ i8 0, label %.sink.split.i i8 1, label %2782 i8 2, label %2784 @@ -112609,26 +112608,26 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2562: ; preds = %2530 br label %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2577" "_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2273": ; preds = %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282", %1066, %994, %529, %1087, %2117, %2480, %.noexc55.i, %1427, %.thread3337, %.thread3257, %2220, %.thread3123, %.thread3133, %1977, %.thread3252, %1012, %1104, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363", %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412", %1822, %1827, %1980, %.body2192, %.body2198, %2201, %2298, %2525, %2556, %527 - %.31887 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 0, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21886, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31881 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 0, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21880, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31839 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 0, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21838, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31809 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 0, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21808, %529 ], [ 0, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 0, %1066 ], [ 0, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31761 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 0, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21760, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 0, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31751 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21750, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31741 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21740, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31723 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 0, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21722, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31717 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 0, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21716, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31712 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 0, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21711, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31707 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 0, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21706, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31702 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 0, %.thread3133 ], [ 0, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21701, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31684 = phi i1 [ true, %2556 ], [ true, %2525 ], [ true, %527 ], [ true, %1104 ], [ true, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ false, %1427 ], [ true, %1822 ], [ true, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ true, %1827 ], [ true, %1980 ], [ true, %.body2192 ], [ true, %.body2198 ], [ true, %2201 ], [ true, %2298 ], [ true, %1012 ], [ false, %.thread3252 ], [ true, %1977 ], [ true, %.thread3133 ], [ true, %.thread3123 ], [ true, %2220 ], [ false, %.thread3257 ], [ false, %.thread3337 ], [ %.21683, %529 ], [ true, %1087 ], [ true, %2117 ], [ true, %2480 ], [ true, %.noexc55.i ], [ true, %994 ], [ true, %1066 ], [ true, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31648 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 0, %1822 ], [ 0, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21647, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31638 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 0, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21637, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31633 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 0, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21632, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31628 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 0, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ 1, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31623 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21622, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.31618 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3337 ], [ %.21617, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 0, %2480 ], [ 0, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] - %.pn2177.pn = phi { ptr, i32 } [ %.pn2177, %2556 ], [ %.pn2175, %2525 ], [ %528, %527 ], [ %.pn2078.pn.pn.pn.ph, %1104 ], [ %.pn2069, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ %lpad.thr_comm2933, %1427 ], [ %.pn2027.pn, %1822 ], [ %.pn2027.pn, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ %.pn, %1827 ], [ %1981, %1980 ], [ %.pn1985.pn, %.body2192 ], [ %.pn1980, %.body2198 ], [ %.pn1973, %2201 ], [ %.pn1969, %2298 ], [ %.pn2147.pn.pn.ph, %1012 ], [ %lpad.thr_comm29333344.sink3361, %.thread3252 ], [ %1978, %1977 ], [ %1985, %.thread3133 ], [ %.pn1992.ph.pn, %.thread3123 ], [ %.pn1971, %2220 ], [ %1422, %.thread3257 ], [ %lpad.thr_comm2946, %.thread3337 ], [ %530, %529 ], [ %1088, %1087 ], [ %2118, %2117 ], [ %.pn.pn.i, %2480 ], [ %.pn.pn.i, %.noexc55.i ], [ %.pn2147, %994 ], [ %1067, %1066 ], [ %.pn2076, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31887 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 0, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21886, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31881 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 0, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21880, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31839 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 0, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21838, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31809 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 0, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21808, %529 ], [ 0, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 0, %1066 ], [ 0, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31761 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 0, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21760, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 0, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31751 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21750, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31741 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21740, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31723 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 0, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21722, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31717 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 0, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21716, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31712 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 0, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21711, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31707 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 0, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21706, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31702 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 0, %.thread3133 ], [ 0, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21701, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31684 = phi i1 [ true, %2556 ], [ true, %2525 ], [ true, %527 ], [ true, %1104 ], [ true, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ false, %1427 ], [ true, %1822 ], [ true, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ true, %1827 ], [ true, %1980 ], [ true, %.body2192 ], [ true, %.body2198 ], [ true, %2201 ], [ true, %2298 ], [ true, %1012 ], [ false, %.thread3252 ], [ true, %1977 ], [ true, %.thread3133 ], [ true, %.thread3123 ], [ true, %2220 ], [ false, %.thread3257 ], [ false, %.thread3336 ], [ %.21683, %529 ], [ true, %1087 ], [ true, %2117 ], [ true, %2480 ], [ true, %.noexc55.i ], [ true, %994 ], [ true, %1066 ], [ true, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31648 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 0, %1822 ], [ 0, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21647, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31638 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 0, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21637, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31633 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 0, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21632, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31628 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 0, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ 1, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31623 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21622, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 1, %2480 ], [ 1, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.31618 = phi i8 [ 1, %2556 ], [ 1, %2525 ], [ 1, %527 ], [ 1, %1104 ], [ 1, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ 1, %1427 ], [ 1, %1822 ], [ 1, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ 1, %1827 ], [ 1, %1980 ], [ 1, %.body2192 ], [ 1, %.body2198 ], [ 1, %2201 ], [ 1, %2298 ], [ 1, %1012 ], [ 1, %.thread3252 ], [ 1, %1977 ], [ 1, %.thread3133 ], [ 1, %.thread3123 ], [ 1, %2220 ], [ 1, %.thread3257 ], [ 1, %.thread3336 ], [ %.21617, %529 ], [ 1, %1087 ], [ 1, %2117 ], [ 0, %2480 ], [ 0, %.noexc55.i ], [ 1, %994 ], [ 1, %1066 ], [ 1, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] + %.pn2177.pn = phi { ptr, i32 } [ %.pn2177, %2556 ], [ %.pn2175, %2525 ], [ %528, %527 ], [ %.pn2078.pn.pn.pn.ph, %1104 ], [ %.pn2069, %"_ZN4core3ptr109drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..TableWithJoins$GT$$GT$$GT$17he88a589294475b3bE.exit2363" ], [ %lpad.thr_comm2933, %1427 ], [ %.pn2027.pn, %1822 ], [ %.pn2027.pn, %"_ZN4core3ptr47drop_in_place$LT$sqlparser..ast..ObjectName$GT$17h7c39dcc5fcf472feE.exit2412" ], [ %.pn, %1827 ], [ %1981, %1980 ], [ %.pn1985.pn, %.body2192 ], [ %.pn1980, %.body2198 ], [ %.pn1973, %2201 ], [ %.pn1969, %2298 ], [ %.pn2147.pn.pn.ph, %1012 ], [ %lpad.thr_comm29333344.sink3361, %.thread3252 ], [ %1978, %1977 ], [ %1985, %.thread3133 ], [ %.pn1992.ph.pn, %.thread3123 ], [ %.pn1971, %2220 ], [ %1422, %.thread3257 ], [ %lpad.thr_comm2946, %.thread3336 ], [ %530, %529 ], [ %1088, %1087 ], [ %2118, %2117 ], [ %.pn.pn.i, %2480 ], [ %.pn.pn.i, %.noexc55.i ], [ %.pn2147, %994 ], [ %1067, %1066 ], [ %.pn2076, %"_ZN4core3ptr105drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$sqlparser..ast..query..SelectItem$GT$$GT$$GT$17h0fd37d76c30bcc92E.exit2282" ] invoke fastcc void @"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17h31288729c6b754d0E"(ptr noalias noundef align 8 dereferenceable(24) %364) #20 to label %.body2238 unwind label %533 @@ -113074,7 +113073,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit2562: ; preds = %2530 .thread3237: ; preds = %3274 %3276 = getelementptr inbounds nuw i8, ptr %2, i64 40 invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..Vec$LT$sqlparser..ast..data_type..DataType$GT$$GT$17hc147a1ae8e0f0626E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3276) #20 - to label %.invoke3360 unwind label %533 + to label %.invoke3359 unwind label %533 .invoke: ; preds = %3146, %3130, %3128, %3200 %.sink3365 = phi i64 [ 88, %3200 ], [ 8, %3128 ], [ 8, %3130 ], [ 8, %3146 ] diff --git a/bench/egg-rs/optimized/3vlwzyp0day7srdg.ll b/bench/egg-rs/optimized/3vlwzyp0day7srdg.ll index ed1092430aa..c05c6a3bcaa 100644 --- a/bench/egg-rs/optimized/3vlwzyp0day7srdg.ll +++ b/bench/egg-rs/optimized/3vlwzyp0day7srdg.ll @@ -368,9 +368,8 @@ define hidden void @_ZN3egg8language8Language8for_each17h09f1a25c9e40ae37E.llvm. br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd8330d2ca1b0577aE.llvm.13994044477760586293.exit", label %.loopexit.i .loopexit.i: ; preds = %3 - %.idx = and i64 %5, 4611686018427387903 %.promoted.i = load i64, ptr %1, align 8, !alias.scope !148 - %7 = add i64 %.promoted.i, %.idx + %7 = add i64 %.promoted.i, %5 store i64 %7, ptr %1, align 8, !alias.scope !148 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd8330d2ca1b0577aE.llvm.13994044477760586293.exit" @@ -383,8 +382,7 @@ define hidden noundef i64 @_ZN3egg8language8Language4fold17hfa704471984cbdf4E(pt _ZN3egg8language8Language8for_each17h09f1a25c9e40ae37E.llvm.13994044477760586293.exit: %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 %3 = load i64, ptr %2, align 8, !alias.scope !151, !noalias !156, !noundef !16 - %.idx.i = and i64 %3, 4611686018427387903 - %4 = add i64 %.idx.i, %1 + %4 = add i64 %3, %1 ret i64 %4 } diff --git a/bench/image-rs/optimized/2ndzmzcdt55acj4k.ll b/bench/image-rs/optimized/2ndzmzcdt55acj4k.ll index e7db920f714..c3b8ecb0a16 100644 --- a/bench/image-rs/optimized/2ndzmzcdt55acj4k.ll +++ b/bench/image-rs/optimized/2ndzmzcdt55acj4k.ll @@ -20092,7 +20092,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h023c8a7430c039bfE(ptr store i32 %13, ptr %26, align 8, !alias.scope !1832 %27 = getelementptr inbounds nuw i8, ptr %11, i64 28 store i32 %15, ptr %27, align 4, !alias.scope !1832 - %.idx = and i64 %3, 4611686018427387903 %28 = icmp eq i64 %3, 0 br i1 %28, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha37098e5e97d51b2E.exit", label %.preheader @@ -20103,7 +20102,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h023c8a7430c039bfE(ptr %.val.i = load float, ptr %29, align 4, !noundef !15 %30 = fadd float %.019.i, %.val.i %31 = add nuw i64 %.018.i, 1 - %32 = icmp eq i64 %31, %.idx + %32 = icmp eq i64 %31, %3 br i1 %32, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha37098e5e97d51b2E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha37098e5e97d51b2E.exit": ; preds = %.preheader, %25 @@ -20117,8 +20116,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h023c8a7430c039bfE(ptr .lr.ph154: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha37098e5e97d51b2E.exit" %36 = add i32 %13, -1 %37 = icmp ugt i32 %36, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %38 = getelementptr inbounds nuw i8, ptr %5, i64 4 %39 = getelementptr inbounds nuw i8, ptr %5, i64 8 %40 = getelementptr inbounds nuw i8, ptr %11, i64 8 @@ -20143,7 +20141,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h023c8a7430c039bfE(ptr 47: ; preds = %.lr.ph152.us, %66 %indvars.iv = phi i64 [ 1, %.lr.ph152.us ], [ %indvars.iv.next, %66 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %28, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %47 %48 = trunc nuw i64 %indvars.iv to i32 @@ -20377,7 +20375,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5917e13582bfebcdE(ptr store ptr %26, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !1863 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 store i64 %.fca.1.extract.i, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !1863 - %.idx = and i64 %3, 4611686018427387903 %29 = icmp eq i64 %3, 0 br i1 %29, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h54b2d9eafc78934aE.exit", label %.preheader @@ -20388,7 +20385,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5917e13582bfebcdE(ptr %.val.i = load float, ptr %30, align 4, !noundef !15 %31 = fadd float %.019.i, %.val.i %32 = add nuw i64 %.018.i, 1 - %33 = icmp eq i64 %32, %.idx + %33 = icmp eq i64 %32, %3 br i1 %33, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h54b2d9eafc78934aE.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h54b2d9eafc78934aE.exit": ; preds = %.preheader, %24 @@ -20402,8 +20399,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5917e13582bfebcdE(ptr .lr.ph187: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h54b2d9eafc78934aE.exit" %37 = add i32 %12, -1 %38 = icmp ugt i32 %37, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) br i1 %38, label %.lr.ph185.us.preheader, label %._crit_edge188 .lr.ph185.us.preheader: ; preds = %.lr.ph187 @@ -20424,7 +20420,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5917e13582bfebcdE(ptr 44: ; preds = %.lr.ph185.us, %82 %indvars.iv = phi i64 [ 1, %.lr.ph185.us ], [ %indvars.iv.next, %82 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %29, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -20695,7 +20691,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5fd160655bed68c9E(ptr store i32 %13, ptr %26, align 8, !alias.scope !1891 %27 = getelementptr inbounds nuw i8, ptr %11, i64 28 store i32 %15, ptr %27, align 4, !alias.scope !1891 - %.idx = and i64 %3, 4611686018427387903 %28 = icmp eq i64 %3, 0 br i1 %28, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2501b51fb1a1c68bE.exit", label %.preheader @@ -20706,7 +20701,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5fd160655bed68c9E(ptr %.val.i = load float, ptr %29, align 4, !noundef !15 %30 = fadd float %.019.i, %.val.i %31 = add nuw i64 %.018.i, 1 - %32 = icmp eq i64 %31, %.idx + %32 = icmp eq i64 %31, %3 br i1 %32, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2501b51fb1a1c68bE.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2501b51fb1a1c68bE.exit": ; preds = %.preheader, %25 @@ -20720,8 +20715,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5fd160655bed68c9E(ptr .lr.ph156: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2501b51fb1a1c68bE.exit" %36 = add i32 %13, -1 %37 = icmp ugt i32 %36, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %38 = getelementptr inbounds nuw i8, ptr %5, i64 4 %39 = getelementptr inbounds nuw i8, ptr %5, i64 8 %40 = getelementptr inbounds nuw i8, ptr %5, i64 12 @@ -20747,7 +20741,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h5fd160655bed68c9E(ptr 48: ; preds = %.lr.ph154.us, %70 %indvars.iv = phi i64 [ 1, %.lr.ph154.us ], [ %indvars.iv.next, %70 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %28, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %48 %49 = trunc nuw i64 %indvars.iv to i32 @@ -20993,7 +20987,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h7dffe89d5813d018E(ptr store ptr %26, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !1922 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 store i64 %.fca.1.extract.i, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !1922 - %.idx = and i64 %3, 4611686018427387903 %29 = icmp eq i64 %3, 0 br i1 %29, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h539d221d579c5e69E.exit", label %.preheader @@ -21004,7 +20997,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h7dffe89d5813d018E(ptr %.val.i = load float, ptr %30, align 4, !noundef !15 %31 = fadd float %.019.i, %.val.i %32 = add nuw i64 %.018.i, 1 - %33 = icmp eq i64 %32, %.idx + %33 = icmp eq i64 %32, %3 br i1 %33, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h539d221d579c5e69E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h539d221d579c5e69E.exit": ; preds = %.preheader, %24 @@ -21018,8 +21011,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h7dffe89d5813d018E(ptr .lr.ph191: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h539d221d579c5e69E.exit" %37 = add i32 %12, -1 %38 = icmp ugt i32 %37, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) br i1 %38, label %.lr.ph189.us.preheader, label %._crit_edge192 .lr.ph189.us.preheader: ; preds = %.lr.ph191 @@ -21040,7 +21032,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h7dffe89d5813d018E(ptr 44: ; preds = %.lr.ph189.us, %81 %indvars.iv = phi i64 [ 1, %.lr.ph189.us ], [ %indvars.iv.next, %81 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %29, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -21311,7 +21303,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h924705a9b6b2819bE(ptr store ptr %26, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !1950 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 store i64 %.fca.1.extract.i, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !1950 - %.idx = and i64 %3, 4611686018427387903 %29 = icmp eq i64 %3, 0 br i1 %29, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h91e362b0544816e8E.exit", label %.preheader @@ -21322,7 +21313,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h924705a9b6b2819bE(ptr %.val.i = load float, ptr %30, align 4, !noundef !15 %31 = fadd float %.019.i, %.val.i %32 = add nuw i64 %.018.i, 1 - %33 = icmp eq i64 %32, %.idx + %33 = icmp eq i64 %32, %3 br i1 %33, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h91e362b0544816e8E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h91e362b0544816e8E.exit": ; preds = %.preheader, %24 @@ -21336,8 +21327,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h924705a9b6b2819bE(ptr .lr.ph180: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h91e362b0544816e8E.exit" %37 = add i32 %12, -1 %38 = icmp ugt i32 %37, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) br i1 %38, label %.lr.ph178.us.preheader, label %._crit_edge181 .lr.ph178.us.preheader: ; preds = %.lr.ph180 @@ -21358,7 +21348,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h924705a9b6b2819bE(ptr 44: ; preds = %.lr.ph178.us, %74 %indvars.iv = phi i64 [ 1, %.lr.ph178.us ], [ %indvars.iv.next, %74 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %29, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -21591,7 +21581,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h9e414dceb1a08a6eE(ptr store i32 %12, ptr %25, align 8, !alias.scope !1978 %26 = getelementptr inbounds nuw i8, ptr %10, i64 28 store i32 %14, ptr %26, align 4, !alias.scope !1978 - %.idx = and i64 %3, 4611686018427387903 %27 = icmp eq i64 %3, 0 br i1 %27, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h75336accd13d8c0cE.exit", label %.preheader @@ -21602,7 +21591,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h9e414dceb1a08a6eE(ptr %.val.i = load float, ptr %28, align 4, !noundef !15 %29 = fadd float %.019.i, %.val.i %30 = add nuw i64 %.018.i, 1 - %31 = icmp eq i64 %30, %.idx + %31 = icmp eq i64 %30, %3 br i1 %31, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h75336accd13d8c0cE.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h75336accd13d8c0cE.exit": ; preds = %.preheader, %24 @@ -21616,8 +21605,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h9e414dceb1a08a6eE(ptr .lr.ph183: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h75336accd13d8c0cE.exit" %35 = add i32 %12, -1 %36 = icmp ugt i32 %35, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %37 = getelementptr inbounds nuw i8, ptr %10, i64 8 %38 = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %36, label %.lr.ph181.us.preheader, label %._crit_edge184 @@ -21640,7 +21628,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317h9e414dceb1a08a6eE(ptr 44: ; preds = %.lr.ph181.us, %87 %indvars.iv = phi i64 [ 1, %.lr.ph181.us ], [ %indvars.iv.next, %87 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %27, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -21920,7 +21908,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317ha4f2ee62ec18add2E(ptr store ptr %26, ptr %.sroa.4.0..sroa_idx.i, align 8, !alias.scope !2005 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 store i64 %.fca.1.extract.i, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !2005 - %.idx = and i64 %3, 4611686018427387903 %29 = icmp eq i64 %3, 0 br i1 %29, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2d72dcc8ab4ee0aE.exit", label %.preheader @@ -21931,7 +21918,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317ha4f2ee62ec18add2E(ptr %.val.i = load float, ptr %30, align 4, !noundef !15 %31 = fadd float %.019.i, %.val.i %32 = add nuw i64 %.018.i, 1 - %33 = icmp eq i64 %32, %.idx + %33 = icmp eq i64 %32, %3 br i1 %33, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2d72dcc8ab4ee0aE.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2d72dcc8ab4ee0aE.exit": ; preds = %.preheader, %24 @@ -21945,8 +21932,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317ha4f2ee62ec18add2E(ptr .lr.ph188: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2d72dcc8ab4ee0aE.exit" %37 = add i32 %12, -1 %38 = icmp ugt i32 %37, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) br i1 %38, label %.lr.ph186.us.preheader, label %._crit_edge189 .lr.ph186.us.preheader: ; preds = %.lr.ph188 @@ -21967,7 +21953,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317ha4f2ee62ec18add2E(ptr 44: ; preds = %.lr.ph186.us, %80 %indvars.iv = phi i64 [ 1, %.lr.ph186.us ], [ %indvars.iv.next, %80 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %29, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -22222,7 +22208,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hb2fcd79f4b59f3d2E(ptr store i32 %12, ptr %25, align 8, !alias.scope !2033 %26 = getelementptr inbounds nuw i8, ptr %10, i64 28 store i32 %14, ptr %26, align 4, !alias.scope !2033 - %.idx = and i64 %3, 4611686018427387903 %27 = icmp eq i64 %3, 0 br i1 %27, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9dce32eb90ab192bE.exit", label %.preheader @@ -22233,7 +22218,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hb2fcd79f4b59f3d2E(ptr %.val.i = load float, ptr %28, align 4, !noundef !15 %29 = fadd float %.019.i, %.val.i %30 = add nuw i64 %.018.i, 1 - %31 = icmp eq i64 %30, %.idx + %31 = icmp eq i64 %30, %3 br i1 %31, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9dce32eb90ab192bE.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9dce32eb90ab192bE.exit": ; preds = %.preheader, %24 @@ -22247,8 +22232,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hb2fcd79f4b59f3d2E(ptr .lr.ph176: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9dce32eb90ab192bE.exit" %35 = add i32 %12, -1 %36 = icmp ugt i32 %35, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %37 = getelementptr inbounds nuw i8, ptr %10, i64 16 %38 = getelementptr inbounds nuw i8, ptr %10, i64 8 br i1 %36, label %.lr.ph174.us.preheader, label %._crit_edge177 @@ -22271,7 +22255,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hb2fcd79f4b59f3d2E(ptr 44: ; preds = %.lr.ph174.us, %74 %indvars.iv = phi i64 [ 1, %.lr.ph174.us ], [ %indvars.iv.next, %74 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %27, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -22507,7 +22491,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd2c689bdd76c0ecfE(ptr store i32 %12, ptr %25, align 8, !alias.scope !2060 %26 = getelementptr inbounds nuw i8, ptr %10, i64 28 store i32 %14, ptr %26, align 4, !alias.scope !2060 - %.idx = and i64 %3, 4611686018427387903 %27 = icmp eq i64 %3, 0 br i1 %27, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h943f8d2fba54c7e4E.exit", label %.preheader @@ -22518,7 +22501,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd2c689bdd76c0ecfE(ptr %.val.i = load float, ptr %28, align 4, !noundef !15 %29 = fadd float %.019.i, %.val.i %30 = add nuw i64 %.018.i, 1 - %31 = icmp eq i64 %30, %.idx + %31 = icmp eq i64 %30, %3 br i1 %31, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h943f8d2fba54c7e4E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h943f8d2fba54c7e4E.exit": ; preds = %.preheader, %24 @@ -22532,8 +22515,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd2c689bdd76c0ecfE(ptr .lr.ph187: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h943f8d2fba54c7e4E.exit" %35 = add i32 %12, -1 %36 = icmp ugt i32 %35, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %37 = getelementptr inbounds nuw i8, ptr %10, i64 8 %38 = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %36, label %.lr.ph185.us.preheader, label %._crit_edge188 @@ -22556,7 +22538,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd2c689bdd76c0ecfE(ptr 44: ; preds = %.lr.ph185.us, %86 %indvars.iv = phi i64 [ 1, %.lr.ph185.us ], [ %indvars.iv.next, %86 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %27, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 @@ -22823,7 +22805,6 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd546ecba3c6625e6E(ptr store i32 %12, ptr %25, align 8, !alias.scope !2087 %26 = getelementptr inbounds nuw i8, ptr %10, i64 28 store i32 %14, ptr %26, align 4, !alias.scope !2087 - %.idx = and i64 %3, 4611686018427387903 %27 = icmp eq i64 %3, 0 br i1 %27, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h876600ab7ab3b837E.exit", label %.preheader @@ -22834,7 +22815,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd546ecba3c6625e6E(ptr %.val.i = load float, ptr %28, align 4, !noundef !15 %29 = fadd float %.019.i, %.val.i %30 = add nuw i64 %.018.i, 1 - %31 = icmp eq i64 %30, %.idx + %31 = icmp eq i64 %30, %3 br i1 %31, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h876600ab7ab3b837E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h876600ab7ab3b837E.exit": ; preds = %.preheader, %24 @@ -22848,8 +22829,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd546ecba3c6625e6E(ptr .lr.ph184: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h876600ab7ab3b837E.exit" %35 = add i32 %12, -1 %36 = icmp ugt i32 %35, 1 - %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %.idx, i64 9) - %.not = icmp eq i64 %.idx, 0 + %.0.sroa.speculated.i.i.i = tail call i64 @llvm.umin.i64(i64 %3, i64 9) %37 = getelementptr inbounds nuw i8, ptr %10, i64 8 %38 = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %36, label %.lr.ph182.us.preheader, label %._crit_edge185 @@ -22872,7 +22852,7 @@ define hidden void @_ZN5image8imageops6sample9filter3x317hd546ecba3c6625e6E(ptr 44: ; preds = %.lr.ph182.us, %83 %indvars.iv = phi i64 [ 1, %.lr.ph182.us ], [ %indvars.iv.next, %83 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %.not, label %._crit_edge.us, label %.lr.ph.us.preheader + br i1 %27, label %._crit_edge.us, label %.lr.ph.us.preheader .lr.ph.us.preheader: ; preds = %44 %45 = trunc nuw i64 %indvars.iv to i32 diff --git a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll index 3ebd661926b..f15921b1bfa 100644 --- a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll +++ b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll @@ -44793,7 +44793,7 @@ define hidden void @"_ZN76_$LT$arroy..node..NodeCodec$LT$D$GT$$u20$as$u20$heed_t br i1 %114, label %125, label %117 "_ZN4core3ptr74drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$17hc8082f7b10943a97E.exit.i": ; preds = %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i.i", %340, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i" - %.sroa.19.3 = phi ptr [ %.sroa.19.2, %340 ], [ %.sroa.19.2, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i.i" ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i" ] + %.sroa.19.3 = phi ptr [ %.sroa.19.2, %338 ], [ %.sroa.19.2, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i.i" ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E.exit.i" ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28), !noalias !7014 br label %"_ZN7roaring6bitmap13serialization48_$LT$impl$u20$roaring..bitmap..RoaringBitmap$GT$21deserialize_from_impl17h88e9be44064ad8ccE.exit.thread" @@ -44833,7 +44833,7 @@ define hidden void @"_ZN76_$LT$arroy..node..NodeCodec$LT$D$GT$$u20$as$u20$heed_t 125: ; preds = %110 %126 = invoke noundef nonnull ptr @_ZN3std2io5error5Error3new17h27597d96782105a1E(i8 noundef 39, ptr noalias noundef nonnull readonly align 1 @anon.22b8788852e0b7971c9c7c884072fc21.483, i64 noundef 30) - to label %340 unwind label %128, !noalias !7014 + to label %338 unwind label %128, !noalias !7014 127: ; preds = %133, %128 %.pn145.i = phi { ptr, i32 } [ %129, %128 ], [ %.pn.pn.pn.i, %133 ] @@ -44922,7 +44922,7 @@ define hidden void @"_ZN76_$LT$arroy..node..NodeCodec$LT$D$GT$$u20$as$u20$heed_t "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$10read_exact17h31f0a608286dbea8E.llvm.331090089658796353.exit179.i": ; preds = %141 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h97cb1b28e640d114E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %25) - to label %329 unwind label %134, !noalias !7014 + to label %327 unwind label %134, !noalias !7014 156: ; preds = %155 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24), !noalias !7014 @@ -44995,7 +44995,7 @@ define hidden void @"_ZN76_$LT$arroy..node..NodeCodec$LT$D$GT$$u20$as$u20$heed_t to label %"_ZN7roaring6bitmap13serialization48_$LT$impl$u20$roaring..bitmap..RoaringBitmap$GT$21deserialize_from_impl17h88e9be44064ad8ccE.exit" unwind label %128, !noalias !7014 .body.i: ; preds = %326, %.body215.i, %280, %257, %.thread346.loopexit.split-lp.i, %.thread346.loopexit.i, %.thread330.loopexit.split-lp.i, %.thread330.loopexit.i, %.loopexit.split-lp.i, %.loopexit.i - %.pn.pn.i = phi { ptr, i32 } [ %327, %326 ], [ %258, %257 ], [ %281, %280 ], [ %eh.lpad-body216.i, %.body215.i ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ], [ %lpad.loopexit377.i, %.thread330.loopexit.i ], [ %lpad.loopexit.split-lp378.i, %.thread330.loopexit.split-lp.i ], [ %lpad.loopexit380.i, %.thread346.loopexit.i ], [ %lpad.loopexit.split-lp381.i, %.thread346.loopexit.split-lp.i ] + %.pn.pn.i = phi { ptr, i32 } [ %327, %324 ], [ %258, %257 ], [ %281, %280 ], [ %eh.lpad-body216.i, %.body215.i ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ], [ %lpad.loopexit377.i, %.thread330.loopexit.i ], [ %lpad.loopexit.split-lp378.i, %.thread330.loopexit.split-lp.i ], [ %lpad.loopexit380.i, %.thread346.loopexit.i ], [ %lpad.loopexit.split-lp381.i, %.thread346.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr81drop_in_place$LT$alloc..vec..Vec$LT$roaring..bitmap..container..Container$GT$$GT$17h9a4dbbb6eaeb9127E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) #55 to label %133 unwind label %115, !noalias !7014 @@ -45010,11 +45010,11 @@ define hidden void @"_ZN76_$LT$arroy..node..NodeCodec$LT$D$GT$$u20$as$u20$heed_t br label %.body.i 186: ; preds = %321, %.lr.ph.i - %.sroa.0122.0422.i = phi i64 [ 0, %.lr.ph.i ], [ %187, %321 ] - %.sroa.0.2421.i = phi ptr [ %.sroa.0.1.i, %.lr.ph.i ], [ %.sroa.0.3.i, %321 ] - %.sroa.19.2420.i = phi i64 [ %.sroa.19.1.i, %.lr.ph.i ], [ %.sroa.19.3.i, %321 ] - %.sroa.8.0419.i = phi i64 [ %118, %.lr.ph.i ], [ %192, %321 ] - %.sroa.0241.0418.i = phi ptr [ %131, %.lr.ph.i ], [ %191, %321 ] + %.sroa.0122.0422.i = phi i64 [ 0, %.lr.ph.i ], [ %187, %319 ] + %.sroa.0.2421.i = phi ptr [ %.sroa.0.1.i, %.lr.ph.i ], [ %.sroa.0.3.i, %319 ] + %.sroa.19.2420.i = phi i64 [ %.sroa.19.1.i, %.lr.ph.i ], [ %.sroa.19.3.i, %319 ] + %.sroa.8.0419.i = phi i64 [ %118, %.lr.ph.i ], [ %192, %319 ] + %.sroa.0241.0418.i = phi ptr [ %131, %.lr.ph.i ], [ %191, %319 ] %187 = add nuw nsw i64 %.sroa.0122.0422.i, 1 %188 = icmp eq i64 %.sroa.8.0419.i, 0 br i1 %188, label %.loopexit, label %189 @@ -45221,7 +45221,7 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 256: ; preds = %252 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h54555e439ca8b79cE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) - to label %321 unwind label %257, !noalias !7122 + to label %319 unwind label %257, !noalias !7122 257: ; preds = %256 %258 = landingpad { ptr, i32 } @@ -45249,9 +45249,9 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 to label %261 unwind label %.loopexit.split-lp.i, !noalias !7014 .loopexit: ; preds = %208, %186, %325, %261, %234, %.thread341.i - %.sroa.19.0 = phi ptr [ %.sroa.19.4, %261 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %234 ], [ %233, %.thread341.i ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %325 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %186 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %208 ] + %.sroa.19.0 = phi ptr [ %.sroa.19.4, %261 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %234 ], [ %233, %.thread341.i ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %323 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %186 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %208 ] invoke void @"_ZN4core3ptr81drop_in_place$LT$alloc..vec..Vec$LT$roaring..bitmap..container..Container$GT$$GT$17h9a4dbbb6eaeb9127E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) - to label %328 unwind label %134, !noalias !7014 + to label %326 unwind label %134, !noalias !7014 263: ; preds = %208 %264 = getelementptr inbounds nuw i8, ptr %.sroa.0.2421.i, i64 2 @@ -45351,7 +45351,7 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$10read_exact17h31f0a608286dbea8E.llvm.331090089658796353.exit211.i": ; preds = %289 invoke void @"_ZN4core3ptr68drop_in_place$LT$alloc..vec..Vec$LT$$u5b$u16$u3b$$u20$2$u5d$$GT$$GT$17hf009cf46917ad73cE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) - to label %325 unwind label %.loopexit.split-lp.i, !noalias !7014 + to label %323 unwind label %.loopexit.split-lp.i, !noalias !7014 293: ; preds = %289 %294 = load ptr, ptr %172, align 8, !noalias !7014, !nonnull !7, !noundef !7 @@ -45363,26 +45363,22 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 %299 = icmp eq i64 %298, 0 br i1 %299, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6fecbe24ce1d9b20E.exit.i", label %300 -300: ; preds = %293 - %.idx.i = and i64 %298, 4611686018427387903 - br label %301 - -301: ; preds = %301, %300 - %.sroa.07.0.i.i = phi i64 [ 0, %300 ], [ %304, %301 ] - %.sroa.09.0.i.i = phi i64 [ 0, %300 ], [ %305, %301 ] - %302 = getelementptr [2 x i16], ptr %297, i64 %.sroa.09.0.i.i, i64 1 - %.val.i.i = load i16, ptr %302, align 2, !noalias !7014, !noundef !7 - %303 = zext i16 %.val.i.i to i64 - %304 = add i64 %.sroa.07.0.i.i, %303 - %305 = add nuw i64 %.sroa.09.0.i.i, 1 - %306 = icmp eq i64 %305, %.idx.i - br i1 %306, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6fecbe24ce1d9b20E.exit.i", label %301 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6fecbe24ce1d9b20E.exit.i": ; preds = %301, %293 - %.sroa.04.0.i.i = phi i64 [ 0, %293 ], [ %304, %301 ] +300: ; preds = %293, %300 + %.sroa.07.0.i.i = phi i64 [ %302, %.preheader.i ], [ 0, %293 ] + %.sroa.09.0.i.i = phi i64 [ %303, %.preheader.i ], [ 0, %293 ] + %300 = getelementptr [2 x i16], ptr %297, i64 %.sroa.09.0.i.i, i64 1 + %.val.i.i = load i16, ptr %300, align 2, !noalias !7014, !noundef !7 + %301 = zext i16 %.val.i.i to i64 + %302 = add i64 %.sroa.07.0.i.i, %301 + %303 = add nuw i64 %.sroa.09.0.i.i, 1 + %304 = icmp eq i64 %303, %298 + br i1 %304, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6fecbe24ce1d9b20E.exit.i", label %300 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6fecbe24ce1d9b20E.exit.i":; preds = %.preheader.i, %293 + %.sroa.04.0.i.i = phi i64 [ 0, %293 ], [ %302, %.preheader.i ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21), !noalias !7014 invoke void @_ZN7roaring6bitmap5store5Store13with_capacity17h88531f35eec4d097E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %21, i64 noundef %.sroa.04.0.i.i) - to label %309 unwind label %326, !noalias !7014 + to label %307 unwind label %326, !noalias !7014 307: ; preds = %318 %308 = landingpad { ptr, i32 } @@ -45390,7 +45386,7 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 br label %.body215.i .body215.i: ; preds = %312, %307 - %eh.lpad-body216.i = phi { ptr, i32 } [ %308, %307 ], [ %313, %312 ] + %eh.lpad-body216.i = phi { ptr, i32 } [ %308, %305 ], [ %313, %310 ] invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$roaring..bitmap..store..Store$GT$17hd378f08e5bad7562E"(ptr noalias noundef align 8 dereferenceable(24) %21) #55 to label %.body.i unwind label %115, !noalias !7014 @@ -45408,7 +45404,7 @@ _ZN4core3ops8function2Fn4call17h4f9b6bd9e6e33adeE.exit.i: ; preds = %224 br label %"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hf24e521f8420ec6dE.exit.i.i" "_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hf24e521f8420ec6dE.exit.i.i": ; preds = %314, %309 - %311 = phi ptr [ %315, %314 ], [ %.sroa.4.0.copyload.i, %309 ] + %311 = phi ptr [ %315, %312 ], [ %.sroa.4.0.copyload.i, %307 ] call void @llvm.experimental.noalias.scope.decl(metadata !7161) %.not.i.i = icmp eq ptr %311, %310 br i1 %.not.i.i, label %318, label %314 @@ -45483,7 +45479,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17h1c158049d1f21d57E.exit.i: ; preds br label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$10read_exact17h31f0a608286dbea8E.llvm.331090089658796353.exit176.i" "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$10read_exact17h31f0a608286dbea8E.llvm.331090089658796353.exit176.i": ; preds = %130, %329, %328 - %.sroa.19.1 = phi ptr [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %329 ], [ %.sroa.19.0, %328 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %130 ] + %.sroa.19.1 = phi ptr [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %327 ], [ %.sroa.19.0, %326 ], [ @anon.22b8788852e0b7971c9c7c884072fc21.229, %130 ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !7169 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0aaf48f80649e9ddE.llvm.4616129397091597767"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %26) to label %.noexc217.i unwind label %128, !noalias !7014 @@ -45511,7 +45507,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17h1c158049d1f21d57E.exit.i: ; preds br label %340 340: ; preds = %125, %339 - %.sroa.19.2 = phi ptr [ %.sroa.19.1, %339 ], [ %126, %125 ] + %.sroa.19.2 = phi ptr [ %.sroa.19.1, %337 ], [ %126, %125 ] call void @llvm.experimental.noalias.scope.decl(metadata !7176) %341 = load i64, ptr %28, align 8, !range !102, !alias.scope !7176, !noalias !7014, !noundef !7 %342 = icmp eq i64 %341, -9223372036854775808 @@ -45541,7 +45537,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17h1c158049d1f21d57E.exit.i: ; preds br label %"_ZN4core3ptr74drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$17hc8082f7b10943a97E.exit.i" common.resume: ; preds = %378, %127 - %common.resume.op = phi { ptr, i32 } [ %.pn145.i, %127 ], [ %379, %378 ] + %common.resume.op = phi { ptr, i32 } [ %.pn145.i, %127 ], [ %379, %376 ] resume { ptr, i32 } %common.resume.op "_ZN7roaring6bitmap13serialization48_$LT$impl$u20$roaring..bitmap..RoaringBitmap$GT$21deserialize_from_impl17h88e9be44064ad8ccE.exit": ; preds = %._crit_edge.i diff --git a/bench/meilisearch-rs/optimized/4rynht2gwvphprvy.ll b/bench/meilisearch-rs/optimized/4rynht2gwvphprvy.ll index 33f0bb9b793..6d8434748fc 100644 --- a/bench/meilisearch-rs/optimized/4rynht2gwvphprvy.ll +++ b/bench/meilisearch-rs/optimized/4rynht2gwvphprvy.ll @@ -57861,41 +57861,37 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L ; Function Attrs: nonlazybind uwtable define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$u20$as$u20$std..io..Read$GT$13read_vectored17hb2b14f84507d9824E"(ptr noalias noundef align 8 dereferenceable(48) %0, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) unnamed_addr #1 personality ptr @rust_eh_personality { %4 = alloca [32 x i8], align 8 - %.idx = shl nsw i64 %2, 4 - %5 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %5 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %6 = icmp eq i64 %2, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit", label %7 -7: ; preds = %3 - %8 = and i64 %2, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.sroa.07.0.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %10, align 8, !noundef !12 - %11 = add i64 %.val.i, %.sroa.07.0.i - %12 = add nuw i64 %.sroa.09.0.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit": ; preds = %9, %3 - %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %11, %9 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %15 = load i64, ptr %14, align 8, !noundef !12 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %17 = load i64, ptr %16, align 8, !noundef !12 - %18 = icmp eq i64 %15, %17 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %20 = load i64, ptr %19, align 8 - %21 = icmp uge i64 %.sroa.04.0.i, %20 - %or.cond = select i1 %18, i1 %21, i1 false - br i1 %or.cond, label %40, label %22 +7: ; preds = %3, %7 + %.sroa.07.0.i = phi i64 [ %8, %.preheader ], [ 0, %3 ] + %.sroa.09.0.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %7 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %7, align 8, !noundef !12 + %8 = add i64 %.val.i, %.sroa.07.0.i + %9 = add nuw i64 %.sroa.09.0.i, 1 + %10 = icmp eq i64 %9, %2 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit":; preds = %.preheader, %3 + %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %8, %.preheader ] + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %12 = load i64, ptr %11, align 8, !noundef !12 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %14 = load i64, ptr %13, align 8, !noundef !12 + %15 = icmp eq i64 %12, %14 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %17 = load i64, ptr %16, align 8 + %18 = icmp uge i64 %.sroa.04.0.i, %17 + %or.cond = select i1 %15, i1 %18, i1 false + br i1 %or.cond, label %37, label %19 22: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !11679) - %.not.i = icmp ult i64 %15, %17 + %.not.i = icmp ult i64 %12, %14 %.pre.i = load ptr, ptr %0, align 8, !alias.scope !11682, !noalias !11685 br i1 %.not.i, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit, label %23 @@ -57904,7 +57900,7 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !11688 store ptr %.pre.i, ptr %4, align 8, !noalias !11688 %25 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i64 %20, ptr %25, align 8, !noalias !11688 + store i64 %17, ptr %25, align 8, !noalias !11688 %26 = getelementptr inbounds nuw i8, ptr %4, i64 16 %27 = getelementptr inbounds nuw i8, ptr %4, i64 24 %28 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -57916,9 +57912,9 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L br i1 %31, label %32, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit.thread 32: ; preds = %23 - store i64 0, ptr %14, align 8, !alias.scope !11679, !noalias !11685 + store i64 0, ptr %11, align 8, !alias.scope !11679, !noalias !11685 %33 = load i64, ptr %26, align 8, !noalias !11688, !noundef !12 - store i64 %33, ptr %16, align 8, !alias.scope !11679, !noalias !11685 + store i64 %33, ptr %13, align 8, !alias.scope !11679, !noalias !11685 %34 = load i64, ptr %27, align 8, !noalias !11688, !noundef !12 store i64 %34, ptr %28, align 8, !alias.scope !11679, !noalias !11685 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !11688 @@ -57929,29 +57925,29 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.30 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !11688 br label %65 -_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit: ; preds = %22, %32 - %36 = phi i64 [ %17, %22 ], [ %33, %32 ] - %37 = phi i64 [ %15, %22 ], [ 0, %32 ] - %38 = sub nuw i64 %36, %37 - %39 = icmp eq ptr %.pre.i, null - br i1 %39, label %65, label %43 - -40: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit" - %41 = getelementptr inbounds nuw i8, ptr %0, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, i8 0, i64 16, i1 false) - %42 = tail call { i64, ptr } @"_ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17hcd39fd6755db28b7E"(ptr noalias noundef nonnull align 4 dereferenceable(4) %41, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) - br label %68 +40: ; preds = %22, %29 + %33 = phi i64 [ %14, %19 ], [ %30, %29 ] + %34 = phi i64 [ %12, %19 ], [ 0, %29 ] + %35 = sub nuw i64 %33, %34 + %36 = icmp eq ptr %.pre.i, null + br i1 %36, label %62, label %40 + +37: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfcfeafe21dc5f7dfE.exit" + %38 = getelementptr inbounds nuw i8, ptr %0, i64 40 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) + %39 = tail call { i64, ptr } @"_ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17hcd39fd6755db28b7E"(ptr noalias noundef nonnull align 4 dereferenceable(4) %38, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) + br label %65 43: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit - %44 = getelementptr inbounds i8, ptr %.pre.i, i64 %37 + %44 = getelementptr inbounds i8, ptr %.pre.i, i64 %34 call void @llvm.experimental.noalias.scope.decl(metadata !11690) br label %45 45: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i", %43 - %46 = phi i64 [ %38, %43 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] - %47 = phi ptr [ %44, %43 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] - %.sroa.0.0.i = phi ptr [ %1, %43 ], [ %50, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] - %.sroa.01.0.i = phi i64 [ 0, %43 ], [ %59, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] + %46 = phi i64 [ %35, %40 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] + %47 = phi ptr [ %44, %40 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] + %.sroa.0.0.i = phi ptr [ %1, %40 ], [ %50, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] + %.sroa.01.0.i = phi i64 [ 0, %40 ], [ %59, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ] %48 = icmp eq ptr %.sroa.0.0.i, %5 br i1 %48, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit", label %49 @@ -57982,24 +57978,24 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.30 br i1 %.not.i15, label %45, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit" "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit": ; preds = %45, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" - %.sroa.01.1.i = phi i64 [ %59, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ], [ %.sroa.01.0.i, %45 ] + %.sroa.01.1.i = phi i64 [ %59, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17hd9f1e2afc29b24a2E.exit.i" ], [ %.sroa.01.0.i, %42 ] %60 = inttoptr i64 %.sroa.01.1.i to ptr - %61 = load i64, ptr %14, align 8, !noundef !12 + %61 = load i64, ptr %11, align 8, !noundef !12 %62 = add i64 %61, %.sroa.01.1.i - %63 = load i64, ptr %16, align 8, !noundef !12 + %63 = load i64, ptr %13, align 8, !noundef !12 %.sroa.0.0.sroa.speculated.i = call noundef i64 @llvm.umin.i64(i64 %62, i64 %63) - store i64 %.sroa.0.0.sroa.speculated.i, ptr %14, align 8 + store i64 %.sroa.0.0.sroa.speculated.i, ptr %11, align 8 %64 = insertvalue { i64, ptr } { i64 0, ptr poison }, ptr %60, 1 br label %68 65: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit.thread, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit - %.sroa.617.020 = phi i64 [ %35, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit.thread ], [ %38, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit ] + %.sroa.617.020 = phi i64 [ %35, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit.thread ], [ %35, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h7a134327b6970684E.llvm.3021571406010367114.exit ] %66 = inttoptr i64 %.sroa.617.020 to ptr %67 = insertvalue { i64, ptr } { i64 1, ptr poison }, ptr %66, 1 br label %68 -68: ; preds = %65, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit", %40 - %.merged = phi { i64, ptr } [ %42, %40 ], [ %67, %65 ], [ %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit" ] +68: ; preds = %65, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit", %37 + %.merged = phi { i64, ptr } [ %39, %37 ], [ %67, %62 ], [ %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h2405d5c9930c1e55E.exit" ] ret { i64, ptr } %.merged } diff --git a/bench/mini-lsm-rs/optimized/1zm93ee80v61t4c3.ll b/bench/mini-lsm-rs/optimized/1zm93ee80v61t4c3.ll index 90bb10f9f85..e67f7c3a7e6 100644 --- a/bench/mini-lsm-rs/optimized/1zm93ee80v61t4c3.ll +++ b/bench/mini-lsm-rs/optimized/1zm93ee80v61t4c3.ll @@ -6848,7 +6848,6 @@ _ZN4core4iter6traits8iterator8Iterator6min_by17h2354d2f34b7cc461E.exit.thread: ; br i1 %377, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5ccd0a8ac6a8904bE.exit", label %378 378: ; preds = %371 - %.idx = and i64 %376, 2305843009213693951 br i1 %77, label %select.unfold.invoke, label %.split .split: ; preds = %378, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hde9733ec42e008bcE.exit.i.i" @@ -6967,7 +6966,7 @@ select.unfold.cont: ; preds = %select.unfold.invok %424 = load i64, ptr %423, align 8, !noalias !1710, !noundef !9 %425 = add i64 %424, %.018.i.i %426 = add nuw i64 %.017.i.i, 1 - %427 = icmp eq i64 %426, %.idx + %427 = icmp eq i64 %426, %376 br i1 %427, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5ccd0a8ac6a8904bE.exit.loopexit", label %.split "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5ccd0a8ac6a8904bE.exit.loopexit": ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hde9733ec42e008bcE.exit.i.i" diff --git a/bench/ockam-rs/optimized/2ugp26prskc4lvz4.ll b/bench/ockam-rs/optimized/2ugp26prskc4lvz4.ll index 688fa01acf6..782b8770083 100644 --- a/bench/ockam-rs/optimized/2ugp26prskc4lvz4.ll +++ b/bench/ockam-rs/optimized/2ugp26prskc4lvz4.ll @@ -53959,17 +53959,16 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 %.sroa.8.044 = phi i64 [ %21, %.lr.ph ], [ %58, %_ZN3std2io7IoSlice14advance_slices17h36998f08bfcdca1dE.exit25 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !15770) tail call void @llvm.experimental.noalias.scope.decl(metadata !15773) - %25 = and i64 %.sroa.8.044, 1152921504606846975 - br label %26 + br label %.preheader.i -26: ; preds = %26, %24 - %.017.i.i.i = phi i64 [ 0, %24 ], [ %28, %26 ] - %.016.i.i.i = phi i64 [ 0, %24 ], [ %29, %26 ] +26: ; preds = %24, %26 + %.017.i.i.i = phi i64 [ %26, %.preheader.i ], [ 0, %24 ] + %.016.i.i.i = phi i64 [ %27, %.preheader.i ], [ 0, %24 ] %27 = getelementptr { ptr, i64 }, ptr %.sroa.0.045, i64 %.016.i.i.i, i32 1 %.val.i.i.i = load i64, ptr %27, align 8, !alias.scope !15773, !noalias !15775, !noundef !4 %28 = add i64 %.val.i.i.i, %.017.i.i.i %29 = add nuw i64 %.016.i.i.i, 1 - %30 = icmp eq i64 %29, %25 + %30 = icmp eq i64 %29, %.sroa.8.044 br i1 %30, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2b6ee518a0e74f60E.exit.i", label %26 "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2b6ee518a0e74f60E.exit.i": ; preds = %26 @@ -53987,7 +53986,7 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br label %.lr.ph.i9.preheader .lr.ph.i9.preheader: ; preds = %36, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2b6ee518a0e74f60E.exit.i" - %.ph = phi i64 [ %32, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2b6ee518a0e74f60E.exit.i" ], [ %.pre.i.pre, %36 ] + %.ph = phi i64 [ %32, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h2b6ee518a0e74f60E.exit.i" ], [ %.pre.i.pre, %34 ] br label %.lr.ph.i9 .lr.ph.i9: ; preds = %.lr.ph.i9.preheader, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h8dfb9e7a47aeb127E.exit.i" @@ -54008,7 +54007,7 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h8dfb9e7a47aeb127E.exit.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h8dfb9e7a47aeb127E.exit.i": ; preds = %45, %.lr.ph.i9 - %46 = phi i64 [ %37, %.lr.ph.i9 ], [ %.pre.i.i.i, %45 ] + %46 = phi i64 [ %37, %.lr.ph.i9 ], [ %.pre.i.i.i, %43 ] %47 = load ptr, ptr %0, align 8, !alias.scope !15790, !noalias !15788, !nonnull !4, !noundef !4 %48 = getelementptr inbounds i8, ptr %47, i64 %46 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %48, ptr nonnull readonly align 1 %39, i64 %41, i1 false), !noalias !15780 @@ -54019,7 +54018,7 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br i1 %51, label %52, label %.lr.ph.i9 .loopexit: ; preds = %52, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.thread.i21", %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.i", %3 - %.0 = phi ptr [ null, %3 ], [ null, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.i" ], [ null, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.thread.i21" ], [ @anon.927298cd14e57f4e3045725c90f87597.47, %52 ] + %.0 = phi ptr [ null, %3 ], [ null, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.i" ], [ null, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.thread.i21" ], [ @anon.927298cd14e57f4e3045725c90f87597.47, %50 ] ret ptr %.0 52: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h8dfb9e7a47aeb127E.exit.i" @@ -54033,8 +54032,8 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br label %.lr.ph.i12 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4724a50c1a3ddacfE.exit.thread.i17": ; preds = %63, %.lr.ph.i12 - %.016.lcssa.i18 = phi i64 [ %.01622.i14, %.lr.ph.i12 ], [ %64, %63 ] - %.0.lcssa.i19 = phi i64 [ %.023.i13, %.lr.ph.i12 ], [ %56, %63 ] + %.016.lcssa.i18 = phi i64 [ %.01622.i14, %.lr.ph.i12 ], [ %64, %61 ] + %.0.lcssa.i19 = phi i64 [ %.023.i13, %.lr.ph.i12 ], [ %56, %61 ] %57 = icmp ugt i64 %.0.lcssa.i19, %.sroa.8.044 br i1 %57, label %.noexc, label %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.i20" @@ -54049,9 +54048,9 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br i1 %60, label %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h1ae667c7ae8aa6ebE.exit.thread.i21", label %71 .lr.ph.i12: ; preds = %63, %.lr.ph.preheader.i11 - %.023.i13 = phi i64 [ %66, %63 ], [ 0, %.lr.ph.preheader.i11 ] - %.01622.i14 = phi i64 [ %64, %63 ], [ %28, %.lr.ph.preheader.i11 ] - %.sroa.0.021.i15 = phi ptr [ %65, %63 ], [ %.sroa.0.045, %.lr.ph.preheader.i11 ] + %.023.i13 = phi i64 [ %66, %61 ], [ 0, %.lr.ph.preheader.i11 ] + %.01622.i14 = phi i64 [ %64, %61 ], [ %28, %.lr.ph.preheader.i11 ] + %.sroa.0.021.i15 = phi ptr [ %65, %61 ], [ %.sroa.0.045, %.lr.ph.preheader.i11 ] %61 = getelementptr inbounds nuw i8, ptr %.sroa.0.021.i15, i64 8 %62 = load i64, ptr %61, align 8, !noalias !15791, !noundef !4 %.not.i16 = icmp ult i64 %.01622.i14, %62 @@ -54073,13 +54072,13 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h1fa7c301fb3334 br label %.invoke .invoke: ; preds = %75, %69 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %75 ], [ %.sink.sroa.gep81, %69 ] - %.sink.sroa.phi82 = phi ptr [ %.sink.sroa.gep83, %75 ], [ %.sink.sroa.gep84, %69 ] - %.sink.sroa.phi85 = phi ptr [ %.sink.sroa.gep86, %75 ], [ %.sink.sroa.gep87, %69 ] - %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep89, %75 ], [ %.sink.sroa.gep90, %69 ] - %.sink = phi ptr [ %4, %75 ], [ %5, %69 ] - %anon.927298cd14e57f4e3045725c90f87597.65.sink = phi ptr [ @anon.927298cd14e57f4e3045725c90f87597.65, %75 ], [ @anon.927298cd14e57f4e3045725c90f87597.61, %69 ] - %70 = phi ptr [ @anon.927298cd14e57f4e3045725c90f87597.67, %75 ], [ @anon.927298cd14e57f4e3045725c90f87597.62, %69 ] + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %73 ], [ %.sink.sroa.gep81, %67 ] + %.sink.sroa.phi82 = phi ptr [ %.sink.sroa.gep83, %73 ], [ %.sink.sroa.gep84, %67 ] + %.sink.sroa.phi85 = phi ptr [ %.sink.sroa.gep86, %73 ], [ %.sink.sroa.gep87, %67 ] + %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep89, %73 ], [ %.sink.sroa.gep90, %67 ] + %.sink = phi ptr [ %4, %73 ], [ %5, %67 ] + %anon.927298cd14e57f4e3045725c90f87597.65.sink = phi ptr [ @anon.927298cd14e57f4e3045725c90f87597.65, %73 ], [ @anon.927298cd14e57f4e3045725c90f87597.61, %67 ] + %70 = phi ptr [ @anon.927298cd14e57f4e3045725c90f87597.67, %73 ], [ @anon.927298cd14e57f4e3045725c90f87597.62, %67 ] store ptr %anon.927298cd14e57f4e3045725c90f87597.65.sink, ptr %.sink, align 8, !noalias !15791 store i64 1, ptr %.sink.sroa.phi88, align 8, !noalias !15791 store ptr null, ptr %.sink.sroa.phi85, align 8, !noalias !15791 diff --git a/bench/ripgrep-rs/optimized/5dznq6hcdg5y97ft.ll b/bench/ripgrep-rs/optimized/5dznq6hcdg5y97ft.ll index 6f20b9f0c4a..6dc52d177b7 100644 --- a/bench/ripgrep-rs/optimized/5dznq6hcdg5y97ft.ll +++ b/bench/ripgrep-rs/optimized/5dznq6hcdg5y97ft.ll @@ -73,7 +73,7 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w 21: ; preds = %15 unreachable -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread": ; preds = %112, %105, %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.thread.i", %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17hbb5ce541ad0a2450E.exit.thread.i", %28, %58, %51, %76, %65, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit", %101, %99, %15, %15 +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread": ; preds = %112, %105, %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.thread.i", %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17hbb5ce541ad0a2450E.exit.thread.i", %28, %58, %51, %73, %65, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit", %101, %99, %15, %15 store i8 4, ptr %0, align 8 br label %111 @@ -103,7 +103,7 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w %38 = getelementptr inbounds nuw i8, ptr %1, i64 24 %39 = load i64, ptr %38, align 8, !noundef !5 %40 = icmp eq i64 %39, 0 - br i1 %switch, label %65, label %76 + br i1 %switch, label %65, label %73 41: ; preds = %15 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) @@ -150,50 +150,42 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w br label %111 65: ; preds = %35 - %.idx157 = shl nsw i64 %39, 3 - %66 = getelementptr inbounds i8, ptr %37, i64 %.idx157 + %.idx157 = shl nuw nsw i64 %39, 3 + %66 = getelementptr inbounds nuw i8, ptr %37, i64 %.idx157 br i1 %40, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread", label %67 -67: ; preds = %65 - %68 = and i64 %39, 2305843009213693951 - br label %69 - -69: ; preds = %69, %67 - %.017.i = phi i64 [ 0, %67 ], [ %72, %69 ] - %.016.i = phi i64 [ 0, %67 ], [ %73, %69 ] - %70 = getelementptr inbounds { i32, i32 }, ptr %37, i64 %.016.i - %71 = tail call noundef i64 @_ZN12regex_syntax3hir17ClassUnicodeRange3len17h6f4e2fcba4868fecE(ptr noalias noundef nonnull readonly align 4 dereferenceable(8) %70) - %72 = add i64 %71, %.017.i - %73 = add nuw i64 %.016.i, 1 - %74 = icmp eq i64 %73, %68 - br i1 %74, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit", label %69 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit": ; preds = %69 - %75 = icmp eq i64 %72, 1 - br i1 %75, label %.lr.ph.i, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread" - -76: ; preds = %35 - %.idx = shl nsw i64 %39, 1 - %77 = getelementptr inbounds i8, ptr %37, i64 %.idx - br i1 %40, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread", label %78 - -78: ; preds = %76 - %79 = and i64 %39, 9223372036854775807 - br label %80 - -80: ; preds = %80, %78 - %.017.i94 = phi i64 [ 0, %78 ], [ %83, %80 ] - %.016.i95 = phi i64 [ 0, %78 ], [ %84, %80 ] - %81 = getelementptr inbounds { i8, i8 }, ptr %37, i64 %.016.i95 - %82 = tail call noundef i64 @_ZN12regex_syntax3hir15ClassBytesRange3len17hff0b36e1eb8e1d40E(ptr noalias noundef nonnull readonly align 1 dereferenceable(2) %81) - %83 = add i64 %82, %.017.i94 - %84 = add nuw i64 %.016.i95, 1 - %85 = icmp eq i64 %84, %79 - br i1 %85, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit", label %80 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit": ; preds = %80 - %86 = icmp eq i64 %83, 1 - br i1 %86, label %.lr.ph.i100, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread" +67: ; preds = %65, %67 + %.017.i = phi i64 [ %69, %.preheader ], [ 0, %65 ] + %.016.i = phi i64 [ %70, %.preheader ], [ 0, %65 ] + %67 = getelementptr inbounds { i32, i32 }, ptr %37, i64 %.016.i + %68 = tail call noundef i64 @_ZN12regex_syntax3hir17ClassUnicodeRange3len17h6f4e2fcba4868fecE(ptr noalias noundef nonnull readonly align 4 dereferenceable(8) %67) + %69 = add i64 %68, %.017.i + %70 = add nuw i64 %.016.i, 1 + %71 = icmp eq i64 %70, %39 + br i1 %71, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit", label %67 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit":; preds = %67 + %74 = icmp eq i64 %69, 1 + br i1 %74, label %.lr.ph.i, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread" + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit": ; preds = %35 + %.idx = shl nuw nsw i64 %39, 1 + %74 = getelementptr inbounds nuw i8, ptr %37, i64 %.idx + br i1 %40, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread", label %.preheader160 + +.preheader160:; preds = %73, %.preheader160 + %.017.i94 = phi i64 [ %77, %.preheader160 ], [ 0, %73 ] + %.016.i95 = phi i64 [ %78, %.preheader160 ], [ 0, %73 ] + %75 = getelementptr inbounds { i8, i8 }, ptr %37, i64 %.016.i95 + %76 = tail call noundef i64 @_ZN12regex_syntax3hir15ClassBytesRange3len17hff0b36e1eb8e1d40E(ptr noalias noundef nonnull readonly align 1 dereferenceable(2) %75) + %77 = add i64 %76, %.017.i100 + %78 = add nuw i64 %.016.i95, 1 + %79 = icmp eq i64 %78, %39 + br i1 %79, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit", label %.preheader160 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd79c2208b61df723E.exit":; preds = %.preheader160 + %80 = icmp eq i64 %77, 1 + br i1 %80, label %.lr.ph.i100, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread" .lr.ph.i: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit", %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17hbb5ce541ad0a2450E.exit.thread.i" %87 = phi ptr [ %88, %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17hbb5ce541ad0a2450E.exit.thread.i" ], [ %37, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit" ] @@ -232,7 +224,7 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w br i1 %.not.i102, label %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.thread.i", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4find17h632ac1e74296db55E.exit" "_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.thread.i": ; preds = %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.i", %.lr.ph.i100 - %98 = icmp eq ptr %94, %77 + %98 = icmp eq ptr %94, %74 br i1 %98, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb981c13db60d08e0E.exit.thread", label %.lr.ph.i100 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4find17h632ac1e74296db55E.exit": ; preds = %"_ZN10grep_regex3ban5check28_$u7b$$u7b$closure$u7d$$u7d$17h664bf93879adf909E.exit.i" @@ -268,7 +260,7 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w br label %111 .lr.ph167: ; preds = %51, %105 - %.sroa.0122.0166 = phi ptr [ %106, %105 ], [ %53, %51 ] + %.sroa.0122.0166 = phi ptr [ %106, %99 ], [ %53, %51 ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) call void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef nonnull sret({ i8, [31 x i8] }) align 8 captures(none) dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.sroa.0122.0166, i8 noundef %2) %103 = load i8, ptr %5, align 8, !range !12, !noundef !5 @@ -291,7 +283,7 @@ define void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef w br label %111 .lr.ph: ; preds = %58, %112 - %.sroa.0124.0165 = phi ptr [ %113, %112 ], [ %60, %58 ] + %.sroa.0124.0165 = phi ptr [ %113, %106 ], [ %60, %58 ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) call void @_ZN10grep_regex3ban5check17h1e159d9114e21e95E(ptr noalias noundef nonnull sret({ i8, [31 x i8] }) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.sroa.0124.0165, i8 noundef %2) %109 = load i8, ptr %4, align 8, !range !12, !noundef !5 diff --git a/bench/rust-analyzer-rs/optimized/1bjrygtvfxna7kin.ll b/bench/rust-analyzer-rs/optimized/1bjrygtvfxna7kin.ll index 038338ed3e0..156507cd1d5 100644 --- a/bench/rust-analyzer-rs/optimized/1bjrygtvfxna7kin.ll +++ b/bench/rust-analyzer-rs/optimized/1bjrygtvfxna7kin.ll @@ -2365,19 +2365,22 @@ define hidden void @"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.val = load ptr, ptr %7, align 8 %.not61.i = icmp eq ptr %.val, null - br i1 %.not61.i, label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread", label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" + br i1 %.not61.i, label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader", label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" "_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit": ; preds = %6 %8 = add i64 %4, -1 %9 = getelementptr inbounds [0 x { { i32, [15 x i32] }, { ptr, ptr, i64, ptr, {}, { {} } }, { ptr, ptr, i64, ptr, {}, { {} } } }], ptr %.val, i64 0, i64 %8 %10 = load i32, ptr %9, align 8, !range !470, !noundef !5 %.not = icmp eq i32 %10, 13 - br i1 %.not, label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread", label %31 + br i1 %.not, label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader", label %31 -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit": ; preds = %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i", %2, %30 - %.lcssa.sink = phi i64 [ %spec.select.i.i.i.i, %30 ], [ 0, %2 ], [ %60, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %.sroa.04.0.i.i.i.lcssa.sink = phi i64 [ %.sroa.07.0.i.i.i, %30 ], [ 1, %2 ], [ %.sroa.04.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %.sroa.4.0.i.i.i.lcssa.sink = phi i64 [ %.sroa.5.0.i.i.i, %30 ], [ 0, %2 ], [ %.sroa.4.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit": ; preds = %6, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" + br label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit":; preds = %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i", %2, %29 + %.lcssa.sink = phi i64 [ %spec.select.i.i.i.i, %29 ], [ 0, %2 ], [ %57, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] + %.sroa.04.0.i.i.i.lcssa.sink = phi i64 [ %.sroa.07.0.i.i.i, %29 ], [ 1, %2 ], [ %.sroa.04.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] + %.sroa.4.0.i.i.i.lcssa.sink = phi i64 [ %.sroa.5.0.i.i.i, %29 ], [ 0, %2 ], [ %.sroa.4.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] store i64 %.lcssa.sink, ptr %0, align 8 %.sroa.6.0..sroa_idx19.i = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.sroa.04.0.i.i.i.lcssa.sink, ptr %.sroa.6.0..sroa_idx19.i, align 8 @@ -2385,120 +2388,112 @@ define hidden void @"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct store i64 %.sroa.4.0.i.i.i.lcssa.sink, ptr %.sroa.7.0..sroa_idx23.i, align 8 ret void -"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread": ; preds = %6, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" - %.idx28 = and i64 %4, 144115188075855871 - br label %11 - -11: ; preds = %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i", %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" - %.sroa.015.0.i = phi i64 [ 1, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" ], [ %spec.select.i.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ] - %.sroa.6.0.i = phi i1 [ true, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" ], [ %.sroa.07.0.i.in.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ] - %.sroa.7.0.i = phi i64 [ 1, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" ], [ %.sroa.5.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ] - %.0.i15 = phi i64 [ 0, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" ], [ %28, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ] - %12 = getelementptr inbounds { { i32, [15 x i32] }, { ptr, ptr, i64, ptr, {}, { {} } }, { ptr, ptr, i64, ptr, {}, { {} } } }, ptr %.val, i64 %.0.i15 - %13 = getelementptr i8, ptr %12, i64 72 - %.val.i = load ptr, ptr %13, align 8, !noalias !471, !nonnull !5, !noundef !5 - %14 = getelementptr i8, ptr %12, i64 88 - %.val14.i = load ptr, ptr %14, align 8, !noalias !471, !nonnull !5, !noundef !5 - %15 = ptrtoint ptr %.val14.i to i64 - %16 = ptrtoint ptr %.val.i to i64 - %17 = sub nuw i64 %15, %16 - %18 = lshr exact i64 %17, 6 - br i1 %.sroa.6.0.i, label %21, label %19 - -19: ; preds = %11 - %20 = icmp eq ptr %.val14.i, %.val.i +"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread": ; preds = %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader", %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" + %.sroa.015.0.i = phi i64 [ %spec.select.i.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ], [ 1, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader" ] + %.sroa.6.0.i = phi i1 [ %.sroa.07.0.i.in.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ], [ true, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader" ] + %.sroa.7.0.i = phi i64 [ %.sroa.5.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ], [ 1, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader" ] + %.0.i15 = phi i64 [ %27, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" ], [ 0, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread.preheader" ] + %11 = getelementptr inbounds { { i32, [15 x i32] }, { ptr, ptr, i64, ptr, {}, { {} } }, { ptr, ptr, i64, ptr, {}, { {} } } }, ptr %.val, i64 %.0.i15 + %12 = getelementptr i8, ptr %11, i64 72 + %.val.i = load ptr, ptr %12, align 8, !noalias !471, !nonnull !5, !noundef !5 + %13 = getelementptr i8, ptr %11, i64 88 + %.val14.i = load ptr, ptr %13, align 8, !noalias !471, !nonnull !5, !noundef !5 + %14 = ptrtoint ptr %.val14.i to i64 + %15 = ptrtoint ptr %.val.i to i64 + %16 = sub nuw i64 %14, %15 + %17 = lshr exact i64 %16, 6 + br i1 %.sroa.6.0.i, label %20, label %18 + +18:; preds = %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" + %19 = icmp eq ptr %.val14.i, %.val.i br label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" -21: ; preds = %11 - %22 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.7.0.i, i64 %18) +21: ; preds = %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" + %22 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.7.0.i, i64 %17) %23 = extractvalue { i64, i1 } %22, 1 %24 = extractvalue { i64, i1 } %22, 0 %not..i.i.i = xor i1 %23, true br label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" -"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i": ; preds = %21, %19 - %.sroa.07.0.i.in.i.i = phi i1 [ %not..i.i.i, %21 ], [ %20, %19 ] - %.sroa.5.0.i.i.i = phi i64 [ %24, %21 ], [ 0, %19 ] - %25 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.015.0.i, i64 %18) +"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i": ; preds = %21, %18 + %.sroa.07.0.i.in.i.i = phi i1 [ %not..i.i.i, %20 ], [ %19, %18 ] + %.sroa.5.0.i.i.i = phi i64 [ %24, %20 ], [ 0, %18 ] + %25 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.015.0.i, i64 %17) %26 = extractvalue { i64, i1 } %25, 1 %27 = extractvalue { i64, i1 } %25, 0 %spec.select.i.i.i.i = select i1 %26, i64 -1, i64 %27 %28 = add nuw i64 %.0.i15, 1 - %29 = icmp eq i64 %28, %.idx28 - br i1 %29, label %30, label %11 + %29 = icmp eq i64 %28, %4 + br i1 %29, label %30, label %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit.thread" 30: ; preds = %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17hafb79c82031633dbE.exit.i" %.sroa.07.0.i.i.i = zext i1 %.sroa.07.0.i.in.i.i to i64 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit" -31: ; preds = %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" - %.idx = and i64 %4, 144115188075855871 - br label %32 - -32: ; preds = %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i", %31 - %.sroa.014.0.i = phi i64 [ 0, %31 ], [ %60, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %.sroa.6.0.i20 = phi i64 [ 1, %31 ], [ %.sroa.04.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %.sroa.7.0.i21 = phi i64 [ 0, %31 ], [ %.sroa.4.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %.0.i22 = phi i64 [ 0, %31 ], [ %61, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ] - %33 = getelementptr inbounds { { i32, [15 x i32] }, { ptr, ptr, i64, ptr, {}, { {} } }, { ptr, ptr, i64, ptr, {}, { {} } } }, ptr %.val, i64 %.0.i22 - %34 = getelementptr inbounds nuw i8, ptr %33, i64 72 - %.val2.i.i = load ptr, ptr %34, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 - %35 = getelementptr inbounds nuw i8, ptr %33, i64 88 - %.val3.i.i = load ptr, ptr %35, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 - %36 = ptrtoint ptr %.val3.i.i to i64 - %37 = ptrtoint ptr %.val2.i.i to i64 - %38 = sub nuw i64 %36, %37 - %39 = lshr exact i64 %38, 6 - %40 = getelementptr inbounds nuw i8, ptr %33, i64 104 - %.val.i.i = load ptr, ptr %40, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 - %41 = getelementptr inbounds nuw i8, ptr %33, i64 120 - %.val1.i.i = load ptr, ptr %41, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 - %42 = ptrtoint ptr %.val1.i.i to i64 - %43 = ptrtoint ptr %.val.i.i to i64 - %44 = sub nuw i64 %42, %43 - %45 = lshr exact i64 %44, 6 +31: ; preds = %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit", %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" + %.sroa.014.0.i = phi i64 [ %57, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ], [ 0, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" ] + %.sroa.6.0.i20 = phi i64 [ %.sroa.04.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ], [ 1, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" ] + %.sroa.7.0.i21 = phi i64 [ %.sroa.4.0.i.i.i, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ], [ 0, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" ] + %.0.i22 = phi i64 [ %58, %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" ], [ 0, %"_ZN9itertools8adaptors13multi_product21MultiProduct$LT$I$GT$11in_progress17h320dd690e4e92110E.exit" ] + %30 = getelementptr inbounds { { i32, [15 x i32] }, { ptr, ptr, i64, ptr, {}, { {} } }, { ptr, ptr, i64, ptr, {}, { {} } } }, ptr %.val, i64 %.0.i22 + %31 = getelementptr inbounds nuw i8, ptr %30, i64 72 + %.val2.i.i = load ptr, ptr %31, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 + %32 = getelementptr inbounds nuw i8, ptr %30, i64 88 + %.val3.i.i = load ptr, ptr %32, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 + %33 = ptrtoint ptr %.val3.i.i to i64 + %34 = ptrtoint ptr %.val2.i.i to i64 + %35 = sub nuw i64 %33, %34 + %36 = lshr exact i64 %35, 6 + %37 = getelementptr inbounds nuw i8, ptr %30, i64 104 + %.val.i.i = load ptr, ptr %37, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 + %38 = getelementptr inbounds nuw i8, ptr %30, i64 120 + %.val1.i.i = load ptr, ptr %38, align 8, !alias.scope !475, !noalias !478, !nonnull !5, !noundef !5 + %39 = ptrtoint ptr %.val1.i.i to i64 + %40 = ptrtoint ptr %.val.i.i to i64 + %41 = sub nuw i64 %39, %40 + %42 = lshr exact i64 %41, 6 %trunc.i.i.i = trunc nuw i64 %.sroa.6.0.i20 to i1 br i1 %trunc.i.i.i, label %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i, label %46 -46: ; preds = %32 +46: ; preds = %31 %47 = icmp eq ptr %.val1.i.i, %.val.i.i br i1 %47, label %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i, label %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i _ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i: ; preds = %46 - %48 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.014.0.i, i64 %45) + %48 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.014.0.i, i64 %42) %49 = extractvalue { i64, i1 } %48, 1 %50 = extractvalue { i64, i1 } %48, 0 %spec.select.i.i15.i.i = select i1 %49, i64 -1, i64 %50 br label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" -_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i: ; preds = %32 - %51 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.7.0.i21, i64 %45) +_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i: ; preds = %31 + %51 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.7.0.i21, i64 %42) + %49 = extractvalue { i64, i1 } %48, 1 + %50 = extractvalue { i64, i1 } %48, 0 + %51 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.014.0.i, i64 %42) %52 = extractvalue { i64, i1 } %51, 1 %53 = extractvalue { i64, i1 } %51, 0 - %54 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %.sroa.014.0.i, i64 %45) + %spec.select.i.i.i.i23 = select i1 %52, i64 -1, i64 %53 + br i1 %49, label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i", label %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i + +_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i: ; preds = %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i, %43 + %spec.select.i.i11.i.i = phi i64 [ %spec.select.i.i.i.i23, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ 0, %43 ] + %.sroa.5.0.i9.i.i = phi i64 [ %50, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ 0, %43 ] + %54 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %.sroa.5.0.i9.i.i, i64 %36) %55 = extractvalue { i64, i1 } %54, 1 %56 = extractvalue { i64, i1 } %54, 0 - %spec.select.i.i.i.i23 = select i1 %55, i64 -1, i64 %56 - br i1 %52, label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i", label %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i - -_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i: ; preds = %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i, %46 - %spec.select.i.i11.i.i = phi i64 [ %spec.select.i.i.i.i23, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ 0, %46 ] - %.sroa.5.0.i9.i.i = phi i64 [ %53, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ 0, %46 ] - %57 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %.sroa.5.0.i9.i.i, i64 %39) - %58 = extractvalue { i64, i1 } %57, 1 - %59 = extractvalue { i64, i1 } %57, 0 - %not..i5.i.i = xor i1 %58, true + %not..i5.i.i = xor i1 %55, true %spec.select.i6.i.i = zext i1 %not..i5.i.i to i64 br label %"_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i" "_ZN116_$LT$itertools..adaptors..multi_product..MultiProduct$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint28_$u7b$$u7b$closure$u7d$$u7d$17h634b720617775310E.exit.i": ; preds = %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i %spec.select.i.i10.i.i = phi i64 [ %spec.select.i.i.i.i23, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ %spec.select.i.i11.i.i, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i ], [ %spec.select.i.i15.i.i, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i ] %.sroa.04.0.i.i.i = phi i64 [ 0, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ %spec.select.i6.i.i, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i ], [ 0, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i ] - %.sroa.4.0.i.i.i = phi i64 [ undef, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ %59, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i ], [ undef, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i ] - %60 = tail call i64 @llvm.uadd.sat.i64(i64 %spec.select.i.i10.i.i, i64 %39) + %.sroa.4.0.i.i.i = phi i64 [ undef, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.i.i ], [ %56, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread.i.i ], [ undef, %_ZN9itertools9size_hint3mul17ha1ca373f8edf89ddE.exit.thread12.i.i ] + %60 = tail call i64 @llvm.uadd.sat.i64(i64 %spec.select.i.i10.i.i, i64 %36) %61 = add nuw i64 %.0.i22, 1 - %62 = icmp eq i64 %61, %.idx - br i1 %62, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit", label %32 + %62 = icmp eq i64 %61, %4 + br i1 %62, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hb485988c35323f05E.exit", label %31 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll b/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll index 0dbc6605f86..bf793ccfd3a 100644 --- a/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll +++ b/bench/rust-analyzer-rs/optimized/3j0nbdwupb3iwt86.ll @@ -4530,29 +4530,25 @@ define hidden noundef i64 @"_ZN2tt16Subtree$LT$S$GT$5count17h9fe5a6b0ad8d6c97E"( %5 = icmp eq i64 %4, 0 br i1 %5, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc6903c50ea5a3226E.llvm.1819014470976533947.exit", label %6 -6: ; preds = %1 - %.idx = and i64 %4, 288230376151711743 - br label %7 - -7: ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit", %6 - %.017.i = phi i64 [ 0, %6 ], [ %14, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" ] - %.016.i = phi i64 [ 0, %6 ], [ %15, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" ] - %8 = getelementptr inbounds { [56 x i8], i8, [7 x i8] }, ptr %2, i64 %.016.i - %9 = getelementptr inbounds nuw i8, ptr %8, i64 56 - %10 = load i8, ptr %9, align 8, !range !39, !alias.scope !1624, !noundef !30 - %11 = icmp eq i8 %10, 4 - br i1 %11, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit", label %12 +6: ; preds = %1, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" + %.017.i = phi i64 [ %14, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" ], [ 0, %1 ] + %.016.i = phi i64 [ %13, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" ], [ 0, %1 ] + %6 = getelementptr inbounds { [56 x i8], i8, [7 x i8] }, ptr %2, i64 %.016.i + %7 = getelementptr inbounds nuw i8, ptr %6, i64 56 + %8 = load i8, ptr %7, align 8, !range !39, !alias.scope !1624, !noundef !30 + %9 = icmp eq i8 %8, 4 + br i1 %9, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit", label %10 -12: ; preds = %7 - %13 = tail call noundef i64 @"_ZN2tt16Subtree$LT$S$GT$5count17h9fe5a6b0ad8d6c97E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %8) +12: ; preds = %6 + %13 = tail call noundef i64 @"_ZN2tt16Subtree$LT$S$GT$5count17h9fe5a6b0ad8d6c97E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %6) br label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" -"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit": ; preds = %7, %12 - %.0.i.i = phi i64 [ %13, %12 ], [ 0, %7 ] +"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit": ; preds = %6, %12 + %.0.i.i = phi i64 [ %13, %10 ], [ 0, %.preheader ] %14 = add i64 %.0.i.i, %.017.i %15 = add nuw i64 %.016.i, 1 - %16 = icmp eq i64 %15, %.idx - br i1 %16, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc6903c50ea5a3226E.llvm.1819014470976533947.exit", label %7 + %16 = icmp eq i64 %15, %4 + br i1 %16, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc6903c50ea5a3226E.llvm.1819014470976533947.exit", label %6 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc6903c50ea5a3226E.llvm.1819014470976533947.exit": ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit", %1 %.0.i = phi i64 [ 0, %1 ], [ %14, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h5d6611801156c678E.exit" ] @@ -5113,7 +5109,6 @@ define hidden void @_ZN2tt6pretty17hfe8ceb465b0eec69E(ptr noalias noundef writeo br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h60fbe830e33fc072E.llvm.1819014470976533947.exit", label %7 7: ; preds = %3 - %.idx = and i64 %2, 288230376151711743 call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %.sroa.12) %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 %.sroa.535.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 @@ -5150,7 +5145,7 @@ define hidden void @_ZN2tt6pretty17hfe8ceb465b0eec69E(ptr noalias noundef writeo call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12.0..sroa_idx33, i64 7, i1 false), !noalias !1699 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !1699 %11 = add nuw i64 %.0.i, 1 - %12 = icmp eq i64 %11, %.idx + %12 = icmp eq i64 %11, %2 br i1 %12, label %13, label %9 13: ; preds = %9 @@ -5226,7 +5221,6 @@ default.unreachable: ; preds = %"_ZN53_$LT$smol_str br i1 %33, label %.noexc, label %34 34: ; preds = %29 - %.idx = and i64 %32, 288230376151711743 call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %.sroa.12) %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 %.sroa.550.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 @@ -5266,7 +5260,7 @@ default.unreachable: ; preds = %"_ZN53_$LT$smol_str call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12, ptr noundef nonnull align 1 dereferenceable(7) %.sroa.12.0..sroa_idx48, i64 7, i1 false), !noalias !1709 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !1709 %38 = add nuw i64 %.0.i.i, 1 - %39 = icmp eq i64 %38, %.idx + %39 = icmp eq i64 %38, %32 br i1 %39, label %40, label %36 40: ; preds = %.noexc50 diff --git a/bench/rust-analyzer-rs/optimized/5fgtm3ees9sdsrsg.ll b/bench/rust-analyzer-rs/optimized/5fgtm3ees9sdsrsg.ll index 3e44ebe5d62..aad71a0e396 100644 --- a/bench/rust-analyzer-rs/optimized/5fgtm3ees9sdsrsg.ll +++ b/bench/rust-analyzer-rs/optimized/5fgtm3ees9sdsrsg.ll @@ -28743,22 +28743,18 @@ define hidden noundef i64 @_ZN4core4iter6traits8iterator8Iterator4fold17h7e85144 %10 = icmp eq i64 %8, 0 br i1 %10, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdda1562b5cead8c0E.llvm.6055058659040047083.exit", label %11 -11: ; preds = %.lr.ph - %.idx.i = and i64 %8, 1152921504606846975 - br label %12 - -12: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i", %11 - %.017.i.i.i.i = phi i64 [ %1, %11 ], [ %.0.i.i.i.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" ] - %.016.i.i.i.i = phi i64 [ 0, %11 ], [ %51, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" ] - %13 = getelementptr inbounds { { i64, [1 x i64] } }, ptr %7, i64 %.016.i.i.i.i - %14 = call noundef align 8 dereferenceable(16) ptr @"_ZN75_$LT$hir_ty..interner..Interner$u20$as$u20$chalk_ir..interner..Interner$GT$16generic_arg_data17hc0ba233dcb1138e5E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %13), !noalias !9401 - %15 = load i64, ptr %14, align 8, !range !1609, !noalias !9401, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %15, 0 +11: ; preds = %.lr.ph, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" + %.017.i.i.i.i = phi i64 [ %.0.i.i.i.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" ], [ %1, %.lr.ph ] + %.016.i.i.i.i = phi i64 [ %49, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" ], [ 0, %.lr.ph ] + %11 = getelementptr inbounds { { i64, [1 x i64] } }, ptr %7, i64 %.016.i.i.i.i + %12 = call noundef align 8 dereferenceable(16) ptr @"_ZN75_$LT$hir_ty..interner..Interner$u20$as$u20$chalk_ir..interner..Interner$GT$16generic_arg_data17hc0ba233dcb1138e5E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %11), !noalias !9401 + %13 = load i64, ptr %12, align 8, !range !1609, !noalias !9401, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %13, 0 call void @llvm.experimental.noalias.scope.decl(metadata !9408) br i1 %.not.i.i.i.i.i.i.i, label %16, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" -16: ; preds = %12 - %17 = getelementptr inbounds nuw i8, ptr %14, i64 8 +16: ; preds = %11 + %17 = getelementptr inbounds nuw i8, ptr %12, i64 8 call void @llvm.experimental.noalias.scope.decl(metadata !9411) call void @llvm.experimental.noalias.scope.decl(metadata !9414) %18 = load ptr, ptr %17, align 8, !alias.scope !9417, !noalias !9401, !nonnull !4, !noundef !4 @@ -28850,7 +28846,7 @@ define hidden noundef i64 @_ZN4core4iter6traits8iterator8Iterator4fold17h7e85144 unreachable common.resume.i: ; preds = %39, %33 - %common.resume.op.i = phi { ptr, i32 } [ %40, %39 ], [ %34, %33 ] + %common.resume.op.i = phi { ptr, i32 } [ %40, %37 ], [ %34, %31 ] resume { ptr, i32 } %common.resume.op.i 49: ; preds = %33 @@ -28863,11 +28859,11 @@ common.resume.i: ; preds = %39, %33 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !9424 br label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i": ; preds = %"_ZN4core3ptr30drop_in_place$LT$hir..Type$GT$17hd1776b932bd6974cE.exit", %12 - %.0.i.i.i.i.i.i = phi i64 [ %27, %"_ZN4core3ptr30drop_in_place$LT$hir..Type$GT$17hd1776b932bd6974cE.exit" ], [ %.017.i.i.i.i, %12 ] +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i": ; preds = %"_ZN4core3ptr30drop_in_place$LT$hir..Type$GT$17hd1776b932bd6974cE.exit", %11 + %.0.i.i.i.i.i.i = phi i64 [ %27, %"_ZN4core3ptr30drop_in_place$LT$hir..Type$GT$17hd1776b932bd6974cE.exit" ], [ %.017.i.i.i.i, %.preheader ] %51 = add nuw i64 %.016.i.i.i.i, 1 - %52 = icmp eq i64 %51, %.idx.i - br i1 %52, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdda1562b5cead8c0E.llvm.6055058659040047083.exit", label %12 + %52 = icmp eq i64 %51, %8 + br i1 %52, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdda1562b5cead8c0E.llvm.6055058659040047083.exit", label %11 "_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hdda1562b5cead8c0E.llvm.6055058659040047083.exit": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i", %.lr.ph, %3 %.0.lcssa = phi i64 [ %1, %3 ], [ %1, %.lr.ph ], [ %.0.i.i.i.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i.i" ] @@ -59925,7 +59921,6 @@ define hidden noundef i64 @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$clos br i1 %10, label %"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h476c8207f9548377E.llvm.6055058659040047083.exit", label %11 11: ; preds = %3 - %.idx = and i64 %7, 1152921504606846975 %12 = getelementptr inbounds nuw i8, ptr %4, i64 8 br label %13 @@ -59971,7 +59966,7 @@ define hidden noundef i64 @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$clos "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i": ; preds = %"_ZN3hir4Type14type_arguments28_$u7b$$u7b$closure$u7d$$u7d$17h4a7d1cfa07f6dd3dE.llvm.2919776409019166437.exit.i.i.i.i.i", %13 %.0.i.i.i.i.i = phi i64 [ %28, %"_ZN3hir4Type14type_arguments28_$u7b$$u7b$closure$u7d$$u7d$17h4a7d1cfa07f6dd3dE.llvm.2919776409019166437.exit.i.i.i.i.i" ], [ %.017.i.i.i, %13 ] %29 = add nuw i64 %.016.i.i.i, 1 - %30 = icmp eq i64 %29, %.idx + %30 = icmp eq i64 %29, %7 br i1 %30, label %"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h476c8207f9548377E.llvm.6055058659040047083.exit", label %13 "_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h476c8207f9548377E.llvm.6055058659040047083.exit": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h65e3652d7b57ae59E.exit.i.i.i", %3 diff --git a/bench/rust-analyzer-rs/optimized/h7mtydzcy9xo30w.ll b/bench/rust-analyzer-rs/optimized/h7mtydzcy9xo30w.ll index 96e7c66ba41..a2d3a9d694e 100644 --- a/bench/rust-analyzer-rs/optimized/h7mtydzcy9xo30w.ll +++ b/bench/rust-analyzer-rs/optimized/h7mtydzcy9xo30w.ll @@ -2570,9 +2570,9 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 unreachable 24: ; preds = %39, %229, %38 - %.pn.pn = phi { ptr, i32 } [ %.pn65, %229 ], [ %eh.lpad-body, %38 ], [ %lpad.thr_comm.split-lp, %39 ] + %.pn.pn = phi { ptr, i32 } [ %.pn65, %227 ], [ %eh.lpad-body, %38 ], [ %lpad.thr_comm.split-lp, %39 ] invoke void @"_ZN4core3ptr90drop_in_place$LT$alloc..vec..Vec$LT$la_arena..Idx$LT$base_db..input..CrateData$GT$$GT$$GT$17h6b178b3394f9a454E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #23 - to label %230 unwind label %227 + to label %228 unwind label %227 25: ; preds = %3 store i32 %2, ptr %21, align 4 @@ -2627,7 +2627,7 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 cleanup br label %24 -.loopexit: ; preds = %184, %.noexc50, %190, %197 +.loopexit: ; preds = %183, %.noexc50, %190, %197 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -2971,7 +2971,7 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 %.sroa.610.0..sroa_idx11.i = getelementptr inbounds nuw i8, ptr %8, i64 24 store i64 %.sroa.07.sroa.6.0.copyload, ptr %.sroa.610.0..sroa_idx11.i, align 8, !noalias !604 invoke void @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$15into_allocation17he4bdc0473059166aE.llvm.8192890789926972031"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %.sroa.0.i, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %8) - to label %207 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %205 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp 176: ; preds = %163 %177 = getelementptr inbounds { i32, [1 x i32], { { i64, ptr, {} }, i64 } }, ptr %.val.i38, i64 %170 @@ -2983,14 +2983,10 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 %182 = icmp eq i64 %181, 0 br i1 %182, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h798a29b85dedfd90E.exit", label %183 -183: ; preds = %176 - %.idx = and i64 %181, 4611686018427387903 - br label %184 - -184: ; preds = %"_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i", %183 - %.0.i49 = phi i64 [ 0, %183 ], [ %203, %"_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i" ] - %185 = getelementptr inbounds i32, ptr %179, i64 %.0.i49 - %.val16.i = load i32, ptr %185, align 4, !noalias !608, !noundef !5 +183: ; preds = %176, %"_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i" + %.0.i49 = phi i64 [ %201, %"_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i" ], [ 0, %176 ] + %183 = getelementptr inbounds i32, ptr %179, i64 %.0.i49 + %.val16.i = load i32, ptr %183, align 4, !noalias !608, !noundef !5 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7), !noalias !608 store i32 %.val16.i, ptr %7, align 4, !noalias !610 %186 = zext i32 %.val16.i to i64 @@ -3000,7 +2996,7 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 invoke void @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$7reserve17h8fcaf99a901780efE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %18, i64 noundef 1, ptr noalias noundef nonnull readonly align 1 %28) to label %.noexc50 unwind label %.loopexit -.noexc50: ; preds = %184 +.noexc50: ; preds = %183 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !613 store ptr %6, ptr %5, align 8, !noalias !613 store ptr %18, ptr %138, align 8, !noalias !613 @@ -3051,8 +3047,8 @@ define void @_ZN7base_db5input10CrateGraph19transitive_rev_deps17h2dd63d0ad00e16 "_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i": ; preds = %"_ZN4core4iter6traits8iterator8Iterator8for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h308ed2027ac61bffE.exit.i.i.i", %"_ZN7base_db5input10CrateGraph19transitive_rev_deps28_$u7b$$u7b$closure$u7d$$u7d$17h2ae8739bbeb687d1E.exit.i.i.i" %203 = add nuw i64 %.0.i49, 1 - %204 = icmp eq i64 %203, %.idx - br i1 %204, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h798a29b85dedfd90E.exit.loopexit", label %184 + %204 = icmp eq i64 %203, %181 + br i1 %204, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h798a29b85dedfd90E.exit.loopexit", label %183 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h798a29b85dedfd90E.exit.loopexit": ; preds = %"_ZN4core4iter8adapters6copied9copy_fold28_$u7b$$u7b$closure$u7d$$u7d$17hced3fdedb92a5b70E.exit.i" %.pre = load i64, ptr %27, align 8, !alias.scope !623 diff --git a/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll b/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll index 48073dd93cd..d1aa8b5d31c 100644 --- a/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll +++ b/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll @@ -20091,14 +20091,10 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %72 = icmp eq i64 %71, 0 br i1 %72, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hc39bfa4d4e61b80dE.exit.i.i.i.i.i.i.i", label %73 -73: ; preds = %66 - %.idx.i.i.i.i.i.i.i.i.i.i.i.i = and i64 %71, 576460752303423487 - br label %74 - -74: ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i", %73 - %.0.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = phi i64 [ 0, %73 ], [ %84, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i" ] - %75 = getelementptr { { { { i8, [23 x i8] } } }, i32, i8, [3 x i8] }, ptr %69, i64 %.0.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i32 1 - %.val15.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = load i32, ptr %75, align 8, !noalias !6939, !noundef !4 +73: ; preds = %66, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i" + %.0.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = phi i64 [ %82, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i" ], [ 0, %66 ] + %73 = getelementptr { { { { i8, [23 x i8] } } }, i32, i8, [3 x i8] }, ptr %69, i64 %.0.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, i32 1 + %.val15.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = load i32, ptr %73, align 8, !noalias !6939, !noundef !4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8), !noalias !6942 store i32 %.val15.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, ptr %8, align 4, !noalias !6943 %76 = zext i32 %.val15.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i to i64 @@ -20116,17 +20112,17 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %trunc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = trunc nuw i64 %79 to i1 br i1 %trunc.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %80, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i" -80: ; preds = %74 +80: ; preds = %73 %81 = extractvalue { i64, i64 } %78, 1 %82 = load i32, ptr %8, align 4, !noalias !6943, !noundef !4 %83 = call noundef nonnull ptr @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14insert_in_slot17h7bbbc5fd49498a44E.llvm.18263967998570167583"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %77, i64 noundef %81, i32 noundef %82), !noalias !6939 br label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i" -"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i": ; preds = %80, %74 +"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i": ; preds = %80, %73 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8), !noalias !6942 %84 = add nuw i64 %.0.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, 1 - %85 = icmp eq i64 %84, %.idx.i.i.i.i.i.i.i.i.i.i.i.i - br i1 %85, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hc39bfa4d4e61b80dE.exit.i.i.i.i.i.i.i", label %74 + %85 = icmp eq i64 %84, %71 + br i1 %85, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hc39bfa4d4e61b80dE.exit.i.i.i.i.i.i.i", label %73 "_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hc39bfa4d4e61b80dE.exit.i.i.i.i.i.i.i": ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i", %66, %"_ZN6ide_db12prime_caches23compute_crates_to_prime28_$u7b$$u7b$closure$u7d$$u7d$17h1c6ac4c650e20a1fE.exit.i.i.i.i.i.i.i.i.i.i.i" %86 = add i64 %.sroa.7.0.i.i.i.i.i.i, 1 @@ -20156,7 +20152,7 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 br label %102 102: ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i18", %95 - %.0.i.i.i15 = phi i64 [ 0, %95 ], [ %112, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i18" ] + %.0.i.i.i15 = phi i64 [ 0, %93 ], [ %112, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h1a852e43c1b765cbE.exit.i.i.i18" ] %103 = getelementptr { { { { i8, [23 x i8] } } }, i32, i8, [3 x i8] }, ptr %90, i64 %.0.i.i.i15, i32 1 %.val15.i.i.i16 = load i32, ptr %103, align 8, !noalias !6953, !noundef !4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5), !noalias !6953 diff --git a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll index 0715c36251c..09eca34cf07 100644 --- a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll +++ b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll @@ -36965,7 +36965,6 @@ select.unfold: ; preds = %341, %_ZN13rust_ana br i1 %397, label %409, label %398 398: ; preds = %393 - %.idx = and i64 %396, 1152921504606846975 %399 = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.0.i) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.i, ptr noundef nonnull align 8 dereferenceable(32) @anon.91380dbf7fcc3cee666491d632c78d8e.15.llvm.3663151438746104753, i64 32, i1 false), !noalias !6917 @@ -37229,7 +37228,7 @@ select.unfold.i.i: ; preds = %451, %._crit_edge.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.i, ptr noundef nonnull align 8 dereferenceable(32) %15, i64 32, i1 false), !noalias !6919 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15), !noalias !6919 %517 = add nuw i64 %.0.i165, 1 - %518 = icmp eq i64 %517, %.idx + %518 = icmp eq i64 %517, %396 br i1 %518, label %519, label %410 519: ; preds = %"_ZN13rust_analyzer3cli4lsif11LsifManager9add_token28_$u7b$$u7b$closure$u7d$$u7d$17hd194373123bb2cceE.exit.i" @@ -55658,7 +55657,6 @@ define hidden void @_ZN13rust_analyzer6config11field_props17h3c5dc174f6c9079eE(p br i1 %635, label %_ZN13rust_analyzer6config21doc_comment_to_string17h125604ea00d91849E.exit, label %636 636: ; preds = %9 - %.idx.i = and i64 %6, 1152921504606846975 %637 = getelementptr inbounds nuw i8, ptr %15, i64 24 %638 = getelementptr inbounds nuw i8, ptr %15, i64 32 %639 = getelementptr inbounds nuw i8, ptr %14, i64 8 @@ -55743,7 +55741,7 @@ common.resume: ; preds = %.body2037, %655 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14), !noalias !10118 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15), !noalias !10118 %659 = add nuw i64 %.0.i.i, 1 - %660 = icmp eq i64 %659, %.idx.i + %660 = icmp eq i64 %659, %6 br i1 %660, label %_ZN13rust_analyzer6config21doc_comment_to_string17h125604ea00d91849E.exit, label %645 _ZN13rust_analyzer6config21doc_comment_to_string17h125604ea00d91849E.exit: ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he7702925ab546fc1E.exit.i.i", %9 diff --git a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll index ad9225321b1..245db3d9780 100644 --- a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll +++ b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll @@ -50070,33 +50070,28 @@ define hidden void @_ZN7hir_def7nameres9collector12ModCollector7collect17h9840ae %72 = icmp eq i64 %2, 0 br i1 %72, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h47d155c3fd399f42E.exit", label %73 -73: ; preds = %71 - %.idx = and i64 %2, 2305843009213693951 - br label %74 - -74: ; preds = %74, %73 - %.0.i = phi i64 [ 0, %73 ], [ %79, %74 ] - %75 = getelementptr inbounds { i32, [1 x i32] }, ptr %1, i64 %.0.i +73: ; preds = %71, %73 + %.0.i = phi i64 [ %77, %.preheader39 ], [ 0, %71 ] + %73 = getelementptr inbounds { i32, [1 x i32] }, ptr %1, i64 %.0.i call void @llvm.experimental.noalias.scope.decl(metadata !10966) - %76 = load i32, ptr %75, align 4, !range !4837, !alias.scope !10966, !noalias !10969, !noundef !4 - %77 = getelementptr inbounds nuw i8, ptr %75, i64 4 + %76 = load i32, ptr %73, align 4, !range !4837, !alias.scope !10966, !noalias !10969, !noundef !4 + %77 = getelementptr inbounds nuw i8, ptr %73, i64 4 %78 = load i32, ptr %77, align 4, !alias.scope !10966, !noalias !10969, !noundef !4 call fastcc void @"_ZN7hir_def7nameres9collector12ModCollector7collect28_$u7b$$u7b$closure$u7d$$u7d$17hc5cd4ea54195f7f3E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %6, i32 noundef range(i32 0, 17) %76, i32 noundef %78), !noalias !10966 %79 = add nuw i64 %.0.i, 1 - %80 = icmp eq i64 %79, %.idx - br i1 %80, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h47d155c3fd399f42E.exit", label %74 + %80 = icmp eq i64 %79, %2 + br i1 %80, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h47d155c3fd399f42E.exit", label %73 -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h47d155c3fd399f42E.exit": ; preds = %74, %71 +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h47d155c3fd399f42E.exit": ; preds = %73, %71 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6) br label %99 81: ; preds = %49 - %.idx38 = and i64 %2, 2305843009213693951 - %82 = icmp eq i64 %2, 0 - br i1 %82, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h98d7c24e296a992eE.exit.critedge", label %.preheader + %80 = icmp eq i64 %2, 0 + br i1 %80, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h98d7c24e296a992eE.exit.critedge", label %.preheader .preheader: ; preds = %81, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha36f20a55d1f2a57E.exit" - %.0.i33 = phi i64 [ %89, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha36f20a55d1f2a57E.exit" ], [ 0, %81 ] + %.0.i33 = phi i64 [ %89, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha36f20a55d1f2a57E.exit" ], [ 0, %79 ] %83 = getelementptr inbounds { i32, [1 x i32] }, ptr %1, i64 %.0.i33 %84 = load i32, ptr %83, align 4, !range !4837, !noalias !10971, !noundef !4 %85 = icmp eq i32 %84, 1 @@ -50111,7 +50106,7 @@ define hidden void @_ZN7hir_def7nameres9collector12ModCollector7collect17h9840ae "_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha36f20a55d1f2a57E.exit": ; preds = %.preheader, %86 %89 = add nuw i64 %.0.i33, 1 - %90 = icmp eq i64 %89, %.idx38 + %90 = icmp eq i64 %89, %2 br i1 %90, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h85bae5b3b64f1c40E.exit", label %.preheader "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h85bae5b3b64f1c40E.exit": ; preds = %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha36f20a55d1f2a57E.exit" @@ -50135,7 +50130,7 @@ define hidden void @_ZN7hir_def7nameres9collector12ModCollector7collect17h9840ae "_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17hfac6e10d143eff7dE.exit": ; preds = %91, %94 %97 = add nuw i64 %.0.i34, 1 - %98 = icmp eq i64 %97, %.idx38 + %98 = icmp eq i64 %97, %2 br i1 %98, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h98d7c24e296a992eE.exit", label %91 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h98d7c24e296a992eE.exit.critedge": ; preds = %81 diff --git a/bench/rustfmt-rs/optimized/x2cb3fifm47d4t5.ll b/bench/rustfmt-rs/optimized/x2cb3fifm47d4t5.ll index d21de3220f7..f712ed472b2 100644 --- a/bench/rustfmt-rs/optimized/x2cb3fifm47d4t5.ll +++ b/bench/rustfmt-rs/optimized/x2cb3fifm47d4t5.ll @@ -294,8 +294,8 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ to label %"_ZN4core3ptr99drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$17h31bc5bf337e805f1E.exit.i" unwind label %33, !noalias !42 "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.i": ; preds = %29, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.lr.ph.i" - %13 = phi i64 [ %.sroa.5.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.lr.ph.i" ], [ %31, %29 ] - %14 = phi ptr [ %7, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.lr.ph.i" ], [ %15, %29 ] + %13 = phi i64 [ %.sroa.5.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.lr.ph.i" ], [ %31, %26 ] + %14 = phi ptr [ %7, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.lr.ph.i" ], [ %15, %26 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !43) %15 = getelementptr inbounds nuw i8, ptr %14, i64 32 %.sroa.0.0.copyload.i = load i64, ptr %14, align 8, !noalias !44 @@ -316,32 +316,28 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ %18 = icmp eq i64 %.sroa.8.0.copyload.i, 0 br i1 %18, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i", label %19 -19: ; preds = %16 - %20 = and i64 %.sroa.8.0.copyload.i, 576460752303423487 - br label %21 - -21: ; preds = %21, %19 - %.018.i.i.i.i.i.i = phi i32 [ 0, %19 ], [ %25, %21 ] - %.017.i.i.i.i.i.i = phi i64 [ 0, %19 ], [ %26, %21 ] - %22 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload.i, i64 %.017.i.i.i.i.i.i - %.val.i.i.i.i.i.i = load i64, ptr %22, align 8, !range !49, !alias.scope !50, !noalias !53, !noundef !4 - %23 = icmp eq i64 %.val.i.i.i.i.i.i, 2 - %24 = zext i1 %23 to i32 - %25 = add i32 %.018.i.i.i.i.i.i, %24 - %26 = add nuw i64 %.017.i.i.i.i.i.i, 1 - %27 = icmp eq i64 %26, %20 - br i1 %27, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i", label %21 - -"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i": ; preds = %21, %16 - %.0.i.i.i.i.i.i = phi i32 [ 0, %16 ], [ %25, %21 ] - %.idx.i.i.i = shl nsw i64 %.sroa.8.0.copyload.i, 5 - %28 = getelementptr inbounds i8, ptr %.sroa.7.0.copyload.i, i64 %.idx.i.i.i +19: ; preds = %16, %19 + %.018.i.i.i.i.i.i = phi i32 [ %22, %.preheader.i.i.i ], [ 0, %15 ] + %.017.i.i.i.i.i.i = phi i64 [ %23, %.preheader.i.i.i ], [ 0, %16 ] + %19 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload.i, i64 %.017.i.i.i.i.i.i + %.val.i.i.i.i.i.i = load i64, ptr %19, align 8, !range !49, !alias.scope !50, !noalias !53, !noundef !4 + %20 = icmp eq i64 %.val.i.i.i.i.i.i, 2 + %24 = zext i1 %20 to i32 + %22 = add i32 %.018.i.i.i.i.i.i, %21 + %23 = add nuw i64 %.017.i.i.i.i.i.i, 1 + %23 = icmp eq i64 %23, %.sroa.8.0.copyload.i + br i1 %23, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i", label %19 + +"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i":; preds = %.preheader.i.i.i, %16 + %.0.i.i.i.i.i.i = phi i32 [ 0, %16 ], [ %22, %.preheader.i.i.i ] + %.idx.i.i.i = shl nuw nsw i64 %.sroa.8.0.copyload.i, 5 + %25 = getelementptr inbounds nuw i8, ptr %.sroa.7.0.copyload.i, i64 %.idx.i.i.i store ptr %.sroa.7.0.copyload.i, ptr %3, align 8, !noalias !53 store i64 %.sroa.0.0.copyload.i, ptr %.sroa.4.0..sroa_idx.i.i.i, align 8, !noalias !53 store ptr %.sroa.7.0.copyload.i, ptr %.sroa.5.0..sroa_idx.i.i.i, align 8, !noalias !53 - store ptr %28, ptr %.sroa.6.0..sroa_idx.i.i.i, align 8, !noalias !53 + store ptr %25, ptr %.sroa.6.0..sroa_idx.i.i.i, align 8, !noalias !53 invoke void @"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h56f01362519fa6c8E"(ptr noalias noundef nonnull sret({ { i64, ptr }, i64 }) align 8 captures(none) dereferenceable(24) %.sroa.0.sroa.0.i.i, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3) - to label %29 unwind label %10, !noalias !57 + to label %26 unwind label %10, !noalias !57 29: ; preds = %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i.i" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !45 @@ -366,7 +362,7 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ resume { ptr, i32 } %11 _ZN4core4iter6traits8iterator8Iterator4fold17hf13dacd276416f36E.llvm.13396924176064657314.exit.loopexit: ; preds = %29, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.i" - %.ph = phi i64 [ %31, %29 ], [ %13, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.i" ] + %.ph = phi i64 [ %31, %26 ], [ %13, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73ba2c9604672b3bE.llvm.13396924176064657314.exit.i" ] store ptr %15, ptr %5, align 8, !alias.scope !27, !noalias !29 br label %_ZN4core4iter6traits8iterator8Iterator4fold17hf13dacd276416f36E.llvm.13396924176064657314.exit @@ -2447,30 +2443,26 @@ define hidden { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ %18 = icmp eq i64 %.sroa.8.0.copyload.i, 0 br i1 %18, label %.loopexit.i.i.i, label %19 -19: ; preds = %16 - %20 = and i64 %.sroa.8.0.copyload.i, 576460752303423487 - br label %21 - -21: ; preds = %21, %19 - %.018.i.i.i.i.i.i = phi i32 [ 0, %19 ], [ %25, %21 ] - %.017.i.i.i.i.i.i = phi i64 [ 0, %19 ], [ %26, %21 ] - %22 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload.i, i64 %.017.i.i.i.i.i.i - %.val.i.i.i.i.i.i = load i64, ptr %22, align 8, !range !49, !alias.scope !731, !noalias !734, !noundef !4 - %23 = icmp eq i64 %.val.i.i.i.i.i.i, 2 - %24 = zext i1 %23 to i32 - %25 = add i32 %.018.i.i.i.i.i.i, %24 - %26 = add nuw i64 %.017.i.i.i.i.i.i, 1 - %27 = icmp eq i64 %26, %20 - br i1 %27, label %.loopexit.i.i.i, label %21 - -.loopexit.i.i.i: ; preds = %21, %16 - %.0.i.i.i.i.i.i = phi i32 [ 0, %16 ], [ %25, %21 ] - %.idx.i.i.i = shl nsw i64 %.sroa.8.0.copyload.i, 5 - %28 = getelementptr inbounds i8, ptr %.sroa.7.0.copyload.i, i64 %.idx.i.i.i +19: ; preds = %16, %19 + %.018.i.i.i.i.i.i = phi i32 [ %22, %.preheader.i.i.i ], [ 0, %15 ] + %.017.i.i.i.i.i.i = phi i64 [ %23, %.preheader.i.i.i ], [ 0, %16 ] + %19 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload.i, i64 %.017.i.i.i.i.i.i + %.val.i.i.i.i.i.i = load i64, ptr %19, align 8, !range !49, !alias.scope !731, !noalias !734, !noundef !4 + %20 = icmp eq i64 %.val.i.i.i.i.i.i, 2 + %24 = zext i1 %20 to i32 + %22 = add i32 %.018.i.i.i.i.i.i, %21 + %23 = add nuw i64 %.017.i.i.i.i.i.i, 1 + %23 = icmp eq i64 %23, %.sroa.8.0.copyload.i + br i1 %23, label %.loopexit.i.i.i, label %22 + +.loopexit.i.i.i:; preds = %.preheader.i.i.i, %16 + %.0.i.i.i.i.i.i = phi i32 [ 0, %16 ], [ %22, %.preheader.i.i.i ] + %.idx.i.i.i = shl nuw nsw i64 %.sroa.8.0.copyload.i, 5 + %25 = getelementptr inbounds nuw i8, ptr %.sroa.7.0.copyload.i, i64 %.idx.i.i.i store ptr %.sroa.7.0.copyload.i, ptr %6, align 8, !noalias !734 store i64 %.sroa.0.0.copyload.i, ptr %.sroa.4.0..sroa_idx.i.i.i, align 8, !noalias !734 store ptr %.sroa.7.0.copyload.i, ptr %.sroa.5.0..sroa_idx.i.i.i, align 8, !noalias !734 - store ptr %28, ptr %.sroa.6.0..sroa_idx.i.i.i, align 8, !noalias !734 + store ptr %25, ptr %.sroa.6.0..sroa_idx.i.i.i, align 8, !noalias !734 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !734 invoke void @"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h56f01362519fa6c8E"(ptr noalias noundef nonnull sret({ { i64, ptr }, i64 }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %6) to label %33 unwind label %29, !noalias !728 @@ -8338,26 +8330,22 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17hf13dacd276416f %20 = icmp eq i64 %.sroa.8.0.copyload, 0 br i1 %20, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i", label %21 -21: ; preds = %18 - %22 = and i64 %.sroa.8.0.copyload, 576460752303423487 - br label %23 - -23: ; preds = %23, %21 - %.018.i.i.i.i.i = phi i32 [ 0, %21 ], [ %27, %23 ] - %.017.i.i.i.i.i = phi i64 [ 0, %21 ], [ %28, %23 ] - %24 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload, i64 %.017.i.i.i.i.i - %.val.i.i.i.i.i = load i64, ptr %24, align 8, !range !49, !alias.scope !2578, !noalias !2581, !noundef !4 - %25 = icmp eq i64 %.val.i.i.i.i.i, 2 - %26 = zext i1 %25 to i32 - %27 = add i32 %.018.i.i.i.i.i, %26 - %28 = add nuw i64 %.017.i.i.i.i.i, 1 - %29 = icmp eq i64 %28, %22 - br i1 %29, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i", label %23 - -"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i": ; preds = %23, %18 - %.0.i.i.i.i.i = phi i32 [ 0, %18 ], [ %27, %23 ] - %.idx.i.i = shl nsw i64 %.sroa.8.0.copyload, 5 - %30 = getelementptr inbounds i8, ptr %.sroa.7.0.copyload, i64 %.idx.i.i +21: ; preds = %18, %20 + %.018.i.i.i.i.i = phi i32 [ %24, %.preheader.i.i ], [ 0, %18 ] + %.017.i.i.i.i.i = phi i64 [ %25, %.preheader.i.i ], [ 0, %18 ] + %21 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload, i64 %.017.i.i.i.i.i + %.val.i.i.i.i.i = load i64, ptr %21, align 8, !range !49, !alias.scope !2578, !noalias !2581, !noundef !4 + %22 = icmp eq i64 %.val.i.i.i.i.i, 2 + %23 = zext i1 %22 to i32 + %24 = add i32 %.018.i.i.i.i.i, %23 + %25 = add nuw i64 %.017.i.i.i.i.i, 1 + %25 = icmp eq i64 %25, %.sroa.8.0.copyload + br i1 %25, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i", label %20 + +"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit.i":; preds = %.preheader.i.i, %18 + %.0.i.i.i.i.i = phi i32 [ 0, %21 ], [ %24, %.preheader.i.i ] + %.idx.i.i = shl nuw nsw i64 %.sroa.8.0.copyload, 5 + %27 = getelementptr inbounds nuw i8, ptr %.sroa.7.0.copyload, i64 %.idx.i.i store ptr %.sroa.7.0.copyload, ptr %3, align 8, !noalias !2581 store i64 %.sroa.0.0.copyload, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !2581 store ptr %.sroa.7.0.copyload, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !noalias !2581 @@ -9217,26 +9205,22 @@ define hidden { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h6d %19 = icmp eq i64 %.sroa.8.0.copyload, 0 br i1 %19, label %.loopexit.i.i, label %20 -20: ; preds = %17 - %21 = and i64 %.sroa.8.0.copyload, 576460752303423487 - br label %22 - -22: ; preds = %22, %20 - %.018.i.i.i.i.i = phi i32 [ 0, %20 ], [ %26, %22 ] - %.017.i.i.i.i.i = phi i64 [ 0, %20 ], [ %27, %22 ] - %23 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload, i64 %.017.i.i.i.i.i - %.val.i.i.i.i.i = load i64, ptr %23, align 8, !range !49, !alias.scope !2837, !noalias !2840, !noundef !4 - %24 = icmp eq i64 %.val.i.i.i.i.i, 2 - %25 = zext i1 %24 to i32 - %26 = add i32 %.018.i.i.i.i.i, %25 - %27 = add nuw i64 %.017.i.i.i.i.i, 1 - %28 = icmp eq i64 %27, %21 - br i1 %28, label %.loopexit.i.i, label %22 - -.loopexit.i.i: ; preds = %22, %17 - %.0.i.i.i.i.i = phi i32 [ 0, %17 ], [ %26, %22 ] - %.idx.i.i = shl nsw i64 %.sroa.8.0.copyload, 5 - %29 = getelementptr inbounds i8, ptr %.sroa.7.0.copyload, i64 %.idx.i.i +20: ; preds = %17, %20 + %.018.i.i.i.i.i = phi i32 [ %23, %.preheader.i.i ], [ 0, %17 ] + %.017.i.i.i.i.i = phi i64 [ %24, %.preheader.i.i ], [ 0, %20 ] + %20 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.7.0.copyload, i64 %.017.i.i.i.i.i + %.val.i.i.i.i.i = load i64, ptr %20, align 8, !range !49, !alias.scope !2837, !noalias !2840, !noundef !4 + %21 = icmp eq i64 %.val.i.i.i.i.i, 2 + %22 = zext i1 %21 to i32 + %23 = add i32 %.018.i.i.i.i.i, %22 + %24 = add nuw i64 %.017.i.i.i.i.i, 1 + %24 = icmp eq i64 %24, %.sroa.8.0.copyload + br i1 %24, label %.loopexit.i.i, label %20 + +.loopexit.i.i:; preds = %.preheader.i.i, %17 + %.0.i.i.i.i.i = phi i32 [ 0, %17 ], [ %23, %.preheader.i.i ] + %.idx.i.i = shl nuw nsw i64 %.sroa.8.0.copyload, 5 + %26 = getelementptr inbounds nuw i8, ptr %.sroa.7.0.copyload, i64 %.idx.i.i store ptr %.sroa.7.0.copyload, ptr %7, align 8, !noalias !2840 store i64 %.sroa.0.0.copyload, ptr %.sroa.4.0..sroa_idx.i.i, align 8, !noalias !2840 store ptr %.sroa.7.0.copyload, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !noalias !2840 @@ -10065,33 +10049,29 @@ define hidden void @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d %4 = icmp eq i64 %.sroa.53.0.copyload, 0 br i1 %4, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit", label %5 -5: ; preds = %2 - %6 = and i64 %.sroa.53.0.copyload, 576460752303423487 - br label %7 - -7: ; preds = %7, %5 - %.018.i.i.i.i = phi i32 [ 0, %5 ], [ %11, %7 ] - %.017.i.i.i.i = phi i64 [ 0, %5 ], [ %12, %7 ] - %8 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.42.0.copyload, i64 %.017.i.i.i.i - %.val.i.i.i.i = load i64, ptr %8, align 8, !range !49, !alias.scope !3068, !noalias !3071, !noundef !4 - %9 = icmp eq i64 %.val.i.i.i.i, 2 - %10 = zext i1 %9 to i32 - %11 = add i32 %.018.i.i.i.i, %10 - %12 = add nuw i64 %.017.i.i.i.i, 1 - %13 = icmp eq i64 %12, %6 - br i1 %13, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit", label %7 - -"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit": ; preds = %7, %2 - %.0.i.i.i.i = phi i32 [ 0, %2 ], [ %11, %7 ] - %.idx.i = shl nsw i64 %.sroa.53.0.copyload, 5 - %14 = getelementptr inbounds i8, ptr %.sroa.42.0.copyload, i64 %.idx.i +5: ; preds = %2, %5 + %.018.i.i.i.i = phi i32 [ %8, %.preheader.i ], [ 0, %2 ] + %.017.i.i.i.i = phi i64 [ %9, %.preheader.i ], [ 0, %2 ] + %5 = getelementptr inbounds { i64, [3 x i64] }, ptr %.sroa.42.0.copyload, i64 %.017.i.i.i.i + %.val.i.i.i.i = load i64, ptr %5, align 8, !range !49, !alias.scope !3068, !noalias !3071, !noundef !4 + %6 = icmp eq i64 %.val.i.i.i.i, 2 + %7 = zext i1 %6 to i32 + %8 = add i32 %.018.i.i.i.i, %7 + %9 = add nuw i64 %.017.i.i.i.i, 1 + %9 = icmp eq i64 %9, %.sroa.53.0.copyload + br i1 %9, label %"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit", label %5 + +"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20$as$u20$core..convert..From$LT$alloc..vec..Vec$LT$rustfmt_nightly..rustfmt_diff..Mismatch$GT$$GT$$GT$4from28_$u7b$$u7b$closure$u7d$$u7d$17h85f8e82a4577ae98E.llvm.13396924176064657314.exit":; preds = %.preheader.i, %2 + %.0.i.i.i.i = phi i32 [ 0, %2 ], [ %8, %.preheader.i ] + %.idx.i = shl nuw nsw i64 %.sroa.53.0.copyload, 5 + %11 = getelementptr inbounds nuw i8, ptr %.sroa.42.0.copyload, i64 %.idx.i store ptr %.sroa.42.0.copyload, ptr %3, align 8, !noalias !3071 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %.sroa.0.0.copyload, ptr %.sroa.4.0..sroa_idx.i, align 8, !noalias !3071 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 16 store ptr %.sroa.42.0.copyload, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !3071 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 24 - store ptr %14, ptr %.sroa.6.0..sroa_idx.i, align 8, !noalias !3071 + store ptr %11, ptr %.sroa.6.0..sroa_idx.i, align 8, !noalias !3071 call void @"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h56f01362519fa6c8E"(ptr noalias noundef nonnull sret({ { i64, ptr }, i64 }) align 8 captures(none) dereferenceable(24) %.sroa.0.sroa.0, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %3) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) tail call void @llvm.experimental.noalias.scope.decl(metadata !3075) @@ -29024,26 +29004,22 @@ define hidden void @"_ZN154_$LT$rustfmt_nightly..rustfmt_diff..ModifiedLines$u20 %10 = icmp eq i64 %9, 0 br i1 %10, label %.loopexit, label %11 -11: ; preds = %3 - %12 = and i64 %9, 576460752303423487 - br label %13 +11: ; preds = %3, %11 + %.018.i.i.i = phi i32 [ %14, %.preheader ], [ 0, %3 ] + %.017.i.i.i = phi i64 [ %15, %.preheader ], [ 0, %3 ] + %11 = getelementptr inbounds { i64, [3 x i64] }, ptr %7, i64 %.017.i.i.i + %.val.i.i.i = load i64, ptr %11, align 8, !range !49, !alias.scope !7578, !noundef !4 + %12 = icmp eq i64 %.val.i.i.i, 2 + %16 = zext i1 %12 to i32 + %14 = add i32 %.018.i.i.i, %13 + %15 = add nuw i64 %.017.i.i.i, 1 + %15 = icmp eq i64 %15, %9 + br i1 %15, label %.loopexit, label %11 -13: ; preds = %13, %11 - %.018.i.i.i = phi i32 [ 0, %11 ], [ %17, %13 ] - %.017.i.i.i = phi i64 [ 0, %11 ], [ %18, %13 ] - %14 = getelementptr inbounds { i64, [3 x i64] }, ptr %7, i64 %.017.i.i.i - %.val.i.i.i = load i64, ptr %14, align 8, !range !49, !alias.scope !7578, !noundef !4 - %15 = icmp eq i64 %.val.i.i.i, 2 - %16 = zext i1 %15 to i32 - %17 = add i32 %.018.i.i.i, %16 - %18 = add nuw i64 %.017.i.i.i, 1 - %19 = icmp eq i64 %18, %12 - br i1 %19, label %.loopexit, label %13 - -.loopexit: ; preds = %13, %3 - %.0.i.i.i = phi i32 [ 0, %3 ], [ %17, %13 ] - %.idx = shl nsw i64 %9, 5 - %20 = getelementptr inbounds i8, ptr %7, i64 %.idx +.loopexit:; preds = %11, %3 + %.0.i.i.i = phi i32 [ 0, %3 ], [ %14, %.preheader ] + %.idx = shl nuw nsw i64 %9, 5 + %17 = getelementptr inbounds nuw i8, ptr %7, i64 %.idx %.sroa.08.0.copyload = load i64, ptr %2, align 8 store ptr %7, ptr %5, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 diff --git a/bench/stat-rs/optimized/3koi1gt1wwkf7v6z.ll b/bench/stat-rs/optimized/3koi1gt1wwkf7v6z.ll index fe63322d323..96b704e4208 100644 --- a/bench/stat-rs/optimized/3koi1gt1wwkf7v6z.ll +++ b/bench/stat-rs/optimized/3koi1gt1wwkf7v6z.ll @@ -1233,36 +1233,32 @@ define noundef double @"_ZN128_$LT$statrs..distribution..multinomial..Multinomia %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 %7 = load i64, ptr %6, align 8, !noundef !4 %.not = icmp eq i64 %7, %2 - br i1 %.not, label %8, label %20 + br i1 %.not, label %8, label %17 8: ; preds = %3 - %.idx = shl nsw i64 %2, 3 - %9 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 3 + %9 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %10 = icmp eq i64 %2, 0 br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %11 -11: ; preds = %8 - %12 = and i64 %2, 2305843009213693951 - br label %13 +11: ; preds = %8, %11 + %.sroa.07.0.i = phi i64 [ %12, %.preheader ], [ 0, %8 ] + %.sroa.09.0.i = phi i64 [ %13, %.preheader ], [ 0, %8 ] + %11 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i + %.val.i = load i64, ptr %11, align 8, !noundef !4 + %12 = add i64 %.val.i, %.sroa.07.0.i + %13 = add nuw i64 %.sroa.09.0.i, 1 + %14 = icmp eq i64 %13, %2 + br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %.preheader + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit": ; preds = %.preheader, %8 + %.sroa.04.0.i = phi i64 [ 0, %8 ], [ %12, %.preheader ] + %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %16 = load i64, ptr %15, align 8, !noundef !4 + %.not11 = icmp eq i64 %.sroa.04.0.i, %16 + br i1 %.not11, label %18, label %38 -13: ; preds = %13, %11 - %.sroa.07.0.i = phi i64 [ 0, %11 ], [ %15, %13 ] - %.sroa.09.0.i = phi i64 [ 0, %11 ], [ %16, %13 ] - %14 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i - %.val.i = load i64, ptr %14, align 8, !noundef !4 - %15 = add i64 %.val.i, %.sroa.07.0.i - %16 = add nuw i64 %.sroa.09.0.i, 1 - %17 = icmp eq i64 %16, %12 - br i1 %17, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %13 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit": ; preds = %13, %8 - %.sroa.04.0.i = phi i64 [ 0, %8 ], [ %15, %13 ] - %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %19 = load i64, ptr %18, align 8, !noundef !4 - %.not11 = icmp eq i64 %.sroa.04.0.i, %19 - br i1 %.not11, label %21, label %42 - -20: ; preds = %3 +13: ; preds = %3 tail call void @_ZN3std9panicking11begin_panic17h1e4a7cf559eb50c1E(ptr noalias noundef nonnull readonly align 1 @anon.e454849c71ff0ccf6bad19ade5623ee4.25, i64 noundef 39, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.e454849c71ff0ccf6bad19ade5623ee4.27) #17 unreachable @@ -1300,22 +1296,20 @@ _ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit: ; preds = % %31 = call noundef double @llvm.floor.f64(double %30) %32 = getelementptr inbounds nuw i8, ptr %0, i64 8 %33 = load ptr, ptr %32, align 8, !nonnull !4, !noundef !4 - %34 = and i64 %2, 2305843009213693951 - %.not.i = icmp eq i64 %34, 0 - br i1 %.not.i, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17hce6ee49b5724c13aE.exit", label %.lr.ph.i + br i1 %10, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17hce6ee49b5724c13aE.exit", label %.lr.ph.i .lr.ph.i: ; preds = %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit, %.lr.ph.i %.sroa.0.018.i = phi double [ %40, %.lr.ph.i ], [ 1.000000e+00, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit ] %.sroa.03.017.i = phi i64 [ %35, %.lr.ph.i ], [ 0, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit ] - %35 = add nuw nsw i64 %.sroa.03.017.i, 1 - %36 = getelementptr inbounds nuw double, ptr %33, i64 %.sroa.03.017.i - %37 = getelementptr inbounds nuw i64, ptr %1, i64 %.sroa.03.017.i + %35 = add nuw i64 %.sroa.03.017.i, 1 + %36 = getelementptr inbounds double, ptr %33, i64 %.sroa.03.017.i + %37 = getelementptr inbounds i64, ptr %1, i64 %.sroa.03.017.i %.val15.i = load double, ptr %36, align 8, !noalias !137, !noundef !4 %.val16.i = load i64, ptr %37, align 8, !noalias !137, !noundef !4 %38 = uitofp i64 %.val16.i to double %39 = call double @llvm.pow.f64(double %.val15.i, double %38) %40 = fmul double %.sroa.0.018.i, %39 - %exitcond.not.i = icmp eq i64 %35, %34 + %exitcond.not.i = icmp eq i64 %35, %2 br i1 %exitcond.not.i, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17hce6ee49b5724c13aE.exit", label %.lr.ph.i "_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17hce6ee49b5724c13aE.exit": ; preds = %.lr.ph.i, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit @@ -1335,36 +1329,32 @@ define noundef double @"_ZN128_$LT$statrs..distribution..multinomial..Multinomia %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 %7 = load i64, ptr %6, align 8, !noundef !4 %.not = icmp eq i64 %7, %2 - br i1 %.not, label %8, label %20 + br i1 %.not, label %8, label %17 8: ; preds = %3 - %.idx = shl nsw i64 %2, 3 - %9 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 3 + %9 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %10 = icmp eq i64 %2, 0 br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %11 -11: ; preds = %8 - %12 = and i64 %2, 2305843009213693951 - br label %13 +11: ; preds = %8, %11 + %.sroa.07.0.i = phi i64 [ %12, %.preheader ], [ 0, %8 ] + %.sroa.09.0.i = phi i64 [ %13, %.preheader ], [ 0, %8 ] + %11 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i + %.val.i = load i64, ptr %11, align 8, !noundef !4 + %12 = add i64 %.val.i, %.sroa.07.0.i + %13 = add nuw i64 %.sroa.09.0.i, 1 + %14 = icmp eq i64 %13, %2 + br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %.preheader + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit": ; preds = %.preheader, %8 + %.sroa.04.0.i = phi i64 [ 0, %8 ], [ %12, %.preheader ] + %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %16 = load i64, ptr %15, align 8, !noundef !4 + %.not11 = icmp eq i64 %.sroa.04.0.i, %16 + br i1 %.not11, label %18, label %40 -13: ; preds = %13, %11 - %.sroa.07.0.i = phi i64 [ 0, %11 ], [ %15, %13 ] - %.sroa.09.0.i = phi i64 [ 0, %11 ], [ %16, %13 ] - %14 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i - %.val.i = load i64, ptr %14, align 8, !noundef !4 - %15 = add i64 %.val.i, %.sroa.07.0.i - %16 = add nuw i64 %.sroa.09.0.i, 1 - %17 = icmp eq i64 %16, %12 - br i1 %17, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit", label %13 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5bf429878914b819E.exit": ; preds = %13, %8 - %.sroa.04.0.i = phi i64 [ 0, %8 ], [ %15, %13 ] - %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %19 = load i64, ptr %18, align 8, !noundef !4 - %.not11 = icmp eq i64 %.sroa.04.0.i, %19 - br i1 %.not11, label %21, label %44 - -20: ; preds = %3 +13: ; preds = %3 tail call void @_ZN3std9panicking11begin_panic17h1e4a7cf559eb50c1E(ptr noalias noundef nonnull readonly align 1 @anon.e454849c71ff0ccf6bad19ade5623ee4.25, i64 noundef 39, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.e454849c71ff0ccf6bad19ade5623ee4.28) #17 unreachable @@ -1403,23 +1393,21 @@ _ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit: ; preds = % %32 = call noundef double @llvm.log.f64(double %31) %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 %34 = load ptr, ptr %33, align 8, !nonnull !4, !noundef !4 - %35 = and i64 %2, 2305843009213693951 - %.not.i = icmp eq i64 %35, 0 - br i1 %.not.i, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17h587648671d7b09fcE.exit", label %.lr.ph.i + br i1 %10, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17h587648671d7b09fcE.exit", label %.lr.ph.i .lr.ph.i: ; preds = %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit, %.lr.ph.i %.sroa.0.018.i = phi double [ %42, %.lr.ph.i ], [ 0.000000e+00, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit ] %.sroa.03.017.i = phi i64 [ %36, %.lr.ph.i ], [ 0, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit ] - %36 = add nuw nsw i64 %.sroa.03.017.i, 1 - %37 = getelementptr inbounds nuw double, ptr %34, i64 %.sroa.03.017.i - %38 = getelementptr inbounds nuw i64, ptr %1, i64 %.sroa.03.017.i + %36 = add nuw i64 %.sroa.03.017.i, 1 + %37 = getelementptr inbounds double, ptr %34, i64 %.sroa.03.017.i + %38 = getelementptr inbounds i64, ptr %1, i64 %.sroa.03.017.i %.val15.i = load double, ptr %37, align 8, !noalias !153, !noundef !4 %.val16.i = load i64, ptr %38, align 8, !noalias !153, !noundef !4 %39 = uitofp i64 %.val16.i to double %40 = call noundef double @llvm.log.f64(double %.val15.i) %41 = fmul double %40, %39 %42 = fadd double %.sroa.0.018.i, %41 - %exitcond.not.i = icmp eq i64 %36, %35 + %exitcond.not.i = icmp eq i64 %36, %2 br i1 %exitcond.not.i, label %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17h587648671d7b09fcE.exit", label %.lr.ph.i "_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4fold17h587648671d7b09fcE.exit": ; preds = %.lr.ph.i, %_ZN6statrs8function9factorial11multinomial17hf31164cf5f4b81f6E.exit diff --git a/bench/stat-rs/optimized/n94tvlll45kxl7r.ll b/bench/stat-rs/optimized/n94tvlll45kxl7r.ll index c8bffc5c450..ea85091b17e 100644 --- a/bench/stat-rs/optimized/n94tvlll45kxl7r.ll +++ b/bench/stat-rs/optimized/n94tvlll45kxl7r.ll @@ -534,26 +534,22 @@ define { i64, double } @"_ZN118_$LT$statrs..distribution..categorical..Categoric %6 = icmp eq i64 %5, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h81ab0c18d69fd862E.exit", label %7 -7: ; preds = %1 - %.idx = and i64 %5, 2305843009213693951 - br label %8 - -8: ; preds = %8, %7 - %.sroa.0.0.i = phi i64 [ 0, %7 ], [ %13, %8 ] - %.sroa.07.0.i = phi double [ 0.000000e+00, %7 ], [ %12, %8 ] - %9 = getelementptr inbounds double, ptr %3, i64 %.sroa.0.0.i - %.val.i = load double, ptr %9, align 8, !noundef !4 - %10 = uitofp i64 %.sroa.0.0.i to double - %11 = fmul double %.val.i, %10 - %12 = fadd double %.sroa.07.0.i, %11 - %13 = add nuw i64 %.sroa.0.0.i, 1 - %14 = icmp eq i64 %13, %.idx - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h81ab0c18d69fd862E.exit", label %8 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h81ab0c18d69fd862E.exit": ; preds = %8, %1 - %.sroa.04.0.i = phi double [ 0.000000e+00, %1 ], [ %12, %8 ] - %15 = insertvalue { i64, double } { i64 1, double poison }, double %.sroa.04.0.i, 1 - ret { i64, double } %15 +7: ; preds = %1, %7 + %.sroa.0.0.i = phi i64 [ %11, %.preheader ], [ 0, %1 ] + %.sroa.07.0.i = phi double [ %10, %.preheader ], [ 0.000000e+00, %1 ] + %7 = getelementptr inbounds double, ptr %3, i64 %.sroa.0.0.i + %.val.i = load double, ptr %7, align 8, !noundef !4 + %8 = uitofp i64 %.sroa.0.0.i to double + %9 = fmul double %.val.i, %8 + %10 = fadd double %.sroa.07.0.i, %9 + %11 = add nuw i64 %.sroa.0.0.i, 1 + %12 = icmp eq i64 %11, %5 + br i1 %12, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h81ab0c18d69fd862E.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h81ab0c18d69fd862E.exit":; preds = %.preheader, %1 + %.sroa.04.0.i = phi double [ 0.000000e+00, %1 ], [ %10, %.preheader ] + %13 = insertvalue { i64, double } { i64 1, double poison }, double %.sroa.04.0.i, 1 + ret { i64, double } %13 } ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(read, inaccessiblemem: readwrite) uwtable @@ -566,44 +562,36 @@ define { i64, double } @"_ZN118_$LT$statrs..distribution..categorical..Categoric %6 = icmp eq i64 %5, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h99a4fa11703a388cE.exit", label %7 -7: ; preds = %1 - %.idx.i = and i64 %5, 2305843009213693951 - br label %8 - -8: ; preds = %8, %7 - %.sroa.0.0.i.i = phi i64 [ 0, %7 ], [ %13, %8 ] - %.sroa.07.0.i.i = phi double [ 0.000000e+00, %7 ], [ %12, %8 ] - %9 = getelementptr inbounds double, ptr %3, i64 %.sroa.0.0.i.i - %.val.i.i = load double, ptr %9, align 8, !noalias !54, !noundef !4 - %10 = uitofp i64 %.sroa.0.0.i.i to double - %11 = fmul double %.val.i.i, %10 - %12 = fadd double %.sroa.07.0.i.i, %11 - %13 = add nuw i64 %.sroa.0.0.i.i, 1 - %14 = icmp eq i64 %13, %.idx.i - br i1 %14, label %"_ZN118_$LT$statrs..distribution..categorical..Categorical$u20$as$u20$statrs..statistics..traits..Distribution$LT$f64$GT$$GT$4mean17hb453a449ec7c72c3E.exit", label %8 - -"_ZN118_$LT$statrs..distribution..categorical..Categorical$u20$as$u20$statrs..statistics..traits..Distribution$LT$f64$GT$$GT$4mean17hb453a449ec7c72c3E.exit": ; preds = %8 - %.idx = and i64 %5, 2305843009213693951 - br label %15 - -15: ; preds = %15, %"_ZN118_$LT$statrs..distribution..categorical..Categorical$u20$as$u20$statrs..statistics..traits..Distribution$LT$f64$GT$$GT$4mean17hb453a449ec7c72c3E.exit" - %.sroa.2.0.i = phi i64 [ 0, %"_ZN118_$LT$statrs..distribution..categorical..Categorical$u20$as$u20$statrs..statistics..traits..Distribution$LT$f64$GT$$GT$4mean17hb453a449ec7c72c3E.exit" ], [ %22, %15 ] - %.sroa.07.0.i = phi double [ 0.000000e+00, %"_ZN118_$LT$statrs..distribution..categorical..Categorical$u20$as$u20$statrs..statistics..traits..Distribution$LT$f64$GT$$GT$4mean17hb453a449ec7c72c3E.exit" ], [ %21, %15 ] - %16 = getelementptr inbounds double, ptr %3, i64 %.sroa.2.0.i - %.val.i = load double, ptr %16, align 8, !noalias !57, !noundef !4 - %17 = uitofp i64 %.sroa.2.0.i to double - %18 = fsub double %17, %12 - %19 = fmul double %18, %18 - %20 = fmul double %.val.i, %19 - %21 = fadd double %.sroa.07.0.i, %20 - %22 = add nuw i64 %.sroa.2.0.i, 1 - %23 = icmp eq i64 %22, %.idx - br i1 %23, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h99a4fa11703a388cE.exit", label %15 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h99a4fa11703a388cE.exit": ; preds = %15, %1 - %.sroa.04.0.i = phi double [ 0.000000e+00, %1 ], [ %21, %15 ] - %24 = insertvalue { i64, double } { i64 1, double undef }, double %.sroa.04.0.i, 1 - ret { i64, double } %24 +7: ; preds = %1, %7 + %.sroa.0.0.i.i = phi i64 [ %11, %.preheader.i ], [ 0, %1 ] + %.sroa.07.0.i.i = phi double [ %10, %.preheader.i ], [ 0.000000e+00, %1 ] + %7 = getelementptr inbounds double, ptr %3, i64 %.sroa.0.0.i.i + %.val.i.i = load double, ptr %7, align 8, !noalias !54, !noundef !4 + %8 = uitofp i64 %.sroa.0.0.i.i to double + %9 = fmul double %.val.i.i, %8 + %10 = fadd double %.sroa.07.0.i.i, %9 + %11 = add nuw i64 %.sroa.0.0.i.i, 1 + %12 = icmp eq i64 %11, %5 + br i1 %12, label %7, label %7 + +15:; preds = %.preheader.i, %15 + %.sroa.2.0.i = phi i64 [ %19, %.preheader ], [ 0, %.preheader.i ] + %.sroa.07.0.i = phi double [ %18, %.preheader ], [ 0.000000e+00, %.preheader.i ] + %13 = getelementptr inbounds double, ptr %3, i64 %.sroa.2.0.i + %.val.i = load double, ptr %13, align 8, !noalias !57, !noundef !4 + %14 = uitofp i64 %.sroa.2.0.i to double + %15 = fsub double %14, %10 + %16 = fmul double %15, %15 + %17 = fmul double %.val.i, %16 + %18 = fadd double %.sroa.07.0.i, %17 + %19 = add nuw i64 %.sroa.2.0.i, 1 + %20 = icmp eq i64 %19, %5 + br i1 %20, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h99a4fa11703a388cE.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h99a4fa11703a388cE.exit":; preds = %7, %1 + %.sroa.04.0.i = phi double [ 0.000000e+00, %1 ], [ %18, %.preheader ] + %21 = insertvalue { i64, double } { i64 1, double undef }, double %.sroa.04.0.i, 1 + ret { i64, double } %21 } ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(read, inaccessiblemem: none) uwtable @@ -615,29 +603,25 @@ define { i64, double } @"_ZN118_$LT$statrs..distribution..categorical..Categoric %6 = icmp eq i64 %5, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfb234e092db85261E.exit", label %7 -7: ; preds = %1 - %.idx = and i64 %5, 2305843009213693951 - br label %8 - -8: ; preds = %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i", %7 - %.sroa.07.0.i = phi double [ 0.000000e+00, %7 ], [ %.sroa.0.0.i.i, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %16, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" ] - %9 = getelementptr inbounds double, ptr %3, i64 %.sroa.09.0.i - %10 = load double, ptr %9, align 8, !alias.scope !60, !noundef !4 - %11 = fcmp ogt double %10, 0.000000e+00 - br i1 %11, label %12, label %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" - -12: ; preds = %8 - %13 = tail call noundef double @llvm.log.f64(double %10) - %14 = fmul double %10, %13 - %15 = fadd double %.sroa.07.0.i, %14 +7: ; preds = %1, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" + %.sroa.07.0.i = phi double [ %.sroa.0.0.i.i, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" ], [ 0.000000e+00, %1 ] + %.sroa.09.0.i = phi i64 [ %14, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" ], [ 0, %1 ] + %7 = getelementptr inbounds double, ptr %3, i64 %.sroa.09.0.i + %8 = load double, ptr %7, align 8, !alias.scope !60, !noundef !4 + %9 = fcmp ogt double %8, 0.000000e+00 + br i1 %9, label %10, label %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" + +10:; preds = %.preheader + %11 = tail call noundef double @llvm.log.f64(double %8) + %12 = fmul double %8, %11 + %13 = fadd double %.sroa.07.0.i, %12 br label %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" -"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i": ; preds = %12, %8 - %.sroa.0.0.i.i = phi double [ %15, %12 ], [ %.sroa.07.0.i, %8 ] +"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i": ; preds = %10, %7 + %.sroa.0.0.i.i = phi double [ %13, %10 ], [ %.sroa.07.0.i, %.preheader ] %16 = add nuw i64 %.sroa.09.0.i, 1 - %17 = icmp eq i64 %16, %.idx - br i1 %17, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfb234e092db85261E.exit", label %8 + %17 = icmp eq i64 %16, %5 + br i1 %17, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfb234e092db85261E.exit", label %7 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hfb234e092db85261E.exit": ; preds = %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i", %1 %.sroa.04.0.i = phi double [ 0.000000e+00, %1 ], [ %.sroa.0.0.i.i, %"_ZN4core4iter8adapters6filter11filter_fold28_$u7b$$u7b$closure$u7d$$u7d$17h21f09dc7fea08e2cE.exit.i" ] @@ -774,43 +758,39 @@ define void @_ZN6statrs12distribution11categorical16prob_mass_to_cdf17h5d695172f %14 = icmp eq i64 %2, 0 br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5e64970187947f24E.exit", label %15 -15: ; preds = %10 - %.idx = and i64 %2, 2305843009213693951 - br label %16 - -16: ; preds = %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i", %15 - %17 = phi i64 [ 0, %15 ], [ %25, %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" ] - %.sroa.07.0.i = phi double [ 0.000000e+00, %15 ], [ %22, %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" ] - %18 = getelementptr inbounds double, ptr %1, i64 %17 - %.val22.i = load double, ptr %18, align 8, !noalias !73, !noundef !4 - %19 = load i64, ptr %5, align 8, !alias.scope !76, !noundef !4 - %20 = icmp eq i64 %17, %19 - br i1 %20, label %21, label %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" +15: ; preds = %10, %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" + %15 = phi i64 [ %23, %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" ], [ 0, %10 ] + %.sroa.07.0.i = phi double [ %20, %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" ], [ 0.000000e+00, %10 ] + %16 = getelementptr inbounds double, ptr %1, i64 %15 + %.val22.i = load double, ptr %16, align 8, !noalias !73, !noundef !4 + %17 = load i64, ptr %5, align 8, !alias.scope !76, !noundef !4 + %18 = icmp eq i64 %15, %17 + br i1 %18, label %19, label %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" -21: ; preds = %16 +19:; preds = %.preheader invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h8ae74b42406a7b03E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) to label %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i" unwind label %29 -"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i": ; preds = %21, %16 +"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i": ; preds = %19, %15 %22 = fadd double %.sroa.07.0.i, %.val22.i %23 = load ptr, ptr %12, align 8, !alias.scope !76, !nonnull !4, !noundef !4 %24 = getelementptr inbounds double, ptr %23, i64 %17 store double %22, ptr %24, align 8 - %25 = add i64 %17, 1 + %25 = add nuw i64 %17, 1 store i64 %25, ptr %13, align 8, !alias.scope !76 - %26 = icmp eq i64 %25, %.idx - br i1 %26, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5e64970187947f24E.exit", label %16 + %26 = icmp eq i64 %25, %2 + br i1 %26, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5e64970187947f24E.exit", label %15 27: ; preds = %3 %28 = load i64, ptr %9, align 8 tail call void @_ZN5alloc7raw_vec12handle_error17h0fc9691652206c4fE(i64 noundef %8, i64 %28) #19 unreachable -29: ; preds = %21 +29: ; preds = %19 %30 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$f64$GT$$GT$17h6cda13727dc6c8d4E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #20 - to label %33 unwind label %31 + to label %31 unwind label %31 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5e64970187947f24E.exit": ; preds = %"_ZN6statrs12distribution11categorical16prob_mass_to_cdf28_$u7b$$u7b$closure$u7d$$u7d$17hcbf7dbc4c77fbc29E.exit.i", %10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) diff --git a/bench/tokenizers-rs/optimized/1w676x6x6lprwvn5.ll b/bench/tokenizers-rs/optimized/1w676x6x6lprwvn5.ll index 22466df87a0..ed7332400bf 100644 --- a/bench/tokenizers-rs/optimized/1w676x6x6lprwvn5.ll +++ b/bench/tokenizers-rs/optimized/1w676x6x6lprwvn5.ll @@ -4674,27 +4674,23 @@ define internal noundef zeroext i1 @"_ZN60_$LT$alloc..string..String$u20$as$u20$ define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17h1c1d0af578f192f8E"(ptr noalias noundef writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { %4 = alloca { i64, [2 x i64] }, align 8 %5 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %6 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %7 = icmp eq i64 %2, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h555c1e7c1ea8fe24E.exit", label %8 -8: ; preds = %3 - %9 = and i64 %2, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.018.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.017.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 - %.val22.i = load i64, ptr %11, align 8, !noundef !9 - %12 = add i64 %.val22.i, %.018.i - %13 = add nuw i64 %.017.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h555c1e7c1ea8fe24E.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h555c1e7c1ea8fe24E.exit": ; preds = %10, %3 - %.016.i = phi i64 [ 0, %3 ], [ %12, %10 ] +8: ; preds = %3, %8 + %.018.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %.017.i = phi i64 [ %10, %.preheader ], [ 0, %3 ] + %8 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 + %.val22.i = load i64, ptr %8, align 8, !noundef !9 + %9 = add i64 %.val22.i, %.018.i + %10 = add nuw i64 %.017.i, 1 + %11 = icmp eq i64 %10, %2 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h555c1e7c1ea8fe24E.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h555c1e7c1ea8fe24E.exit":; preds = %.preheader, %3 + %.016.i = phi i64 [ 0, %3 ], [ %9, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h22ce503fc3989c72E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, i64 noundef %.016.i, i1 noundef zeroext false) @@ -4736,7 +4732,7 @@ _ZN5alloc7raw_vec14handle_reserve17hb34c9fd5df13d306E.exit: ; preds = %"_ZN91_$L %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr49drop_in_place$LT$alloc..vec..Vec$LT$usize$GT$$GT$17h4df85b94d3aa46c0E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #48 - to label %50 unwind label %48 + to label %47 unwind label %48 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h220eaee8d3e473daE.exit", %_ZN5alloc7raw_vec14handle_reserve17hb34c9fd5df13d306E.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) @@ -4795,27 +4791,23 @@ _ZN5alloc7raw_vec14handle_reserve17hb34c9fd5df13d306E.exit: ; preds = %"_ZN91_$L define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17h40ac60303ff4f72bE"(ptr noalias noundef writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { %4 = alloca { i64, [2 x i64] }, align 8 %5 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %6 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %7 = icmp eq i64 %2, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h810267dd1bd037d2E.exit", label %8 -8: ; preds = %3 - %9 = and i64 %2, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.018.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.017.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 - %.val22.i = load i64, ptr %11, align 8, !noundef !9 - %12 = add i64 %.val22.i, %.018.i - %13 = add nuw i64 %.017.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h810267dd1bd037d2E.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h810267dd1bd037d2E.exit": ; preds = %10, %3 - %.016.i = phi i64 [ 0, %3 ], [ %12, %10 ] +8: ; preds = %3, %8 + %.018.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %.017.i = phi i64 [ %10, %.preheader ], [ 0, %3 ] + %8 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 + %.val22.i = load i64, ptr %8, align 8, !noundef !9 + %9 = add i64 %.val22.i, %.018.i + %10 = add nuw i64 %.017.i, 1 + %11 = icmp eq i64 %10, %2 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h810267dd1bd037d2E.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h810267dd1bd037d2E.exit":; preds = %.preheader, %3 + %.016.i = phi i64 [ 0, %3 ], [ %9, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17hed42d3ed8aad0cbaE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, i64 noundef %.016.i, i1 noundef zeroext false) @@ -4857,7 +4849,7 @@ _ZN5alloc7raw_vec14handle_reserve17hcad0629ec913c222E.exit: ; preds = %"_ZN91_$L %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$$LP$usize$C$usize$RP$$GT$$GT$17h23980ae9e278212aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #48 - to label %50 unwind label %48 + to label %47 unwind label %48 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h8004269b75b2f46eE.exit", %_ZN5alloc7raw_vec14handle_reserve17hcad0629ec913c222E.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) @@ -4916,27 +4908,23 @@ _ZN5alloc7raw_vec14handle_reserve17hcad0629ec913c222E.exit: ; preds = %"_ZN91_$L define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17h47a50320b368c226E"(ptr noalias noundef writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { %4 = alloca { i64, [2 x i64] }, align 8 %5 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %6 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %7 = icmp eq i64 %2, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc31f9998c01e8523E.exit", label %8 -8: ; preds = %3 - %9 = and i64 %2, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.018.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.017.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 - %.val22.i = load i64, ptr %11, align 8, !noundef !9 - %12 = add i64 %.val22.i, %.018.i - %13 = add nuw i64 %.017.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc31f9998c01e8523E.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc31f9998c01e8523E.exit": ; preds = %10, %3 - %.016.i = phi i64 [ 0, %3 ], [ %12, %10 ] +8: ; preds = %3, %8 + %.018.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %.017.i = phi i64 [ %10, %.preheader ], [ 0, %3 ] + %8 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 + %.val22.i = load i64, ptr %8, align 8, !noundef !9 + %9 = add i64 %.val22.i, %.018.i + %10 = add nuw i64 %.017.i, 1 + %11 = icmp eq i64 %10, %2 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc31f9998c01e8523E.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc31f9998c01e8523E.exit":; preds = %.preheader, %3 + %.016.i = phi i64 [ 0, %3 ], [ %9, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17hb2f19d63fd0b1380E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, i64 noundef %.016.i, i1 noundef zeroext false) @@ -4978,7 +4966,7 @@ _ZN5alloc7raw_vec14handle_reserve17h9cca6a55c9ab7881E.exit: ; preds = %"_ZN91_$L %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$u32$GT$$GT$17h923e6f1c50177e35E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #48 - to label %50 unwind label %48 + to label %47 unwind label %48 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h23dcf570230d237cE.exit", %_ZN5alloc7raw_vec14handle_reserve17h9cca6a55c9ab7881E.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) diff --git a/bench/tokenizers-rs/optimized/40hmx6rev8evi2bx.ll b/bench/tokenizers-rs/optimized/40hmx6rev8evi2bx.ll index 96c2302c152..0fb8fba4b0d 100644 --- a/bench/tokenizers-rs/optimized/40hmx6rev8evi2bx.ll +++ b/bench/tokenizers-rs/optimized/40hmx6rev8evi2bx.ll @@ -9822,27 +9822,23 @@ define hidden noundef zeroext i1 @"_ZN60_$LT$alloc..string..String$u20$as$u20$co define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17hcf046c3ce59d61dcE"(ptr noalias noundef writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #5 personality ptr @rust_eh_personality { %4 = alloca { i64, [2 x i64] }, align 8 %5 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %6 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %7 = icmp eq i64 %2, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf65544b13a1d3baeE.exit", label %8 -8: ; preds = %3 - %9 = and i64 %2, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.018.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.017.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 - %.val22.i = load i64, ptr %11, align 8, !noundef !7 - %12 = add i64 %.val22.i, %.018.i - %13 = add nuw i64 %.017.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf65544b13a1d3baeE.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf65544b13a1d3baeE.exit": ; preds = %10, %3 - %.016.i = phi i64 [ 0, %3 ], [ %12, %10 ] +8: ; preds = %3, %8 + %.018.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %.017.i = phi i64 [ %10, %.preheader ], [ 0, %3 ] + %8 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 + %.val22.i = load i64, ptr %8, align 8, !noundef !7 + %9 = add i64 %.val22.i, %.018.i + %10 = add nuw i64 %.017.i, 1 + %11 = icmp eq i64 %10, %2 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf65544b13a1d3baeE.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf65544b13a1d3baeE.exit":; preds = %.preheader, %3 + %.016.i = phi i64 [ 0, %3 ], [ %9, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h714ac0a39d867de8E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, i64 noundef %.016.i, i1 noundef zeroext false) @@ -9919,27 +9915,23 @@ _ZN5alloc7raw_vec14handle_reserve17h6657b096d32d8628E.exit: ; preds = %"_ZN91_$L define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17hd49d216e4c3b73ceE"(ptr noalias noundef writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #5 personality ptr @rust_eh_personality { %4 = alloca { i64, [2 x i64] }, align 8 %5 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %6 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %7 = icmp eq i64 %2, 0 br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h312ce177590dc16cE.exit", label %8 -8: ; preds = %3 - %9 = and i64 %2, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.018.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.017.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 - %.val22.i = load i64, ptr %11, align 8, !noundef !7 - %12 = add i64 %.val22.i, %.018.i - %13 = add nuw i64 %.017.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h312ce177590dc16cE.exit", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h312ce177590dc16cE.exit": ; preds = %10, %3 - %.016.i = phi i64 [ 0, %3 ], [ %12, %10 ] +8: ; preds = %3, %8 + %.018.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %.017.i = phi i64 [ %10, %.preheader ], [ 0, %3 ] + %8 = getelementptr { ptr, i64 }, ptr %1, i64 %.017.i, i32 1 + %.val22.i = load i64, ptr %8, align 8, !noundef !7 + %9 = add i64 %.val22.i, %.018.i + %10 = add nuw i64 %.017.i, 1 + %11 = icmp eq i64 %10, %2 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h312ce177590dc16cE.exit", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h312ce177590dc16cE.exit":; preds = %.preheader, %3 + %.016.i = phi i64 [ 0, %3 ], [ %9, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$15try_allocate_in17h5bd9e90bcdfb7985E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, i64 noundef %.016.i, i1 noundef zeroext false) @@ -9981,7 +9973,7 @@ _ZN5alloc7raw_vec14handle_reserve17h9fe4c8e6eea48e1fE.exit: ; preds = %"_ZN91_$L %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr75drop_in_place$LT$alloc..vec..Vec$LT$core..option..Option$LT$u32$GT$$GT$$GT$17hde27c9591a87c0c9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #50 - to label %50 unwind label %48 + to label %47 unwind label %48 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17h61d2b4c6b6aa629fE.exit", %_ZN5alloc7raw_vec14handle_reserve17h9fe4c8e6eea48e1fE.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) diff --git a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll index 6a0bf146700..d5c4154813e 100644 --- a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll +++ b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll @@ -2684,27 +2684,23 @@ define void @"_ZN123_$LT$std..io..cursor..Cursor$LT$$RF$mut$u20$alloc..vec..Vec$ tail call void @llvm.experimental.noalias.scope.decl(metadata !566) tail call void @llvm.experimental.noalias.scope.decl(metadata !569) tail call void @llvm.experimental.noalias.scope.decl(metadata !571) - %.idx.i = shl nsw i64 %4, 4 - %8 = getelementptr inbounds i8, ptr %3, i64 %.idx.i + %.idx.i = shl nuw nsw i64 %4, 4 + %8 = getelementptr inbounds nuw i8, ptr %3, i64 %.idx.i %9 = icmp eq i64 %4, 0 br i1 %9, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %10 -10: ; preds = %5 - %11 = and i64 %4, 1152921504606846975 - br label %12 - -12: ; preds = %12, %10 - %.018.i.i = phi i64 [ 0, %10 ], [ %14, %12 ] - %.017.i.i = phi i64 [ 0, %10 ], [ %15, %12 ] - %13 = getelementptr { ptr, i64 }, ptr %3, i64 %.017.i.i, i32 1 - %.val.i.i = load i64, ptr %13, align 8, !alias.scope !571, !noalias !573, !noundef !4 - %14 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.018.i.i, i64 %.val.i.i) - %15 = add nuw i64 %.017.i.i, 1 - %16 = icmp eq i64 %15, %11 - br i1 %16, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %12 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i": ; preds = %12, %5 - %.0.i.i = phi i64 [ 0, %5 ], [ %14, %12 ] +10: ; preds = %5, %10 + %.018.i.i = phi i64 [ %11, %.preheader.i ], [ 0, %5 ] + %.017.i.i = phi i64 [ %12, %.preheader.i ], [ 0, %5 ] + %10 = getelementptr { ptr, i64 }, ptr %3, i64 %.017.i.i, i32 1 + %.val.i.i = load i64, ptr %10, align 8, !alias.scope !571, !noalias !573, !noundef !4 + %11 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.018.i.i, i64 %.val.i.i) + %12 = add nuw i64 %.017.i.i, 1 + %13 = icmp eq i64 %12, %4 + br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %10 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i":; preds = %.preheader.i, %5 + %.0.i.i = phi i64 [ 0, %5 ], [ %11, %.preheader.i ] %.val.i = load i64, ptr %6, align 8, !alias.scope !566, !noalias !575, !noundef !4 %17 = tail call i64 @llvm.uadd.sat.i64(i64 %.val.i, i64 %.0.i.i) %18 = load i64, ptr %7, align 8, !alias.scope !576, !noalias !579, !noundef !4 @@ -2864,43 +2860,39 @@ define void @"_ZN111_$LT$std..io..cursor..Cursor$LT$alloc..vec..Vec$LT$u8$GT$$GT tail call void @llvm.experimental.noalias.scope.decl(metadata !609) tail call void @llvm.experimental.noalias.scope.decl(metadata !612) tail call void @llvm.experimental.noalias.scope.decl(metadata !614) - %.idx.i = shl nsw i64 %4, 4 - %7 = getelementptr inbounds i8, ptr %3, i64 %.idx.i + %.idx.i = shl nuw nsw i64 %4, 4 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 %.idx.i %8 = icmp eq i64 %4, 0 - br i1 %8, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %9 - -9: ; preds = %5 - %10 = and i64 %4, 1152921504606846975 - br label %11 - -11: ; preds = %11, %9 - %.018.i.i = phi i64 [ 0, %9 ], [ %13, %11 ] - %.017.i.i = phi i64 [ 0, %9 ], [ %14, %11 ] - %12 = getelementptr { ptr, i64 }, ptr %3, i64 %.017.i.i, i32 1 - %.val.i.i = load i64, ptr %12, align 8, !alias.scope !614, !noalias !616, !noundef !4 - %13 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.018.i.i, i64 %.val.i.i) - %14 = add nuw i64 %.017.i.i, 1 - %15 = icmp eq i64 %14, %10 - br i1 %15, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %11 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i": ; preds = %11, %5 - %.0.i.i = phi i64 [ 0, %5 ], [ %13, %11 ] + br i1 %8, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %10 + +.preheader.i: ; preds = %5, %.preheader.i + %.018.i.i = phi i64 [ %10, %.preheader.i ], [ 0, %5 ] + %.017.i.i = phi i64 [ %11, %.preheader.i ], [ 0, %5 ] + %9 = getelementptr { ptr, i64 }, ptr %3, i64 %.017.i.i, i32 1 + %.val.i.i = load i64, ptr %9, align 8, !alias.scope !614, !noalias !616, !noundef !4 + %10 = tail call noundef i64 @llvm.uadd.sat.i64(i64 %.018.i.i, i64 %.val.i.i) + %11 = add nuw i64 %.017.i.i, 1 + %12 = icmp eq i64 %11, %4 + br i1 %12, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i", label %.preheader.i + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i": ; preds = %.preheader.i, %5 + %.0.i.i = phi i64 [ 0, %5 ], [ %10, %.preheader.i ] %.val.i = load i64, ptr %6, align 8, !alias.scope !609, !noalias !618, !noundef !4 - %16 = tail call i64 @llvm.uadd.sat.i64(i64 %.val.i, i64 %.0.i.i) - %17 = load i64, ptr %1, align 8, !alias.scope !619, !noalias !622, !noundef !4 - %18 = icmp ugt i64 %16, %17 - br i1 %18, label %19, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i" - -19: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i" - %20 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %21 = load i64, ptr %20, align 8, !alias.scope !619, !noalias !622, !noundef !4 - %22 = sub i64 %16, %21 - %23 = sub i64 %17, %21 - %24 = icmp ugt i64 %22, %23 - br i1 %24, label %25, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i" - -25: ; preds = %19 - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h9b5a37f6a0039ac0E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %21, i64 noundef %22), !noalias !622 + %13 = tail call i64 @llvm.uadd.sat.i64(i64 %.val.i, i64 %.0.i.i) + %14 = load i64, ptr %1, align 8, !alias.scope !619, !noalias !622, !noundef !4 + %15 = icmp ugt i64 %13, %14 + br i1 %15, label %16, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i" + +9: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i" + %17 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %21 = load i64, ptr %17, align 8, !alias.scope !619, !noalias !622, !noundef !4 + %19 = sub i64 %13, %18 + %20 = sub i64 %14, %18 + %21 = icmp ugt i64 %19, %20 + br i1 %21, label %22, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i" + +11: ; preds = %19 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h9b5a37f6a0039ac0E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %21, i64 noundef %19), !noalias !611 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h7b6ba70c8f321bc0E.exit.i.i": ; preds = %25, %19, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc958fea7e1f34a40E.exit.i" diff --git a/bench/typst-rs/optimized/18cop7j4xops9f9h.ll b/bench/typst-rs/optimized/18cop7j4xops9f9h.ll index bc7cfba6382..55e438b0562 100644 --- a/bench/typst-rs/optimized/18cop7j4xops9f9h.ll +++ b/bench/typst-rs/optimized/18cop7j4xops9f9h.ll @@ -4413,46 +4413,42 @@ _ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit: ; preds = %9 = icmp eq i64 %8, 0 br i1 %9, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9fd79faaa6e74095E.exit", label %10 -10: ; preds = %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit - %.idx = and i64 %8, 576460752303423487 - br label %11 - -11: ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i", %10 - %.017.i = phi i64 [ 0, %10 ], [ %24, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" ] - %.016.i = phi i64 [ 0, %10 ], [ %25, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" ] - %12 = getelementptr inbounds { { [24 x i8], i8, [7 x i8] } }, ptr %6, i64 %.016.i - %13 = getelementptr i8, ptr %12, i64 24 - %.val21.i = load i8, ptr %13, align 8, !range !13, !alias.scope !870, !noundef !15 - %14 = and i8 %.val21.i, -2 - %15 = icmp eq i8 %14, -126 - %16 = add nsw i8 %.val21.i, 127 - %trunc.i.i.i.i.i = select i1 %15, i8 %16, i8 0 - switch i8 %trunc.i.i.i.i.i, label %17 [ +10: ; preds = %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" + %.017.i = phi i64 [ %22, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" ], [ 0, %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit ] + %.016.i = phi i64 [ %23, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" ], [ 0, %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit ] + %10 = getelementptr inbounds { { [24 x i8], i8, [7 x i8] } }, ptr %6, i64 %.016.i + %11 = getelementptr i8, ptr %10, i64 24 + %.val21.i = load i8, ptr %11, align 8, !range !13, !alias.scope !870, !noundef !15 + %12 = and i8 %.val21.i, -2 + %13 = icmp eq i8 %12, -126 + %14 = add nsw i8 %.val21.i, 127 + %trunc.i.i.i.i.i = select i1 %13, i8 %14, i8 0 + switch i8 %trunc.i.i.i.i.i, label %15 [ i8 0, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" i8 1, label %18 i8 2, label %21 ] -17: ; preds = %11 +17: ; preds = %10 unreachable -18: ; preds = %11 - %.val.i = load ptr, ptr %12, align 8, !nonnull !15, !noundef !15 +18: ; preds = %10 + %.val.i = load ptr, ptr %10, align 8, !nonnull !15, !noundef !15 %19 = getelementptr inbounds nuw i8, ptr %.val.i, i64 73 %20 = load i8, ptr %19, align 1, !range !16, !noalias !875, !noundef !15 br label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" -21: ; preds = %11 +21: ; preds = %10 br label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" -"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i": ; preds = %21, %18, %11 - %.0.i.i.i.i.i = phi i8 [ %20, %18 ], [ -128, %21 ], [ %.val21.i, %11 ] +"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i": ; preds = %21, %18, %10 + %.0.i.i.i.i.i = phi i8 [ %20, %16 ], [ -128, %19 ], [ %.val21.i, %.preheader ] %22 = icmp eq i8 %.0.i.i.i.i.i, 52 %23 = zext i1 %22 to i64 %24 = add i64 %.017.i, %23 %25 = add nuw i64 %.016.i, 1 - %26 = icmp eq i64 %25, %.idx - br i1 %26, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9fd79faaa6e74095E.exit", label %11 + %26 = icmp eq i64 %25, %8 + br i1 %26, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9fd79faaa6e74095E.exit", label %10 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9fd79faaa6e74095E.exit": ; preds = %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i", %1, %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit %.0.i = phi i64 [ 0, %_ZN12typst_syntax4node10SyntaxNode8children17h0427b3d87fa80909E.exit ], [ 0, %1 ], [ %24, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h665ac532187424a4E.exit.i" ] diff --git a/bench/typst-rs/optimized/18i60ist7isq7y2m.ll b/bench/typst-rs/optimized/18i60ist7isq7y2m.ll index 690bef54d87..1cbc7bdd75e 100644 --- a/bench/typst-rs/optimized/18i60ist7isq7y2m.ll +++ b/bench/typst-rs/optimized/18i60ist7isq7y2m.ll @@ -2091,32 +2091,28 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no %47 = getelementptr inbounds nuw i8, ptr %.pre, i64 24 %48 = load i32, ptr %47, align 8, !range !425, !alias.scope !426, !noalias !433, !noundef !37 %49 = invoke noundef i32 @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha137c480c5d8d988E.llvm.7489863399021701693"(ptr noundef nonnull %46, ptr noundef nonnull %45, i32 noundef %48) - to label %50 unwind label %.thread - -50: ; preds = %44 - %.idx68 = and i64 %42, 576460752303423487 - br label %51 - -51: ; preds = %51, %50 - %.018.i = phi i32 [ 0, %50 ], [ %54, %51 ] - %.017.i = phi i64 [ 0, %50 ], [ %55, %51 ] - %52 = getelementptr { { { i64, ptr, {} }, i64 }, { i32, i32 } }, ptr %.pre, i64 %.017.i, i32 1, i32 1 - %.val22.i = load i32, ptr %52, align 4, !range !425, !noalias !436, !noundef !37 - %53 = add i32 %.018.i, %38 - %54 = add i32 %53, %.val22.i - %55 = add nuw i64 %.017.i, 1 - %56 = icmp eq i64 %55, %.idx68 - br i1 %56, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7f1ff735ec5cc467E.exit", label %51 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7f1ff735ec5cc467E.exit": ; preds = %51, %34 - %57 = phi i32 [ 0, %34 ], [ %49, %51 ] - %.0.i = phi i32 [ 0, %34 ], [ %54, %51 ] - %58 = add i32 %57, %39 - %59 = add i32 %.0.i, %38 + to label %.preheader unwind label %.thread + +50: ; preds = %44, %50 + %.018.i = phi i32 [ %52, %.preheader ], [ 0, %44 ] + %.017.i = phi i64 [ %53, %.preheader ], [ 0, %44 ] + %50 = getelementptr { { { i64, ptr, {} }, i64 }, { i32, i32 } }, ptr %.pre, i64 %.017.i, i32 1, i32 1 + %.val22.i = load i32, ptr %50, align 4, !range !425, !noalias !436, !noundef !37 + %51 = add i32 %.018.i, %38 + %52 = add i32 %51, %.val22.i + %53 = add nuw i64 %.017.i, 1 + %54 = icmp eq i64 %53, %42 + br i1 %54, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7f1ff735ec5cc467E.exit", label %50 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7f1ff735ec5cc467E.exit":; preds = %50, %34 + %55 = phi i32 [ 0, %34 ], [ %49, %.preheader ] + %.0.i = phi i32 [ 0, %34 ], [ %52, %.preheader ] + %56 = add i32 %55, %39 + %57 = add i32 %.0.i, %38 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) - invoke void @_ZN9tiny_skia6pixmap6Pixmap3new17hcd265c6525366ef5E(ptr noalias noundef nonnull sret({ i64, [3 x i64] }) align 8 captures(none) dereferenceable(32) %17, i32 noundef %58, i32 noundef %59) - to label %60 unwind label %.thread + invoke void @_ZN9tiny_skia6pixmap6Pixmap3new17hcd265c6525366ef5E(ptr noalias noundef nonnull sret({ i64, [3 x i64] }) align 8 captures(none) dereferenceable(32) %17, i32 noundef %56, i32 noundef %57) + to label %58 unwind label %.thread 60: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7f1ff735ec5cc467E.exit" %61 = load i64, ptr %17, align 8, !range !347, !noundef !37 @@ -2125,7 +2121,7 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no 63: ; preds = %60 invoke void @_ZN4core6option13unwrap_failed17hac39b9b7507453f8E(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d826bc7b5104a02f59040d00c4e2e6a7.28) #19 - to label %74 unwind label %.thread + to label %72 unwind label %.thread 64: ; preds = %60 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 32, i1 false) @@ -2143,15 +2139,15 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no .noexc43: ; preds = %.noexc42 %65 = load float, ptr %10, align 4, !noalias !439, !noundef !37 %66 = getelementptr inbounds nuw i8, ptr %10, i64 4 + %65 = load float, ptr %64, align 4, !noalias !439, !noundef !37 + %66 = getelementptr inbounds nuw i8, ptr %10, i64 8 %67 = load float, ptr %66, align 4, !noalias !439, !noundef !37 - %68 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %68 = getelementptr inbounds nuw i8, ptr %10, i64 12 %69 = load float, ptr %68, align 4, !noalias !439, !noundef !37 - %70 = getelementptr inbounds nuw i8, ptr %10, i64 12 - %71 = load float, ptr %70, align 4, !noalias !439, !noundef !37 call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %9), !noalias !439 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !439 call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %8), !noalias !439 - invoke void @_ZN9tiny_skia5color5Color9from_rgba17hedca817bd27208dcE(ptr noalias noundef nonnull sret({ i32, [4 x i32] }) align 4 captures(none) dereferenceable(20) %8, float noundef %65, float noundef %67, float noundef %69, float noundef %71) + invoke void @_ZN9tiny_skia5color5Color9from_rgba17hedca817bd27208dcE(ptr noalias noundef nonnull sret({ i32, [4 x i32] }) align 4 captures(none) dereferenceable(20) %8, float noundef %63, float noundef %65, float noundef %67, float noundef %69) to label %.noexc44 unwind label %75 .noexc44: ; preds = %.noexc43 @@ -2170,13 +2166,13 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no unreachable "_ZN4core3ptr85drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$tiny_skia..pixmap..Pixmap$GT$$GT$17hc6ed4a196d20616dE.exit": ; preds = %96, %75 - %.2 = phi i1 [ %.1, %75 ], [ false, %96 ] - %.pn38 = phi { ptr, i32 } [ %76, %75 ], [ %.pn, %96 ] + %.2 = phi i1 [ %.1, %73 ], [ false, %94 ] + %.pn38 = phi { ptr, i32 } [ %76, %73 ], [ %.pn, %94 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$tiny_skia..pixmap..Pixmap$GT$17h14d66a72b70b43edE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %18) #17 to label %32 unwind label %123 75: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.thread", %73, %.noexc43, %.noexc42, %64, %77 - %.1 = phi i1 [ true, %77 ], [ true, %64 ], [ true, %.noexc42 ], [ true, %.noexc43 ], [ true, %73 ], [ false, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.thread" ] + %.1 = phi i1 [ true, %75 ], [ true, %62 ], [ true, %.noexc42 ], [ true, %.noexc43 ], [ true, %71 ], [ false, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.thread" ] %76 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr85drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$tiny_skia..pixmap..Pixmap$GT$$GT$17hc6ed4a196d20616dE.exit" @@ -2186,7 +2182,7 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(16) %78, i64 16, i1 false), !noalias !443 call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %8), !noalias !439 invoke void @_ZN9tiny_skia6pixmap6Pixmap4fill17h93bd7464a49947b5E(ptr noalias noundef nonnull align 8 dereferenceable(32) %18, ptr noalias noundef nonnull align 4 captures(none) dereferenceable(16) %16) - to label %79 unwind label %75 + to label %77 unwind label %75 79: ; preds = %77 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) @@ -2224,7 +2220,7 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no br label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit" 96: ; preds = %107, %97 - %.pn = phi { ptr, i32 } [ %98, %97 ], [ %108, %107 ] + %.pn = phi { ptr, i32 } [ %98, %95 ], [ %108, %105 ] invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8de2702ee0a3e2e4E.llvm.7454132670541690561"(ptr noalias noundef nonnull align 8 dereferenceable(32) %15) to label %"_ZN4core3ptr85drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$tiny_skia..pixmap..Pixmap$GT$$GT$17hc6ed4a196d20616dE.exit" unwind label %123 @@ -2234,8 +2230,8 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no br label %96 "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.lr.ph", %117 - %99 = phi ptr [ %.pre, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.lr.ph" ], [ %121, %117 ] - %.03669 = phi i32 [ %38, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.lr.ph" ], [ %119, %117 ] + %99 = phi ptr [ %.pre, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.lr.ph" ], [ %121, %115 ] + %.03669 = phi i32 [ %38, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.lr.ph" ], [ %119, %115 ] call void @llvm.experimental.noalias.scope.decl(metadata !444) %100 = getelementptr inbounds nuw i8, ptr %99, i64 32 store ptr %100, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !444, !noalias !447 @@ -2270,12 +2266,12 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) store float 1.000000e+00, ptr %11, align 4 store float 0.000000e+00, ptr %89, align 4 + store float 0.000000e+00, ptr %88, align 4 + store float 1.000000e+00, ptr %89, align 4 store float 0.000000e+00, ptr %90, align 4 - store float 1.000000e+00, ptr %91, align 4 - store float 0.000000e+00, ptr %92, align 4 - store float 0.000000e+00, ptr %93, align 4 + store float 0.000000e+00, ptr %91, align 4 invoke void @"_ZN9tiny_skia7painter43_$LT$impl$u20$tiny_skia..pixmap..Pixmap$GT$11draw_pixmap17he1e7068e60728dfdE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %18, i32 noundef %38, i32 noundef %.03669, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 4 dereferenceable(8) %12, ptr noalias noundef nonnull align 4 captures(none) dereferenceable(24) %11, ptr noalias noundef readonly align 8 dereferenceable_or_null(32) null) - to label %109 unwind label %107 + to label %107 unwind label %107 "_ZN4core3ptr85drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$tiny_skia..pixmap..Pixmap$GT$$GT$17hc6ed4a196d20616dE.exit48": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h05a65a3cd3b47184E.exit.thread" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) @@ -2288,7 +2284,7 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no %108 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$tiny_skia..pixmap..Pixmap$GT$17h14d66a72b70b43edE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #17 - to label %96 unwind label %123 + to label %94 unwind label %123 109: ; preds = %102 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) @@ -2333,13 +2329,13 @@ define void @_ZN12typst_render13render_merged17h2fe5bef395a54505E(ptr noalias no unreachable 125: ; preds = %126, %32 - %.pn4061 = phi { ptr, i32 } [ %.pn4062, %126 ], [ %.pn38, %32 ] + %.pn4061 = phi { ptr, i32 } [ %.pn4062, %124 ], [ %.pn38, %32 ] resume { ptr, i32 } %.pn4061 126: ; preds = %.thread, %32 %.pn4062 = phi { ptr, i32 } [ %33, %.thread ], [ %.pn38, %32 ] invoke void @"_ZN4core3ptr69drop_in_place$LT$alloc..vec..Vec$LT$tiny_skia..pixmap..Pixmap$GT$$GT$17hc5d9ee9fe57807deE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %20) #17 - to label %125 unwind label %123 + to label %123 unwind label %123 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/typst-rs/optimized/3kgmqnxcsl3z3n0n.ll b/bench/typst-rs/optimized/3kgmqnxcsl3z3n0n.ll index c91b628e3be..d2e9802253a 100644 --- a/bench/typst-rs/optimized/3kgmqnxcsl3z3n0n.ll +++ b/bench/typst-rs/optimized/3kgmqnxcsl3z3n0n.ll @@ -54938,35 +54938,34 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h60cff9f29e6dc7 tail call void @llvm.experimental.noalias.scope.decl(metadata !15448) tail call void @llvm.experimental.noalias.scope.decl(metadata !15451) tail call void @llvm.experimental.noalias.scope.decl(metadata !15454) - %26 = and i64 %.sroa.8.042, 1152921504606846975 - br label %27 - -27: ; preds = %27, %25 - %.017.i.i.i = phi i64 [ 0, %25 ], [ %29, %27 ] - %.016.i.i.i = phi i64 [ 0, %25 ], [ %30, %27 ] - %28 = getelementptr { { { ptr, i64 }, {} } }, ptr %.sroa.0.043, i64 %.016.i.i.i, i32 0, i32 0, i32 1 - %.val.i.i.i = load i64, ptr %28, align 8, !alias.scope !15456, !noalias !15457, !noundef !4 - %29 = add i64 %.val.i.i.i, %.017.i.i.i - %30 = add nuw i64 %.016.i.i.i, 1 - %31 = icmp eq i64 %30, %26 - br i1 %31, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i", label %27 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i": ; preds = %27 + br label %.preheader.i.i + +.preheader.i.i: ; preds = %25, %.preheader.i.i + %.017.i.i.i = phi i64 [ %27, %.preheader.i.i ], [ 0, %25 ] + %.017.i.i.i = phi i64 [ %28, %.preheader.i.i ], [ 0, %25 ] + %26 = getelementptr { { { ptr, i64 }, {} } }, ptr %.sroa.0.043, i64 %.016.i.i.i, i32 0, i32 0, i32 1 + %.val.i.i.i = load i64, ptr %26, align 8, !alias.scope !15456, !noalias !15457, !noundef !4 + %27 = add i64 %.val.i.i.i, %.017.i.i.i + %29 = add nuw i64 %.016.i.i.i, 1 + %29 = icmp eq i64 %28, %.sroa.8.042 + br i1 %29, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i", label %.preheader.i.i + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i": ; preds = %.preheader.i.i %.idx.i.i = shl i64 %.sroa.8.042, 4 %32 = getelementptr inbounds i8, ptr %.sroa.0.043, i64 %.idx.i.i %33 = load i64, ptr %23, align 8, !alias.scope !15460, !noalias !15463, !noundef !4 %34 = load i64, ptr %.val7, align 8, !alias.scope !15460, !noalias !15463, !noundef !4 %35 = sub i64 %34, %33 - %36 = icmp ugt i64 %29, %35 + %36 = icmp ugt i64 %27, %35 br i1 %36, label %37, label %.lr.ph.i.i.preheader 37: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i" - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hbf91a5c39232730fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %.val7, i64 noundef %33, i64 noundef %29), !noalias !15463 + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hbf91a5c39232730fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %.val7, i64 noundef %33, i64 noundef %27), !noalias !15463 %.pre.i.pre.i = load i64, ptr %23, align 8, !alias.scope !15464, !noalias !15471 br label %.lr.ph.i.i.preheader .lr.ph.i.i.preheader: ; preds = %37, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i" - %.ph = phi i64 [ %33, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i" ], [ %.pre.i.pre.i, %37 ] + %.ph = phi i64 [ %33, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i.i" ], [ %.pre.i.pre.i, %35 ] br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.lr.ph.i.i.preheader, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i.i" @@ -54987,7 +54986,7 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h60cff9f29e6dc7 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i.i": ; preds = %46, %.lr.ph.i.i - %47 = phi i64 [ %38, %.lr.ph.i.i ], [ %.pre.i.i.i.i, %46 ] + %47 = phi i64 [ %38, %.lr.ph.i.i ], [ %.pre.i.i.i.i, %44 ] %48 = load ptr, ptr %24, align 8, !alias.scope !15473, !noalias !15471, !nonnull !4, !noundef !4 %49 = getelementptr inbounds i8, ptr %48, i64 %47 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %49, ptr nonnull readonly align 1 %40, i64 %42, i1 false), !noalias !15463 @@ -54998,11 +54997,11 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h60cff9f29e6dc7 br i1 %52, label %53, label %.lr.ph.i.i .loopexit: ; preds = %53, %.thread.i19, %18, %3 - %.0 = phi ptr [ null, %3 ], [ null, %18 ], [ null, %.thread.i19 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.53, %53 ] + %.0 = phi ptr [ null, %3 ], [ null, %18 ], [ null, %.thread.i19 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.53, %51 ] ret ptr %.0 53: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i.i" - %54 = icmp eq i64 %29, 0 + %54 = icmp eq i64 %27, 0 br i1 %54, label %.loopexit, label %.lr.ph.preheader.i9 .lr.ph.preheader.i9: ; preds = %53 @@ -55012,15 +55011,15 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h60cff9f29e6dc7 br label %.lr.ph.i10 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h97a73c9595804feeE.exit.thread.i15": ; preds = %61, %.lr.ph.i10 - %.017.lcssa.i16 = phi i64 [ %.01723.i12, %.lr.ph.i10 ], [ %62, %61 ] - %.0.lcssa.i17 = phi i64 [ %.024.i11, %.lr.ph.i10 ], [ %57, %61 ] + %.017.lcssa.i16 = phi i64 [ %.01723.i12, %.lr.ph.i10 ], [ %62, %59 ] + %.0.lcssa.i17 = phi i64 [ %.024.i11, %.lr.ph.i10 ], [ %57, %59 ] %58 = icmp ugt i64 %.0.lcssa.i17, %.sroa.8.042 br i1 %58, label %.noexc, label %66 .lr.ph.i10: ; preds = %61, %.lr.ph.preheader.i9 - %.024.i11 = phi i64 [ %64, %61 ], [ 0, %.lr.ph.preheader.i9 ] - %.01723.i12 = phi i64 [ %62, %61 ], [ %29, %.lr.ph.preheader.i9 ] - %.sroa.0.022.i13 = phi ptr [ %63, %61 ], [ %.sroa.0.043, %.lr.ph.preheader.i9 ] + %.024.i11 = phi i64 [ %64, %59 ], [ 0, %.lr.ph.preheader.i9 ] + %.01723.i12 = phi i64 [ %62, %59 ], [ %27, %.lr.ph.preheader.i9 ] + %.sroa.0.022.i13 = phi ptr [ %63, %59 ], [ %.sroa.0.043, %.lr.ph.preheader.i9 ] %59 = getelementptr inbounds nuw i8, ptr %.sroa.0.022.i13, i64 8 %60 = load i64, ptr %59, align 8, !noalias !15474, !noundef !4 %.not.i14 = icmp ult i64 %.01723.i12, %60 @@ -55052,13 +55051,13 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h60cff9f29e6dc7 br label %.invoke .invoke: ; preds = %77, %71 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %77 ], [ %.sink.sroa.gep78, %71 ] - %.sink.sroa.phi79 = phi ptr [ %.sink.sroa.gep80, %77 ], [ %.sink.sroa.gep81, %71 ] - %.sink.sroa.phi82 = phi ptr [ %.sink.sroa.gep83, %77 ], [ %.sink.sroa.gep84, %71 ] - %.sink.sroa.phi85 = phi ptr [ %.sink.sroa.gep86, %77 ], [ %.sink.sroa.gep87, %71 ] - %.sink = phi ptr [ %4, %77 ], [ %5, %71 ] - %anon.ecbbdf4ce99fb387dde54de6349d4c38.69.sink = phi ptr [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.69, %77 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.64, %71 ] - %72 = phi ptr [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.71, %77 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.65, %71 ] + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %75 ], [ %.sink.sroa.gep78, %69 ] + %.sink.sroa.phi79 = phi ptr [ %.sink.sroa.gep80, %75 ], [ %.sink.sroa.gep81, %69 ] + %.sink.sroa.phi82 = phi ptr [ %.sink.sroa.gep83, %75 ], [ %.sink.sroa.gep84, %69 ] + %.sink.sroa.phi85 = phi ptr [ %.sink.sroa.gep86, %75 ], [ %.sink.sroa.gep87, %69 ] + %.sink = phi ptr [ %4, %75 ], [ %5, %69 ] + %anon.ecbbdf4ce99fb387dde54de6349d4c38.69.sink = phi ptr [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.69, %75 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.64, %69 ] + %72 = phi ptr [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.71, %75 ], [ @anon.ecbbdf4ce99fb387dde54de6349d4c38.65, %69 ] store ptr %anon.ecbbdf4ce99fb387dde54de6349d4c38.69.sink, ptr %.sink, align 8, !noalias !15474 store i64 1, ptr %.sink.sroa.phi85, align 8, !noalias !15474 store ptr null, ptr %.sink.sroa.phi82, align 8, !noalias !15474 diff --git a/bench/typst-rs/optimized/49m3cs7hus53ztof.ll b/bench/typst-rs/optimized/49m3cs7hus53ztof.ll index 54f96eb07b0..660bb247762 100644 --- a/bench/typst-rs/optimized/49m3cs7hus53ztof.ll +++ b/bench/typst-rs/optimized/49m3cs7hus53ztof.ll @@ -34831,27 +34831,23 @@ define hidden noundef float @"_ZN60_$LT$f32$u20$as$u20$core..ops..arith..Mul$LT$ ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$GT$$GT$6concat17h2800d43625f886bdE"(ptr noalias noundef writeonly sret({ { i64, ptr, {} }, i64 }) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 captures(address) %1, i64 noundef %2) unnamed_addr #4 personality ptr @rust_eh_personality { %4 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.idx = shl nsw i64 %2, 4 - %5 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %5 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %6 = icmp eq i64 %2, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit", label %7 -7: ; preds = %3 - %8 = and i64 %2, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.017.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.016.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { ptr, i64 }, ptr %1, i64 %.016.i, i32 1 - %.val21.i = load i64, ptr %10, align 8, !noundef !16 - %11 = add i64 %.val21.i, %.017.i - %12 = add nuw i64 %.016.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit": ; preds = %9, %3 - %.0.i = phi i64 [ 0, %3 ], [ %11, %9 ] +7: ; preds = %3, %7 + %.017.i = phi i64 [ %8, %.preheader ], [ 0, %3 ] + %.016.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %7 = getelementptr { ptr, i64 }, ptr %1, i64 %.016.i, i32 1 + %.val21.i = load i64, ptr %7, align 8, !noundef !16 + %8 = add i64 %.val21.i, %.017.i + %9 = add nuw i64 %.016.i, 1 + %10 = icmp eq i64 %9, %2 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit":; preds = %.preheader, %3 + %.0.i = phi i64 [ 0, %3 ], [ %8, %.preheader ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) %14 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6a68132a218671f8E"(i64 noundef %.0.i, i1 noundef zeroext false) %15 = extractvalue { i64, ptr } %14, 0 @@ -34867,7 +34863,7 @@ define hidden void @"_ZN61_$LT$$u5b$V$u5d$$u20$as$u20$alloc..slice..Concat$LT$T$ %20 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %4) #75 - to label %36 unwind label %34 + to label %33 unwind label %34 ._crit_edge: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17ha1cfcb794c2de59fE.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) @@ -37891,22 +37887,18 @@ define hidden noundef i64 @"_ZN7zerovec3ule6encode14EncodeAsVarULE18encode_var_u %3 = icmp eq i64 %1, 0 br i1 %3, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4e126311d4415e4eE.llvm.12777920187102919001.exit", label %4 -4: ; preds = %2 - %.idx = and i64 %1, 1152921504606846975 - br label %5 - -5: ; preds = %5, %4 - %.017.i = phi i64 [ 0, %4 ], [ %7, %5 ] - %.016.i = phi i64 [ 0, %4 ], [ %8, %5 ] - %6 = getelementptr { ptr, i64 }, ptr %0, i64 %.016.i, i32 1 - %.val.i = load i64, ptr %6, align 8, !noundef !16 - %7 = add i64 %.val.i, %.017.i - %8 = add nuw i64 %.016.i, 1 - %9 = icmp eq i64 %8, %.idx - br i1 %9, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4e126311d4415e4eE.llvm.12777920187102919001.exit", label %5 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4e126311d4415e4eE.llvm.12777920187102919001.exit": ; preds = %5, %2 - %.0.i = phi i64 [ 0, %2 ], [ %7, %5 ] +4: ; preds = %2, %7 + %.017.i = phi i64 [ %5, %.preheader ], [ 0, %2 ] + %.016.i = phi i64 [ %6, %.preheader ], [ 0, %2 ] + %4 = getelementptr { ptr, i64 }, ptr %0, i64 %.016.i, i32 1 + %.val.i = load i64, ptr %4, align 8, !noundef !16 + %5 = add i64 %.val.i, %.017.i + %6 = add nuw i64 %.016.i, 1 + %7 = icmp eq i64 %6, %1 + br i1 %7, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4e126311d4415e4eE.llvm.12777920187102919001.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4e126311d4415e4eE.llvm.12777920187102919001.exit":; preds = %.preheader, %2 + %.0.i = phi i64 [ 0, %2 ], [ %5, %.preheader ] ret i64 %.0.i } diff --git a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll index 66e147ac798..50231564c58 100644 --- a/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll +++ b/bench/typst-rs/optimized/59tuvc5m3xlovl3o.ll @@ -70999,25 +70999,21 @@ define void @_ZN5typst4math8fragment13GlyphFragment3new17ha82d380105918fa6E(ptr %18 = icmp eq i64 %17, 0 br i1 %18, label %_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit, label %19 -19: ; preds = %13 - %.idx.i = and i64 %17, 288230376151711743 - br label %20 - -20: ; preds = %20, %19 - %.018.i.i = phi i16 [ %.0, %19 ], [ %.0.i.i.i.i, %20 ] - %.017.i.i = phi i64 [ 0, %19 ], [ %25, %20 ] - %21 = getelementptr inbounds { i64, [7 x i64] }, ptr %15, i64 %.017.i.i - %22 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %21, i16 noundef %.018.i.i), !noalias !12350 - %23 = extractvalue { i16, i16 } %22, 0 - %switch.i.i.i.i = icmp eq i16 %23, 0 - %24 = extractvalue { i16, i16 } %22, 1 - %.0.i.i.i.i = select i1 %switch.i.i.i.i, i16 %.018.i.i, i16 %24 - %25 = add nuw i64 %.017.i.i, 1 - %26 = icmp eq i64 %25, %.idx.i - br i1 %26, label %_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit, label %20 - -_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit: ; preds = %20, %5, %13 - %.0.i = phi i16 [ %.0, %5 ], [ %.0, %13 ], [ %.0.i.i.i.i, %20 ] +19: ; preds = %13, %19 + %.018.i.i = phi i16 [ %.0.i.i.i.i, %.preheader.i ], [ %.0, %13 ] + %.017.i.i = phi i64 [ %23, %.preheader.i ], [ 0, %13 ] + %19 = getelementptr inbounds { i64, [7 x i64] }, ptr %15, i64 %.017.i.i + %20 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %19, i16 noundef %.018.i.i), !noalias !12350 + %21 = extractvalue { i16, i16 } %20, 0 + %switch.i.i.i.i = icmp eq i16 %21, 0 + %22 = extractvalue { i16, i16 } %20, 1 + %.0.i.i.i.i = select i1 %switch.i.i.i.i, i16 %.018.i.i, i16 %22 + %23 = add nuw i64 %.017.i.i, 1 + %switch.i.i.i.i = icmp eq i64 %23, %17 + br i1 %24, label %22, label %19 + +22:; preds = %.preheader.i, %5, %13 + %.0.i = phi i16 [ %.0, %5 ], [ %.0, %13 ], [ %.0.i.i.i.i, %.preheader.i ] tail call void @_ZN5typst4math8fragment13GlyphFragment7with_id17hf2229dd5f8a15adfE(ptr noalias noundef nonnull sret({ { { [6 x i64] }, i64, [1 x i64] }, double, double, double, double, double, double, double, ptr, i64, { i32, [5 x i32] }, { [3 x i8], i8 }, i32, i16, i8, i8, i8, [3 x i8] }) align 16 captures(none) dereferenceable(176) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(544) %1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %2, i32 noundef %3, i16 noundef %.0.i, i64 noundef %4) ret void } @@ -71048,25 +71044,21 @@ define void @_ZN5typst4math8fragment13GlyphFragment7try_new17hffe8a4bc8a89c39fE( %20 = icmp eq i64 %19, 0 br i1 %20, label %_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit, label %21 -21: ; preds = %15 - %.idx.i = and i64 %19, 288230376151711743 - br label %22 +21: ; preds = %15, %19 + %.018.i.i = phi i16 [ %.0.i.i.i.i, %.preheader.i ], [ %11, %15 ] + %.017.i.i = phi i64 [ %25, %.preheader.i ], [ 0, %15 ] + %21 = getelementptr inbounds { i64, [7 x i64] }, ptr %17, i64 %.017.i.i + %22 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %21, i16 noundef %.018.i.i), !noalias !12353 + %23 = extractvalue { i16, i16 } %22, 0 + %switch.i.i.i.i = icmp eq i16 %23, 0 + %24 = extractvalue { i16, i16 } %22, 1 + %.0.i.i.i.i = select i1 %switch.i.i.i.i, i16 %.018.i.i, i16 %24 + %25 = add nuw i64 %.017.i.i, 1 + %26 = icmp eq i64 %25, %19 + br i1 %26, label %_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit, label %.preheader.i -22: ; preds = %22, %21 - %.018.i.i = phi i16 [ %11, %21 ], [ %.0.i.i.i.i, %22 ] - %.017.i.i = phi i64 [ 0, %21 ], [ %27, %22 ] - %23 = getelementptr inbounds { i64, [7 x i64] }, ptr %17, i64 %.017.i.i - %24 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %23, i16 noundef %.018.i.i), !noalias !12353 - %25 = extractvalue { i16, i16 } %24, 0 - %switch.i.i.i.i = icmp eq i16 %25, 0 - %26 = extractvalue { i16, i16 } %24, 1 - %.0.i.i.i.i = select i1 %switch.i.i.i.i, i16 %.018.i.i, i16 %26 - %27 = add nuw i64 %.017.i.i, 1 - %28 = icmp eq i64 %27, %.idx.i - br i1 %28, label %_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit, label %22 - -_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_index17h2a2d06e0c4fcfb66E.llvm.5857379167208991996.exit: ; preds = %22, %12, %15 - %.0.i = phi i16 [ %11, %12 ], [ %11, %15 ], [ %.0.i.i.i.i, %22 ] +22: ; preds = %21, %12, %15 + %.018.i.i = phi i16 [ %11, %12 ], [ %11, %15 ], [ %.0.i.i.i.i, %.preheader.i ] call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %6) call void @_ZN5typst4math8fragment13GlyphFragment7with_id17hf2229dd5f8a15adfE(ptr noalias noundef nonnull sret({ { { [6 x i64] }, i64, [1 x i64] }, double, double, double, double, double, double, double, ptr, i64, { i32, [5 x i32] }, { [3 x i8], i8 }, i32, i16, i8, i8, i8, [3 x i8] }) align 16 captures(none) dereferenceable(176) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(544) %1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %2, i32 noundef %3, i16 noundef %.0.i, i64 noundef %4) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(176) %0, ptr noundef nonnull align 16 dereferenceable(176) %6, i64 176, i1 false) @@ -71509,25 +71501,21 @@ define hidden noundef i16 @_ZN5typst4math8fragment13GlyphFragment18adjust_glyph_ %10 = icmp eq i64 %9, 0 br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1217e71f08f5b13fE.llvm.5857379167208991996.exit", label %11 -11: ; preds = %5 - %.idx = and i64 %9, 288230376151711743 - br label %12 - -12: ; preds = %12, %11 - %.018.i = phi i16 [ %1, %11 ], [ %.0.i.i.i, %12 ] - %.017.i = phi i64 [ 0, %11 ], [ %17, %12 ] - %13 = getelementptr inbounds { i64, [7 x i64] }, ptr %7, i64 %.017.i - %14 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %13, i16 noundef %.018.i) - %15 = extractvalue { i16, i16 } %14, 0 - %switch.i.i.i = icmp eq i16 %15, 0 - %16 = extractvalue { i16, i16 } %14, 1 - %.0.i.i.i = select i1 %switch.i.i.i, i16 %.018.i, i16 %16 - %17 = add nuw i64 %.017.i, 1 - %18 = icmp eq i64 %17, %.idx - br i1 %18, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1217e71f08f5b13fE.llvm.5857379167208991996.exit", label %12 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1217e71f08f5b13fE.llvm.5857379167208991996.exit": ; preds = %12, %5, %2 - %.0 = phi i16 [ %1, %2 ], [ %1, %5 ], [ %.0.i.i.i, %12 ] +11: ; preds = %5, %11 + %.018.i = phi i16 [ %.0.i.i.i, %.preheader ], [ %1, %5 ] + %.017.i = phi i64 [ %15, %.preheader ], [ 0, %5 ] + %11 = getelementptr inbounds { i64, [7 x i64] }, ptr %7, i64 %.017.i + %12 = tail call { i16, i16 } @_ZN5typst4math3ctx15GlyphwiseSubsts9try_apply17hcea8cdff48c2697cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %11, i16 noundef %.018.i) + %13 = extractvalue { i16, i16 } %12, 0 + %switch.i.i.i = icmp eq i16 %13, 0 + %14 = extractvalue { i16, i16 } %12, 1 + %.0.i.i.i = select i1 %switch.i.i.i, i16 %.018.i, i16 %14 + %15 = add nuw i64 %.017.i, 1 + %switch.i.i.i = icmp eq i64 %15, %9 + br i1 %16, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1217e71f08f5b13fE.llvm.5857379167208991996.exit", label %11 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1217e71f08f5b13fE.llvm.5857379167208991996.exit":; preds = %11, %5, %2 + %.0 = phi i16 [ %1, %2 ], [ %1, %5 ], [ %.0.i.i.i, %.preheader ] ret i16 %.0 } diff --git a/bench/typst-rs/optimized/5z4no3nnr5v1s13.ll b/bench/typst-rs/optimized/5z4no3nnr5v1s13.ll index 4dbafaa62f8..7dc8e13edad 100644 --- a/bench/typst-rs/optimized/5z4no3nnr5v1s13.ll +++ b/bench/typst-rs/optimized/5z4no3nnr5v1s13.ll @@ -10869,40 +10869,36 @@ define hidden void @"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$ tail call void @llvm.experimental.noalias.scope.decl(metadata !1262) tail call void @llvm.experimental.noalias.scope.decl(metadata !1265) tail call void @llvm.experimental.noalias.scope.decl(metadata !1267) - %.idx.i = shl nsw i64 %3, 4 - %6 = getelementptr inbounds i8, ptr %2, i64 %.idx.i + %.idx.i = shl nuw nsw i64 %3, 4 + %6 = getelementptr inbounds nuw i8, ptr %2, i64 %.idx.i %7 = icmp eq i64 %3, 0 br i1 %7, label %"_ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$14write_vectored17hb7ff24ab2234471fE.exit", label %8 -8: ; preds = %4 - %9 = and i64 %3, 1152921504606846975 - br label %10 - -10: ; preds = %10, %8 - %.017.i.i = phi i64 [ 0, %8 ], [ %12, %10 ] - %.016.i.i = phi i64 [ 0, %8 ], [ %13, %10 ] - %11 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i.i, i32 0, i32 0, i32 1 - %.val.i.i = load i64, ptr %11, align 8, !alias.scope !1267, !noalias !1269, !noundef !14 - %12 = add i64 %.val.i.i, %.017.i.i - %13 = add nuw i64 %.016.i.i, 1 - %14 = icmp eq i64 %13, %9 - br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i", label %10 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i": ; preds = %10 - %15 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %16 = load i64, ptr %15, align 8, !alias.scope !1270, !noalias !1273, !noundef !14 - %17 = load i64, ptr %5, align 8, !alias.scope !1270, !noalias !1273, !noundef !14 - %18 = sub i64 %17, %16 - %19 = icmp ugt i64 %12, %18 - br i1 %19, label %20, label %.lr.ph.i - -20: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" - tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hbf91a5c39232730fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %16, i64 noundef %12), !noalias !1273 - %.pre.i.pre = load i64, ptr %15, align 8, !alias.scope !1274, !noalias !1281 +8: ; preds = %4, %8 + %.017.i.i = phi i64 [ %9, %.preheader.i ], [ 0, %4 ] + %.016.i.i = phi i64 [ %10, %.preheader.i ], [ 0, %4 ] + %8 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.016.i.i, i32 0, i32 0, i32 1 + %.val.i.i = load i64, ptr %8, align 8, !alias.scope !1267, !noalias !1269, !noundef !14 + %9 = add i64 %.val.i.i, %.017.i.i + %10 = add nuw i64 %.016.i.i, 1 + %11 = icmp eq i64 %10, %3 + br i1 %11, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i", label %8 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i":; preds = %.preheader.i + %12 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %13 = load i64, ptr %12, align 8, !alias.scope !1270, !noalias !1273, !noundef !14 + %14 = load i64, ptr %5, align 8, !alias.scope !1270, !noalias !1273, !noundef !14 + %15 = sub i64 %14, %13 + %16 = icmp ugt i64 %9, %15 + br i1 %16, label %17, label %.lr.ph.i + +17:; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" + tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hbf91a5c39232730fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %13, i64 noundef %9), !noalias !1273 + %.pre.i.pre = load i64, ptr %12, align 8, !alias.scope !1274, !noalias !1281 br label %.lr.ph.i -.lr.ph.i: ; preds = %20, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" - %.pre.i = phi i64 [ %.pre.i.pre, %20 ], [ %16, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" ] +.lr.ph.i: ; preds = %17, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" + %.pre.i = phi i64 [ %.pre.i.pre, %17 ], [ %13, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h27e21f9ecb20bf80E.exit.i" ] %21 = getelementptr inbounds nuw i8, ptr %5, i64 8 br label %22 @@ -10920,22 +10916,22 @@ define hidden void @"_ZN3std2io5impls58_$LT$impl$u20$std..io..Write$u20$for$u20$ 31: ; preds = %22 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hbf91a5c39232730fE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %23, i64 noundef %27), !noalias !1281 - %.pre.i.i.i = load i64, ptr %15, align 8, !alias.scope !1283, !noalias !1281 + %.pre.i.i.i = load i64, ptr %12, align 8, !alias.scope !1283, !noalias !1281 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i": ; preds = %31, %22 - %32 = phi i64 [ %23, %22 ], [ %.pre.i.i.i, %31 ] + %32 = phi i64 [ %23, %19 ], [ %.pre.i.i.i, %28 ] %33 = load ptr, ptr %21, align 8, !alias.scope !1283, !noalias !1281, !nonnull !14, !noundef !14 %34 = getelementptr inbounds i8, ptr %33, i64 %32 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %34, ptr nonnull readonly align 1 %25, i64 %27, i1 false), !noalias !1273 - %35 = load i64, ptr %15, align 8, !alias.scope !1283, !noalias !1281, !noundef !14 + %35 = load i64, ptr %12, align 8, !alias.scope !1283, !noalias !1281, !noundef !14 %36 = add i64 %35, %27 - store i64 %36, ptr %15, align 8, !alias.scope !1283, !noalias !1281 + store i64 %36, ptr %12, align 8, !alias.scope !1283, !noalias !1281 %37 = icmp eq ptr %24, %6 br i1 %37, label %"_ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$14write_vectored17hb7ff24ab2234471fE.exit", label %22 "_ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$14write_vectored17hb7ff24ab2234471fE.exit": ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i", %4 - %.0.i1117.i = phi i64 [ 0, %4 ], [ %12, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i" ] + %.0.i1117.i = phi i64 [ 0, %4 ], [ %9, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hafb02ec133e02f16E.exit.i" ] %38 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.0.i1117.i, ptr %38, align 8, !alias.scope !1262, !noalias !1284 store i64 0, ptr %0, align 8, !alias.scope !1262, !noalias !1284 diff --git a/bench/typst-rs/optimized/m09o5qr68f5khss.ll b/bench/typst-rs/optimized/m09o5qr68f5khss.ll index db9f7dee856..e7a5e77777d 100644 --- a/bench/typst-rs/optimized/m09o5qr68f5khss.ll +++ b/bench/typst-rs/optimized/m09o5qr68f5khss.ll @@ -50880,38 +50880,34 @@ define hidden noundef double @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$ %44 = icmp eq i64 %.val8.us.i.i.i, 0 br i1 %44, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit", label %45 -45: ; preds = %.lr.ph.split.us.i.i.i - %.idx.i.i.us.i.i.i = and i64 %.val8.us.i.i.i, 1152921504606846975 - br label %46 - -46: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i", %45 - %.017.i.i.i.i.us.i.i.i = phi double [ %.0, %45 ], [ %.0.i.i.i.i.i.i.us.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" ] - %.016.i.i.i.i.us.i.i.i = phi i64 [ 0, %45 ], [ %57, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" ] - %47 = getelementptr inbounds { i64, double }, ptr %.val7.us.i.i.i, i64 %.016.i.i.i.i.us.i.i.i +45: ; preds = %.lr.ph.split.us.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" + %.017.i.i.i.i.us.i.i.i = phi double [ %.0.i.i.i.i.i.i.us.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" ], [ %.0, %.lr.ph.split.us.i.i.i ] + %.016.i.i.i.i.us.i.i.i = phi i64 [ %55, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" ], [ 0, %.lr.ph.split.us.i.i.i ] + %45 = getelementptr inbounds { i64, double }, ptr %.val7.us.i.i.i, i64 %.016.i.i.i.i.us.i.i.i call void @llvm.experimental.noalias.scope.decl(metadata !13969) call void @llvm.experimental.noalias.scope.decl(metadata !13972) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !13975 %48 = load ptr, ptr %8, align 8, !alias.scope !13981, !noalias !13982, !nonnull !4, !align !36, !noundef !4 + %47 = load i64, ptr %46, align 8, !noalias !13983, !noundef !4 + %48 = load ptr, ptr %9, align 8, !alias.scope !13981, !noalias !13982, !nonnull !4, !align !36, !noundef !4 %49 = load i64, ptr %48, align 8, !noalias !13983, !noundef !4 - %50 = load ptr, ptr %9, align 8, !alias.scope !13981, !noalias !13982, !nonnull !4, !align !36, !noundef !4 - %51 = load i64, ptr %50, align 8, !noalias !13983, !noundef !4 - %52 = add i64 %51, %49 - store i64 %49, ptr %6, align 8, !noalias !13975 - store i64 %52, ptr %40, align 8, !noalias !13975 - %53 = call noundef zeroext i1 @_ZN4core3ops5range11RangeBounds8contains17he00527ece9ccf594E.llvm.9217674556973953327(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %47), !noalias !13984 + %50 = add i64 %49, %47 + store i64 %47, ptr %6, align 8, !noalias !13975 + store i64 %50, ptr %40, align 8, !noalias !13975 + %51 = call noundef zeroext i1 @_ZN4core3ops5range11RangeBounds8contains17he00527ece9ccf594E.llvm.9217674556973953327(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %45), !noalias !13984 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6), !noalias !13975 - br i1 %53, label %54, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" + br i1 %51, label %54, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" -54: ; preds = %46 - %55 = getelementptr inbounds nuw i8, ptr %47, i64 8 +54: ; preds = %45 + %55 = getelementptr inbounds nuw i8, ptr %45, i64 8 %56 = call noundef double @"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17h4a28884ab2c68194E.llvm.9217674556973953327"(ptr noalias noundef nonnull align 1 %41, double noundef %.017.i.i.i.i.us.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %55), !noalias !13985 br label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i": ; preds = %54, %46 - %.0.i.i.i.i.i.i.us.i.i.i = phi double [ %56, %54 ], [ %.017.i.i.i.i.us.i.i.i, %46 ] +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i": ; preds = %54, %45 + %.0.i.i.i.i.i.i.us.i.i.i = phi double [ %56, %52 ], [ %.017.i.i.i.i.us.i.i.i, %.preheader.i.i.i ] %57 = add nuw i64 %.016.i.i.i.i.us.i.i.i, 1 - %58 = icmp eq i64 %57, %.idx.i.i.us.i.i.i - br i1 %58, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit", label %46 + %58 = icmp eq i64 %57, %.val8.us.i.i.i + br i1 %58, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit", label %45 "_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i", %"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17ha717fa6e0030eddbE.exit", %39, %.lr.ph.split.us.i.i.i %.0.i = phi double [ %.0, %"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17ha717fa6e0030eddbE.exit" ], [ %.0, %39 ], [ %.0, %.lr.ph.split.us.i.i.i ], [ %.0.i.i.i.i.i.i.us.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i.i.i.us.i.i.i" ] @@ -50938,22 +50934,22 @@ define hidden noundef double @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$ br label %72 72: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22", %65 - %.017.i.i20 = phi double [ %.0.i, %65 ], [ %.0.i.i.i.i23, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] - %.016.i.i21 = phi i64 [ 0, %65 ], [ %83, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] + %.017.i.i20 = phi double [ %.0.i, %63 ], [ %.0.i.i.i.i23, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] + %.016.i.i21 = phi i64 [ 0, %63 ], [ %83, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] %73 = getelementptr inbounds { i64, double }, ptr %60, i64 %.016.i.i21 call void @llvm.experimental.noalias.scope.decl(metadata !13992) call void @llvm.experimental.noalias.scope.decl(metadata !13995) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !13998 %74 = load ptr, ptr %8, align 8, !alias.scope !14004, !noalias !14005, !nonnull !4, !align !36, !noundef !4 + %73 = load i64, ptr %72, align 8, !noalias !14006, !noundef !4 + %74 = load ptr, ptr %9, align 8, !alias.scope !14004, !noalias !14005, !nonnull !4, !align !36, !noundef !4 %75 = load i64, ptr %74, align 8, !noalias !14006, !noundef !4 - %76 = load ptr, ptr %9, align 8, !alias.scope !14004, !noalias !14005, !nonnull !4, !align !36, !noundef !4 - %77 = load i64, ptr %76, align 8, !noalias !14006, !noundef !4 - %78 = add i64 %77, %75 - store i64 %75, ptr %5, align 8, !noalias !13998 - store i64 %78, ptr %70, align 8, !noalias !13998 - %79 = call noundef zeroext i1 @_ZN4core3ops5range11RangeBounds8contains17he00527ece9ccf594E.llvm.9217674556973953327(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %73), !noalias !14007 + %76 = add i64 %75, %73 + store i64 %73, ptr %5, align 8, !noalias !13998 + store i64 %76, ptr %70, align 8, !noalias !13998 + %77 = call noundef zeroext i1 @_ZN4core3ops5range11RangeBounds8contains17he00527ece9ccf594E.llvm.9217674556973953327(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %71), !noalias !14007 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !13998 - br i1 %79, label %80, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" + br i1 %77, label %80, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" 80: ; preds = %72 %81 = getelementptr inbounds nuw i8, ptr %73, i64 8 @@ -50961,13 +50957,13 @@ define hidden noundef double @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$ br label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22": ; preds = %80, %72 - %.0.i.i.i.i23 = phi double [ %82, %80 ], [ %.017.i.i20, %72 ] + %.0.i.i.i.i23 = phi double [ %82, %78 ], [ %.017.i.i20, %70 ] %83 = add nuw i64 %.016.i.i21, 1 %84 = icmp eq i64 %83, %69 br i1 %84, label %"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17ha717fa6e0030eddbE.exit25", label %72 "_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17ha717fa6e0030eddbE.exit25": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22", %61, %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit" - %.1 = phi double [ %.0.i, %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit" ], [ %.0.i, %61 ], [ %.0.i.i.i.i23, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] + %.1 = phi double [ %.0.i, %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h478374426bc2639dE.exit" ], [ %.0.i, %59 ], [ %.0.i.i.i.i23, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h9ddb46a04a96d66eE.exit.i.i22" ] ret double %.1 } diff --git a/bench/uv-rs/optimized/2gh6pc2939hgeaau1xpxihusg.ll b/bench/uv-rs/optimized/2gh6pc2939hgeaau1xpxihusg.ll index 8c5e2e807bf..7a1f2139fcb 100644 --- a/bench/uv-rs/optimized/2gh6pc2939hgeaau1xpxihusg.ll +++ b/bench/uv-rs/optimized/2gh6pc2939hgeaau1xpxihusg.ll @@ -5497,7 +5497,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -5521,7 +5520,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1086 store i64 0, ptr %4, align 8, !noalias !1086 - invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) + invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17h1fb8843eeb381d9bE.exit" unwind label %16 15: ; preds = %2 @@ -5711,7 +5710,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -5735,7 +5733,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1104 store i64 0, ptr %4, align 8, !noalias !1104 - invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) + invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17h1fb8843eeb381d9bE.exit" unwind label %16 15: ; preds = %2 @@ -5790,7 +5788,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -5814,7 +5811,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1111 store i64 0, ptr %4, align 8, !noalias !1111 - invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) + invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17h1fb8843eeb381d9bE.exit" unwind label %16 15: ; preds = %2 @@ -5869,7 +5866,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -5893,7 +5889,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1118 store i64 0, ptr %4, align 8, !noalias !1118 - invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) + invoke void @_ZN5serde2de5Error14invalid_length17h1f939e3aea359bccE(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.669e242900b5fab74357ad1848f87c3c.23.llvm.1788404230820707348) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17h1fb8843eeb381d9bE.exit" unwind label %16 15: ; preds = %2 diff --git a/bench/uv-rs/optimized/38wcatb6cjqnvy1t5flp4iuvb.ll b/bench/uv-rs/optimized/38wcatb6cjqnvy1t5flp4iuvb.ll index 4d6018de572..3d655c26bbc 100644 --- a/bench/uv-rs/optimized/38wcatb6cjqnvy1t5flp4iuvb.ll +++ b/bench/uv-rs/optimized/38wcatb6cjqnvy1t5flp4iuvb.ll @@ -11821,7 +11821,6 @@ define hidden void @_ZN11uv_resolver9graph_ops19marker_reachability17h2aa5715ed8 br i1 %34, label %.noexc37, label %.lr.ph 35: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hf1a9c6d24a0e869cE.exit" - %.idx = and i64 %3, 1152921504606846975 %36 = getelementptr inbounds nuw i8, ptr %10, i64 8 br label %37 @@ -11848,7 +11847,7 @@ define hidden void @_ZN11uv_resolver9graph_ops19marker_reachability17h2aa5715ed8 %41 = load i64, ptr %36, align 8, !noundef !3 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) %42 = add nuw i64 %.sroa.010.0.i, 1 - %43 = icmp eq i64 %42, %.idx + %43 = icmp eq i64 %42, %3 br i1 %43, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he91bd0d32c6e7285E.exit", label %37 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he91bd0d32c6e7285E.exit": ; preds = %.noexc36 diff --git a/bench/uv-rs/optimized/4geuf6q2je9x06sx9nzr61rkq.ll b/bench/uv-rs/optimized/4geuf6q2je9x06sx9nzr61rkq.ll index 0ff15751c6c..7dd911aa5ff 100644 --- a/bench/uv-rs/optimized/4geuf6q2je9x06sx9nzr61rkq.ll +++ b/bench/uv-rs/optimized/4geuf6q2je9x06sx9nzr61rkq.ll @@ -10068,7 +10068,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [48 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10092,7 +10091,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1699 store i64 0, ptr %4, align 8, !noalias !1699 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10147,7 +10146,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [80 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10171,7 +10169,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1706 store i64 0, ptr %4, align 8, !noalias !1706 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10226,7 +10224,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [48 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10250,7 +10247,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1713 store i64 0, ptr %4, align 8, !noalias !1713 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10305,7 +10302,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [48 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10329,7 +10325,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1720 store i64 0, ptr %4, align 8, !noalias !1720 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10384,7 +10380,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10408,7 +10403,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1727 store i64 0, ptr %4, align 8, !noalias !1727 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10463,7 +10458,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [80 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10487,7 +10481,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1734 store i64 0, ptr %4, align 8, !noalias !1734 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 @@ -10542,7 +10536,6 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r %6 = alloca [96 x i8], align 8 %7 = alloca [96 x i8], align 8 %8 = alloca [32 x i8], align 8 - %.idx = and i64 %1, 576460752303423487 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) @@ -10566,7 +10559,7 @@ define internal fastcc void @_ZN5serde9__private2de7content21visit_content_seq_r 14: ; preds = %11 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !1741 store i64 0, ptr %4, align 8, !noalias !1741 - invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %.idx, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) + invoke void @_ZN5serde2de5Error14invalid_length17hc4c39ab2fe139e86E(ptr noalias noundef nonnull sret([96 x i8]) align 8 captures(none) dereferenceable(96) %6, i64 noundef %1, ptr noundef nonnull align 1 %4, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.47af8473826c8c2585696a780e517604.155.llvm.12101516472763982539) to label %"_ZN5serde2de5value28SeqDeserializer$LT$I$C$E$GT$3end17hc478c828cb25ed28E.exit" unwind label %16 15: ; preds = %2 diff --git a/bench/uv-rs/optimized/53w83c036esehszikh9jad1ng.ll b/bench/uv-rs/optimized/53w83c036esehszikh9jad1ng.ll index 2ea92309560..d5de6f2ed2d 100644 --- a/bench/uv-rs/optimized/53w83c036esehszikh9jad1ng.ll +++ b/bench/uv-rs/optimized/53w83c036esehszikh9jad1ng.ll @@ -15105,23 +15105,19 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %58 = icmp eq i64 %56, 0 br i1 %58, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hc8dedc1f3bd0e6e5E.exit.i.i.i", label %59 -59: ; preds = %52 - %.idx.i.i.i.i = and i64 %56, 2305843009213693951 - br label %60 - -60: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i", %59 - %.sroa.06.0.i.i.i.i.i.i.i = phi i64 [ 0, %59 ], [ %78, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i" ] - %61 = getelementptr inbounds ptr, ptr %55, i64 %.sroa.06.0.i.i.i.i.i.i.i +59: ; preds = %52, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i" + %.sroa.06.0.i.i.i.i.i.i.i = phi i64 [ %76, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i" ], [ 0, %52 ] + %59 = getelementptr inbounds ptr, ptr %55, i64 %.sroa.06.0.i.i.i.i.i.i.i call void @llvm.experimental.noalias.scope.decl(metadata !5357) call void @llvm.experimental.noalias.scope.decl(metadata !5360) call void @llvm.experimental.noalias.scope.decl(metadata !5363) call void @llvm.experimental.noalias.scope.decl(metadata !5366) call void @llvm.experimental.noalias.scope.decl(metadata !5369) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !5372 - store ptr %61, ptr %4, align 8, !noalias !5375 + store ptr %59, ptr %4, align 8, !noalias !5375 call void @llvm.experimental.noalias.scope.decl(metadata !5377) call void @llvm.experimental.noalias.scope.decl(metadata !5380) - %62 = load ptr, ptr %61, align 8, !alias.scope !5383, !noalias !5384, !nonnull !17, !noundef !17 + %62 = load ptr, ptr %59, align 8, !alias.scope !5383, !noalias !5384, !nonnull !17, !noundef !17 %63 = load i64, ptr %62, align 8, !noalias !5395, !noundef !17 %64 = lshr i64 %63, 1 %65 = getelementptr inbounds nuw i8, ptr %62, i64 16 @@ -15135,21 +15131,21 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %switch.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %71, 0 br i1 %switch.i.i.i.i.i.i.i.i.i.i.i.i, label %73, label %75 -73: ; preds = %60 +73: ; preds = %59 %74 = icmp ne ptr %72, null call void @llvm.assume(i1 %74) br label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i" -75: ; preds = %60 +75: ; preds = %59 %76 = ptrtoint ptr %72 to i64 - %77 = call noundef nonnull ptr @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14insert_in_slot17hfdcc5d1a15e454c6E.llvm.17673166239295528952"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %69, i64 noundef %76, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %61), !noalias !5401 + %77 = call noundef nonnull ptr @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14insert_in_slot17hfdcc5d1a15e454c6E.llvm.17673166239295528952"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %69, i64 noundef %76, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %59), !noalias !5401 br label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i" "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i": ; preds = %75, %73 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !5372 %78 = add nuw i64 %.sroa.06.0.i.i.i.i.i.i.i, 1 - %79 = icmp eq i64 %78, %.idx.i.i.i.i - br i1 %79, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hc8dedc1f3bd0e6e5E.exit.i.i.i", label %60 + %79 = icmp eq i64 %78, %56 + br i1 %79, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hc8dedc1f3bd0e6e5E.exit.i.i.i", label %59 "_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17hc8dedc1f3bd0e6e5E.exit.i.i.i": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i.i.i.i.i.i", %52 %80 = add nuw i64 %.sroa.06.0.i.i.i, 1 @@ -15177,7 +15173,7 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 br label %95 95: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i15", %89 - %.sroa.06.0.i.i13 = phi i64 [ 0, %89 ], [ %113, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i15" ] + %.sroa.06.0.i.i13 = phi i64 [ 0, %87 ], [ %113, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h408c5c9bad144aa6E.exit.i.i15" ] %96 = getelementptr inbounds ptr, ptr %83, i64 %.sroa.06.0.i.i13 call void @llvm.experimental.noalias.scope.decl(metadata !5402) call void @llvm.experimental.noalias.scope.decl(metadata !5405) diff --git a/bench/uv-rs/optimized/6lifoqdf32s4rqxd7yg6o6y9j.ll b/bench/uv-rs/optimized/6lifoqdf32s4rqxd7yg6o6y9j.ll index fc905bcc860..43ce147ed6b 100644 --- a/bench/uv-rs/optimized/6lifoqdf32s4rqxd7yg6o6y9j.ll +++ b/bench/uv-rs/optimized/6lifoqdf32s4rqxd7yg6o6y9j.ll @@ -8217,41 +8217,37 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L ; Function Attrs: nonlazybind uwtable define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$u20$as$u20$std..io..Read$GT$13read_vectored17h3f48ef6b7b314c76E"(ptr noalias noundef align 8 dereferenceable(72) %0, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) unnamed_addr #4 personality ptr @rust_eh_personality { %4 = alloca [32 x i8], align 8 - %.idx = shl nsw i64 %2, 4 - %5 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %5 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %6 = icmp eq i64 %2, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit", label %7 -7: ; preds = %3 - %8 = and i64 %2, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.sroa.07.0.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %10, align 8, !noundef !8 - %11 = add i64 %.val.i, %.sroa.07.0.i - %12 = add nuw i64 %.sroa.09.0.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit": ; preds = %9, %3 - %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %11, %9 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %15 = load i64, ptr %14, align 8, !noundef !8 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %17 = load i64, ptr %16, align 8, !noundef !8 - %18 = icmp ne i64 %15, %17 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %20 = load i64, ptr %19, align 8 - %.not = icmp ult i64 %.sroa.04.0.i, %20 - %or.cond = select i1 %18, i1 true, i1 %.not - br i1 %or.cond, label %21, label %39 +7: ; preds = %3, %7 + %.sroa.07.0.i = phi i64 [ %8, %.preheader ], [ 0, %3 ] + %.sroa.09.0.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %7 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %7, align 8, !noundef !8 + %8 = add i64 %.val.i, %.sroa.07.0.i + %9 = add nuw i64 %.sroa.09.0.i, 1 + %10 = icmp eq i64 %9, %2 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit":; preds = %.preheader, %3 + %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %8, %.preheader ] + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %12 = load i64, ptr %11, align 8, !noundef !8 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %14 = load i64, ptr %13, align 8, !noundef !8 + %15 = icmp ne i64 %12, %14 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %17 = load i64, ptr %16, align 8 + %.not = icmp ult i64 %.sroa.04.0.i, %17 + %or.cond = select i1 %15, i1 true, i1 %.not + br i1 %or.cond, label %18, label %36 21: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !1444) - %.not.i = icmp ult i64 %15, %17 + %.not.i = icmp ult i64 %12, %14 %.pre.i = load ptr, ptr %0, align 8, !alias.scope !1444, !noalias !1447 br i1 %.not.i, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit, label %22 @@ -8260,7 +8256,7 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !1450 store ptr %.pre.i, ptr %4, align 8, !noalias !1450 %24 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i64 %20, ptr %24, align 8, !noalias !1450 + store i64 %17, ptr %24, align 8, !noalias !1450 %25 = getelementptr inbounds nuw i8, ptr %4, i64 16 %26 = getelementptr inbounds nuw i8, ptr %4, i64 24 %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -8268,9 +8264,9 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L %28 = load i64, ptr %27, align 8, !alias.scope !1444, !noalias !1447, !noundef !8 store i64 %28, ptr %26, align 8, !noalias !1450 %29 = call noundef ptr @_ZN3std2io16default_read_buf17h97c48a389c602d23E(ptr noalias noundef nonnull align 8 dereferenceable(32) %23, ptr noalias noundef nonnull align 8 dereferenceable(32) %4, i64 noundef 0), !noalias !1451 - store i64 0, ptr %14, align 8, !alias.scope !1444, !noalias !1447 + store i64 0, ptr %11, align 8, !alias.scope !1444, !noalias !1447 %30 = load i64, ptr %25, align 8, !noalias !1450, !noundef !8 - store i64 %30, ptr %16, align 8, !alias.scope !1444, !noalias !1447 + store i64 %30, ptr %13, align 8, !alias.scope !1444, !noalias !1447 %31 = load i64, ptr %26, align 8, !noalias !1450, !noundef !8 store i64 %31, ptr %27, align 8, !alias.scope !1444, !noalias !1447 %32 = icmp eq ptr %29, null @@ -8283,31 +8279,31 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit.thread: ; preds = %22 %34 = ptrtoint ptr %29 to i64 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !1450 - br label %64 + br label %61 -_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit: ; preds = %21, %33 - %35 = phi i64 [ %17, %21 ], [ %30, %33 ] - %36 = phi i64 [ %15, %21 ], [ 0, %33 ] - %37 = sub nuw i64 %35, %36 - %38 = icmp eq ptr %.pre.i, null - br i1 %38, label %64, label %42 - -39: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit" - %40 = getelementptr inbounds nuw i8, ptr %0, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, i8 0, i64 16, i1 false) - %41 = tail call { i64, ptr } @"_ZN52_$LT$fs_err..file..File$u20$as$u20$std..io..Read$GT$13read_vectored17h978b233d53c62e34E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %40, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) - br label %67 +_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit: ; preds = %18, %30 + %32 = phi i64 [ %14, %18 ], [ %27, %30 ] + %33 = phi i64 [ %12, %18 ], [ 0, %30 ] + %34 = sub nuw i64 %32, %33 + %35 = icmp eq ptr %.pre.i, null + br i1 %35, label %61, label %39 + +36: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3261a98da39438c2E.exit" + %37 = getelementptr inbounds nuw i8, ptr %0, i64 40 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) + %38 = tail call { i64, ptr } @"_ZN52_$LT$fs_err..file..File$u20$as$u20$std..io..Read$GT$13read_vectored17h978b233d53c62e34E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %37, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) + br label %64 -42: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit - %43 = getelementptr inbounds i8, ptr %.pre.i, i64 %36 +39:; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit + %40 = getelementptr inbounds i8, ptr %.pre.i, i64 %33 call void @llvm.experimental.noalias.scope.decl(metadata !1452) br label %44 -44: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i", %42 - %45 = phi i64 [ %37, %42 ], [ %56, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %46 = phi ptr [ %43, %42 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %.sroa.0.0.i = phi ptr [ %1, %42 ], [ %49, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %.sroa.01.0.i = phi i64 [ 0, %42 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] +44: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i", %39 + %45 = phi i64 [ %34, %39 ], [ %56, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %46 = phi ptr [ %40, %39 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %.sroa.0.0.i = phi ptr [ %1, %39 ], [ %49, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %.sroa.01.0.i = phi i64 [ 0, %39 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] %47 = icmp eq ptr %.sroa.0.0.i, %5 br i1 %47, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", label %48 @@ -8338,24 +8334,24 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit: ; br i1 %.not.i11, label %44, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit": ; preds = %44, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" - %.sroa.01.1.i = phi i64 [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ], [ %.sroa.01.0.i, %44 ] + %.sroa.01.1.i = phi i64 [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ], [ %.sroa.01.0.i, %41 ] %59 = inttoptr i64 %.sroa.01.1.i to ptr - %60 = load i64, ptr %14, align 8, !noundef !8 + %60 = load i64, ptr %11, align 8, !noundef !8 %61 = add i64 %60, %.sroa.01.1.i - %62 = load i64, ptr %16, align 8, !noundef !8 + %62 = load i64, ptr %13, align 8, !noundef !8 %.sroa.0.0.sroa.speculated.i = call noundef i64 @llvm.umin.i64(i64 %62, i64 %61) - store i64 %.sroa.0.0.sroa.speculated.i, ptr %14, align 8 + store i64 %.sroa.0.0.sroa.speculated.i, ptr %11, align 8 %63 = insertvalue { i64, ptr } { i64 0, ptr poison }, ptr %59, 1 br label %67 64: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit.thread, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit - %.sroa.613.016 = phi i64 [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit.thread ], [ %37, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit ] + %.sroa.613.016 = phi i64 [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit.thread ], [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h6ad7b240ead58fcfE.exit ] %65 = inttoptr i64 %.sroa.613.016 to ptr %66 = insertvalue { i64, ptr } { i64 1, ptr poison }, ptr %65, 1 br label %67 -67: ; preds = %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", %39 - %.merged = phi { i64, ptr } [ %41, %39 ], [ %66, %64 ], [ %63, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" ] +67: ; preds = %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", %36 + %.merged = phi { i64, ptr } [ %38, %36 ], [ %66, %61 ], [ %63, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" ] ret { i64, ptr } %.merged } diff --git a/bench/uv-rs/optimized/8ohzgjobg8wgndezm7j203lps.ll b/bench/uv-rs/optimized/8ohzgjobg8wgndezm7j203lps.ll index 051fac2799a..b12edbf4ca2 100644 --- a/bench/uv-rs/optimized/8ohzgjobg8wgndezm7j203lps.ll +++ b/bench/uv-rs/optimized/8ohzgjobg8wgndezm7j203lps.ll @@ -1916,50 +1916,46 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L ; Function Attrs: nonlazybind uwtable define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$u20$as$u20$std..io..Read$GT$13read_vectored17h8413cb428fa1b63eE"(ptr noalias noundef align 8 dereferenceable(72) %0, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) unnamed_addr #2 personality ptr @rust_eh_personality { %4 = alloca [32 x i8], align 8 - %.idx = shl nsw i64 %2, 4 - %5 = getelementptr inbounds i8, ptr %1, i64 %.idx + %.idx = shl nuw nsw i64 %2, 4 + %5 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx %6 = icmp eq i64 %2, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit", label %7 -7: ; preds = %3 - %8 = and i64 %2, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.sroa.07.0.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %10, align 8, !noundef !10 - %11 = add i64 %.val.i, %.sroa.07.0.i - %12 = add nuw i64 %.sroa.09.0.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit": ; preds = %9, %3 - %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %11, %9 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %15 = load i64, ptr %14, align 8, !noundef !10 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %17 = load i64, ptr %16, align 8, !noundef !10 - %18 = icmp ne i64 %15, %17 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %20 = load i64, ptr %19, align 8 - %.not = icmp ult i64 %.sroa.04.0.i, %20 - %or.cond = select i1 %18, i1 true, i1 %.not - br i1 %or.cond, label %21, label %39 - -21: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit" +7: ; preds = %3, %7 + %.sroa.07.0.i = phi i64 [ %8, %.preheader ], [ 0, %3 ] + %.sroa.09.0.i = phi i64 [ %9, %.preheader ], [ 0, %3 ] + %7 = getelementptr { { { ptr, i64 }, {} } }, ptr %1, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %7, align 8, !noundef !10 + %8 = add i64 %.val.i, %.sroa.07.0.i + %9 = add nuw i64 %.sroa.09.0.i, 1 + %10 = icmp eq i64 %9, %2 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit":; preds = %.preheader, %3 + %.sroa.04.0.i = phi i64 [ 0, %3 ], [ %8, %.preheader ] + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %12 = load i64, ptr %11, align 8, !noundef !10 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %14 = load i64, ptr %13, align 8, !noundef !10 + %15 = icmp ne i64 %12, %14 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %17 = load i64, ptr %16, align 8 + %.not = icmp ult i64 %.sroa.04.0.i, %17 + %or.cond = select i1 %15, i1 true, i1 %.not + br i1 %or.cond, label %18, label %36 + +18:; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !294) - %.not.i = icmp ult i64 %15, %17 + %.not.i = icmp ult i64 %12, %14 %.pre.i = load ptr, ptr %0, align 8, !alias.scope !294, !noalias !297 br i1 %.not.i, label %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit, label %22 -22: ; preds = %21 +22: ; preds = %18 %23 = getelementptr inbounds nuw i8, ptr %0, i64 40 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !300 store ptr %.pre.i, ptr %4, align 8, !noalias !300 %24 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i64 %20, ptr %24, align 8, !noalias !300 + store i64 %17, ptr %24, align 8, !noalias !300 %25 = getelementptr inbounds nuw i8, ptr %4, i64 16 %26 = getelementptr inbounds nuw i8, ptr %4, i64 24 %27 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -1967,9 +1963,9 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L %28 = load i64, ptr %27, align 8, !alias.scope !294, !noalias !297, !noundef !10 store i64 %28, ptr %26, align 8, !noalias !300 %29 = call noundef ptr @_ZN3std2io16default_read_buf17ha1aae409b9149dd1E(ptr noalias noundef nonnull align 8 dereferenceable(32) %23, ptr noalias noundef nonnull align 8 dereferenceable(32) %4, i64 noundef 0), !noalias !301 - store i64 0, ptr %14, align 8, !alias.scope !294, !noalias !297 + store i64 0, ptr %11, align 8, !alias.scope !294, !noalias !297 %30 = load i64, ptr %25, align 8, !noalias !300, !noundef !10 - store i64 %30, ptr %16, align 8, !alias.scope !294, !noalias !297 + store i64 %30, ptr %13, align 8, !alias.scope !294, !noalias !297 %31 = load i64, ptr %26, align 8, !noalias !300, !noundef !10 store i64 %31, ptr %27, align 8, !alias.scope !294, !noalias !297 %32 = icmp eq ptr %29, null @@ -1982,31 +1978,31 @@ define hidden { i64, ptr } @"_ZN82_$LT$std..io..buffered..bufreader..BufReader$L _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit.thread: ; preds = %22 %34 = ptrtoint ptr %29 to i64 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !300 + br label %61 + +_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit: ; preds = %18, %30 + %32 = phi i64 [ %14, %18 ], [ %27, %30 ] + %33 = phi i64 [ %12, %18 ], [ 0, %30 ] + %34 = sub nuw i64 %32, %33 + %35 = icmp eq ptr %.pre.i, null + br i1 %35, label %61, label %39 + +36: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit" + %37 = getelementptr inbounds nuw i8, ptr %0, i64 40 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) + %38 = tail call { i64, ptr } @"_ZN52_$LT$fs_err..file..File$u20$as$u20$std..io..Read$GT$13read_vectored17h978b233d53c62e34E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %37, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) br label %64 -_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit: ; preds = %21, %33 - %35 = phi i64 [ %17, %21 ], [ %30, %33 ] - %36 = phi i64 [ %15, %21 ], [ 0, %33 ] - %37 = sub nuw i64 %35, %36 - %38 = icmp eq ptr %.pre.i, null - br i1 %38, label %64, label %42 - -39: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he2cea818ac253233E.exit" - %40 = getelementptr inbounds nuw i8, ptr %0, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, i8 0, i64 16, i1 false) - %41 = tail call { i64, ptr } @"_ZN52_$LT$fs_err..file..File$u20$as$u20$std..io..Read$GT$13read_vectored17h978b233d53c62e34E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %40, ptr noalias noundef nonnull align 8 %1, i64 noundef %2) - br label %67 - -42: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit - %43 = getelementptr inbounds i8, ptr %.pre.i, i64 %36 +39:; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit + %40 = getelementptr inbounds i8, ptr %.pre.i, i64 %33 call void @llvm.experimental.noalias.scope.decl(metadata !302) br label %44 -44: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i", %42 - %45 = phi i64 [ %37, %42 ], [ %56, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %46 = phi ptr [ %43, %42 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %.sroa.0.0.i = phi ptr [ %1, %42 ], [ %49, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] - %.sroa.01.0.i = phi i64 [ 0, %42 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] +44: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i", %39 + %45 = phi i64 [ %34, %39 ], [ %56, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %46 = phi ptr [ %40, %39 ], [ %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %.sroa.0.0.i = phi ptr [ %1, %39 ], [ %49, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] + %.sroa.01.0.i = phi i64 [ 0, %39 ], [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ] %47 = icmp eq ptr %.sroa.0.0.i, %5 br i1 %47, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", label %48 @@ -2037,24 +2033,24 @@ _ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit: ; br i1 %.not.i11, label %44, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit": ; preds = %44, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" - %.sroa.01.1.i = phi i64 [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ], [ %.sroa.01.0.i, %44 ] + %.sroa.01.1.i = phi i64 [ %58, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h4b206fc8546d218dE.exit.i" ], [ %.sroa.01.0.i, %41 ] %59 = inttoptr i64 %.sroa.01.1.i to ptr - %60 = load i64, ptr %14, align 8, !noundef !10 + %60 = load i64, ptr %11, align 8, !noundef !10 %61 = add i64 %60, %.sroa.01.1.i - %62 = load i64, ptr %16, align 8, !noundef !10 + %62 = load i64, ptr %13, align 8, !noundef !10 %.sroa.0.0.sroa.speculated.i = call noundef i64 @llvm.umin.i64(i64 %62, i64 %61) - store i64 %.sroa.0.0.sroa.speculated.i, ptr %14, align 8 + store i64 %.sroa.0.0.sroa.speculated.i, ptr %11, align 8 %63 = insertvalue { i64, ptr } { i64 0, ptr poison }, ptr %59, 1 br label %67 64: ; preds = %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit.thread, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit - %.sroa.613.016 = phi i64 [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit.thread ], [ %37, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit ] + %.sroa.613.016 = phi i64 [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit.thread ], [ %34, %_ZN3std2io8buffered9bufreader6buffer6Buffer8fill_buf17h613398ccc5d1482aE.exit ] %65 = inttoptr i64 %.sroa.613.016 to ptr %66 = insertvalue { i64, ptr } { i64 1, ptr poison }, ptr %65, 1 br label %67 -67: ; preds = %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", %39 - %.merged = phi { i64, ptr } [ %41, %39 ], [ %66, %64 ], [ %63, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" ] +67: ; preds = %64, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit", %36 + %.merged = phi { i64, ptr } [ %38, %36 ], [ %66, %61 ], [ %63, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17h572b615e55725025E.exit" ] ret { i64, ptr } %.merged } diff --git a/bench/uv-rs/optimized/bi4c58bghet8qnxsc146d76yy.ll b/bench/uv-rs/optimized/bi4c58bghet8qnxsc146d76yy.ll index 6c69ed866bb..ac09d00dc52 100644 --- a/bench/uv-rs/optimized/bi4c58bghet8qnxsc146d76yy.ll +++ b/bench/uv-rs/optimized/bi4c58bghet8qnxsc146d76yy.ll @@ -6330,27 +6330,23 @@ define noundef i64 @_ZN21uv_distribution_types10resolution10Resolution3len17h713 %6 = icmp eq i64 %5, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcf19b89e6356190cE.exit", label %7 -7: ; preds = %1 - %.idx = and i64 %5, 288230376151711743 - br label %8 - -8: ; preds = %8, %7 - %.sroa.07.0.i = phi i64 [ 0, %7 ], [ %spec.select.i.i, %8 ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %14, %8 ] - %9 = getelementptr inbounds { { i64, [6 x i64] }, [2 x i32] }, ptr %3, i64 %.sroa.09.0.i - %10 = load i64, ptr %9, align 8, !range !810, !alias.scope !1071, !noundef !11 - %.not.i.i = icmp eq i64 %10, 3 - %11 = getelementptr inbounds nuw i8, ptr %9, i64 48 - %12 = load i8, ptr %11, align 8, !range !799, !alias.scope !1071 - %13 = zext nneg i8 %12 to i64 - %or.cond.i.i.i = select i1 %.not.i.i, i64 0, i64 %13 +7: ; preds = %1, %7 + %.sroa.07.0.i = phi i64 [ %spec.select.i.i, %.preheader ], [ 0, %1 ] + %.sroa.09.0.i = phi i64 [ %12, %.preheader ], [ 0, %1 ] + %7 = getelementptr inbounds { { i64, [6 x i64] }, [2 x i32] }, ptr %3, i64 %.sroa.09.0.i + %8 = load i64, ptr %7, align 8, !range !810, !alias.scope !1071, !noundef !11 + %.not.i.i = icmp eq i64 %8, 3 + %9 = getelementptr inbounds nuw i8, ptr %7, i64 48 + %10 = load i8, ptr %9, align 8, !range !799, !alias.scope !1071 + %11 = zext nneg i8 %10 to i64 + %or.cond.i.i.i = select i1 %.not.i.i, i64 0, i64 %11 %spec.select.i.i = add i64 %or.cond.i.i.i, %.sroa.07.0.i %14 = add nuw i64 %.sroa.09.0.i, 1 - %15 = icmp eq i64 %14, %.idx - br i1 %15, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcf19b89e6356190cE.exit", label %8 + %15 = icmp eq i64 %14, %5 + br i1 %15, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcf19b89e6356190cE.exit", label %7 -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcf19b89e6356190cE.exit": ; preds = %8, %1 - %.sroa.04.0.i = phi i64 [ 0, %1 ], [ %spec.select.i.i, %8 ] +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcf19b89e6356190cE.exit": ; preds = %7, %1 + %.sroa.04.0.i = phi i64 [ 0, %1 ], [ %spec.select.i.i, %.preheader ] ret i64 %.sroa.04.0.i } diff --git a/bench/wasmtime-rs/optimized/3hy0ahodfyjxdbrv.ll b/bench/wasmtime-rs/optimized/3hy0ahodfyjxdbrv.ll index f3876407f93..aa02b31ea8a 100644 --- a/bench/wasmtime-rs/optimized/3hy0ahodfyjxdbrv.ll +++ b/bench/wasmtime-rs/optimized/3hy0ahodfyjxdbrv.ll @@ -29141,22 +29141,18 @@ define noundef i32 @_ZN17cranelift_codegen2ir8function15FunctionStencil16fixed_s %6 = icmp eq i64 %5, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h486d4caeb23bf180E.exit", label %7 -7: ; preds = %1 - %.idx = and i64 %5, 2305843009213693951 - br label %8 - -8: ; preds = %8, %7 - %.018.i = phi i32 [ 0, %7 ], [ %10, %8 ] - %.017.i = phi i64 [ 0, %7 ], [ %11, %8 ] - %9 = getelementptr inbounds { i32, i8, [3 x i8] }, ptr %3, i64 %.017.i - %.val.i = load i32, ptr %9, align 4, !noundef !9 - %10 = add i32 %.val.i, %.018.i - %11 = add nuw i64 %.017.i, 1 - %12 = icmp eq i64 %11, %.idx - br i1 %12, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h486d4caeb23bf180E.exit", label %8 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h486d4caeb23bf180E.exit": ; preds = %8, %1 - %.0.i = phi i32 [ 0, %1 ], [ %10, %8 ] +7: ; preds = %1, %7 + %.018.i = phi i32 [ %8, %.preheader ], [ 0, %1 ] + %.017.i = phi i64 [ %9, %.preheader ], [ 0, %1 ] + %7 = getelementptr inbounds { i32, i8, [3 x i8] }, ptr %3, i64 %.017.i + %.val.i = load i32, ptr %7, align 4, !noundef !9 + %8 = add i32 %.val.i, %.018.i + %9 = add nuw i64 %.017.i, 1 + %10 = icmp eq i64 %9, %5 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h486d4caeb23bf180E.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h486d4caeb23bf180E.exit":; preds = %7, %1 + %.0.i = phi i32 [ 0, %1 ], [ %8, %.preheader ] ret i32 %.0.i } diff --git a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll index b1fe6222176..2fbbef17131 100644 --- a/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll +++ b/bench/wasmtime-rs/optimized/cxg2cx8gn6v5trt.ll @@ -6138,32 +6138,28 @@ _ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock5write17h77e98b0a677572beE.exit.i %38 = icmp eq i64 %37, 0 br i1 %38, label %.loopexit, label %39 -39: ; preds = %32 - %.idx.i = and i64 %37, 1152921504606846975 - br label %40 - -40: ; preds = %40, %39 - %.017.i.i = phi i64 [ 0, %39 ], [ %42, %40 ] - %.016.i.i = phi i64 [ 0, %39 ], [ %43, %40 ] - %41 = getelementptr { { { ptr, i64 }, {} } }, ptr %35, i64 %.016.i.i, i32 0, i32 0, i32 1 - %.val.i.i = load i64, ptr %41, align 8, !alias.scope !509, !noalias !512, !noundef !4 - %42 = add i64 %.val.i.i, %.017.i.i - %43 = add nuw i64 %.016.i.i, 1 - %44 = icmp eq i64 %43, %.idx.i - br i1 %44, label %.loopexit, label %40 - -.loopexit: ; preds = %40, %32 - %.0.i.i = phi i64 [ 0, %32 ], [ %42, %40 ] - br i1 %33, label %_ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1938814379164664089.exit.i.i, label %45 +39: ; preds = %32, %39 + %.017.i.i = phi i64 [ %40, %.preheader.i ], [ 0, %32 ] + %.016.i.i = phi i64 [ %41, %.preheader.i ], [ 0, %32 ] + %39 = getelementptr { { { ptr, i64 }, {} } }, ptr %35, i64 %.016.i.i, i32 0, i32 0, i32 1 + %.val.i.i = load i64, ptr %39, align 8, !alias.scope !509, !noalias !512, !noundef !4 + %40 = add i64 %.val.i.i, %.017.i.i + %41 = add nuw i64 %.016.i.i, 1 + %42 = icmp eq i64 %41, %37 + br i1 %42, label %.loopexit, label %.preheader.i + +.loopexit:; preds = %.preheader.i, %32 + %.0.i.i = phi i64 [ 0, %32 ], [ %40, %.preheader.i ] + br i1 %33, label %_ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1938814379164664089.exit.i.i, label %43 + +.loopexit: ; preds = %.loopexit + %44 = invoke noundef i64 @_ZN4core4sync6atomic11atomic_load17h92486b112d444dc0E.llvm.1938814379164664089(ptr noundef nonnull @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17hc804604804a6cbf8E, i8 noundef 0) + to label %.noexc14 unwind label %52 45: ; preds = %.loopexit - %46 = invoke noundef i64 @_ZN4core4sync6atomic11atomic_load17h92486b112d444dc0E.llvm.1938814379164664089(ptr noundef nonnull @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17hc804604804a6cbf8E, i8 noundef 0) - to label %.noexc14 unwind label %54 - -.noexc14: ; preds = %45 - %47 = and i64 %46, 9223372036854775807 - %48 = icmp eq i64 %47, 0 - br i1 %48, label %_ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1938814379164664089.exit.i.i, label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.1938814379164664089.exit.i.i.i + %45 = and i64 %44, 9223372036854775807 + %46 = icmp eq i64 %45, 0 + br i1 %46, label %_ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1938814379164664089.exit.i.i, label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.1938814379164664089.exit.i.i.i _ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.1938814379164664089.exit.i.i.i: ; preds = %.noexc14 %49 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17hce355016e1a01eb0E() @@ -6187,11 +6183,11 @@ _ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1938814379164664089.exit. to label %7 unwind label %54 .body: ; preds = %30, %25, %54 - %.pn5 = phi { ptr, i32 } [ %55, %54 ], [ %31, %30 ], [ %26, %25 ] + %.pn5 = phi { ptr, i32 } [ %55, %52 ], [ %31, %30 ], [ %26, %25 ] store i8 2, ptr %5, align 8 resume { ptr, i32 } %.pn5 -54: ; preds = %53, %50, %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.1938814379164664089.exit.i.i.i, %45 +54: ; preds = %53, %50, %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.1938814379164664089.exit.i.i.i, %43 %55 = landingpad { ptr, i32 } cleanup br label %.body diff --git a/bench/zed-rs/optimized/1b5ll0cnnio0vvxmolgooij5i.ll b/bench/zed-rs/optimized/1b5ll0cnnio0vvxmolgooij5i.ll index 03600dcafff..f92196f155b 100644 --- a/bench/zed-rs/optimized/1b5ll0cnnio0vvxmolgooij5i.ll +++ b/bench/zed-rs/optimized/1b5ll0cnnio0vvxmolgooij5i.ll @@ -67559,65 +67559,61 @@ define hidden noundef range(i64 0, 4294967296) i64 @"_ZN97_$LT$wasmtime_environ. ; Function Attrs: nonlazybind uwtable define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h6d104b8246fc6300E"(ptr noalias noundef align 8 captures(none) dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(32) %1, ptr noalias noundef nonnull readonly align 8 captures(address) %2, i64 noundef %3) unnamed_addr #1 personality ptr @rust_eh_personality { - %.idx = shl nsw i64 %3, 4 - %5 = getelementptr inbounds i8, ptr %2, i64 %.idx + %.idx = shl nuw nsw i64 %3, 4 + %5 = getelementptr inbounds nuw i8, ptr %2, i64 %.idx %6 = icmp eq i64 %3, 0 br i1 %6, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit", label %7 -7: ; preds = %4 - %8 = and i64 %3, 1152921504606846975 - br label %9 - -9: ; preds = %9, %7 - %.sroa.07.0.i = phi i64 [ 0, %7 ], [ %11, %9 ] - %.sroa.09.0.i = phi i64 [ 0, %7 ], [ %12, %9 ] - %10 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 - %.val.i = load i64, ptr %10, align 8, !noundef !9 - %11 = add i64 %.val.i, %.sroa.07.0.i - %12 = add nuw i64 %.sroa.09.0.i, 1 - %13 = icmp eq i64 %12, %8 - br i1 %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit", label %9 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit": ; preds = %9, %4 - %.sroa.04.0.i = phi i64 [ 0, %4 ], [ %11, %9 ] - %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %15 = load i64, ptr %14, align 8, !noundef !9 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %17 = load i64, ptr %16, align 8, !noundef !9 - %18 = icmp eq i64 %15, %17 - %19 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %20 = load i64, ptr %19, align 8 - %21 = icmp uge i64 %.sroa.04.0.i, %20 - %or.cond = select i1 %18, i1 %21, i1 false - br i1 %or.cond, label %37, label %22 +7: ; preds = %4, %7 + %.sroa.07.0.i = phi i64 [ %8, %.preheader ], [ 0, %4 ] + %.sroa.09.0.i = phi i64 [ %9, %.preheader ], [ 0, %4 ] + %7 = getelementptr { { { ptr, i64 }, {} } }, ptr %2, i64 %.sroa.09.0.i, i32 0, i32 0, i32 1 + %.val.i = load i64, ptr %7, align 8, !noundef !9 + %8 = add i64 %.val.i, %.sroa.07.0.i + %9 = add nuw i64 %.sroa.09.0.i, 1 + %10 = icmp eq i64 %9, %3 + br i1 %10, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit", label %7 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit":; preds = %.preheader, %4 + %.sroa.04.0.i = phi i64 [ 0, %4 ], [ %8, %.preheader ] + %11 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %12 = load i64, ptr %11, align 8, !noundef !9 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %14 = load i64, ptr %13, align 8, !noundef !9 + %15 = icmp eq i64 %12, %14 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %17 = load i64, ptr %16, align 8 + %18 = icmp uge i64 %.sroa.04.0.i, %17 + %or.cond = select i1 %15, i1 %18, i1 false + br i1 %or.cond, label %34, label %19 22: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h3d4688801013c89aE.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !13009) %23 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %.not.i = icmp ult i64 %15, %17 + %.not.i = icmp ult i64 %12, %14 %.pre.i = load ptr, ptr %23, align 8, !alias.scope !13009, !noalias !13012 br i1 %.not.i, label %29, label %24 24: ; preds = %22 tail call void @llvm.experimental.noalias.scope.decl(metadata !13015) %25 = load ptr, ptr %0, align 8, !alias.scope !13018, !noalias !13019, !nonnull !9, !align !41, !noundef !9 - %26 = tail call { i64, ptr } @"_ZN84_$LT$http_client..async_body..AsyncBody$u20$as$u20$futures_io..if_std..AsyncRead$GT$9poll_read17h59b55512ad522bd5E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %25, ptr noalias noundef nonnull align 8 dereferenceable(32) %1, ptr noalias noundef nonnull align 1 %.pre.i, i64 noundef %20), !noalias !13022 + %26 = tail call { i64, ptr } @"_ZN84_$LT$http_client..async_body..AsyncBody$u20$as$u20$futures_io..if_std..AsyncRead$GT$9poll_read17h59b55512ad522bd5E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %25, ptr noalias noundef nonnull align 8 dereferenceable(32) %1, ptr noalias noundef nonnull align 1 %.pre.i, i64 noundef %17), !noalias !13022 %27 = extractvalue { i64, ptr } %26, 0 %28 = extractvalue { i64, ptr } %26, 1 - switch i64 %27, label %34 [ + switch i64 %27, label %31 [ i64 2, label %"_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit" i64 0, label %.thread.i i64 1, label %.thread ] 29: ; preds = %.thread.i, %22 - %30 = phi i64 [ 0, %.thread.i ], [ %15, %22 ] - %31 = phi i64 [ %35, %.thread.i ], [ %17, %22 ] - %32 = icmp ugt i64 %31, %20 + %30 = phi i64 [ 0, %.thread.i ], [ %12, %19 ] + %31 = phi i64 [ %35, %.thread.i ], [ %14, %19 ] + %32 = icmp ugt i64 %31, %17 br i1 %32, label %33, label %52 33: ; preds = %29 - tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h87b545b7962eada9E(i64 noundef %31, i64 noundef %20, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.638f0274039b11b7af3152a35fe02d62.10.llvm.5851185471656548919) #76, !noalias !13023 + tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h87b545b7962eada9E(i64 noundef %31, i64 noundef %17, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.638f0274039b11b7af3152a35fe02d62.10.llvm.5851185471656548919) #76, !noalias !13023 unreachable 34: ; preds = %24 @@ -67625,8 +67621,8 @@ define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$L .thread.i: ; preds = %24 %35 = ptrtoint ptr %28 to i64 - store i64 %35, ptr %16, align 8, !alias.scope !13009, !noalias !13012 - store i64 0, ptr %14, align 8, !alias.scope !13009, !noalias !13012 + store i64 %35, ptr %13, align 8, !alias.scope !13009, !noalias !13012 + store i64 0, ptr %11, align 8, !alias.scope !13009, !noalias !13012 br label %29 .thread: ; preds = %24 @@ -67640,7 +67636,7 @@ define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$L br label %38 38: ; preds = %42, %37 - %.sroa.0.0.i.i = phi ptr [ %2, %37 ], [ %43, %42 ] + %.sroa.0.0.i.i = phi ptr [ %2, %34 ], [ %43, %39 ] %39 = icmp eq ptr %.sroa.0.0.i.i, %5 br i1 %39, label %40, label %42 @@ -67661,7 +67657,7 @@ define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$L br label %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" "_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit": ; preds = %40, %47 - %.pn.i.i = phi { i64, ptr } [ %41, %40 ], [ %49, %47 ] + %.pn.i.i = phi { i64, ptr } [ %41, %37 ], [ %49, %44 ] %50 = extractvalue { i64, ptr } %.pn.i.i, 0 %51 = icmp eq i64 %50, 2 br i1 %51, label %"_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit", label %78 @@ -67677,10 +67673,10 @@ define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$L br label %57 57: ; preds = %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i", %55 - %58 = phi i64 [ %53, %55 ], [ %69, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] - %59 = phi ptr [ %56, %55 ], [ %70, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] - %.sroa.0.0.i = phi ptr [ %2, %55 ], [ %62, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] - %.sroa.01.0.i = phi i64 [ 0, %55 ], [ %71, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] + %58 = phi i64 [ %53, %52 ], [ %69, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] + %59 = phi ptr [ %56, %52 ], [ %70, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] + %.sroa.0.0.i = phi ptr [ %2, %52 ], [ %62, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] + %.sroa.01.0.i = phi i64 [ 0, %52 ], [ %71, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ] %60 = icmp eq ptr %.sroa.0.0.i, %5 br i1 %60, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit", label %61 @@ -67711,28 +67707,28 @@ define hidden { i64, ptr } @"_ZN98_$LT$futures_util..io..buf_reader..BufReader$L br i1 %.not.i22, label %57, label %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" "_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit": ; preds = %57, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" - %.sroa.01.1.i = phi i64 [ %71, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ], [ %.sroa.01.0.i, %57 ] + %.sroa.01.1.i = phi i64 [ %71, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$4read17h727e9d27c6a7f356E.exit.i" ], [ %.sroa.01.0.i, %54 ] %72 = inttoptr i64 %.sroa.01.1.i to ptr %73 = add i64 %30, %.sroa.01.1.i %.sroa.0.0.sroa.speculated.i = tail call noundef i64 @llvm.umin.i64(i64 %73, i64 %31) - store i64 %.sroa.0.0.sroa.speculated.i, ptr %14, align 8 + store i64 %.sroa.0.0.sroa.speculated.i, ptr %11, align 8 br label %"_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit" 74: ; preds = %.thread, %52 - %.sroa.8.0.ph33 = phi i64 [ %36, %.thread ], [ %53, %52 ] + %.sroa.8.0.ph33 = phi i64 [ %36, %.thread ], [ %53, %49 ] %75 = inttoptr i64 %.sroa.8.0.ph33 to ptr br label %"_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit" "_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit": ; preds = %24, %74, %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit", %78, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" - %.sroa.7.1 = phi ptr [ %79, %78 ], [ %72, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" ], [ undef, %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" ], [ %75, %74 ], [ undef, %24 ] - %.sroa.0.1 = phi i64 [ %50, %78 ], [ 0, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" ], [ 2, %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" ], [ 1, %74 ], [ %27, %24 ] + %.sroa.7.1 = phi ptr [ %79, %75 ], [ %72, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" ], [ undef, %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" ], [ %75, %71 ], [ undef, %21 ] + %.sroa.0.1 = phi i64 [ %50, %75 ], [ 0, %"_ZN3std2io5impls60_$LT$impl$u20$std..io..Read$u20$for$u20$$RF$$u5b$u8$u5d$$GT$13read_vectored17he6aa11d961950983E.exit" ], [ 2, %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" ], [ 1, %71 ], [ %24, %21 ] %76 = insertvalue { i64, ptr } poison, i64 %.sroa.0.1, 0 %77 = insertvalue { i64, ptr } %76, ptr %.sroa.7.1, 1 ret { i64, ptr } %77 78: ; preds = %"_ZN63_$LT$$RF$mut$u20$T$u20$as$u20$futures_io..if_std..AsyncRead$GT$18poll_read_vectored17h9a0fe142a6cfb655E.exit" %79 = extractvalue { i64, ptr } %.pn.i.i, 1 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, i8 0, i64 16, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) br label %"_ZN101_$LT$futures_util..io..buf_reader..BufReader$LT$R$GT$$u20$as$u20$futures_io..if_std..AsyncBufRead$GT$13poll_fill_buf17hf6b8e9e0d9ae8b9aE.exit" } diff --git a/bench/zed-rs/optimized/3xn4w3qarvbzl2jkwavm0419t.ll b/bench/zed-rs/optimized/3xn4w3qarvbzl2jkwavm0419t.ll index f096e3e71a5..d75fd4d2cb2 100644 --- a/bench/zed-rs/optimized/3xn4w3qarvbzl2jkwavm0419t.ll +++ b/bench/zed-rs/optimized/3xn4w3qarvbzl2jkwavm0419t.ll @@ -3757,37 +3757,36 @@ _ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exi %35 = load i64, ptr %.phi.trans.insert.i, align 8, !alias.scope !708, !noalias !721, !noundef !5 %36 = add i64 %35, 1 store i64 %36, ptr %.phi.trans.insert.i, align 8, !alias.scope !708, !noalias !721 - %37 = and i64 %2, 2305843009213693951 - br label %38 - -38: ; preds = %38, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit - %.sroa.07.0.i = phi i64 [ 0, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit ], [ %46, %38 ] - %.sroa.09.0.i = phi i64 [ 0, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit ], [ %47, %38 ] - %39 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i - %.val.i = load i64, ptr %39, align 8, !noundef !5 - %40 = or i64 %.val.i, 1 - %41 = tail call range(i64 0, 64) i64 @llvm.ctlz.i64(i64 %40, i1 true) - %42 = xor i64 %41, 63 - %43 = mul nuw nsw i64 %42, 9 - %44 = add nuw nsw i64 %43, 73 - %45 = lshr i64 %44, 6 - %46 = add i64 %45, %.sroa.07.0.i - %47 = add nuw i64 %.sroa.09.0.i, 1 - %48 = icmp eq i64 %47, %37 - br i1 %48, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader", label %38 - -"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader": ; preds = %38 - %.idx = shl nsw i64 %2, 3 - %49 = getelementptr inbounds i8, ptr %1, i64 %.idx - %50 = icmp ult i64 %46, 128 - br i1 %50, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge", label %.lr.ph + br label %37 + +37: ; preds = %37, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit + %.sroa.07.0.i = phi i64 [ 0, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit ], [ %45, %37 ] + %.sroa.07.0.i = phi i64 [ 0, %_ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exit ], [ %46, %37 ] + %38 = getelementptr inbounds i64, ptr %1, i64 %.sroa.09.0.i + %.val.i = load i64, ptr %38, align 8, !noundef !5 + %39 = or i64 %.val.i, 1 + %40 = tail call range(i64 0, 64) i64 @llvm.ctlz.i64(i64 %39, i1 true) + %41 = xor i64 %40, 63 + %42 = mul nuw nsw i64 %41, 9 + %43 = add nuw nsw i64 %42, 73 + %44 = lshr i64 %43, 6 + %45 = add i64 %44, %.sroa.07.0.i + %46 = add nuw i64 %.sroa.07.0.i, 1 + %47 = icmp eq i64 %46, %2 + br i1 %47, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader", label %37 + +"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader": ; preds = %37 + %.idx = shl nuw nsw i64 %2, 3 + %48 = getelementptr inbounds nuw i8, ptr %1, i64 %.idx + %49 = icmp ult i64 %45, 128 + br i1 %49, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge", label %.lr.ph .loopexit: ; preds = %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit15, %4 ret void .lr.ph: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader", %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit %51 = phi i64 [ %61, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ], [ %36, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ] - %.sroa.0.021 = phi i64 [ %62, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ], [ %46, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ] + %.sroa.0.021 = phi i64 [ %62, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ], [ %45, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ] %52 = trunc i64 %.sroa.0.021 to i8 %53 = or i8 %52, -128 %54 = load i64, ptr %3, align 8, !alias.scope !738, !noalias !749, !noundef !5 @@ -3800,7 +3799,7 @@ _ZN5prost8encoding10encode_key17h14875a31900560c0E.llvm.16598411116039850189.exi br label %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit: ; preds = %.lr.ph, %56 - %57 = phi i64 [ %.pre.i.i.i.i.i, %56 ], [ %51, %.lr.ph ] + %57 = phi i64 [ %.pre.i.i.i.i.i, %55 ], [ %51, %.lr.ph ] %58 = load ptr, ptr %32, align 8, !alias.scope !738, !noalias !749, !nonnull !5, !noundef !5 %59 = getelementptr inbounds i8, ptr %58, i64 %57 store i8 %53, ptr %59, align 1 @@ -3813,7 +3812,7 @@ _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.1659841111603985018 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge": ; preds = %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" %64 = phi i64 [ %36, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ], [ %61, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ] - %.sroa.0.0.lcssa = phi i64 [ %46, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ], [ %62, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ] + %.sroa.0.0.lcssa = phi i64 [ %45, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit.preheader" ], [ %62, %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit ] %65 = trunc nuw nsw i64 %.sroa.0.0.lcssa to i8 %66 = load i64, ptr %3, align 8, !alias.scope !752, !noalias !763, !noundef !5 %67 = icmp eq i64 %66, %64 @@ -3825,7 +3824,7 @@ _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.1659841111603985018 br label %.lr.ph28.preheader .lr.ph28.preheader: ; preds = %68, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge" - %69 = phi i64 [ %.pre.i.i.i.i.i10, %68 ], [ %64, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge" ] + %69 = phi i64 [ %.pre.i.i.i.i.i10, %67 ], [ %64, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h0f39fea8688ed867E.llvm.16598411116039850189.exit._crit_edge" ] %70 = load ptr, ptr %32, align 8, !alias.scope !752, !noalias !763, !nonnull !5, !noundef !5 %71 = getelementptr inbounds i8, ptr %70, i64 %69 store i8 %65, ptr %71, align 1 @@ -3857,7 +3856,7 @@ _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.1659841111603985018 br label %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit13 _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit13: ; preds = %.lr.ph23, %81 - %82 = phi i64 [ %.pre.i.i.i.i.i12, %81 ], [ %76, %.lr.ph23 ] + %82 = phi i64 [ %.pre.i.i.i.i.i12, %80 ], [ %76, %.lr.ph23 ] %83 = load ptr, ptr %32, align 8, !alias.scope !766, !noalias !777, !nonnull !5, !noundef !5 %84 = getelementptr inbounds i8, ptr %83, i64 %82 store i8 %78, ptr %84, align 1 @@ -3882,14 +3881,14 @@ _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.1659841111603985018 br label %_ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit15 _ZN5bytes3buf7buf_mut6BufMut6put_u817h9be137b5c4154b3bE.llvm.16598411116039850189.exit15: ; preds = %._crit_edge, %93 - %94 = phi i64 [ %.pre.i.i.i.i.i14, %93 ], [ %89, %._crit_edge ] + %94 = phi i64 [ %.pre.i.i.i.i.i14, %92 ], [ %89, %._crit_edge ] %95 = load ptr, ptr %32, align 8, !alias.scope !780, !noalias !791, !nonnull !5, !noundef !5 %96 = getelementptr inbounds i8, ptr %95, i64 %94 store i8 %90, ptr %96, align 1 %storemerge.in = load i64, ptr %.phi.trans.insert.i, align 8, !noalias !5, !noundef !5 %storemerge = add i64 %storemerge.in, 1 store i64 %storemerge, ptr %.phi.trans.insert.i, align 8, !noalias !5 - %97 = icmp eq ptr %73, %49 + %97 = icmp eq ptr %73, %48 br i1 %97, label %.loopexit, label %.lr.ph28 } diff --git a/bench/zed-rs/optimized/aemqmt46uh053lsq1r4xaert7.ll b/bench/zed-rs/optimized/aemqmt46uh053lsq1r4xaert7.ll index 547a96bde00..302299e8a32 100644 --- a/bench/zed-rs/optimized/aemqmt46uh053lsq1r4xaert7.ll +++ b/bench/zed-rs/optimized/aemqmt46uh053lsq1r4xaert7.ll @@ -5202,7 +5202,6 @@ _ZN5alloc6string6String4push17h41bd6cc148f6c106E.exit: ; preds = %81, %78 to label %.body unwind label %169, !noalias !1046 123: ; preds = %114 - %.idx = and i64 %121, 1152921504606846975 %124 = load ptr, ptr %95, align 8, !alias.scope !1059, !noalias !1061, !nonnull !4, !noundef !4 %125 = load i64, ptr %97, align 8, !alias.scope !1059, !noalias !1061, !noundef !4 br label %126 @@ -5298,7 +5297,7 @@ _ZN5alloc6string6String4push17h41bd6cc148f6c106E.exit: ; preds = %81, %78 %166 = add i64 %165, %151 store i64 %166, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !1069, !noalias !1072 %167 = add nuw i64 %.sroa.06.0.i.i.i.i, 1 - %168 = icmp eq i64 %167, %.idx + %168 = icmp eq i64 %167, %121 br i1 %168, label %.loopexit, label %126 169: ; preds = %.loopexit.i diff --git a/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll b/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll index eeb296ba21e..67ddbc6c6fa 100644 --- a/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll +++ b/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll @@ -37353,7 +37353,6 @@ define hidden void @"_ZN92_$LT$hashbrown..map..Iter$LT$K$C$V$GT$$u20$as$u20$core br i1 %24, label %26, label %25 25: ; preds = %15 - %.idx.i.i.i = and i64 %.val3.i.i, 144115188075855871 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !9901 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false), !noalias !9916 br label %.noexc.i.i.i.i @@ -37371,7 +37370,7 @@ define hidden void @"_ZN92_$LT$hashbrown..map..Iter$LT$K$C$V$GT$$u20$as$u20$core call void @"_ZN6editor6Editor24highlighted_display_rows28_$u7b$$u7b$closure$u7d$$u7d$17h42c2545f71c0e176E.llvm.9446264695654398548"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull align 8 dereferenceable(16) %3, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %27), !noalias !9923 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !9901 %28 = add nuw i64 %.sroa.06.0.i.i.i.i.i.i, 1 - %29 = icmp eq i64 %28, %.idx.i.i.i + %29 = icmp eq i64 %28, %.val3.i.i br i1 %29, label %30, label %.noexc.i.i.i.i 30: ; preds = %.noexc.i.i.i.i @@ -77510,7 +77509,6 @@ define hidden noundef i32 @"_ZN9hashbrown3raw21RawIterRange$LT$T$GT$9fold_impl17 br i1 %28, label %"_ZN92_$LT$hashbrown..map..Iter$LT$K$C$V$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hef8f5cc2dd197edbE.exit", label %29 29: ; preds = %19 - %.idx.i.i.i = and i64 %.val16, 144115188075855871 %30 = getelementptr inbounds nuw i8, ptr %.val.i.i, i64 8 br label %31 @@ -77583,7 +77581,7 @@ define hidden noundef i32 @"_ZN9hashbrown3raw21RawIterRange$LT$T$GT$9fold_impl17 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h3b492dc211971ef9E.exit.i.i.i.i.i.i": ; preds = %31, %.noexc.i %.sroa.0.0.i.i.i.i.i.i.i.i = phi i32 [ %74, %.noexc.i ], [ %.sroa.07.0.i.i.i.i.i.i, %31 ] %75 = add nuw i64 %.sroa.09.0.i.i.i.i.i.i, 1 - %76 = icmp eq i64 %75, %.idx.i.i.i + %76 = icmp eq i64 %75, %.val16 br i1 %76, label %"_ZN92_$LT$hashbrown..map..Iter$LT$K$C$V$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hef8f5cc2dd197edbE.exit", label %31 "_ZN92_$LT$hashbrown..map..Iter$LT$K$C$V$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold28_$u7b$$u7b$closure$u7d$$u7d$17hef8f5cc2dd197edbE.exit": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h3b492dc211971ef9E.exit.i.i.i.i.i.i", %19 @@ -77658,7 +77656,6 @@ define hidden void @"_ZN9hashbrown3raw21RawIterRange$LT$T$GT$9fold_impl17h1a8c5b br i1 %25, label %27, label %26 26: ; preds = %16 - %.idx.i.i = and i64 %.val3.i, 144115188075855871 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7), !noalias !20693 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) br label %.noexc.i.i.i @@ -77676,7 +77673,7 @@ define hidden void @"_ZN9hashbrown3raw21RawIterRange$LT$T$GT$9fold_impl17h1a8c5b call void @"_ZN6editor6Editor24highlighted_display_rows28_$u7b$$u7b$closure$u7d$$u7d$17h42c2545f71c0e176E.llvm.9446264695654398548"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull align 8 dereferenceable(16) %.val.i, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %28) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6), !noalias !20693 %29 = add nuw i64 %.sroa.06.0.i.i.i.i.i, 1 - %30 = icmp eq i64 %29, %.idx.i.i + %30 = icmp eq i64 %29, %.val3.i br i1 %30, label %31, label %.noexc.i.i.i 31: ; preds = %.noexc.i.i.i diff --git a/bench/zed-rs/optimized/dbwuhn7ob83o6nu68k5f1g4py.ll b/bench/zed-rs/optimized/dbwuhn7ob83o6nu68k5f1g4py.ll index f44a9908c1c..18fade6a2fc 100644 --- a/bench/zed-rs/optimized/dbwuhn7ob83o6nu68k5f1g4py.ll +++ b/bench/zed-rs/optimized/dbwuhn7ob83o6nu68k5f1g4py.ll @@ -5770,14 +5770,10 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %76 = icmp eq i64 %.val5.i.i.i, 0 br i1 %76, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h13582c181ce0ecc8E.exit", label %77 -77: ; preds = %.lr.ph.i.i.i - %.idx.i.i.i.i.i = and i64 %.val5.i.i.i, 576460752303423487 - br label %78 - -78: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i", %77 - %.sroa.06.0.i.i.i.i.i.i.i = phi i64 [ 0, %77 ], [ %111, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i" ] - %79 = getelementptr { { { i64, ptr, {} }, i64 }, i64 }, ptr %.val4.i.i.i, i64 %.sroa.06.0.i.i.i.i.i.i.i, i32 1 - %.val16.i.i.i.i.i.i.i = load i64, ptr %79, align 8, !noalias !1737, !noundef !7 +77: ; preds = %.lr.ph.i.i.i, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i" + %.sroa.06.0.i.i.i.i.i.i.i = phi i64 [ %109, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i" ], [ 0, %.lr.ph.i.i.i ] + %77 = getelementptr { { { i64, ptr, {} }, i64 }, i64 }, ptr %.val4.i.i.i, i64 %.sroa.06.0.i.i.i.i.i.i.i, i32 1 + %.val16.i.i.i.i.i.i.i = load i64, ptr %77, align 8, !noalias !1737, !noundef !7 call void @llvm.experimental.noalias.scope.decl(metadata !1740) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8), !noalias !1737 store i64 %.val16.i.i.i.i.i.i.i, ptr %8, align 8, !noalias !1743 @@ -5789,14 +5785,14 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 %82 = icmp eq i64 %81, 0 br i1 %82, label %83, label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$24find_or_find_insert_slot17h55fd4283b60f6811E.llvm.13537110341245814796.exit.i.i.i.i.i.i.i.i.i.i.i.i.i" -83: ; preds = %78 +83: ; preds = %77 %84 = call { i64, i64 } @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$14reserve_rehash17h21aa9fbc9b879b5eE.llvm.6378331738793817062"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 1, ptr noalias noundef nonnull readonly align 1 %70, i1 noundef zeroext true), !noalias !1737 %85 = extractvalue { i64, i64 } %84, 0 %86 = icmp eq i64 %85, -9223372036854775807 call void @llvm.assume(i1 %86) br label %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$24find_or_find_insert_slot17h55fd4283b60f6811E.llvm.13537110341245814796.exit.i.i.i.i.i.i.i.i.i.i.i.i.i" -"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$24find_or_find_insert_slot17h55fd4283b60f6811E.llvm.13537110341245814796.exit.i.i.i.i.i.i.i.i.i.i.i.i.i": ; preds = %83, %78 +"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$24find_or_find_insert_slot17h55fd4283b60f6811E.llvm.13537110341245814796.exit.i.i.i.i.i.i.i.i.i.i.i.i.i": ; preds = %83, %77 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !1747 store ptr %7, ptr %6, align 8, !noalias !1747 store ptr %1, ptr %71, align 8, !noalias !1747 @@ -5840,8 +5836,8 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 "_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i": ; preds = %90, %"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$24find_or_find_insert_slot17h55fd4283b60f6811E.llvm.13537110341245814796.exit.i.i.i.i.i.i.i.i.i.i.i.i.i" call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8), !noalias !1737 %111 = add nuw i64 %.sroa.06.0.i.i.i.i.i.i.i, 1 - %112 = icmp eq i64 %111, %.idx.i.i.i.i.i - br i1 %112, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h13582c181ce0ecc8E.exit", label %78 + %112 = icmp eq i64 %111, %.val5.i.i.i + br i1 %112, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h13582c181ce0ecc8E.exit", label %77 "_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h13582c181ce0ecc8E.exit": ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i.i.i.i.i.i", %"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hd9784e06fef74d52E.exit", %67, %.lr.ph.i.i.i %113 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -5868,7 +5864,7 @@ define hidden void @"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9 br label %130 130: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i17", %120 - %.sroa.06.0.i.i13 = phi i64 [ 0, %120 ], [ %163, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i17" ] + %.sroa.06.0.i.i13 = phi i64 [ 0, %118 ], [ %163, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hf827c1305bd0f117E.exit.i.i17" ] %131 = getelementptr { { { i64, ptr, {} }, i64 }, i64 }, ptr %114, i64 %.sroa.06.0.i.i13, i32 1 %.val16.i.i14 = load i64, ptr %131, align 8, !noalias !1762, !noundef !7 call void @llvm.experimental.noalias.scope.decl(metadata !1765) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..51b626e4971 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/147059 export COMPTIME_MODE=0 # Please rebase manually