[][src]Macro safe_arch::shuffle_ai_f64_half_m256d

macro_rules! shuffle_ai_f64_half_m256d {
    ($a:expr, [a:$z:expr, a:$o:expr, b:$t:expr, b:$h:expr]) => { ... };
}
This is supported with target feature avx only.

Shuffle the f64 lanes from $a and $b together using an immediate control value.

The a: and b: prefixes on the index selection values are literal tokens that you type. It helps keep clear what value comes from where. The first two output lanes come from $a, the second two output lanes come from $b.

Each lane selection value picks only the low or high lane within that 128-bit half of the overall register.

let a = m256d::from_array([1.0, 2.0, 3.0, 4.0]);
//
let b = shuffle_ai_f64_half_m256d!(a, [a:1, a:0, b:1, b:0]).to_array();
assert_eq!(b, [2.0, 1.0, 4.0, 3.0]);