Skip to content

Portable SIMD subtree update#155165

Open
folkertdev wants to merge 22 commits intorust-lang:mainfrom
folkertdev:sync-from-portable-simd-2026-04-11
Open

Portable SIMD subtree update#155165
folkertdev wants to merge 22 commits intorust-lang:mainfrom
folkertdev:sync-from-portable-simd-2026-04-11

Conversation

@folkertdev
Copy link
Copy Markdown
Contributor

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

Urgau and others added 22 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
* 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>
@rustbot rustbot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Apr 11, 2026
@folkertdev
Copy link
Copy Markdown
Contributor Author

r? @ghost

@folkertdev folkertdev marked this pull request as ready for review April 11, 2026 20:09
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 11, 2026

Portable SIMD is developed in its own repository. If possible, consider making this change to rust-lang/portable-simd instead.

cc @calebzulawski, @programmerjake

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 11, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 11, 2026

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Fallback group: @Mark-Simulacrum, @jieyouxu
  • @Mark-Simulacrum, @jieyouxu expanded to Mark-Simulacrum, jieyouxu

@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 11, 2026

⚠️ Warning ⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@folkertdev
Copy link
Copy Markdown
Contributor Author

This looks fine actually, there is a small change that should be synchronized the other way but that's not a blocker.

@bors r+

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 11, 2026

📌 Commit aa656a9 has been approved by folkertdev

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 11, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Apr 11, 2026
…-2026-04-11, r=folkertdev

Portable SIMD subtree update

Let's see if this works (we might need a sync the other way first)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.