Skip to content

Sync from portable simd 2026 07 20#159582

Merged
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
folkertdev:sync-from-portable-simd-2026-07-20
Jul 22, 2026
Merged

Sync from portable simd 2026 07 20#159582
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
folkertdev:sync-from-portable-simd-2026-07-20

Conversation

@folkertdev

@folkertdev folkertdev commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

View all comments

r? @ghost

feel free to r+ once green

folkertdev and others added 17 commits April 12, 2026 13:26
the `float-cmp` and `num-traits` libraries don't (yet) support f16. Turns out we didn't really need much from them, just the ulps check. I've adapted the ulps check from miri instead
relevant for the cranelift backend, possibly other cases/targets too
Fix pointer API to match what was stabilized
We can do swizzles for 24, 32, 48 and 64 byte vectors by stacking multiple TBL
instructions.

See https://godbolt.org/z/PE95nrqjj for a comparison of the generated assembly.
Optimize `swizzle_dyn` for AArch64 with N > 16
`From` impls were already provided for the normal AArch64 ACLE vector types, but
not for the x2,x3,x4 tuples of ACLE vectors. Rectify that.

Also provide impls for vectors of `f16`, as I noticed they were missing.
For symmetry with `Mask::first_set`
…mpls

Provide `From` impls for AArch64 ACLE tuple types.
Use `impl` restrictions over hand-sealed traits
Optimize `swizzle_dyn` for LoongArch64 with N is 16 or 32
@rustbot

rustbot commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

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 the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 19, 2026
@rustbot

rustbot commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

⚠️ 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.

  • The following commits have merge commits (commits with multiple parents) in your changes. We have a no merge policy so these commits will need to be removed for this pull request to be merged.

    You can start a rebase with the following commands:

    $ # rebase
    $ git pull --rebase https://github.com/rust-lang/rust.git main
    $ git push --force-with-lease
    

@rustbot rustbot added has-merge-commits PR has merge commits, merge with caution. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 19, 2026
@folkertdev

Copy link
Copy Markdown
Contributor Author

This sync (specifically ignoring f16 tests) will help with rust-lang/rustc_codegen_cranelift#1675

@rust-log-analyzer

This comment has been minimized.

@rustbot rustbot added the T-libs Relevant to the library team, which will review and decide on the PR/issue. label Jul 20, 2026
@rust-log-analyzer

This comment has been minimized.

@rustbot

rustbot commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

This PR was contained in a rollup (#159622), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
Member

That's the test running with Miri's deliberately-imprecise float operations. But it's odd that it would start failing now. Probably the test is already latently buggy in main but this PR triggers the bad non-determinism.

The fix should be to make

const LOG_APPROX: Self = 1e-2;
bigger on Miri.

@rustbot

rustbot commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Any special-casing of Miri in the standard library requires review.

cc @rust-lang/miri

@folkertdev

Copy link
Copy Markdown
Contributor Author

@bors try jobs=x86_64-gnu-aux

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 21, 2026
…, r=<try>

Sync from portable simd 2026 07 20


try-job: x86_64-gnu-aux
@rust-bors

rust-bors Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: b8f3ee8 (b8f3ee823c31d65751056ef71dd017ff752348b4)
Base parent: cde3f8a (cde3f8aee5a30928872e2438e3f18238a3fa306c)

@RalfJung

Copy link
Copy Markdown
Member

@bors r=oli-obk

@rust-bors

rust-bors Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

📌 Commit e547ba4 has been approved by oli-obk

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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 21, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 21, 2026
…-2026-07-20, r=oli-obk

Sync from portable simd 2026 07 20

r? @ghost

feel free to `r+` once green
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 21, 2026
…-2026-07-20, r=oli-obk

Sync from portable simd 2026 07 20

r? @ghost

feel free to `r+` once green
rust-bors Bot pushed a commit that referenced this pull request Jul 21, 2026
Rollup of 12 pull requests

Successful merges:

 - #159582 (Sync from portable simd 2026 07 20)
 - #158890 (Fix splat v0 mangling)
 - #159411 ([rustdoc] Correctly handle output options with --show-coverage)
 - #159647 (Remove `early_exit` closures)
 - #159656 (define a `Simd` type in `minicore`)
 - #156474 (Add paths for linked associated items)
 - #159211 (Fix debuginfo argument when invoking LLBC linker)
 - #159527 (Bring runtime symbols statics on par with foreign functions)
 - #159625 (Refactor is_opsem_inhabited)
 - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`)
 - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap )
 - #159663 (Add layout cycle hang regression test)
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 22, 2026
…-2026-07-20, r=oli-obk

Sync from portable simd 2026 07 20

r? @ghost

feel free to `r+` once green
rust-bors Bot pushed a commit that referenced this pull request Jul 22, 2026
Rollup of 13 pull requests

Successful merges:

 - #159582 (Sync from portable simd 2026 07 20)
 - #158890 (Fix splat v0 mangling)
 - #159614 (debuginfo generation for unsafe binders)
 - #159647 (Remove `early_exit` closures)
 - #159656 (define a `Simd` type in `minicore`)
 - #156474 (Add paths for linked associated items)
 - #159211 (Fix debuginfo argument when invoking LLBC linker)
 - #159527 (Bring runtime symbols statics on par with foreign functions)
 - #159625 (Refactor is_opsem_inhabited)
 - #159629 (Add more splat rust-call regression tests)
 - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`)
 - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap )
 - #159663 (Add layout cycle hang regression test)
@rust-bors

rust-bors Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

⌛ Testing commit e547ba4 with merge 1192fdc...

Workflow: https://github.com/rust-lang/rust/actions/runs/29887627022

rust-bors Bot pushed a commit that referenced this pull request Jul 22, 2026
…, r=oli-obk

Sync from portable simd 2026 07 20





r? @ghost

feel free to `r+` once green
@jhpratt

jhpratt commented Jul 22, 2026

Copy link
Copy Markdown
Member

yielding to retrying the rollup

@bors yield

@rust-bors

rust-bors Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Auto build was cancelled. Cancelled workflows:

The next pull request likely to be tested is #159697.

rust-bors Bot pushed a commit that referenced this pull request Jul 22, 2026
Rollup of 13 pull requests

Successful merges:

 - #159582 (Sync from portable simd 2026 07 20)
 - #158890 (Fix splat v0 mangling)
 - #159614 (debuginfo generation for unsafe binders)
 - #159647 (Remove `early_exit` closures)
 - #159656 (define a `Simd` type in `minicore`)
 - #156474 (Add paths for linked associated items)
 - #159211 (Fix debuginfo argument when invoking LLBC linker)
 - #159527 (Bring runtime symbols statics on par with foreign functions)
 - #159625 (Refactor is_opsem_inhabited)
 - #159629 (Add more splat rust-call regression tests)
 - #159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`)
 - #159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap )
 - #159663 (Add layout cycle hang regression test)
@rust-bors
rust-bors Bot merged commit 1b34ade into rust-lang:main Jul 22, 2026
14 of 15 checks passed
rust-timer added a commit that referenced this pull request Jul 22, 2026
Rollup merge of #159582 - folkertdev:sync-from-portable-simd-2026-07-20, r=oli-obk

Sync from portable simd 2026 07 20

r? @ghost

feel free to `r+` once green
@rustbot rustbot added this to the 1.99.0 milestone Jul 22, 2026
pull Bot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Jul 22, 2026
Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#159582 (Sync from portable simd 2026 07 20)
 - rust-lang/rust#158890 (Fix splat v0 mangling)
 - rust-lang/rust#159614 (debuginfo generation for unsafe binders)
 - rust-lang/rust#159647 (Remove `early_exit` closures)
 - rust-lang/rust#159656 (define a `Simd` type in `minicore`)
 - rust-lang/rust#156474 (Add paths for linked associated items)
 - rust-lang/rust#159211 (Fix debuginfo argument when invoking LLBC linker)
 - rust-lang/rust#159527 (Bring runtime symbols statics on par with foreign functions)
 - rust-lang/rust#159625 (Refactor is_opsem_inhabited)
 - rust-lang/rust#159629 (Add more splat rust-call regression tests)
 - rust-lang/rust#159652 (Remove `cfg(not(no_global_oom_handling))` from the `Drop` impl of `UniqueArcUninit`)
 - rust-lang/rust#159657 (Remove the blanket `#![cfg_attr(test, allow(unused))]` from bootstrap )
 - rust-lang/rust#159663 (Add layout cycle hang regression test)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

has-merge-commits PR has merge commits, merge with caution. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.