[][src]Macro safe_arch::permute_within_m128d_m256d

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

Permutes the lanes around.

  • Each index is 0 or 1, picking the low or high lane of the associated 128-bit portion of that index.
let a = m256d::from_array([1.0, 2.0, 3.0, 4.0]);
//
let b = permute_within_m128d_m256d!(a, 0, 0, 0, 0).to_array();
assert_eq!(b, [1.0, 1.0, 3.0, 3.0]);
//
let b = permute_within_m128d_m256d!(a, 0, 1, 0, 1).to_array();
assert_eq!(b, [1.0, 2.0, 3.0, 4.0]);
//
let b = permute_within_m128d_m256d!(a, 1, 0, 1, 1).to_array();
assert_eq!(b, [2.0, 1.0, 4.0, 4.0]);