Skip to content

Rollup of 7 pull requests - #155175

Merged
rust-bors[bot] merged 36 commits into
rust-lang:mainfrom
jhpratt:rollup-jQuvnVx
Apr 12, 2026
Merged

Rollup of 7 pull requests#155175
rust-bors[bot] merged 36 commits into
rust-lang:mainfrom
jhpratt:rollup-jQuvnVx

Conversation

@jhpratt

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Urgauand others added 30 commits January 29, 2026 18:27
Add `Select` and `ToBytes` to prelude
…r-default
docs(simd): fix `load_select_or_default` documentation
- beginners-guide.md: fix missing letter ("within you" → "within your")
- .github/PULL_REQUEST_TEMPLATE.md: remove duplicate word ("tests for test interactions" → "tests for interactions")
Adds `round_ties_even` using `simd_round_ties_even` intrinsic, matching
the scalar `f32::round_ties_even` / `f64::round_ties_even` API.
Closesrust-lang/portable-simd#390
Add exhuastive tests for `Mask::first_set` for all masks of size 8.
Apply two optimizations to `Mask::first_set`:
1) Move the call to `simd_cast` into the `const` block when initializing
`index`. This removes runtime shuffles necessary to translate a
`Simd<usize, N>` to a `Simd<T, N>`.
2) Replace the call to `mask.select` with `simd_or(!self, index)`. This
is cheaper than doing a comparison and on some architectures the `or`
can be combined with the `not` into a single instruction.
See https://godbolt.org/z/YebG6aoMY for an example of the difference in
generated assembly.
* Add support for Hexagon HVX
Add vendor module and tests for Qualcomm Hexagon HVX (Hexagon Vector
eXtension) SIMD support. HVX provides wide vector operations in either
64-byte (512-bit) or 128-byte (1024-bit) mode.
Note: u8x128/i8x128 types are not included because portable-simd
currently limits lane count to 64 (bitmask operations use u64).
In 128-byte HVX mode, u8x64 maps to a half-vector (512-bit).
* fixup! Add support for Hexagon HVX
fixup! Add support for Hexagon HVX
Address reviewer feedback:
- Remove hexagon_hvx test file (existing tests suffice with -C flags)
- Move HvxVector imports into their respective cfg modules
- Change u8x128/i8x128 comment to FIXME for discoverability
* remove time assertion on SystemTime
* skip test only if when a time change occurs
* Add `f16` vector support
* run `cargo update`
* disable `f16` tests on wasm32 with simd128
llvm hangs in that case, see llvm/llvm-project#189251
* Add reference to LLVM issue causing f16 wasm ICE
---------
Co-authored-by: Caleb Zulawski <caleb.zulawski@gmail.com>
…ark-Simulacrum
Initial functions to start on transmute v2
For context, see rust-lang/rfcs#3844 and rust-lang/libs-team#772
*Experimental* still, tracked under rust-lang#155079
This is just library functions. A future PR will do compiler changes for things like lints.
…-Simulacrum
fix spurious test failure in `metadata_access_times`
Fixesrust-lang#148408
The metadata_access_times test checks if the creation of a file occurs before another file, this check happens only on Linux. While on Win and Macos we check only that the created metadata is available. Given that the SystemTime is non monotonic as Instant this test could result in failures when the system clock changes.
…ng, r=WaffleLapkin,Kivooeo
replace <name> @ ty::AliasTy matches with just using args: <name>_args
ref rust-lang#154941
replace `<name> @ ty::AliasTy` matches with just using `args: <name>_args`
I updated all occurrences where <name> @ ty::AliasTy became unnecessary after the change. In cases where both forms are still used, no changes were made.
r? @WaffleLapkin
…lver-region-resolution, r=Kivooeo
Fix min-specialization ICE from ignored region resolution failure
Fixesrust-lang#151327
`min_specialization::get_impl_args` resolved regions and then immediately called `fully_resolve`, but it ignored failures from `resolve_regions_and_report_errors`.
Propagate the region-resolution error instead of ignoring it. That matches the pattern used in:
https://github.com/rust-lang/rust/blob/40a3ed1e1407ebbe892ce1a74128482ea1dadf7a/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs#L706https://github.com/rust-lang/rust/blob/40a3ed1e1407ebbe892ce1a74128482ea1dadf7a/compiler/rustc_hir_analysis/src/coherence/builtin.rs#L421
Reduce size of `ImportData`
Perhaps this will undo the regression caused by rust-lang#152901
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Apr 12, 2026
@rustbotrustbot added A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Apr 12, 2026
@jhpratt

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@rust-bors

rust-borsBot commented Apr 12, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 040b6db has been approved by jhpratt

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Apr 12, 2026
@rust-bors

This comment has been minimized.

@rust-borsrust-borsBot 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 Apr 12, 2026
@rust-bors

rust-borsBot commented Apr 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 8m 37s
Pushing 6ad4d1b to main...

@rust-bors
rust-borsBot merged commit 6ad4d1b into rust-lang:mainApr 12, 2026
12 checks passed
@rustbotrustbot added this to the 1.97.0 milestone Apr 12, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR#MessagePerf Build Sha
#153871fix spurious test failure in metadata_access_timesb865867b9d10ef3961fed6a1a2cbf2b41e13b6bc (link)
#155084Initial functions to start on transmute v28af33cea63a2b8fb242c9495220da2983671e6b1 (link)
#155126add cfg(target_object_format = "...")9d68571802b8117bcaf284cb392fbd2b0092684f (link)
#155150replace @ ty::AliasTy matches with just using args: …d7a66f8adc9586e0a59998b8b6579a037b03aa9c (link)
#155159Fix min-specialization ICE from ignored region resolution f…e800db98ad708d457cdbbe11b56075bd8b6b7e0e (link)
#155165Portable SIMD subtree update354fef25a54571b651c138a21a78ca0f51e18ae1 (link)
#155167Reduce size of ImportData74a6338c747d8281b2cd12451b760e9942b00a8a (link)

previous master: bf4fbfb7a1

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

@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 bf4fbfb (parent) -> 6ad4d1b (this PR)

Test differences

Show 285 test diffs

Stage 1

  • [mir-opt] tests/mir-opt/pre-codegen/transmutes.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#aix: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#avr: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfeb: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfel: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#darwin: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#hermit: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#ios: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_gnu: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_musl: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_ohos: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_powerpc: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#msp430: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#sgx: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#thumb: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#uefi: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm32: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm64: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_gnu: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_msvc: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_object_format_: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-cfg_target_object_format.rs: [missing] -> pass (J0)
  • [ui] tests/ui/specialization/min_specialization/next-solver-region-resolution.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/cfg/cfg_target_object_format.rs#aix: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#avr: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfeb: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfel: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#darwin: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#hermit: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#ios: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_gnu: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_musl: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_ohos: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_powerpc: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#msp430: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#sgx: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#thumb: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#uefi: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm32: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm64: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_gnu: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_msvc: [missing] -> ignore (gcc backend is marked as ignore) (J1)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#target_object_format_: [missing] -> pass (J2)
  • [ui] tests/ui/feature-gates/feature-gate-cfg_target_object_format.rs: [missing] -> pass (J2)
  • [ui] tests/ui/specialization/min_specialization/next-solver-region-resolution.rs: [missing] -> pass (J2)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#aix: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#avr: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfeb: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#bpfel: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#darwin: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#hermit: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#ios: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_gnu: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_musl: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_ohos: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#linux_powerpc: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#msp430: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#sgx: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#thumb: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#uefi: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm32: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#wasm64: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_gnu: [missing] -> pass (J3)
  • [ui] tests/ui/cfg/cfg_target_object_format.rs#win_msvc: [missing] -> pass (J3)
  • [mir-opt] tests/mir-opt/pre-codegen/transmutes.rs: [missing] -> pass (J4)

Additionally, 220 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 6ad4d1b0e7fdafb8b71ada0844571c955d7afd70 --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. dist-aarch64-llvm-mingw: 1h 29m -> 1h 58m (+32.7%)
  2. x86_64-msvc-ext1: 2h 16m -> 1h 38m (-28.0%)
  3. x86_64-msvc-2: 2h 35m -> 1h 54m (-26.2%)
  4. aarch64-gnu-llvm-21-1: 54m 11s -> 1h 4m (+19.4%)
  5. i686-gnu-2: 1h 26m -> 1h 43m (+18.8%)
  6. arm-android: 1h 32m -> 1h 48m (+18.1%)
  7. pr-check-1: 28m 25s -> 33m 6s (+16.5%)
  8. optional-x86_64-gnu-parallel-frontend: 2h 22m -> 2h 43m (+14.7%)
  9. x86_64-gnu-gcc: 59m 30s -> 1h 7m (+13.6%)
  10. x86_64-gnu-debug: 1h 50m -> 2h 5m (+13.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

Finished benchmarking commit (6ad4d1b): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

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

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.1%[0.0%, 0.2%]10
Improvements ✅
(primary)
-0.4%[-0.4%, -0.4%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.4%[-0.4%, -0.4%]1

Max RSS (memory usage)

Results (primary 0.5%, secondary 0.9%)

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

meanrangecount
Regressions ❌
(primary)
2.2%[2.2%, 2.2%]1
Regressions ❌
(secondary)
3.1%[1.3%, 5.9%]3
Improvements ✅
(primary)
-1.2%[-1.2%, -1.2%]1
Improvements ✅
(secondary)
-5.8%[-5.8%, -5.8%]1
All ❌✅ (primary)0.5%[-1.2%, 2.2%]2

Cycles

Results (primary 3.2%, secondary 2.7%)

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

meanrangecount
Regressions ❌
(primary)
3.2%[2.0%, 3.9%]3
Regressions ❌
(secondary)
2.7%[2.5%, 2.9%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)3.2%[2.0%, 3.9%]3

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 490.796s -> 488.442s (-0.48%)
Artifact size: 394.14 MiB -> 394.16 MiB (0.01%)

@rustbotrustbot added the perf-regression Performance regression. label Apr 12, 2026
@jhpratt
jhpratt deleted the rollup-jQuvnVx branch April 12, 2026 05:07
@panstromek

Copy link
Copy Markdown
Contributor

perf triage:

These regressions seem a bit mysterious to me, but I guess it could be the SIMD update, because it adds a bunch of stuff to std (IIUC) and I guess it can impact those doc benchmarks. include-blob is noise.

Either way, I don't see much actionable steps we could do with it and the regressions are tiny, so I don't think it's worth too much investigation. The queue is empty so I at least started a perf run on #155165.

@rustbot label: +perf-regression-triaged

@rustbotrustbot added the perf-regression-triaged The performance regression has been triaged. label Apr 13, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-test-infra-minicoreArea: `minicore` test auxiliary and `//@ add-core-stubs`merged-by-borsThis PR was explicitly merged by bors.perf-regressionPerformance regression.perf-regression-triagedThe performance regression has been triaged.rollupA PR which is a rollupT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

19 participants

@jhpratt@rust-timer@panstromek@rustbot@Urgau@calebzulawski@okaneco@programmerjake@b01o@him2him2@zRedShift@folkertdev@Kmeakin@androm3da@scottmcm@mattiapitossi@TaKO8Ki@WilliamTakeshi@mejrs