Skip to content

Rollup of 17 pull requests - #160615

Closed
JonathanBrouwer wants to merge 59 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-a7S9fiG
Closed

Rollup of 17 pull requests#160615
JonathanBrouwer wants to merge 59 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-a7S9fiG

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

SomeFlyingThing and others added 30 commits July 23, 2026 18:32
…` jobs

The aarch64 macos runners seem to be consistently among the slowest
jobs, sometimes pushing our overall CI time to 4 hours on a bad run.
Let's try to split the jobs to keep the overall Merge CI time
manageable:

* `aarch64-apple` => `aarch64-apple-{1,2}`
* `aarch64-apple-macos-26` => `aarch64-apple-macos-26-{1,2}`
This method currently does two things: it applies the effect, and also
computes the edges. However:
- Three of the four call sites don't use the edges.
- Most analyses just return `terminator.edges()` unconditionally.

This commit separates the edge computation into a new method,
`get_terminator_edges()`. It defaults to `terminator.edges()`, which
means that most analyses don't need to define it. And now edges are only
obtained when they are needed (in `Forward::apply_effects_in_block`).
On Apple, `send`/`sendto` reject a length larger than `c_int::MAX` with
`EINVAL` instead of doing a short send. The send length was only clamped to
`wrlen_t::MAX` (a no-op on 64-bit unix), so writing more than `c_int::MAX`
bytes to a socket failed on macOS.

Add a `MAX_SEND_LEN` cap (`c_int::MAX` on Apple, `wrlen_t::MAX` elsewhere),
used in `write`, `send`, `send_to`, and `send_with_flags`.
The pages are demand-zero and never written, so the datagram test no
longer needs ~2 GiB of memory and its `#[ignore]` can go away. Keep a
`Vec`-backed copy for non-unix targets, where `mmap` isn't available.
.. so that you don't need to import `TypeVisitable` in order to use it.
I used the `TypeVisitable` from `rustc_type_ir` and not
`rustc_middle::ty` because the macro is called inside `rustc_type_ir`
itself.
This is a cheaper alternative to `TyAndLayout::for_variant(_, idx).is_uninhabited()`
.. instead of hand-rolling our own
@rustbot rustbot added PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 6, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1,i686-msvc-*

@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 267a1d1 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@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 Aug 6, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 6, 2026
Rollup of 17 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple
try-job: x86_64-mingw-1
try-job: i686-msvc-*
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 6, 2026
@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 3fb63b8 failed: CI. Failed job:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling askama v0.16.0
   Compiling citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)
    Finished `dev` profile [unoptimized] target(s) in 18.62s
     Running `target/debug/citool calculate-job-matrix`
Run type: TryJob { job_patterns: Some(["dist-various-1", "test-various", "x86_64-gnu-aux", "x86_64-gnu-llvm-21-3", "x86_64-msvc-1", "aarch64-apple", "x86_64-mingw-1", "i686-msvc-*"]) }
Error: Failed to calculate job matrix

Caused by:
    Patterns `aarch64-apple` did not match any auto jobs
##[error]Process completed with exit code 1.

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-,x86_64-mingw-1,i686-msvc-

@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 267a1d1 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 6, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 6, 2026
Rollup of 17 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-*
try-job: x86_64-mingw-1
try-job: i686-msvc-*
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-msvc-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

---- [codegen] tests\codegen-llvm\lib-optimizations\memchr-result.rs#llvm-new stdout ----
------FileCheck.exe stdout------------------------------

------FileCheck.exe stderr------------------------------
D:\a\rust\rust\tests\codegen-llvm\lib-optimizations\memchr-result.rs:19:19: error: llvm-new-NOT: excluded string found in input
 // llvm-new-NOT: phi { i64, i64 }
                  ^
D:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen-llvm\lib-optimizations\memchr-result.llvm-new\memchr-result.ll:114:13: note: found here
 %.pn.i.i = phi { i64, i64 } [ %15, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i ], [ %12, %bb26.i.i ]
            ^~~~~~~~~~~~~~~~

Input file: D:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen-llvm\lib-optimizations\memchr-result.llvm-new\memchr-result.ll
Check file: D:\a\rust\rust\tests\codegen-llvm\lib-optimizations\memchr-result.rs

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

Input was:
<<<<<<
          1: ; ModuleID = 'memchr_result.ab0df14a1728f5ec-cgu.0' 
          2: source_filename = "memchr_result.ab0df14a1728f5ec-cgu.0" 
          3: target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
          4: target triple = "x86_64-pc-windows-msvc" 
          5:  
          6: ; Function Attrs: uwtable 
          7: define { i64, i64 } @find_char(ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %haystack.0, i64 noundef %haystack.1, i32 noundef range(i32 0, 1114112) %needle) unnamed_addr #0 personality ptr @__CxxFrameHandler3 !guid !3 { 
not:19'0                                  {                                                                                                                                                                                                                                  search range start (exclusive)
          8: start: 
          9:  %_5.i = alloca [48 x i8], align 8 
         10:  tail call void @llvm.experimental.noalias.scope.decl(metadata !4) 
         11:  call void @llvm.lifetime.start.p0(ptr nonnull %_5.i), !noalias !4 
         12:  %_11.i.i.i = icmp samesign ult i32 %needle, 128 
         13:  br i1 %_11.i.i.i, label %bb21.lr.ph.split.i.i, label %bb5.i.i.i 
         14:  
         15: bb5.i.i.i: ; preds = %start 
         16:  %_12.i.i.i = icmp samesign ult i32 %needle, 2048 
         17:  %0 = trunc i32 %needle to i8 
         18:  %_5.i.i.i.i = and i8 %0, 63 
         19:  %last1.i.i.i.i = or disjoint i8 %_5.i.i.i.i, -128 
         20:  %_10.i.i.i.i = lshr i32 %needle, 6 
         21:  %1 = trunc i32 %_10.i.i.i.i to i8 
         22:  %_8.i.i.i.i = and i8 %1, 63 
         23:  %last2.i.i.i.i = or disjoint i8 %_8.i.i.i.i, -128 
         24:  %_14.i.i.i.i = lshr i32 %needle, 12 
         25:  %2 = trunc i32 %_14.i.i.i.i to i8 
         26:  %_12.i.i.i.i = and i8 %2, 63 
         27:  %last3.i.i.i.i = or disjoint i8 %_12.i.i.i.i, -128 
         28:  %_18.i.i.i.i = lshr i32 %needle, 18 
         29:  %last4.i.i.i.i = or disjoint i32 %_18.i.i.i.i, 240 
         30:  br i1 %_12.i.i.i, label %bb1.i.i.i.i, label %bb2.i.i.i.i 
         31:  
         32: bb1.i.i.i.i: ; preds = %bb5.i.i.i 
         33:  %3 = or disjoint i32 %_10.i.i.i.i, 192 
         34:  br label %bb21.lr.ph.split.i.i 
         35:  
         36: bb2.i.i.i.i: ; preds = %bb5.i.i.i 
         37:  %_13.i.i.i = icmp samesign ult i32 %needle, 65536 
         38:  br i1 %_13.i.i.i, label %bb3.i.i.i.i, label %bb4.i.i.i.i 
         39:  
         40: bb3.i.i.i.i: ; preds = %bb2.i.i.i.i 
         41:  %4 = or disjoint i32 %_14.i.i.i.i, 224 
         42:  br label %bb21.lr.ph.split.i.i 
         43:  
         44: bb4.i.i.i.i: ; preds = %bb2.i.i.i.i 
         45:  %5 = zext i8 %last1.i.i.i.i to i32 
         46:  %6 = shl nuw i32 %5, 24 
         47:  br label %bb21.lr.ph.split.i.i 
         48:  
         49: bb21.lr.ph.split.i.i: ; preds = %bb4.i.i.i.i, %bb3.i.i.i.i, %bb1.i.i.i.i, %start 
         50:  %utf8_encoded.sroa.13.0.i.i = phi i32 [ %6, %bb4.i.i.i.i ], [ 0, %bb1.i.i.i.i ], [ 0, %bb3.i.i.i.i ], [ 0, %start ] 
         51:  %utf8_encoded.sroa.11.0.i.i = phi i8 [ %last2.i.i.i.i, %bb4.i.i.i.i ], [ 0, %bb1.i.i.i.i ], [ %last1.i.i.i.i, %bb3.i.i.i.i ], [ 0, %start ] 
         52:  %utf8_encoded.sroa.8.0.i.i = phi i8 [ %last3.i.i.i.i, %bb4.i.i.i.i ], [ %last1.i.i.i.i, %bb1.i.i.i.i ], [ %last2.i.i.i.i, %bb3.i.i.i.i ], [ 0, %start ] 
         53:  %utf8_encoded.sroa.0.0.i.i = phi i32 [ %last4.i.i.i.i, %bb4.i.i.i.i ], [ %3, %bb1.i.i.i.i ], [ %4, %bb3.i.i.i.i ], [ %needle, %start ] 
         54:  %len.sroa.0.04.i.i.i = phi i8 [ 4, %bb4.i.i.i.i ], [ 2, %bb1.i.i.i.i ], [ 3, %bb3.i.i.i.i ], [ 1, %start ] 
         55:  %utf8_encoded.sroa.11.0.insert.ext.i.i = zext i8 %utf8_encoded.sroa.11.0.i.i to i32 
         56:  %utf8_encoded.sroa.11.0.insert.shift.i.i = shl nuw nsw i32 %utf8_encoded.sroa.11.0.insert.ext.i.i, 16 
         57:  %utf8_encoded.sroa.11.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.11.0.insert.shift.i.i, %utf8_encoded.sroa.13.0.i.i 
         58:  %utf8_encoded.sroa.8.0.insert.ext.i.i = zext i8 %utf8_encoded.sroa.8.0.i.i to i32 
         59:  %utf8_encoded.sroa.8.0.insert.shift.i.i = shl nuw nsw i32 %utf8_encoded.sroa.8.0.insert.ext.i.i, 8 
         60:  %utf8_encoded.sroa.8.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.11.0.insert.insert.i.i, %utf8_encoded.sroa.8.0.insert.shift.i.i 
         61:  %utf8_encoded.sroa.0.0.insert.ext.i.i = and i32 %utf8_encoded.sroa.0.0.i.i, 255 
         62:  %utf8_encoded.sroa.0.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.8.0.insert.insert.i.i, %utf8_encoded.sroa.0.0.insert.ext.i.i 
         63:  %7 = getelementptr inbounds nuw i8, ptr %_5.i, i64 24 
         64:  store i64 %haystack.1, ptr %7, align 8, !alias.scope !7, !noalias !10 
         65:  %8 = getelementptr inbounds nuw i8, ptr %_5.i, i64 36 
         66:  store i32 %needle, ptr %8, align 4, !alias.scope !7, !noalias !10 
         67:  %9 = getelementptr inbounds nuw i8, ptr %_5.i, i64 40 
         68:  store i8 %len.sroa.0.04.i.i.i, ptr %9, align 8, !alias.scope !7, !noalias !10 
         69:  %10 = getelementptr inbounds nuw i8, ptr %_5.i, i64 32 
         70:  store i32 %utf8_encoded.sroa.0.0.insert.insert.i.i, ptr %10, align 8, !alias.scope !7, !noalias !10 
         71:  tail call void @llvm.experimental.noalias.scope.decl(metadata !12) 
         72:  %_13.i.i = zext nneg i8 %len.sroa.0.04.i.i.i to i64 
         73:  %11 = getelementptr i8, ptr %10, i64 %_13.i.i 
         74:  %_55.i.i = getelementptr i8, ptr %11, i64 -1 
         75:  %last_byte.pre.i.i = load i8, ptr %_55.i.i, align 1, !alias.scope !12, !noalias !15 
         76:  br label %bb21.i.i 
         77:  
         78: bb21.i.i: ; preds = %bb21.i.i.backedge, %bb21.lr.ph.split.i.i 
         79:  %_20.02022.i.i = phi i64 [ 0, %bb21.lr.ph.split.i.i ], [ %_20.0.i.i, %bb21.i.i.backedge ] 
         80:  %new_len.i.i = sub nuw i64 %haystack.1, %_20.02022.i.i 
         81:  %_50.i.i = getelementptr inbounds nuw i8, ptr %haystack.0, i64 %_20.02022.i.i 
         82:  %_58.i.i = icmp ult i64 %new_len.i.i, 16 
         83:  br i1 %_58.i.i, label %bb25.i.i, label %bb26.i.i 
         84:  
         85: bb26.i.i: ; preds = %bb21.i.i 
         86: ; call core::slice::memchr::memchr_aligned 
         87:  %12 = tail call { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr14memchr_aligned(i8 noundef %last_byte.pre.i.i, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %_50.i.i, i64 noundef %new_len.i.i), !noalias !17 
         88:  br label %bb27.i.i 
         89:  
         90: bb25.i.i: ; preds = %bb21.i.i 
         91:  %_44.not.i.i.i = icmp eq i64 %new_len.i.i, 0 
         92:  br i1 %_44.not.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb3.i.i.i 
         93:  
         94: bb3.i.i.i: ; preds = %bb25.i.i, %bb5.i.i2.i 
         95:  %i.sroa.0.05.i.i.i = phi i64 [ %_11.0.i.i.i, %bb5.i.i2.i ], [ 0, %bb25.i.i ] 
         96:  %13 = getelementptr inbounds nuw i8, ptr %_50.i.i, i64 %i.sroa.0.05.i.i.i 
         97:  %_8.i.i.i = load i8, ptr %13, align 1, !alias.scope !18, !noalias !17, !noundef !21 
         98:  %_7.i.i.i = icmp eq i8 %_8.i.i.i, %last_byte.pre.i.i 
         99:  br i1 %_7.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb5.i.i2.i 
        100:  
        101: bb5.i.i2.i: ; preds = %bb3.i.i.i 
        102:  %_11.0.i.i.i = add nuw nsw i64 %i.sroa.0.05.i.i.i, 1 
        103:  %exitcond.not.i.i.i = icmp eq i64 %_11.0.i.i.i, %new_len.i.i 
        104:  br i1 %exitcond.not.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb3.i.i.i 
        105:  
        106: _RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i: ; preds = %bb5.i.i2.i, %bb3.i.i.i, %bb25.i.i 
        107:  %i.sroa.0.0.lcssa.i.i.i = phi i64 [ 0, %bb25.i.i ], [ %new_len.i.i, %bb5.i.i2.i ], [ %i.sroa.0.05.i.i.i, %bb3.i.i.i ] 
        108:  %_0.sroa.0.0.i.i.i = phi i64 [ 0, %bb25.i.i ], [ 0, %bb5.i.i2.i ], [ 1, %bb3.i.i.i ] 
        109:  %14 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i.i.i, 0 
        110:  %15 = insertvalue { i64, i64 } %14, i64 %i.sroa.0.0.lcssa.i.i.i, 1 
        111:  br label %bb27.i.i 
        112:  
        113: bb27.i.i: ; preds = %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, %bb26.i.i 
        114:  %.pn.i.i = phi { i64, i64 } [ %15, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i ], [ %12, %bb26.i.i ] 
not:19'1                 !~~~~~~~~~~~~~~~                                                                                                 error: no match expected
        115:  %result.sroa.0.0.i.i = extractvalue { i64, i64 } %.pn.i.i, 0 
        116:  %16 = trunc nuw i64 %result.sroa.0.0.i.i to i1 
        117:  br i1 %16, label %bb28.i.i, label %_RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit 
        118:  
        119: bb28.i.i: ; preds = %bb27.i.i 
        120:  %result.sroa.8.0.i.i = extractvalue { i64, i64 } %.pn.i.i, 1 
        121:  %cond.i.i = icmp ult i64 %result.sroa.8.0.i.i, %new_len.i.i 
        122:  tail call void @llvm.assume(i1 %cond.i.i) 
        123:  %_19.0.i.i = add i64 %_20.02022.i.i, 1 
        124:  %_20.0.i.i = add i64 %_19.0.i.i, %result.sroa.8.0.i.i 
        125:  %_21.not.i.i = icmp uge i64 %_20.0.i.i, %_13.i.i 
        126:  %_66.not.i.i = icmp ule i64 %_20.0.i.i, %haystack.1 
        127:  %or.cond.i.not.i = and i1 %_21.not.i.i, %_66.not.i.i 
        128:  br i1 %or.cond.i.not.i, label %bb41.i.i, label %bb13.i.i 
        129:  
        130: bb13.i.i: ; preds = %bb28.i.i 
        131:  br i1 %_66.not.i.i, label %bb21.i.i.backedge, label %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i 
        132:  
        133: bb41.i.i: ; preds = %bb28.i.i 
        134:  %_27.0.i.i = sub nuw i64 %_20.0.i.i, %_13.i.i 
        135:  %_74.i.i = getelementptr inbounds nuw i8, ptr %haystack.0, i64 %_27.0.i.i 
        136:  %_89.i.i = call i32 @memcmp(ptr noundef nonnull readonly dereferenceable(1) %_74.i.i, ptr noundef nonnull dereferenceable(1) %10, i64 %_13.i.i), !noalias !22 
        137:  %_32.i.i = icmp eq i32 %_89.i.i, 0 
        138:  br i1 %_32.i.i, label %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i, label %bb21.i.i.backedge 
        139:  
        140: bb21.i.i.backedge: ; preds = %bb41.i.i, %bb13.i.i 
        141:  br label %bb21.i.i 
        142:  
        143: _RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i: ; preds = %bb41.i.i, %bb13.i.i 
        144:  %self.sroa.4.0.ph.i = phi i64 [ %_27.0.i.i, %bb41.i.i ], [ undef, %bb13.i.i ] 
        145:  %17 = zext i1 %or.cond.i.not.i to i64 
        146:  br label %_RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit 
        147:  
        148: _RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit: ; preds = %bb27.i.i, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i 
        149:  %self.sroa.4.0.i = phi i64 [ %self.sroa.4.0.ph.i, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i ], [ undef, %bb27.i.i ] 
        150:  %.sink.i.i = phi i64 [ %17, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i ], [ 0, %bb27.i.i ] 
        151:  call void @llvm.lifetime.end.p0(ptr nonnull %_5.i), !noalias !4 
        152:  %18 = insertvalue { i64, i64 } poison, i64 %.sink.i.i, 0 
        153:  %19 = insertvalue { i64, i64 } %18, i64 %self.sroa.4.0.i, 1 
        154:  ret { i64, i64 } %19 
not:19'2      }                      search range end (exclusive)
        155: } 
        156:  
        157: ; Function Attrs: uwtable 
        158: define { i1, i8 } @find_byte(ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1, i8 noundef %needle) unnamed_addr #0 !guid !23 { 
        159: start: 
        160:  %_3.i = icmp samesign ult i64 %1, 16 
        161:  br i1 %_3.i, label %bb1.i, label %bb2.i 
        162:  
        163: bb2.i: ; preds = %start 
        164: ; call core::slice::memchr::memchr_aligned 
        165:  %2 = tail call { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr14memchr_aligned(i8 noundef %needle, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1) 
        166:  br label %bb3.i 
        167:  
        168: bb1.i: ; preds = %start 
        169:  %_44.not.i.i = icmp eq i64 %1, 0 
        170:  br i1 %_44.not.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb3.i.i 
        171:  
        172: bb3.i.i: ; preds = %bb1.i, %bb5.i.i 
        173:  %i.sroa.0.05.i.i = phi i64 [ %_11.0.i.i, %bb5.i.i ], [ 0, %bb1.i ] 
        174:  %3 = getelementptr inbounds nuw i8, ptr %0, i64 %i.sroa.0.05.i.i 
        175:  %_8.i.i = load i8, ptr %3, align 1, !alias.scope !24, !noundef !21 
        176:  %_7.i.i = icmp eq i8 %_8.i.i, %needle 
        177:  br i1 %_7.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb5.i.i 
        178:  
        179: bb5.i.i: ; preds = %bb3.i.i 
        180:  %_11.0.i.i = add nuw nsw i64 %i.sroa.0.05.i.i, 1 
        181:  %exitcond.not.i.i = icmp eq i64 %_11.0.i.i, %1 
        182:  br i1 %exitcond.not.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb3.i.i 
        183:  
        184: _RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i: ; preds = %bb5.i.i, %bb3.i.i, %bb1.i 
        185:  %i.sroa.0.0.lcssa.i.i = phi i64 [ 0, %bb1.i ], [ %i.sroa.0.05.i.i, %bb3.i.i ], [ %1, %bb5.i.i ] 
        186:  %_0.sroa.0.0.i.i = phi i64 [ 0, %bb1.i ], [ 1, %bb3.i.i ], [ 0, %bb5.i.i ] 
        187:  %4 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i.i, 0 
        188:  %5 = insertvalue { i64, i64 } %4, i64 %i.sroa.0.0.lcssa.i.i, 1 
        189:  br label %bb3.i 
        190:  
        191: bb3.i: ; preds = %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, %bb2.i 
        192:  %.pn.i = phi { i64, i64 } [ %5, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i ], [ %2, %bb2.i ] 
        193:  %result.sroa.0.0.i = extractvalue { i64, i64 } %.pn.i, 0 
        194:  %6 = trunc nuw i64 %result.sroa.0.0.i to i1 
        195:  br i1 %6, label %_RNCNvCseGwaCIodT3Y_13memchr_result9find_byte0B3_.exit.i, label %_RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result9find_byte0EBT_.exit 
        196:  
        197: _RNCNvCseGwaCIodT3Y_13memchr_result9find_byte0B3_.exit.i: ; preds = %bb3.i 
        198:  %result.sroa.4.0.i = extractvalue { i64, i64 } %.pn.i, 1 
        199:  %cond.i = icmp ult i64 %result.sroa.4.0.i, %1 
        200:  tail call void @llvm.assume(i1 %cond.i) 
        201:  %7 = getelementptr inbounds nuw i8, ptr %0, i64 %result.sroa.4.0.i 
        202:  %_0.i.i = load i8, ptr %7, align 1, !noundef !21 
        203:  br label %_RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result9find_byte0EBT_.exit 
        204:  
        205: _RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result9find_byte0EBT_.exit: ; preds = %bb3.i, %_RNCNvCseGwaCIodT3Y_13memchr_result9find_byte0B3_.exit.i 
        206:  %_0.sroa.3.0.i = phi i8 [ %_0.i.i, %_RNCNvCseGwaCIodT3Y_13memchr_result9find_byte0B3_.exit.i ], [ undef, %bb3.i ] 
        207:  %8 = insertvalue { i1, i8 } poison, i1 %6, 0 
        208:  %9 = insertvalue { i1, i8 } %8, i8 %_0.sroa.3.0.i, 1 
        209:  ret { i1, i8 } %9 
        210: } 
        211:  
        212: ; Function Attrs: uwtable 
        213: define { i1, i8 } @rfind_byte(ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1, i8 noundef %needle) unnamed_addr #0 !guid !29 { 
        214: start: 
        215: ; call core::slice::memchr::memrchr_aligned 
        216:  %2 = tail call { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr15memrchr_aligned(i8 noundef %needle, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1) 
        217:  %3 = extractvalue { i64, i64 } %2, 0 
        218:  %4 = trunc nuw i64 %3 to i1 
        219:  br i1 %4, label %_RNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0B3_.exit.i, label %_RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0EBT_.exit 
        220:  
        221: _RNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0B3_.exit.i: ; preds = %start 
        222:  %5 = extractvalue { i64, i64 } %2, 1 
        223:  %cond.i = icmp ult i64 %5, %1 
        224:  tail call void @llvm.assume(i1 %cond.i) 
        225:  %6 = getelementptr inbounds nuw i8, ptr %0, i64 %5 
        226:  %_0.i.i = load i8, ptr %6, align 1, !noundef !21 
        227:  br label %_RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0EBT_.exit 
        228:  
        229: _RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0EBT_.exit: ; preds = %start, %_RNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0B3_.exit.i 
        230:  %_0.sroa.3.0.i = phi i8 [ %_0.i.i, %_RNCNvCseGwaCIodT3Y_13memchr_result10rfind_byte0B3_.exit.i ], [ undef, %start ] 
        231:  %7 = insertvalue { i1, i8 } poison, i1 %4, 0 
        232:  %8 = insertvalue { i1, i8 } %7, i8 %_0.sroa.3.0.i, 1 
        233:  ret { i1, i8 } %8 
        234: } 
        235:  
        236: declare i32 @__CxxFrameHandler3(...) unnamed_addr #1 
        237:  
        238: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        239: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 
        240:  
        241: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        242: declare void @llvm.lifetime.end.p0(ptr captures(none)) #2 
        243:  
        244: ; core::slice::memchr::memchr_aligned 
        245: ; Function Attrs: uwtable 
        246: declare { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr14memchr_aligned(i8 noundef, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance), i64 noundef range(i64 0, -9223372036854775808)) unnamed_addr #0 
        247:  
        248: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) 
        249: declare void @llvm.assume(i1 noundef) #3 
        250:  
        251: ; core::slice::memchr::memrchr_aligned 
        252: ; Function Attrs: uwtable 
        253: declare { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr15memrchr_aligned(i8 noundef, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance), i64 noundef range(i64 0, -9223372036854775808)) unnamed_addr #0 
        254:  
          .
          .
          .
>>>>>>

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

error in revision `llvm-new`: verification with 'FileCheck' failed
status: exit code: 1
command: PATH=";C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64;C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\HostX64\x64;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\runneradmin\bin;D:\a\rust\rust\ninja;D:\a\rust\rust\sccache;C:\Program Files\MongoDB\Server\7.0\bin;C:\vcpkg;C:\tools\zstd;C:\hostedtoolcache\windows\stack\3.11.1\x64;C:\cabal\bin;C:\ghcup\bin;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\R\R-4.6.1\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\usr\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.24.13\x64\bin;C:\hostedtoolcache\windows\Python\3.12.10\x64\Scripts;C:\hostedtoolcache\windows\Python\3.12.10\x64;C:\hostedtoolcache\windows\Ruby\3.3.12\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\17.0.19-10\x64\bin;C:\Program Files\ImageMagick-7.1.2-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\Microsoft SQL Server\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\dotnet;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\Program Files\Microsoft SQL Server\130\DTS\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Microsoft SQL Server\160\DTS\Binn;C:\Program Files\Microsoft SQL Server\170\DTS\Binn;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.16\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI;C:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files\Amazon\SessionManagerPlugin\bin;C:\Program Files\Amazon\AWSSAMCLI\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\mongosh;C:\Program Files\LLVM\bin;C:\Program Files (x86)\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\HostX64\x64" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\llvm\\build\\bin\\FileCheck.exe" "--input-file" "D:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\test\\codegen-llvm\\lib-optimizations\\memchr-result.llvm-new\\memchr-result.ll" "D:\\a\\rust\\rust\\tests\\codegen-llvm\\lib-optimizations\\memchr-result.rs" "--check-prefix=CHECK" "--check-prefix" "llvm-new" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
D:\a\rust\rust\tests\codegen-llvm\lib-optimizations\memchr-result.rs:19:19: error: llvm-new-NOT: excluded string found in input
 // llvm-new-NOT: phi { i64, i64 }
                  ^
D:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen-llvm\lib-optimizations\memchr-result.llvm-new\memchr-result.ll:114:13: note: found here
 %.pn.i.i = phi { i64, i64 } [ %15, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i ], [ %12, %bb26.i.i ]
            ^~~~~~~~~~~~~~~~

Input file: D:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen-llvm\lib-optimizations\memchr-result.llvm-new\memchr-result.ll
Check file: D:\a\rust\rust\tests\codegen-llvm\lib-optimizations\memchr-result.rs

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

Input was:
<<<<<<
          1: ; ModuleID = 'memchr_result.ab0df14a1728f5ec-cgu.0' 
          2: source_filename = "memchr_result.ab0df14a1728f5ec-cgu.0" 
          3: target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
          4: target triple = "x86_64-pc-windows-msvc" 
          5:  
          6: ; Function Attrs: uwtable 
          7: define { i64, i64 } @find_char(ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %haystack.0, i64 noundef %haystack.1, i32 noundef range(i32 0, 1114112) %needle) unnamed_addr #0 personality ptr @__CxxFrameHandler3 !guid !3 { 
not:19'0                                  {                                                                                                                                                                                                                                  search range start (exclusive)
          8: start: 
          9:  %_5.i = alloca [48 x i8], align 8 
         10:  tail call void @llvm.experimental.noalias.scope.decl(metadata !4) 
         11:  call void @llvm.lifetime.start.p0(ptr nonnull %_5.i), !noalias !4 
         12:  %_11.i.i.i = icmp samesign ult i32 %needle, 128 
         13:  br i1 %_11.i.i.i, label %bb21.lr.ph.split.i.i, label %bb5.i.i.i 
         14:  
         15: bb5.i.i.i: ; preds = %start 
         16:  %_12.i.i.i = icmp samesign ult i32 %needle, 2048 
         17:  %0 = trunc i32 %needle to i8 
         18:  %_5.i.i.i.i = and i8 %0, 63 
         19:  %last1.i.i.i.i = or disjoint i8 %_5.i.i.i.i, -128 
         20:  %_10.i.i.i.i = lshr i32 %needle, 6 
         21:  %1 = trunc i32 %_10.i.i.i.i to i8 
         22:  %_8.i.i.i.i = and i8 %1, 63 
         23:  %last2.i.i.i.i = or disjoint i8 %_8.i.i.i.i, -128 
         24:  %_14.i.i.i.i = lshr i32 %needle, 12 
         25:  %2 = trunc i32 %_14.i.i.i.i to i8 
         26:  %_12.i.i.i.i = and i8 %2, 63 
         27:  %last3.i.i.i.i = or disjoint i8 %_12.i.i.i.i, -128 
         28:  %_18.i.i.i.i = lshr i32 %needle, 18 
         29:  %last4.i.i.i.i = or disjoint i32 %_18.i.i.i.i, 240 
         30:  br i1 %_12.i.i.i, label %bb1.i.i.i.i, label %bb2.i.i.i.i 
         31:  
         32: bb1.i.i.i.i: ; preds = %bb5.i.i.i 
         33:  %3 = or disjoint i32 %_10.i.i.i.i, 192 
         34:  br label %bb21.lr.ph.split.i.i 
         35:  
         36: bb2.i.i.i.i: ; preds = %bb5.i.i.i 
         37:  %_13.i.i.i = icmp samesign ult i32 %needle, 65536 
         38:  br i1 %_13.i.i.i, label %bb3.i.i.i.i, label %bb4.i.i.i.i 
         39:  
         40: bb3.i.i.i.i: ; preds = %bb2.i.i.i.i 
         41:  %4 = or disjoint i32 %_14.i.i.i.i, 224 
         42:  br label %bb21.lr.ph.split.i.i 
         43:  
         44: bb4.i.i.i.i: ; preds = %bb2.i.i.i.i 
         45:  %5 = zext i8 %last1.i.i.i.i to i32 
         46:  %6 = shl nuw i32 %5, 24 
         47:  br label %bb21.lr.ph.split.i.i 
         48:  
         49: bb21.lr.ph.split.i.i: ; preds = %bb4.i.i.i.i, %bb3.i.i.i.i, %bb1.i.i.i.i, %start 
         50:  %utf8_encoded.sroa.13.0.i.i = phi i32 [ %6, %bb4.i.i.i.i ], [ 0, %bb1.i.i.i.i ], [ 0, %bb3.i.i.i.i ], [ 0, %start ] 
         51:  %utf8_encoded.sroa.11.0.i.i = phi i8 [ %last2.i.i.i.i, %bb4.i.i.i.i ], [ 0, %bb1.i.i.i.i ], [ %last1.i.i.i.i, %bb3.i.i.i.i ], [ 0, %start ] 
         52:  %utf8_encoded.sroa.8.0.i.i = phi i8 [ %last3.i.i.i.i, %bb4.i.i.i.i ], [ %last1.i.i.i.i, %bb1.i.i.i.i ], [ %last2.i.i.i.i, %bb3.i.i.i.i ], [ 0, %start ] 
         53:  %utf8_encoded.sroa.0.0.i.i = phi i32 [ %last4.i.i.i.i, %bb4.i.i.i.i ], [ %3, %bb1.i.i.i.i ], [ %4, %bb3.i.i.i.i ], [ %needle, %start ] 
         54:  %len.sroa.0.04.i.i.i = phi i8 [ 4, %bb4.i.i.i.i ], [ 2, %bb1.i.i.i.i ], [ 3, %bb3.i.i.i.i ], [ 1, %start ] 
         55:  %utf8_encoded.sroa.11.0.insert.ext.i.i = zext i8 %utf8_encoded.sroa.11.0.i.i to i32 
         56:  %utf8_encoded.sroa.11.0.insert.shift.i.i = shl nuw nsw i32 %utf8_encoded.sroa.11.0.insert.ext.i.i, 16 
         57:  %utf8_encoded.sroa.11.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.11.0.insert.shift.i.i, %utf8_encoded.sroa.13.0.i.i 
         58:  %utf8_encoded.sroa.8.0.insert.ext.i.i = zext i8 %utf8_encoded.sroa.8.0.i.i to i32 
         59:  %utf8_encoded.sroa.8.0.insert.shift.i.i = shl nuw nsw i32 %utf8_encoded.sroa.8.0.insert.ext.i.i, 8 
         60:  %utf8_encoded.sroa.8.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.11.0.insert.insert.i.i, %utf8_encoded.sroa.8.0.insert.shift.i.i 
         61:  %utf8_encoded.sroa.0.0.insert.ext.i.i = and i32 %utf8_encoded.sroa.0.0.i.i, 255 
         62:  %utf8_encoded.sroa.0.0.insert.insert.i.i = or disjoint i32 %utf8_encoded.sroa.8.0.insert.insert.i.i, %utf8_encoded.sroa.0.0.insert.ext.i.i 
         63:  %7 = getelementptr inbounds nuw i8, ptr %_5.i, i64 24 
         64:  store i64 %haystack.1, ptr %7, align 8, !alias.scope !7, !noalias !10 
         65:  %8 = getelementptr inbounds nuw i8, ptr %_5.i, i64 36 
         66:  store i32 %needle, ptr %8, align 4, !alias.scope !7, !noalias !10 
         67:  %9 = getelementptr inbounds nuw i8, ptr %_5.i, i64 40 
         68:  store i8 %len.sroa.0.04.i.i.i, ptr %9, align 8, !alias.scope !7, !noalias !10 
         69:  %10 = getelementptr inbounds nuw i8, ptr %_5.i, i64 32 
         70:  store i32 %utf8_encoded.sroa.0.0.insert.insert.i.i, ptr %10, align 8, !alias.scope !7, !noalias !10 
         71:  tail call void @llvm.experimental.noalias.scope.decl(metadata !12) 
         72:  %_13.i.i = zext nneg i8 %len.sroa.0.04.i.i.i to i64 
         73:  %11 = getelementptr i8, ptr %10, i64 %_13.i.i 
         74:  %_55.i.i = getelementptr i8, ptr %11, i64 -1 
         75:  %last_byte.pre.i.i = load i8, ptr %_55.i.i, align 1, !alias.scope !12, !noalias !15 
         76:  br label %bb21.i.i 
         77:  
         78: bb21.i.i: ; preds = %bb21.i.i.backedge, %bb21.lr.ph.split.i.i 
         79:  %_20.02022.i.i = phi i64 [ 0, %bb21.lr.ph.split.i.i ], [ %_20.0.i.i, %bb21.i.i.backedge ] 
         80:  %new_len.i.i = sub nuw i64 %haystack.1, %_20.02022.i.i 
         81:  %_50.i.i = getelementptr inbounds nuw i8, ptr %haystack.0, i64 %_20.02022.i.i 
         82:  %_58.i.i = icmp ult i64 %new_len.i.i, 16 
         83:  br i1 %_58.i.i, label %bb25.i.i, label %bb26.i.i 
         84:  
         85: bb26.i.i: ; preds = %bb21.i.i 
         86: ; call core::slice::memchr::memchr_aligned 
         87:  %12 = tail call { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr14memchr_aligned(i8 noundef %last_byte.pre.i.i, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %_50.i.i, i64 noundef %new_len.i.i), !noalias !17 
         88:  br label %bb27.i.i 
         89:  
         90: bb25.i.i: ; preds = %bb21.i.i 
         91:  %_44.not.i.i.i = icmp eq i64 %new_len.i.i, 0 
         92:  br i1 %_44.not.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb3.i.i.i 
         93:  
         94: bb3.i.i.i: ; preds = %bb25.i.i, %bb5.i.i2.i 
         95:  %i.sroa.0.05.i.i.i = phi i64 [ %_11.0.i.i.i, %bb5.i.i2.i ], [ 0, %bb25.i.i ] 
         96:  %13 = getelementptr inbounds nuw i8, ptr %_50.i.i, i64 %i.sroa.0.05.i.i.i 
         97:  %_8.i.i.i = load i8, ptr %13, align 1, !alias.scope !18, !noalias !17, !noundef !21 
         98:  %_7.i.i.i = icmp eq i8 %_8.i.i.i, %last_byte.pre.i.i 
         99:  br i1 %_7.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb5.i.i2.i 
        100:  
        101: bb5.i.i2.i: ; preds = %bb3.i.i.i 
        102:  %_11.0.i.i.i = add nuw nsw i64 %i.sroa.0.05.i.i.i, 1 
        103:  %exitcond.not.i.i.i = icmp eq i64 %_11.0.i.i.i, %new_len.i.i 
        104:  br i1 %exitcond.not.i.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, label %bb3.i.i.i 
        105:  
        106: _RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i: ; preds = %bb5.i.i2.i, %bb3.i.i.i, %bb25.i.i 
        107:  %i.sroa.0.0.lcssa.i.i.i = phi i64 [ 0, %bb25.i.i ], [ %new_len.i.i, %bb5.i.i2.i ], [ %i.sroa.0.05.i.i.i, %bb3.i.i.i ] 
        108:  %_0.sroa.0.0.i.i.i = phi i64 [ 0, %bb25.i.i ], [ 0, %bb5.i.i2.i ], [ 1, %bb3.i.i.i ] 
        109:  %14 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i.i.i, 0 
        110:  %15 = insertvalue { i64, i64 } %14, i64 %i.sroa.0.0.lcssa.i.i.i, 1 
        111:  br label %bb27.i.i 
        112:  
        113: bb27.i.i: ; preds = %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i, %bb26.i.i 
        114:  %.pn.i.i = phi { i64, i64 } [ %15, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i.i ], [ %12, %bb26.i.i ] 
not:19'1                 !~~~~~~~~~~~~~~~                                                                                                 error: no match expected
        115:  %result.sroa.0.0.i.i = extractvalue { i64, i64 } %.pn.i.i, 0 
        116:  %16 = trunc nuw i64 %result.sroa.0.0.i.i to i1 
        117:  br i1 %16, label %bb28.i.i, label %_RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit 
        118:  
        119: bb28.i.i: ; preds = %bb27.i.i 
        120:  %result.sroa.8.0.i.i = extractvalue { i64, i64 } %.pn.i.i, 1 
        121:  %cond.i.i = icmp ult i64 %result.sroa.8.0.i.i, %new_len.i.i 
        122:  tail call void @llvm.assume(i1 %cond.i.i) 
        123:  %_19.0.i.i = add i64 %_20.02022.i.i, 1 
        124:  %_20.0.i.i = add i64 %_19.0.i.i, %result.sroa.8.0.i.i 
        125:  %_21.not.i.i = icmp uge i64 %_20.0.i.i, %_13.i.i 
        126:  %_66.not.i.i = icmp ule i64 %_20.0.i.i, %haystack.1 
        127:  %or.cond.i.not.i = and i1 %_21.not.i.i, %_66.not.i.i 
        128:  br i1 %or.cond.i.not.i, label %bb41.i.i, label %bb13.i.i 
        129:  
        130: bb13.i.i: ; preds = %bb28.i.i 
        131:  br i1 %_66.not.i.i, label %bb21.i.i.backedge, label %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i 
        132:  
        133: bb41.i.i: ; preds = %bb28.i.i 
        134:  %_27.0.i.i = sub nuw i64 %_20.0.i.i, %_13.i.i 
        135:  %_74.i.i = getelementptr inbounds nuw i8, ptr %haystack.0, i64 %_27.0.i.i 
        136:  %_89.i.i = call i32 @memcmp(ptr noundef nonnull readonly dereferenceable(1) %_74.i.i, ptr noundef nonnull dereferenceable(1) %10, i64 %_13.i.i), !noalias !22 
        137:  %_32.i.i = icmp eq i32 %_89.i.i, 0 
        138:  br i1 %_32.i.i, label %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i, label %bb21.i.i.backedge 
        139:  
        140: bb21.i.i.backedge: ; preds = %bb41.i.i, %bb13.i.i 
        141:  br label %bb21.i.i 
        142:  
        143: _RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i: ; preds = %bb41.i.i, %bb13.i.i 
        144:  %self.sroa.4.0.ph.i = phi i64 [ %_27.0.i.i, %bb41.i.i ], [ undef, %bb13.i.i ] 
        145:  %17 = zext i1 %or.cond.i.not.i to i64 
        146:  br label %_RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit 
        147:  
        148: _RINvMNtCs5hcVgabINu4_4core3stre4findcECseGwaCIodT3Y_13memchr_result.exit: ; preds = %bb27.i.i, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i 
        149:  %self.sroa.4.0.i = phi i64 [ %self.sroa.4.0.ph.i, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i ], [ undef, %bb27.i.i ] 
        150:  %.sink.i.i = phi i64 [ %17, %_RNvXs_NtNtCs5hcVgabINu4_4core3str7patternNtB4_12CharSearcherNtB4_8Searcher10next_match.exit.loopexit.i ], [ 0, %bb27.i.i ] 
        151:  call void @llvm.lifetime.end.p0(ptr nonnull %_5.i), !noalias !4 
        152:  %18 = insertvalue { i64, i64 } poison, i64 %.sink.i.i, 0 
        153:  %19 = insertvalue { i64, i64 } %18, i64 %self.sroa.4.0.i, 1 
        154:  ret { i64, i64 } %19 
not:19'2      }                      search range end (exclusive)
        155: } 
        156:  
        157: ; Function Attrs: uwtable 
        158: define { i1, i8 } @find_byte(ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1, i8 noundef %needle) unnamed_addr #0 !guid !23 { 
        159: start: 
        160:  %_3.i = icmp samesign ult i64 %1, 16 
        161:  br i1 %_3.i, label %bb1.i, label %bb2.i 
        162:  
        163: bb2.i: ; preds = %start 
        164: ; call core::slice::memchr::memchr_aligned 
        165:  %2 = tail call { i64, i64 } @_RNvNtNtCs5hcVgabINu4_4core5slice6memchr14memchr_aligned(i8 noundef %needle, ptr noalias nofree noundef nonnull readonly captures(address, read_provenance) %0, i64 noundef range(i64 0, -9223372036854775808) %1) 
        166:  br label %bb3.i 
        167:  
        168: bb1.i: ; preds = %start 
        169:  %_44.not.i.i = icmp eq i64 %1, 0 
        170:  br i1 %_44.not.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb3.i.i 
        171:  
        172: bb3.i.i: ; preds = %bb1.i, %bb5.i.i 
        173:  %i.sroa.0.05.i.i = phi i64 [ %_11.0.i.i, %bb5.i.i ], [ 0, %bb1.i ] 
        174:  %3 = getelementptr inbounds nuw i8, ptr %0, i64 %i.sroa.0.05.i.i 
        175:  %_8.i.i = load i8, ptr %3, align 1, !alias.scope !24, !noundef !21 
        176:  %_7.i.i = icmp eq i8 %_8.i.i, %needle 
        177:  br i1 %_7.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb5.i.i 
        178:  
        179: bb5.i.i: ; preds = %bb3.i.i 
        180:  %_11.0.i.i = add nuw nsw i64 %i.sroa.0.05.i.i, 1 
        181:  %exitcond.not.i.i = icmp eq i64 %_11.0.i.i, %1 
        182:  br i1 %exitcond.not.i.i, label %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, label %bb3.i.i 
        183:  
        184: _RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i: ; preds = %bb5.i.i, %bb3.i.i, %bb1.i 
        185:  %i.sroa.0.0.lcssa.i.i = phi i64 [ 0, %bb1.i ], [ %i.sroa.0.05.i.i, %bb3.i.i ], [ %1, %bb5.i.i ] 
        186:  %_0.sroa.0.0.i.i = phi i64 [ 0, %bb1.i ], [ 1, %bb3.i.i ], [ 0, %bb5.i.i ] 
        187:  %4 = insertvalue { i64, i64 } poison, i64 %_0.sroa.0.0.i.i, 0 
        188:  %5 = insertvalue { i64, i64 } %4, i64 %i.sroa.0.0.lcssa.i.i, 1 
        189:  br label %bb3.i 
        190:  
        191: bb3.i: ; preds = %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i, %bb2.i 
        192:  %.pn.i = phi { i64, i64 } [ %5, %_RNvNtNtCs5hcVgabINu4_4core5slice6memchr12memchr_naive.exit.i ], [ %2, %bb2.i ] 
        193:  %result.sroa.0.0.i = extractvalue { i64, i64 } %.pn.i, 0 
        194:  %6 = trunc nuw i64 %result.sroa.0.0.i to i1 
        195:  br i1 %6, label %_RNCNvCseGwaCIodT3Y_13memchr_result9find_byte0B3_.exit.i, label %_RINvMNtCs5hcVgabINu4_4core6optionINtB3_6OptionjE3maphNCNvCseGwaCIodT3Y_13memchr_result9find_byte0EBT_.exit 

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 6, 2026
@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

PR #159784, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 6, 2026
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 6, 2026
@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

💔 Test for f310440 failed: CI. Failed jobs:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.