Open
Description
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
- Add the new
amx
target features and themovrs
target feature #138003 - Add runtime detection for new AMX variants and MOVRS stdarch#1763
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.