[][src]Macro safe_arch::dot_product_m256

macro_rules! dot_product_m256 {
    ($a:expr, $b:expr, $imm:expr) => { ... };
}
This is supported with target feature avx only.

This works like dot_product_m128, but twice as wide.

The given control is used for the lower 4 lanes and then separately also the upper four lanes. See the other macro for more info on how the control works.

let a = m256::from_array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]);
let b = m256::from_array([9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0]);
let c = dot_product_m256!(a, b, 0b1111_1111).to_array();
assert_eq!(c, [110.0, 110.0, 110.0, 110.0, 382.0, 382.0, 382.0, 382.0]);