Skip to content

Conversation

@GuillaumeGomez
Copy link
Member

Fixes #151006 (hopefully).

Seems like #151053 did not fix the flakyness issue, so here is another take on this issue.

r? @jieyouxu

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Jan 14, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 14, 2026

jieyouxu is currently at their maximum review capacity.
They may take a while to respond.

Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Seems okay, let's give this a try...

View changes since this review

@jieyouxu
Copy link
Member

@bors r+ p=1 (hopefully mitigates flaky rustdoc-gui test)

@rust-bors rust-bors bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 15, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

📌 Commit 4bacdf7 has been approved by jieyouxu

It is now in the queue for this repository.

@rust-bors rust-bors bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 15, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
…eyouxu

Reduce rustdoc GUI flakyness, take 2

Fixes #151006 (hopefully).

Seems like #151053 did not fix the flakyness issue, so here is another take on this issue.

r? @jieyouxu
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-21-3 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/imports/ambiguous-6.rs ... ok
test [ui] tests/ui/imports/ambiguous-4.rs ... ok
test [ui] tests/ui/imports/ambiguous-7.rs ... ok
test [ui] tests/ui/imports/ambiguous-9.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-glob-vs-multiouter.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-globvsglob.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-no-implicit-prelude.rs ... ok
test [ui] tests/ui/imports/ambiguous-8.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-core-glob.rs ... ok
test [ui] tests/ui/imports/ambiguous-glob-vs-expanded-extern.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-std-glob.rs ... ok
---

---- [codegen] tests/codegen-llvm/lib-optimizations/append-elements.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs:25:12: error: CHECK: expected string not found in input
 // CHECK: call void @llvm.memcpy.{{.*}}%dst.i{{.*}}%src.0
           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:181:43: note: scanning from here
define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality {
                                          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:229:4: note: possible intended match here
 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %2, ptr nonnull align 1 %src.0, i64 %src.1, i1 false)
   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll
Check file: /checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            .
            .
            .
           81:  
           82: bb7: ; preds = %bb16 
           83:  %1 = icmp eq i64 %cap, 0 
           84:  br i1 %1, label %bb11, label %bb4.i.i 
           85:  
           86: bb4.i.i: ; preds = %bb7 
           87: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
           88:  tail call void @_RNvCsjI3f1FocoT_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15 
           89: ; call __rustc::__rust_alloc 
           90:  %2 = tail call noundef ptr @_RNvCsjI3f1FocoT_7___rustc12___rust_alloc(i64 noundef %cap, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
           91:  br label %bb9 
           92:  
           93: bb18: ; preds = %bb16 
           94:  %3 = icmp ne ptr %self.0.val, null 
           95:  tail call void @llvm.assume(i1 %3) 
           96:  %cond.not.i.i = icmp ult i64 %cap, %self.8.val 
           97:  br i1 %cond.not.i.i, label %bb2.i.i14, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit, !prof !6 
           98:  
           99: bb2.i.i14: ; preds = %bb18 
          100: ; call core::panicking::panic_fmt 
          101:  tail call void @_RNvNtCs4zcx2LGPAmD_4core9panicking9panic_fmt(ptr noundef nonnull inttoptr (i64 145 to ptr), ptr noundef nonnull @alloc_7e80d81941cf5c819e3db4cff23967f9, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(24) @alloc_53cc1ac85c5164ae7afdeab4c3e8b656) #13 
          102:  unreachable 
          103:  
          104: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit: ; preds = %bb18 
          105: ; call __rustc::__rust_realloc 
          106:  %raw_ptr.i.i = tail call noundef ptr @_RNvCsjI3f1FocoT_7___rustc14___rust_realloc(ptr noundef nonnull %self.0.val, i64 noundef %self.8.val, i64 noundef range(i64 1, -9223372036854775807) 1, i64 noundef %cap) #15 
          107:  br label %bb9 
          108:  
          109: bb9: ; preds = %bb4.i.i, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit 
          110:  %raw_ptr.i.i.pn = phi ptr [ %raw_ptr.i.i, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit ], [ %2, %bb4.i.i ] 
          111:  %4 = icmp eq ptr %raw_ptr.i.i.pn, null 
          112:  br i1 %4, label %bb10, label %bb11 
          113:  
          114: bb10: ; preds = %bb9 
          115:  %5 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          116:  store i64 1, ptr %5, align 8 
          117:  br label %bb13 
          118:  
          119: bb11: ; preds = %bb7, %bb9 
          120:  %raw_ptr.i.i.pn8 = phi ptr [ %raw_ptr.i.i.pn, %bb9 ], [ inttoptr (i64 1 to ptr), %bb7 ] 
          121:  %6 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          122:  store ptr %raw_ptr.i.i.pn8, ptr %6, align 8 
          123:  br label %bb13 
          124:  
          125: bb13: ; preds = %start, %bb11, %bb10 
          126:  %.sink9 = phi i64 [ 16, %bb11 ], [ 16, %bb10 ], [ 8, %start ] 
          127:  %cap.sink = phi i64 [ %cap, %bb11 ], [ %cap, %bb10 ], [ 0, %start ] 
          128:  %storemerge9 = phi i64 [ 0, %bb11 ], [ 1, %bb10 ], [ 1, %start ] 
          129:  %7 = getelementptr inbounds nuw i8, ptr %_0, i64 %.sink9 
          130:  store i64 %cap.sink, ptr %7, align 8 
          131:  store i64 %storemerge9, ptr %_0, align 8 
          132:  ret void 
          133: } 
          134:  
          135: ; Function Attrs: nonlazybind uwtable 
          136: define void @vec_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef range(i64 0, -9223372036854775808) %src.1) unnamed_addr #1 personality ptr @rust_eh_personality { 
          137: start: 
          138:  %0 = icmp eq i64 %src.1, 0 
          139:  br i1 %0, label %bb10.thread, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i 
          140:  
          141: bb10.thread: ; preds = %start 
          142:  %1 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
          143:  %len.i.i20 = load i64, ptr %1, align 8, !alias.scope !12, !noundef !8 
          144:  %_11.i34 = icmp sgt i64 %len.i.i20, -1 
          145:  tail call void @llvm.assume(i1 %_11.i34) 
          146:  br label %_RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeINtNtCs1qaRd2sPXBz_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7 
          147:  
          148: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i: ; preds = %start 
          149: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
          150:  tail call void @_RNvCsjI3f1FocoT_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15, !noalias !17 
          151:  %2 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
          152:  %len.i.i = load i64, ptr %2, align 8, !alias.scope !20, !noundef !8 
          153:  %3 = getelementptr inbounds nuw i8, ptr %dst, i64 8 
          154:  %self2.i.i = load i64, ptr %3, align 8, !range !7, !alias.scope !20, !noundef !8 
          155:  %_9.i.i = sub i64 %self2.i.i, %len.i.i 
          156:  %_7.i.i = icmp ugt i64 %src.1, %_9.i.i 
          157:  br i1 %_7.i.i, label %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6, !prof !22 
          158:  
          159: _RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i: ; preds = %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i 
          160: ; call <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global> 
          161:  tail call fastcc void @_RINvNvMs2_NtCs1qaRd2sPXBz_5alloc7raw_vecINtB8_11RawVecInnerpE7reserve21do_reserve_and_handleNtNtBa_5alloc6GlobalECslAzzQRh6qCt_15append_elements(ptr noalias noundef nonnull align 8 dereferenceable(24) %dst, i64 noundef %len.i.i, i64 noundef %src.1) 
          162:  %len1.i = load i64, ptr %2, align 8, !alias.scope !23, !noundef !8 
          163:  br label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6 
          164:  
          165: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6: ; preds = %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i, %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i 
          166:  %len.i.i.sink = phi i64 [ %len1.i, %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i ], [ %len.i.i, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i ] 
          167:  %_11.i = icmp sgt i64 %len.i.i.sink, -1 
          168:  tail call void @llvm.assume(i1 %_11.i) 
          169:  %_12.i = load ptr, ptr %dst, align 8, !alias.scope !23, !nonnull !8, !noundef !8 
          170:  %dst.i = getelementptr inbounds nuw i8, ptr %_12.i, i64 %len.i.i.sink 
          171:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %dst.i, ptr nonnull align 1 %src.0, i64 %src.1, i1 false) 
          172:  %_10.0.i = add nuw i64 %len.i.i.sink, %src.1 
          173:  store i64 %_10.0.i, ptr %2, align 8, !alias.scope !23 
          174:  br label %_RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeINtNtCs1qaRd2sPXBz_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7 
          175:  
          176: _RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeINtNtCs1qaRd2sPXBz_5alloc3vec3VechEECslAzzQRh6qCt_15append_elements.exit7: ; preds = %bb10.thread, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i6 
          177:  ret void 
          178: } 
          179:  
          180: ; Function Attrs: nonlazybind uwtable 
          181: define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality { 
check:25'0                                               X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
          182: start: 
check:25'0     ~~~~~~~
          183:  %_16.sroa.4 = alloca i64, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          184:  %_16.sroa.10 = alloca i64, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          185:  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          186:  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          187:  tail call void @llvm.experimental.noalias.scope.decl(metadata !24) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          188:  %_25.i.i = icmp slt i64 %src.1, 0 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          189:  br i1 %_25.i.i, label %bb8, label %bb17.i, !prof !11 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          190:  
check:25'0     ~
          191: bb17.i: ; preds = %start 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          192:  %0 = icmp eq i64 %src.1, 0 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          193:  br i1 %0, label %bb10.thread, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          194:  
check:25'0     ~
          195: bb10.thread: ; preds = %bb17.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          196:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          197:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          198:  %1 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          199:  %len.i.i.i.i23 = load i64, ptr %1, align 8, !alias.scope !27, !noalias !36, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          200:  %_11.i.i.i37 = icmp sgt i64 %len.i.i.i.i23, -1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          201:  tail call void @llvm.assume(i1 %_11.i.i.i37) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          202:  br label %_RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeNtNtCs1qaRd2sPXBz_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          203:  
check:25'0     ~
          204: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i: ; preds = %bb17.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          205: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          206:  tail call void @_RNvCsjI3f1FocoT_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15, !noalias !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          207: ; call __rustc::__rust_alloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          208:  %2 = tail call noundef ptr @_RNvCsjI3f1FocoT_7___rustc12___rust_alloc(i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15, !noalias !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          209:  %3 = icmp eq ptr %2, null 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
          210:  br i1 %3, label %bb9.i, label %bb5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          211:  
check:25'0     ~
          212: bb9.i: ; preds = %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          213:  store i64 1, ptr %_16.sroa.4, align 8, !alias.scope !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          214:  br label %bb8 
check:25'0     ~~~~~~~~~~~~~~~
          215:  
check:25'0     ~
          216: bb8: ; preds = %bb9.i, %start 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          217:  %.sink7.i.sroa.phi.ph = phi ptr [ %_16.sroa.4, %start ], [ %_16.sroa.10, %bb9.i ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          218:  %capacity.sink.i.ph = phi i64 [ 0, %start ], [ %src.1, %bb9.i ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          219:  store i64 %capacity.sink.i.ph, ptr %.sink7.i.sroa.phi.ph, align 8, !alias.scope !24 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          220:  %_16.sroa.4.0._16.sroa.4.0._16.sroa.4.0._16.sroa.4.8._20.0 = load i64, ptr %_16.sroa.4, align 8, !range !10, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          221:  %_16.sroa.10.0._16.sroa.10.0._16.sroa.10.0._16.sroa.10.16._20.1 = load i64, ptr %_16.sroa.10, align 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          222: ; call alloc::raw_vec::handle_error 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          223:  tail call void @_RNvNtCs1qaRd2sPXBz_5alloc7raw_vec12handle_error(i64 noundef %_16.sroa.4.0._16.sroa.4.0._16.sroa.4.0._16.sroa.4.8._20.0, i64 %_16.sroa.10.0._16.sroa.10.0._16.sroa.10.0._16.sroa.10.16._20.1) #14 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          224:  unreachable 
check:25'0     ~~~~~~~~~~~~~
          225:  
check:25'0     ~
          226: bb5: ; preds = %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator8allocate.exit.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          227:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.4) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          228:  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_16.sroa.10) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          229:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %2, ptr nonnull align 1 %src.0, i64 %src.1, i1 false) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:25'1        ?                                                                                                              possible intended match
          230:  tail call void @llvm.experimental.noalias.scope.decl(metadata !38) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          231:  tail call void @llvm.experimental.noalias.scope.decl(metadata !40) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          232:  tail call void @llvm.experimental.noalias.scope.decl(metadata !42) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          233:  %4 = getelementptr inbounds nuw i8, ptr %dst, i64 16 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          234:  %len.i.i.i.i = load i64, ptr %4, align 8, !alias.scope !44, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          235:  %5 = getelementptr inbounds nuw i8, ptr %dst, i64 8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          236:  %self2.i.i.i.i = load i64, ptr %5, align 8, !range !7, !alias.scope !44, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          237:  %_9.i.i.i.i = sub i64 %self2.i.i.i.i, %len.i.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          238:  %_7.i.i.i.i = icmp ugt i64 %src.1, %_9.i.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          239:  br i1 %_7.i.i.i.i, label %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4, !prof !47 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          240:  
check:25'0     ~
          241: _RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i: ; preds = %bb5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          242: ; invoke <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global> 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          243:  invoke fastcc void @_RINvNvMs2_NtCs1qaRd2sPXBz_5alloc7raw_vecINtB8_11RawVecInnerpE7reserve21do_reserve_and_handleNtNtBa_5alloc6GlobalECslAzzQRh6qCt_15append_elements(ptr noalias noundef nonnull align 8 dereferenceable(24) %dst, i64 noundef %len.i.i.i.i, i64 noundef range(i64 0, -9223372036854775808) %src.1) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          244:  to label %.noexc unwind label %cleanup 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          245:  
check:25'0     ~
          246: .noexc: ; preds = %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          247:  %len1.i.i.i = load i64, ptr %4, align 8, !alias.scope !48, !noalias !45, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          248:  br label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          249:  
check:25'0     ~
          250: cleanup: ; preds = %_RNvMs_NtCs1qaRd2sPXBz_5alloc3vecINtB4_3VechE7reserveCslAzzQRh6qCt_15append_elements.exit.thread.i.i.i 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          251:  %6 = landingpad { ptr, i32 } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          252:  cleanup 
check:25'0     ~~~~~~~~~
          253: ; call __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          254:  tail call void @_RNvCsjI3f1FocoT_7___rustc14___rust_dealloc(ptr noundef nonnull %2, i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          255:  resume { ptr, i32 } %6 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          256:  
check:25'0     ~
          257: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4: ; preds = %bb5, %.noexc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          258:  %len.i.i.i.i.sink = phi i64 [ %len1.i.i.i, %.noexc ], [ %len.i.i.i.i, %bb5 ] 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          259:  %_11.i.i.i = icmp sgt i64 %len.i.i.i.i.sink, -1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          260:  tail call void @llvm.assume(i1 %_11.i.i.i) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          261:  %_12.i.i.i = load ptr, ptr %dst, align 8, !alias.scope !48, !noalias !45, !nonnull !8, !noundef !8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          262:  %dst.i.i.i = getelementptr inbounds nuw i8, ptr %_12.i.i.i, i64 %len.i.i.i.i.sink 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          263:  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %dst.i.i.i, ptr nonnull readonly align 1 %2, i64 range(i64 0, -9223372036854775808) %src.1, i1 false), !noalias !48 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          264:  %_10.0.i.i.i = add nuw i64 %len.i.i.i.i.sink, %src.1 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          265:  store i64 %_10.0.i.i.i, ptr %4, align 8, !alias.scope !48, !noalias !45 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          266: ; call __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          267:  tail call void @_RNvCsjI3f1FocoT_7___rustc14___rust_dealloc(ptr noundef nonnull %2, i64 noundef %src.1, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          268:  br label %_RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeNtNtCs1qaRd2sPXBz_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          269:  
check:25'0     ~
          270: _RINvNtCs4zcx2LGPAmD_4core3ptr13drop_in_placeNtNtCs1qaRd2sPXBz_5alloc6string6StringECslAzzQRh6qCt_15append_elements.exit5: ; preds = %bb10.thread, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator10deallocate.exit.i.i.i4.i.i4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          271:  ret void 
check:25'0     ~~~~~~~~~~
          272: } 
check:25'0     ~~
          273:  
check:25'0     ~
          274: ; Function Attrs: nounwind nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          275: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          276:  
check:25'0     ~
          277: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          278: declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #3 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          279:  
check:25'0     ~
          280: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          281: declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #3 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          282:  
check:25'0     ~
          283: ; alloc::raw_vec::handle_error 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          284: ; Function Attrs: cold minsize noreturn nonlazybind optsize uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          285: declare void @_RNvNtCs1qaRd2sPXBz_5alloc7raw_vec12handle_error(i64 noundef range(i64 0, -9223372036854775807), i64) unnamed_addr #4 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          286:  
check:25'0     ~
          287: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          288: declare void @llvm.assume(i1 noundef) #5 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          289:  
check:25'0     ~
          290: ; core::panicking::panic_fmt 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          291: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          292: declare void @_RNvNtCs4zcx2LGPAmD_4core9panicking9panic_fmt(ptr noundef nonnull, ptr noundef nonnull, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(24)) unnamed_addr #6 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          293:  
check:25'0     ~
          294: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          295: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #7 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          296:  
check:25'0     ~
          297: ; __rustc::__rust_dealloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          298: ; Function Attrs: nounwind nonlazybind allockind("free") uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          299: declare void @_RNvCsjI3f1FocoT_7___rustc14___rust_dealloc(ptr allocptr noundef captures(address), i64 noundef, i64 noundef) unnamed_addr #8 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          300:  
check:25'0     ~
          301: ; __rustc::__rust_realloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          302: ; Function Attrs: nounwind nonlazybind allockind("realloc,aligned") allocsize(3) uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          303: declare noalias noundef ptr @_RNvCsjI3f1FocoT_7___rustc14___rust_realloc(ptr allocptr noundef, i64 noundef, i64 allocalign noundef, i64 noundef) unnamed_addr #9 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          304:  
check:25'0     ~
          305: ; __rustc::__rust_no_alloc_shim_is_unstable_v2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          306: ; Function Attrs: nounwind nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          307: declare void @_RNvCsjI3f1FocoT_7___rustc35___rust_no_alloc_shim_is_unstable_v2() unnamed_addr #2 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          308:  
check:25'0     ~
          309: ; __rustc::__rust_alloc 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~
          310: ; Function Attrs: nounwind nonlazybind allockind("alloc,uninitialized,aligned") allocsize(0) uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          311: declare noalias noundef ptr @_RNvCsjI3f1FocoT_7___rustc12___rust_alloc(i64 noundef, i64 allocalign noundef) unnamed_addr #10 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          312:  
check:25'0     ~
          313: ; core::panicking::panic 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
          314: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          315: declare void @_RNvNtCs4zcx2LGPAmD_4core9panicking5panic(ptr noalias noundef nonnull readonly align 1 captures(address, read_provenance), i64 noundef, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(24)) unnamed_addr #6 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          316:  
check:25'0     ~
          317: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          318: declare void @llvm.experimental.noalias.scope.decl(metadata) #11 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          319:  
check:25'0     ~
          320: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          321: declare i64 @llvm.umax.i64(i64, i64) #12 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          322:  
check:25'0     ~
          323: attributes #0 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          324: attributes #1 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          325: attributes #2 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          326: attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          327: attributes #4 = { cold minsize noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          328: attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          329: attributes #6 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
check:25'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-21/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll" "/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs:25:12: error: CHECK: expected string not found in input
 // CHECK: call void @llvm.memcpy.{{.*}}%dst.i{{.*}}%src.0
           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:181:43: note: scanning from here
define void @string_append_with_temp_alloc(ptr noalias noundef align 8 captures(none) dereferenceable(24) %dst, ptr noalias noundef nonnull readonly align 1 captures(none) %src.0, i64 noundef %src.1) unnamed_addr #1 personality ptr @rust_eh_personality {
                                          ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll:229:4: note: possible intended match here
 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %2, ptr nonnull align 1 %src.0, i64 %src.1, i1 false)
   ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/lib-optimizations/append-elements/append-elements.ll
Check file: /checkout/tests/codegen-llvm/lib-optimizations/append-elements.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            .
            .
            .
           81:  
           82: bb7: ; preds = %bb16 
           83:  %1 = icmp eq i64 %cap, 0 
           84:  br i1 %1, label %bb11, label %bb4.i.i 
           85:  
           86: bb4.i.i: ; preds = %bb7 
           87: ; call __rustc::__rust_no_alloc_shim_is_unstable_v2 
           88:  tail call void @_RNvCsjI3f1FocoT_7___rustc35___rust_no_alloc_shim_is_unstable_v2() #15 
           89: ; call __rustc::__rust_alloc 
           90:  %2 = tail call noundef ptr @_RNvCsjI3f1FocoT_7___rustc12___rust_alloc(i64 noundef %cap, i64 noundef range(i64 1, -9223372036854775807) 1) #15 
           91:  br label %bb9 
           92:  
           93: bb18: ; preds = %bb16 
           94:  %3 = icmp ne ptr %self.0.val, null 
           95:  tail call void @llvm.assume(i1 %3) 
           96:  %cond.not.i.i = icmp ult i64 %cap, %self.8.val 
           97:  br i1 %cond.not.i.i, label %bb2.i.i14, label %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit, !prof !6 
           98:  
           99: bb2.i.i14: ; preds = %bb18 
          100: ; call core::panicking::panic_fmt 
          101:  tail call void @_RNvNtCs4zcx2LGPAmD_4core9panicking9panic_fmt(ptr noundef nonnull inttoptr (i64 145 to ptr), ptr noundef nonnull @alloc_7e80d81941cf5c819e3db4cff23967f9, ptr noalias noundef readonly align 8 captures(address, read_provenance) dereferenceable(24) @alloc_53cc1ac85c5164ae7afdeab4c3e8b656) #13 
          102:  unreachable 
          103:  
          104: _RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit: ; preds = %bb18 
          105: ; call __rustc::__rust_realloc 
          106:  %raw_ptr.i.i = tail call noundef ptr @_RNvCsjI3f1FocoT_7___rustc14___rust_realloc(ptr noundef nonnull %self.0.val, i64 noundef %self.8.val, i64 noundef range(i64 1, -9223372036854775807) 1, i64 noundef %cap) #15 
          107:  br label %bb9 
          108:  
          109: bb9: ; preds = %bb4.i.i, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit 
          110:  %raw_ptr.i.i.pn = phi ptr [ %raw_ptr.i.i, %_RNvXs_NtCs1qaRd2sPXBz_5alloc5allocNtB4_6GlobalNtNtCs4zcx2LGPAmD_4core5alloc9Allocator4grow.exit ], [ %2, %bb4.i.i ] 
          111:  %4 = icmp eq ptr %raw_ptr.i.i.pn, null 
          112:  br i1 %4, label %bb10, label %bb11 
          113:  
          114: bb10: ; preds = %bb9 
          115:  %5 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          116:  store i64 1, ptr %5, align 8 
          117:  br label %bb13 
          118:  
          119: bb11: ; preds = %bb7, %bb9 
          120:  %raw_ptr.i.i.pn8 = phi ptr [ %raw_ptr.i.i.pn, %bb9 ], [ inttoptr (i64 1 to ptr), %bb7 ] 
          121:  %6 = getelementptr inbounds nuw i8, ptr %_0, i64 8 
          122:  store ptr %raw_ptr.i.i.pn8, ptr %6, align 8 
          123:  br label %bb13 
          124:  

@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 15, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

💔 Test for 605e098 failed: CI. Failed jobs:

@jieyouxu
Copy link
Member

@bors retry (codegen-llvm flaky test)

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 15, 2026
@jieyouxu
Copy link
Member

Can be included in rollup... but anyway
@bors p=9

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

⌛ Testing commit 4bacdf7 with merge bec7c4a...

Workflow: https://github.com/rust-lang/rust/actions/runs/21018146074

rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
…eyouxu

Reduce rustdoc GUI flakyness, take 2

Fixes #151006 (hopefully).

Seems like #151053 did not fix the flakyness issue, so here is another take on this issue.

r? @jieyouxu
Zalathar added a commit to Zalathar/rust that referenced this pull request Jan 15, 2026
Revert "avoid phi node for pointers flowing into Vec appends rust-lang#130998"

This reverts PR rust-lang#130998 because the added test seems to be flaky / non-deterministic, and has been failing in unrelated PRs during merge CI:

- rust-lang#151129 (comment)
- rust-lang#150772 (comment)
- rust-lang#150925 (comment)
- rust-lang#151145 (comment)

See also [#t-infra > Tree ops](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Tree.20ops/with/568111767).

> [!NOTE]
>
> This is a "fallback" PR in case the FileCheck failure isn't obvious (i.e. fix-forward). This PR reverts rust-lang#130998 wholesale in case the failure is genuine and indicative of a bug in the actual implementation change.
@Zalathar
Copy link
Member

Yield to enclosing special rollup.

@bors retry

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

❗ You can only retry pull requests that are approved and have a previously failed auto build

@Zalathar
Copy link
Member

@bors yield

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

Auto build cancelled. Cancelled workflows:

The next pull request likely to be tested is #151151.

rust-bors bot pushed a commit that referenced this pull request Jan 15, 2026
Rollup of 2 pull requests

Successful merges:

 - #151150 (Revert "avoid phi node for pointers flowing into Vec appends #130998")
 - #151145 (Reduce rustdoc GUI flakyness, take 2)

r? @ghost
@rust-bors rust-bors bot merged commit d87e654 into rust-lang:main Jan 15, 2026
11 of 12 checks passed
rust-timer added a commit that referenced this pull request Jan 15, 2026
Rollup merge of #151145 - reduce-rustdoc-flakyness, r=jieyouxu

Reduce rustdoc GUI flakyness, take 2

Fixes #151006 (hopefully).

Seems like #151053 did not fix the flakyness issue, so here is another take on this issue.

r? @jieyouxu
@rustbot rustbot added this to the 1.94.0 milestone Jan 15, 2026
rust-timer added a commit that referenced this pull request Jan 15, 2026
Rollup merge of #151150 - revert-vec-append, r=Zalathar

Revert "avoid phi node for pointers flowing into Vec appends #130998"

This reverts PR #130998 because the added test seems to be flaky / non-deterministic, and has been failing in unrelated PRs during merge CI:

- #151129 (comment)
- #150772 (comment)
- #150925 (comment)
- #151145 (comment)

See also [#t-infra > Tree ops](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Tree.20ops/with/568111767).

> [!NOTE]
>
> This is a "fallback" PR in case the FileCheck failure isn't obvious (i.e. fix-forward). This PR reverts #130998 wholesale in case the failure is genuine and indicative of a bug in the actual implementation change.
@GuillaumeGomez GuillaumeGomez deleted the reduce-rustdoc-flakyness branch January 15, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tests/rustdoc-gui/notable-trait.goml is sometimes flaky

5 participants