File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -1272,7 +1272,7 @@ pub unsafe fn _mm_loadu_si128(mem_addr: *const __m128i) -> __m128i {
12721272}
12731273
12741274/// Conditionally store 8-bit integer elements from `a` into memory using
1275- /// `mask`.
1275+ /// `mask` flagged as non-temporal (unlikely to be used again soon) .
12761276///
12771277/// Elements are not stored when the highest bit is not set in the
12781278/// corresponding element.
@@ -1281,10 +1281,15 @@ pub unsafe fn _mm_loadu_si128(mem_addr: *const __m128i) -> __m128i {
12811281/// to be aligned on any particular boundary.
12821282///
12831283/// [Intel's documentation](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128)
1284- #[ inline]
1285- #[ target_feature( enable = "sse2" ) ]
1286- #[ cfg_attr( test, assert_instr( maskmovdqu) ) ]
1287- #[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
1284+ ///
1285+ /// # Safety of non-temporal stores
1286+ ///
1287+ /// After using this intrinsic, but before any other access to the memory that this intrinsic
1288+ /// mutates, a call to [`_mm_sfence`] must be performed by the thread that used the intrinsic. In
1289+ /// particular, functions that call this intrinsic should generally call `_mm_sfence` before they
1290+ /// return.
1291+ ///
1292+ /// See [`_mm_sfence`] for details.
12881293pub unsafe fn _mm_maskmoveu_si128 ( a : __m128i , mask : __m128i , mem_addr : * mut i8 ) {
12891294 maskmovdqu ( a. as_i8x16 ( ) , mask. as_i8x16 ( ) , mem_addr)
12901295}
You can’t perform that action at this time.
0 commit comments