Skip to content

Rollup of 13 pull requests#156720

Merged
rust-bors[bot] merged 109 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vArjiS4
May 18, 2026
Merged

Rollup of 13 pull requests#156720
rust-bors[bot] merged 109 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vArjiS4

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Conaclos and others added 30 commits February 8, 2026 23:25
revert the offset loading, instead load in a wrapping fashion
Earlier patches added `big_endian_inverse` and used `transmute` instead
of using `vreinterpret` due to an LLVM bug that has since been resolved
Instead of duplicating the stability attribute, re-use the `neon-stable`
anchor through
Some intrinsics optimise to different instructions on big endian which
leads to `assert_instr` failing
Revert changing number of passes depending on number of parameters
Some small overall improvements to stdarch-gen-arm
This enables the `big_endian_inverse` transformation to apply to this
intrinsic.
This enables the `big_endian_inverse` transformation to apply to these
intrinsics.
This enables the `big_endian_inverse` transform to apply to these
intrinsics.
This enables the `big_endian_inverse` transform to apply to this
intrinsic.
This enables the `big_endian_inverse` transform to apply to this
intrinsic.
Manually written tests for `vcopy_laneq`, `vget{,q}_{high,low,lane}`,
`vcombine` and `vaddw_high` don't account for the expected differences
in output for big endian intrinsics and given that they duplicate the
testing of `intrinsic-test`, can be removed.
Changes the definition of `vabdl_high_u{8,16,32}` to match that of
`vabdl_high_s{8,16,32}` so that the `big_endian_inverse` transformation
can apply.
Writing these intrinsics in terms of the `vqtbl_$ty` functions rather
than the `vqtbl` helper function preserves the behaviour while making
them work in big endian.
Writing these intrinsics in terms of the `vqtbx_$ty` functions rather
than the `vqtbx` helper function preserves the behaviour while making
them work in big endian.
loongarch: Use `intrinsics::simd` for vbit{clr,rev,set}
Porting some intrinsics to stdarch-gen-arm
gen-arm: Change definitions of some intrinsics
Instead of doing an `as {i,u}16` cast, we can use the same LLVM
intrinsics as when converting to `{i,u}{32,64}`, which is what Clang does
and ensures the intrinsic result matches.
Replace `println!` with `assert!` in HashMap documentation examples

## Changes
- **`.keys()`**
- **`.values()`**
- **`.values_mut()`**
- **`.iter()`**
- **`.iter_mut()`**
…they

Widen the result of `widening_mul`.

Tracking issue: rust-lang#152016

This PR implements <rust-lang#152016 (comment)>, which mandates that `widening_mul` return a single, scalar value rather than a low/high tuple.

Consequently, this method is removed from `u128` and `i128` as they are the widest integral types. It has also been removed from `usize` and `isize` due to portability concerns.

Existing `widening_mul` usage has been replaced by equivalent calls to `carrying_mul` (which is logically identical to the old behaviour.) Existing &ndash; generic &ndash; non-doc tests have been removed.

# Public API

```rust
impl u8 {
    pub const fn widening_mul(self, rhs: Self) -> u16;
}

impl u16 {
    pub const fn widening_mul(self, rhs: Self) -> u32;
}

impl u32 {
    pub const fn widening_mul(self, rhs: Self) -> u64;
}

impl u64 {
    pub const fn widening_mul(self, rhs: Self) -> u128;
}

impl i8 {
    pub const fn widening_mul(self, rhs: Self) -> i16;
}

impl i16 {
    pub const fn widening_mul(self, rhs: Self) -> i32;
}

impl i32 {
    pub const fn widening_mul(self, rhs: Self) -> i64;
}

impl i64 {
    pub const fn widening_mul(self, rhs: Self) -> i128;
}
```
…imonSapin

Update `sysinfo` version to `0.39.2`

Bugfixes and performance improvements.
…ck-diag-items, r=mejrs

Add diagnostic items for IoBufReader and StdinLock

Added two new diagnostic items for IoBufReader and StdinLock.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label May 18, 2026
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs 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-libs Relevant to the library team, which will review and decide on the PR/issue. labels May 18, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never 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-2

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 18, 2026

📌 Commit 7c3bc86 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 May 18, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 18, 2026
Rollup of 13 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-2
@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 18, 2026

☀️ Try build successful (CI)
Build commit: 4a50f3f (4a50f3f6949e00b4795791abc5b7dba2132fcdeb, parent: 5ea817c65e4896167300b7d2550781b98da9901a)

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 18, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 18, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 24m 40s
Pushing 9eb3be2 to main...

@rust-bors rust-bors Bot merged commit 9eb3be2 into rust-lang:main May 18, 2026
13 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 7517636 (parent) -> 9eb3be2 (this PR)

Test differences

Show 5419 test diffs

Stage 1

  • num::i128::test_widening_mul: pass -> [missing] (J2)
  • num::i16::test_widening_mul: pass -> [missing] (J2)
  • num::i32::test_widening_mul: pass -> [missing] (J2)
  • num::i64::test_widening_mul: pass -> [missing] (J2)
  • num::i8::test_widening_mul: pass -> [missing] (J2)
  • num::u128::test_widening_mul: pass -> [missing] (J2)
  • num::u16::test_widening_mul: pass -> [missing] (J2)
  • num::u32::test_widening_mul: pass -> [missing] (J2)
  • num::u64::test_widening_mul: pass -> [missing] (J2)
  • num::u8::test_widening_mul: pass -> [missing] (J2)
  • [ui] tests/ui/asm/statement-global-asm-error.rs: [missing] -> pass (J4)
  • [ui] tests/ui/asm/statement-global-asm.rs: [missing] -> pass (J4)
  • [ui] tests/ui/binding/match-unique-bind.rs: pass -> [missing] (J4)
  • [ui] tests/ui/box/unit/unique-destructure.rs: pass -> [missing] (J4)
  • [ui] tests/ui/box/unit/unique-pat-2.rs: pass -> [missing] (J4)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_has_atomic_equal_alignment_: pass -> [missing] (J4)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_has_atomic_primitive_alignment_: [missing] -> pass (J4)
  • [ui] tests/ui/deref/derefmut-closure-drop-order.rs: pass -> [missing] (J4)
  • [ui] tests/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs: pass -> [missing] (J4)
  • [ui] tests/ui/parser/break-in-unlabeled-block-parenthesized.rs: [missing] -> pass (J4)
  • ffi::os_str::tests::os_str_slice_at: [missing] -> pass (J6)
  • ffi::os_str::tests::os_str_slice_at_mid_char: [missing] -> pass (J6)
  • ffi::os_str::tests::os_str_slice_at_out_of_bounds: [missing] -> pass (J6)
  • ffi::os_str::tests::os_str_slice_at_unix: [missing] -> pass (J6)

Stage 2

  • ffi::os_str::tests::os_str_slice_at_unix: [missing] -> pass (J0)
  • ffi::os_str::tests::os_str_slice_at: [missing] -> pass (J1)
  • ffi::os_str::tests::os_str_slice_at_mid_char: [missing] -> pass (J1)
  • ffi::os_str::tests::os_str_slice_at_out_of_bounds: [missing] -> pass (J1)
  • num::i128::test_widening_mul: pass -> [missing] (J1)
  • num::i16::test_widening_mul: pass -> [missing] (J1)
  • num::i32::test_widening_mul: pass -> [missing] (J1)
  • num::i64::test_widening_mul: pass -> [missing] (J1)
  • num::i8::test_widening_mul: pass -> [missing] (J1)
  • num::u128::test_widening_mul: pass -> [missing] (J1)
  • num::u16::test_widening_mul: pass -> [missing] (J1)
  • num::u32::test_widening_mul: pass -> [missing] (J1)
  • num::u64::test_widening_mul: pass -> [missing] (J1)
  • num::u8::test_widening_mul: pass -> [missing] (J1)
  • [ui] tests/ui/asm/statement-global-asm-error.rs: [missing] -> pass (J3)
  • [ui] tests/ui/asm/statement-global-asm.rs: [missing] -> pass (J3)
  • [ui] tests/ui/binding/match-unique-bind.rs: pass -> [missing] (J3)
  • [ui] tests/ui/box/unit/unique-destructure.rs: pass -> [missing] (J3)
  • [ui] tests/ui/box/unit/unique-pat-2.rs: pass -> [missing] (J3)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_has_atomic_equal_alignment_: pass -> [missing] (J3)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_has_atomic_primitive_alignment_: [missing] -> pass (J3)
  • [ui] tests/ui/deref/derefmut-closure-drop-order.rs: pass -> [missing] (J3)
  • [ui] tests/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs: pass -> [missing] (J3)
  • [ui] tests/ui/parser/break-in-unlabeled-block-parenthesized.rs: [missing] -> pass (J3)
  • ffi::os_str::tests::os_str_slice_at_windows: [missing] -> pass (J5)

Additionally, 5370 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 9eb3be26b46eccea1de7448ea9cc3c1d20bb1a35 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. pr-check-1: 28m 17s -> 44m 2s (+55.7%)
  2. x86_64-gnu-debug: 1h 36m -> 2h 6m (+30.6%)
  3. dist-x86_64-solaris: 1h 17m -> 1h 37m (+25.4%)
  4. dist-sparcv9-solaris: 1h 17m -> 1h 34m (+22.7%)
  5. dist-x86_64-illumos: 1h 52m -> 1h 28m (-20.8%)
  6. dist-powerpc-linux: 1h 35m -> 1h 16m (-19.3%)
  7. x86_64-gnu-llvm-22-2: 1h 25m -> 1h 39m (+17.1%)
  8. x86_64-gnu-llvm-21: 1h 13m -> 1h 25m (+16.9%)
  9. dist-powerpc64-linux-gnu: 1h 32m -> 1h 16m (-16.8%)
  10. x86_64-rust-for-linux: 48m 56s -> 56m 56s (+16.4%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#152367 Derives Copy for ffi::FromBytesUntilNulError c7fc1b65bbbaaff238d76024ffbecb90c6c475fd (link)
#155006 stabilize feature(cfg_target_has_atomic_equal_alignment) 9801c20b816c7436b55c2aeaafbc8cc759219b02 (link)
#156443 Fix invalid suggestion for parenthesized break fee4b318d6435e70b7c77bd189ed069c934997a0 (link)
#156444 Implement OsStr::split_at 99988eab119da9a7a1b96a713a2428a59944c824 (link)
#156582 Allow global_asm! in statement positions 12f8652e727e5763aab06e29f8f59fcdfc35c000 (link)
#156606 Add pext/pdep as aliases for extract_bits/deposit_bits b57df6417b1978798601f06afbf950fd18934da2 (link)
#156630 Replace println! with assert! in HashMap documentation … acddbd74051038cab2241cdf69a6277725034bdb (link)
#156644 Widen the result of widening_mul. 7baff91838ebe68825ee3fa298b9e7472aec7888 (link)
#156653 Update sysinfo version to 0.39.2 9058618c3dce7426236b084d5a073d205eec48f4 (link)
#156661 Remove UncheckedIterator 9364b83ae31b46a4b29b4b00051f6371c4be827a (link)
#156697 Add diagnostic items for IoBufReader and StdinLock a9ff4a7868a293981bcc7acdb2ee32c7843c0ff5 (link)
#156704 reduce usage of box_patterns in tests 2d186c8e42cff287cdd5e8f157b3abd42151144e (link)
#156709 stdarch subtree update 5ad3c659207a413cfc81616f94ebe775d92b2be9 (link)

previous master: 7517636f51

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (9eb3be2): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.6% [-0.6%, -0.6%] 1
Improvements ✅
(secondary)
-0.8% [-0.8%, -0.8%] 2
All ❌✅ (primary) -0.6% [-0.6%, -0.6%] 1

Max RSS (memory usage)

Results (primary 0.7%, secondary 1.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
4.0% [4.0%, 4.0%] 1
Regressions ❌
(secondary)
3.0% [0.9%, 6.0%] 3
Improvements ✅
(primary)
-1.0% [-1.4%, -0.7%] 2
Improvements ✅
(secondary)
-0.7% [-0.9%, -0.5%] 2
All ❌✅ (primary) 0.7% [-1.4%, 4.0%] 3

Cycles

Results (secondary -6.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.3% [-10.4%, -4.0%] 3
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-0.7%, -0.0%] 5
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.2% [-0.7%, -0.0%] 5

Bootstrap: 513.557s -> 510.171s (-0.66%)
Artifact size: 402.58 MiB -> 398.52 MiB (-1.01%)

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

Labels

A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup 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-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.