[][src]Macro safe_arch::shuffle_abi_f128z_all_m256

macro_rules! shuffle_abi_f128z_all_m256 {
    ($a:expr, $b:expr, [$low:tt, $high:tt]) => { ... };
    (@_convert_tt_to_select A_Low) => { ... };
    (@_convert_tt_to_select A_High) => { ... };
    (@_convert_tt_to_select B_Low) => { ... };
    (@_convert_tt_to_select B_High) => { ... };
    (@_convert_tt_to_select Zeroed) => { ... };
}
This is supported with target feature avx only.

Shuffle 128 bits of floating point data at a time from $a and $b using an immediate control value.

You can pass A_Low, A_High, B_Low, B_High, or Zeroed.

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 = shuffle_abi_f128z_all_m256!(a, b, [B_Low, Zeroed]).to_array();
assert_eq!(c, [9.0, 10.0, 11.0, 12.0, 0.0, 0.0, 0.0, 0.0]);
//
let c = shuffle_abi_f128z_all_m256!(a, b, [Zeroed, A_High]).to_array();
assert_eq!(c, [0.0, 0.0, 0.0, 0.0, 5.0, 6.0, 7.0, 8.0]);