[−][src]Macro safe_arch::shuffle_abi_f128z_all_m256i
This is supported with target feature
avx
only.Slowly swizzle 128 bits of integer data from $a
and $b
using an
immediate control value.
You can pass A_Low
, A_High
, B_Low
, B_High
, or Zeroed
.
If avx2
is available you should use shuffle_abi_i128z_all_m256i
instead. Only use this if you're targeting avx
but not avx2
.
let a = m256i::from([1, 2, 3, 4, 5, 6, 7, 8]); let b = m256i::from([9, 10, 11, 12, 13, 14, 15, 16]); // let c: [i32; 8] = shuffle_abi_f128z_all_m256i!(a, b, [B_Low, Zeroed]).into(); assert_eq!(c, [9, 10, 11, 12, 0, 0, 0, 0]); // let c: [i32; 8] = shuffle_abi_f128z_all_m256i!(a, b, [Zeroed, A_High]).into(); assert_eq!(c, [0, 0, 0, 0, 5, 6, 7, 8]);
- Intrinsic:
_mm256_permute2f128_si256
- Assembly:
vperm2f128 ymm, ymm, ymm, imm8