[][src]Function safe_arch::mul_i16_horizontal_add_m128i

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

Multiply i16 lanes producing i32 values, horizontal add pairs of i32 values to produce the final output.

let a = m128i::from([1_i16, 2, 3, 4, -1, -2, -3, -4]);
let b = m128i::from([5_i16, 6, 7, 8, -15, -26, -37, 48]);
let c: [i32; 4] = mul_i16_horizontal_add_m128i(a, b).into();
assert_eq!(c, [17, 53, 67, -81]);