[−][src]Function safe_arch::mul_i16_keep_low_m256i
#[must_use]pub fn mul_i16_keep_low_m256i(a: m256i, b: m256i) -> m256i
This is supported with target feature
avx2
only.Multiply the i16
lanes and keep the low half of each 32-bit output.
let a = m256i::from([5_i16, 6, 2, 5, 4, 3, 1, 0, -12, 13, 56, 21, 8, 7, 6, 5]); let b = m256i::from([ -1_i16, 13000, -2, -8, 0, 1, 2, 3, 8, 7, 6, 5, 234, 654, 123, 978, ]); let c: [i16; 16] = mul_i16_keep_low_m256i(a, b).into(); assert_eq!( c, [-5, 12464, -4, -40, 0, 3, 2, 0, -96, 91, 336, 105, 1872, 4578, 738, 4890] );
- Intrinsic:
_mm256_mullo_epi16
- Assembly:
vpmullw ymm, ymm, ymm