_mm_maskmoveu_si128 in core::arch::x86 - Rust
Description: Conditionally store 8-bit integer elements from `a` into memory using `mask` flagged as non-temporal (unlikely to be used again soon).

Skip to main content

## _mm_maskmoveu_si128

# Function _mm_maskmoveu_si128

1.27.0 · Source

    pub unsafe fn _mm_maskmoveu_si128(a: __m128i, mask: __m128i, mem_addr: *mut i8)

Available on x86 and target feature `sse2` only.
Expand description

Conditionally store 8-bit integer elements from `a` into memory using `mask` flagged as non-temporal (unlikely to be used again soon).

Elements are not stored when the highest bit is not set in the corresponding element.

`mem_addr` should correspond to a 128-bit memory location and does not need to be aligned on any particular boundary.

Intel’s documentation

## §Safety of non-temporal stores

After using this intrinsic, but before any other access to the memory that this intrinsic mutates, a call to `_mm_sfence` must be performed by the thread that used the intrinsic. In particular, functions that call this intrinsic should generally call `_mm_sfence` before they return.

See `_mm_sfence` for details.