[][src]Function safe_arch::mul_u16_keep_high_m128i

#[must_use]pub fn mul_u16_keep_high_m128i(a: m128i, b: m128i) -> m128i
This is supported with target feature sse2 only.

Lanewise a * b with lanes as u16, keep the high bits of the u32 intermediates.

let a = m128i::from([1_u16, 2003, 3005, 45687, 1, 2, 3, 4]);
let b = m128i::from([5_u16, 6004, 7006, 8910, 15, 26, 37, 48]);
let c: [u16; 8] = mul_u16_keep_high_m128i(a, b).into();
assert_eq!(c, [0, 183, 321, 6211, 0, 0, 0, 0]);