[−][src]Function safe_arch::unpack_low_i8_m256i
#[must_use]pub fn unpack_low_i8_m256i(a: m256i, b: m256i) -> m256i
This is supported with target feature
avx2
only.Unpack and interleave low i8
lanes of a
and b
.
- Operates on the low half of each 128 bit portion.
let a = m256i::from([ 3_i8, 11, 2, 13, 4, 15, 6, 17, 8, 19, 20, 21, 22, 23, 24, 127, 7, 11, 2, 13, 4, 15, 6, 17, 8, 19, 20, 21, 22, 23, 24, 127, ]); let b = m256i::from([ -1_i8, -1, 0, 2, 2, 3, 0, 5, 6, 6, -7, 8, 8, 0, 0, 10, 10, -11, 11, 12, 12, 13, 13, 12, 11, -10, 9, 8, 7, 6, 5, -4, ]); let c: [i8; 32] = unpack_low_i8_m256i(a, b).into(); assert_eq!( c, [ 3, -1, 11, -1, 2, 0, 13, 2, 4, 2, 15, 3, 6, 0, 17, 5, 7, 10, 11, -11, 2, 11, 13, 12, 4, 12, 15, 13, 6, 13, 17, 12 ] );
- Intrinsic:
_mm256_unpacklo_epi8
- Assembly:
_mm256_unpacklo_epi8