_mm256_mask_dbsad_epu8 in core::arch::x86 - Rust
Description: Compute the sum of absolute differences (SADs) of quadruplets of unsigned 8-bit integers in a compared to those in b, and store the 16-bit results in dst using writemask k (elements are copied from src when the corresponding mask bit is not set). Four SADs are performed on four 8-bit quadruplets for each 64-bit lane. The first two SADs use the lower 8-bit quadruplet of the lane from a, and the last two SADs use the uppper 8-bit quadruplet of the lane from a. Quadruplets from b are selected from within 128-bit lanes according to the control in imm8, and each SAD in each 64-bit lane uses the selected quadruplet at 8-bit offsets.

# Function core::arch::x86::_mm256_mask_dbsad_epu8

source ·

    pub unsafe fn _mm256_mask_dbsad_epu8(
        src: __m256i,
        k: __mmask16,
        a: __m256i,
        b: __m256i,
        const IMM8: i32
    ) -> __m256i

🔬This is a nightly-only experimental API. (`stdsimd` #48556)
Available on (x86 or x86-64) and target feature `avx512bw,avx512vl` and x86 only.
Expand description

Compute the sum of absolute differences (SADs) of quadruplets of unsigned 8-bit integers in a compared to those in b, and store the 16-bit results in dst using writemask k (elements are copied from src when the corresponding mask bit is not set). Four SADs are performed on four 8-bit quadruplets for each 64-bit lane. The first two SADs use the lower 8-bit quadruplet of the lane from a, and the last two SADs use the uppper 8-bit quadruplet of the lane from a. Quadruplets from b are selected from within 128-bit lanes according to the control in imm8, and each SAD in each 64-bit lane uses the selected quadruplet at 8-bit offsets.

Intel’s documentation