[−][src]Macro safe_arch::combined_byte_shr_imm_m256i
Works like combined_byte_shr_imm_m128i
, but twice as wide.
The low half of the bytes and high half of the bytes are both processed separately.
let a = m256i::from([5_i8; 32]); let b = m256i::from([12_i8; 32]); // `a` bytes come in to the _high_ indexes because these are LE bytes. // Also note that the three 5 values at the low half and high half. let c: [i8; 32] = combined_byte_shr_imm_m256i!(a, b, 3).into(); assert_eq!( c, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 5, 5, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 5, 5, 5_i8 ] );
- Intrinsic:
_mm256_alignr_epi8
- Assembly:
vpalignr ymm, ymm, ymm, imm8