_mm256_mask_mulhrs_epi16 in core::arch::x86 - Rust
Description: Multiply packed signed 16-bit integers in a and b, producing intermediate signed 32-bit integers. Truncate each intermediate integer to the 18 most significant bits, round by adding 1, and store bits [16:1] to dst using writemask k (elements are copied from src when the corresponding mask bit is not set).

## _mm256_mask_mulhrs_epi16

# Function _mm256_mask_mulhrs_epi16

1.89.0 · Source

    pub fn _mm256_mask_mulhrs_epi16(
        src: __m256i,
        k: __mmask16,
        a: __m256i,
        b: __m256i,
    ) -> __m256i

Available on x86 and target feature `avx512bw` and target feature `avx512vl` only.
Expand description

Multiply packed signed 16-bit integers in a and b, producing intermediate signed 32-bit integers. Truncate each intermediate integer to the 18 most significant bits, round by adding 1, and store bits [16:1] to dst using writemask k (elements are copied from src when the corresponding mask bit is not set).

Intel’s documentation