Skip to content

Tracking Issue for movrs target feature #137976

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

Open
3 tasks
sayantn opened this issue Mar 4, 2025 · 0 comments
Open
3 tasks

Tracking Issue for movrs target feature #137976

sayantn opened this issue Mar 4, 2025 · 0 comments
Labels
C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.

Comments

@sayantn
Copy link
Contributor

sayantn commented Mar 4, 2025

Feature gate: #![feature(movrs_target_feature)]

This is a tracking issue for the x86(64) target feature movrs. It includes 2 instructions - MOVRS and PREFETCHRST2. These behave as normal MOV and PREFETCHW instructions, just with the "read-shared" hint. This, as suggested by the name, is purely a hint to the processor that the data loaded/stored by the instruction is likely to get accessed by multiple processors.

Public API

The movrs target feature (which enables the MOVRS and PREFETCHRST2 instructions) and the following stdarch intrinsics

  • _movrs_i8
  • _movrs_i16
  • _movrs_i32
  • _movrs_i64
  • _m_prefetchrs

Steps / History

  • Implementation
  • Final comment period (FCP)1
  • Stabilization PR

Implementation History

Unresolved Questions

  • How does this interact with the memory model? The Intel specification strongly suggests that this is just a hint to the processor, but we need to check to be sure.

Footnotes

  1. https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html

@sayantn sayantn added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. labels Mar 4, 2025
Zalathar added a commit to Zalathar/rust that referenced this issue Apr 2, 2025
Add the new `amx` target features and the `movrs` target feature

Adds 5 new `amx` target features included in LLVM20. These are guarded under `x86_amx_intrinsics` (rust-lang#126622)

 - `amx-avx512`
 - `amx-fp8`
 - `amx-movrs`
 - `amx-tf32`
 - `amx-transpose`

Adds the `movrs` target feature (from rust-lang#137976).

`@rustbot` label O-x86_64 O-x86_32 T-compiler A-target-feature
r? `@Amanieu`
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Apr 2, 2025
Rollup merge of rust-lang#138003 - sayantn:new-amx, r=Amanieu

Add the new `amx` target features and the `movrs` target feature

Adds 5 new `amx` target features included in LLVM20. These are guarded under `x86_amx_intrinsics` (rust-lang#126622)

 - `amx-avx512`
 - `amx-fp8`
 - `amx-movrs`
 - `amx-tf32`
 - `amx-transpose`

Adds the `movrs` target feature (from rust-lang#137976).

`@rustbot` label O-x86_64 O-x86_32 T-compiler A-target-feature
r? `@Amanieu`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

1 participant