[−][src]Macro safe_arch::shuffle_ai_f64_half_m256d
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]);
- Intrinsic:
_mm256_permute_pd
- Assembly:
vpermilpd ymm, ymm, imm8