Skip to content

Stabilize sha512, sm3 and sm4 intrinsics and runtime detection #1796

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 31, 2025

Conversation

sayantn
Copy link
Contributor

@sayantn sayantn commented May 7, 2025

parent: rust-lang/rust#126624

related: rust-lang/rust#140767

currently draft because this requires the lang and libs-api fcp to complete

@rustbot
Copy link
Collaborator

rustbot commented May 7, 2025

r? @Amanieu

rustbot has assigned @Amanieu.
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

@sayantn sayantn force-pushed the stabilize-sha512 branch from d612107 to 0a58f7e Compare May 20, 2025 18:48
@sayantn sayantn marked this pull request as ready for review May 20, 2025 18:52
@sayantn
Copy link
Contributor Author

sayantn commented May 31, 2025

Libs-api FCP is now complete, so this should be fine to merge now

@Amanieu Amanieu added this pull request to the merge queue May 31, 2025
Merged via the queue into rust-lang:master with commit 6ffe6c9 May 31, 2025
62 checks passed
@sayantn sayantn deleted the stabilize-sha512 branch May 31, 2025 11:18
tgross35 added a commit to tgross35/rust that referenced this pull request Jun 9, 2025
…cross,tgross35

Stabilize `sha512`, `sm3` and `sm4` for x86

This PR stabilizes the feature flag `sha512_sm_x86` (tracking issue rust-lang#126624).

# Public API
The 3 `x86` target features `sha512`, `sm3` and `sm4`, and the associated intrinsics in stdarch.

These target features are very specialized, and are only used to signal the presence of the corresponding CPU instruction. They don't have any nontrivial interaction with the ABI (contrary to something like AVX), and serve the only purpose of enabling 10 stdarch intrinsics, all of which have been implemented and propagated to rustc via a stdarch submodule update.

Also, these were added in LLVM17, and as the minimum LLVM required for rustc is LLVM19, we are safe in that front too!

# Associated PRs
 - rust-lang#126704
 - rust-lang/stdarch#1592
 - rust-lang/stdarch#1790
 - rust-lang#140389 (stdarch submodule update)
 - rust-lang/stdarch#1796 (stabilizing the runtime detection and intrinsics)
 - rust-lang#141964 (stdarch submodule update for the stabilization of the runtime detection and intrinsics)

As all of the required tasks have been done (adding the target features to rustc, implementing their runtime detection in std_detect and implementing the associated intrinsics in core_arch), these target features can be stabilized now.

cc `@rust-lang/lang`
cc `@rust-lang/libs-api` for the intrinsics and runtime detection

I don't think anyone else worked on this feature, so no one else to ping, maybe cc `@Amanieu.` I will send the reference pr soon.
rust-timer added a commit to rust-lang/rust that referenced this pull request Jun 9, 2025
Rollup merge of #140767 - sayantn:stabilize-sha512, r=traviscross,tgross35

Stabilize `sha512`, `sm3` and `sm4` for x86

This PR stabilizes the feature flag `sha512_sm_x86` (tracking issue #126624).

# Public API
The 3 `x86` target features `sha512`, `sm3` and `sm4`, and the associated intrinsics in stdarch.

These target features are very specialized, and are only used to signal the presence of the corresponding CPU instruction. They don't have any nontrivial interaction with the ABI (contrary to something like AVX), and serve the only purpose of enabling 10 stdarch intrinsics, all of which have been implemented and propagated to rustc via a stdarch submodule update.

Also, these were added in LLVM17, and as the minimum LLVM required for rustc is LLVM19, we are safe in that front too!

# Associated PRs
 - #126704
 - rust-lang/stdarch#1592
 - rust-lang/stdarch#1790
 - #140389 (stdarch submodule update)
 - rust-lang/stdarch#1796 (stabilizing the runtime detection and intrinsics)
 - #141964 (stdarch submodule update for the stabilization of the runtime detection and intrinsics)

As all of the required tasks have been done (adding the target features to rustc, implementing their runtime detection in std_detect and implementing the associated intrinsics in core_arch), these target features can be stabilized now.

cc `@rust-lang/lang`
cc `@rust-lang/libs-api` for the intrinsics and runtime detection

I don't think anyone else worked on this feature, so no one else to ping, maybe cc `@Amanieu.` I will send the reference pr soon.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants