You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For every intrinsic that may generate any of the MOVNT family
of instructions, specify it must be followed by `_mm_sfence`.
Also, ask people to not think too hard about what actually
happens with write-combining memory buffers. They probably
don't want to know, and in terms of the Rust abstract machine,
we aren't actually entirely sure yet.
/// Store 512-bits (composed of 16 packed single-precision (32-bit) floating-point elements) from a into memory using a non-temporal memory hint. mem_addr must be aligned on a 64-byte boundary or a general-protection exception may be generated.
26146
26146
///
26147
+
/// # Safety
26148
+
///
26149
+
/// After using this intrinsic, but before any atomic operations occur, a call
26150
+
/// to `_mm_sfence()` must be performed. A safe function that includes unsafe
26151
+
/// usage of this intrinsic must always end in `_mm_sfence()`.
26152
+
///
26153
+
/// Reading and writing to the memory stored-to by any other means, after any
26154
+
/// nontemporal store has been used to write to that memory, is discouraged.
26155
+
/// Doing so can lead to pipeline stalls and yet-unspecified program behavior.
/// Store 512-bits (composed of 8 packed double-precision (64-bit) floating-point elements) from a into memory using a non-temporal memory hint. mem_addr must be aligned on a 64-byte boundary or a general-protection exception may be generated.
26157
26167
///
26168
+
/// # Safety
26169
+
///
26170
+
/// After using this intrinsic, but before any atomic operations occur, a call
26171
+
/// to `_mm_sfence()` must be performed. A safe function that includes unsafe
26172
+
/// usage of this intrinsic must always end in `_mm_sfence()`.
26173
+
///
26174
+
/// Reading and writing to the memory stored-to by any other means, after any
26175
+
/// nontemporal store has been used to write to that memory, is discouraged.
26176
+
/// Doing so can lead to pipeline stalls and yet-unspecified program behavior.
/// Store 512-bits of integer data from a into memory using a non-temporal memory hint. mem_addr must be aligned on a 64-byte boundary or a general-protection exception may be generated.
26168
26188
///
26189
+
/// # Safety
26190
+
///
26191
+
/// After using this intrinsic, but before any atomic operations occur, a call
26192
+
/// to `_mm_sfence()` must be performed. A safe function that includes unsafe
26193
+
/// usage of this intrinsic must always end in `_mm_sfence()`.
26194
+
///
26195
+
/// Reading and writing to the memory stored-to by any other means, after any
26196
+
/// nontemporal store has been used to write to that memory, is discouraged.
26197
+
/// Doing so can lead to pipeline stalls and yet-unspecified program behavior.
0 commit comments