Skip to content

Rollup of 7 pull requests#155175

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

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

Conversation

@jhpratt
Copy link
Copy Markdown
Member

@jhpratt jhpratt commented Apr 12, 2026

Successful merges:

r? @ghost

Create a similar rollup

Urgau and 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.

Closes rust-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.
update `proptest` from `0.10` to `1.0`
bump toolchain to `nightly-2026-03-18`
* 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.
jhpratt added 6 commits April 11, 2026 21:12
…=Urgau

add `cfg(target_object_format = "...")`

tracking issue: rust-lang#152586

I'm implementing the predicate as `target_object_format`, because that's what is useful to me (for testing `#[link_section = "..."]` where `mach-o` has some extra restrictions) and maps cleanly to the `BinaryFormat` enum that is used internally. There is still room for a future `target_executable_format` when there is a use case.

cc @joshtriplett as the lang sponsor of this feature, @workingjubilee as the author of the proposal.

r? JonathanBrouwer a sidequest from the sidequest that is rust-lang#155065
…-2026-04-11, r=folkertdev

Portable SIMD subtree update

Let's see if this works (we might need a sync the other way first)
…-Simulacrum

fix spurious test failure in `metadata_access_times`

Fixes rust-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

Fixes rust-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#L706

https://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-bors rust-bors bot added the rollup A PR which is a rollup label Apr 12, 2026
@rustbot rustbot 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
Member Author

jhpratt commented Apr 12, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 12, 2026

📌 Commit 040b6db has been approved by jhpratt

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

This comment has been minimized.

@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 Apr 12, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 12, 2026

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

@rust-bors rust-bors bot merged commit 6ad4d1b into rust-lang:main Apr 12, 2026
12 checks passed
@rustbot rustbot 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# Message Perf Build Sha
#153871 fix spurious test failure in metadata_access_times b865867b9d10ef3961fed6a1a2cbf2b41e13b6bc (link)
#155084 Initial functions to start on transmute v2 8af33cea63a2b8fb242c9495220da2983671e6b1 (link)
#155126 add cfg(target_object_format = "...") 9d68571802b8117bcaf284cb392fbd2b0092684f (link)
#155150 replace @ ty::AliasTy matches with just using args: … d7a66f8adc9586e0a59998b8b6579a037b03aa9c (link)
#155159 Fix min-specialization ICE from ignored region resolution f… e800db98ad708d457cdbbe11b56075bd8b6b7e0e (link)
#155165 Portable SIMD subtree update 354fef25a54571b651c138a21a78ca0f51e18ae1 (link)
#155167 Reduce size of ImportData 74a6338c747d8281b2cd12451b760e9942b00a8a (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.

mean range count
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.

mean range count
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.

mean range count
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%)

@rustbot rustbot added the perf-regression Performance regression. label Apr 12, 2026
@jhpratt jhpratt deleted the rollup-jQuvnVx branch April 12, 2026 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.