Unpack Operators
- Interleave the 64-bit value from the high half ofAwith the 64-bit value from the high half ofB:
Corresponding intrinsic:I64vec2 unpack_high(I64vec2 A, I64vec2 B); Is64vec2 unpack_high(Is64vec2 A, Is64vec2 B); Iu64vec2 unpack_high(Iu64vec2 A, Iu64vec2 B); R0 = A1; R1 = B1;_mm_unpackhi_epi64 - Interleave the two 32-bit values from the high half ofAwith the two 32-bit values from the high half ofB:
Corresponding intrinsic:I32vec4 unpack_high(I32vec4 A, I32vec4 B); Is32vec4 unpack_high(Is32vec4 A, Is32vec4 B); Iu32vec4 unpack_high(Iu32vec4 A, Iu32vec4 B); R0 = A1; R1 = B1; R2 = A2; R3 = B2;_mm_unpackhi_epi32 - Interleave the 32-bit value from the high half ofAwith the 32-bit value from the high half ofB:
Corresponding intrinsic:I32vec2 unpack_high(I32vec2 A, I32vec2 B); Is32vec2 unpack_high(Is32vec2 A, Is32vec2 B); Iu32vec2 unpack_high(Iu32vec2 A, Iu32vec2 B); R0 = A1; R1 = B1;_mm_unpackhi_pi32 - Interleave the four 16-bit values from the high half ofAwith the two 16-bit values from the high half ofB:
Corresponding intrinsic:I16vec8 unpack_high(I16vec8 A, I16vec8 B); Is16vec8 unpack_high(Is16vec8 A, Is16vec8 B); Iu16vec8 unpack_high(Iu16vec8 A, Iu16vec8 B); R0 = A2; R1 = B2; R2 = A3; R3 = B3;_mm_unpackhi_epi16 - Interleave the two 16-bit values from the high half ofAwith the two 16-bit values from the high half ofB:
Corresponding intrinsic:I16vec4 unpack_high(I16vec4 A, I16vec4 B); Is16vec4 unpack_high(Is16vec4 A, Is16vec4 B); Iu16vec4 unpack_high(Iu16vec4 A, Iu16vec4 B); R0 = A2;R1 = B2; R2 = A3;R3 = B3;_mm_unpackhi_pi16 - Interleave the four 8-bit values from the high half ofAwith the four 8-bit values from the high half ofB:
Corresponding intrinsic:I8vec8 unpack_high(I8vec8 A, I8vec8 B); Is8vec8 unpack_high(Is8vec8 A, I8vec8 B); Iu8vec8 unpack_high(Iu8vec8 A, I8vec8 B); R0 = A4; R1 = B4; R2 = A5; R3 = B5; R4 = A6; R5 = B6; R6 = A7; R7 = B7;_mm_unpackhi_pi8 - Interleave the sixteen 8-bit values from the high half ofAwith the four 8-bit values from the high half ofB:
Corresponding intrinsic:I8vec16 unpack_high(I8vec16 A, I8vec16 B); Is8vec16 unpack_high(Is8vec16 A, I8vec16 B); Iu8vec16 unpack_high(Iu8vec16 A, I8vec16 B); R0 = A8; R1 = B8; R2 = A9; R3 = B9; R4 = A10; R5 = B10; R6 = A11; R7 = B11; R8 = A12; R8 = B12; R2 = A13; R3 = B13; R4 = A14; R5 = B14; R6 = A15; R7 = B15;_mm_unpackhi_epi16 - Interleave the 32-bit value from the low half ofAwith the 32-bit value from the low half ofB:
Corresponding intrinsic:R0 = A0; R1 = B0;_mm_unpacklo_epi32 - Interleave the 64-bit value from the low half ofAwith the 64-bit values from the low half ofB:
Corresponding intrinsic:I64vec2 unpack_low(I64vec2 A, I64vec2 B); Is64vec2 unpack_low(Is64vec2 A, Is64vec2 B); Iu64vec2 unpack_low(Iu64vec2 A, Iu64vec2 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1;_mm_unpacklo_epi32 - Interleave the two 32-bit values from the low half ofAwith the two 32-bit values from the low half ofB:
Corresponding intrinsic:I32vec4 unpack_low(I32vec4 A, I32vec4 B); Is32vec4 unpack_low(Is32vec4 A, Is32vec4 B); Iu32vec4 unpack_low(Iu32vec4 A, Iu32vec4 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1;_mm_unpacklo_epi32 - Interleave the 32-bit value from the low half ofAwith the 32-bit value from the low half ofB:
Corresponding intrinsic:I32vec2 unpack_low(I32vec2 A, I32vec2 B); Is32vec2 unpack_low(Is32vec2 A, Is32vec2 B); Iu32vec2 unpack_low(Iu32vec2 A, Iu32vec2 B); R0 = A0; R1 = B0;_mm_unpacklo_pi32 - Interleave the two 16-bit values from the low half ofAwith the two 16-bit values from the low half ofB:
Corresponding intrinsic:I16vec8 unpack_low(I16vec8 A, I16vec8 B); Is16vec8 unpack_low(Is16vec8 A, Is16vec8 B); Iu16vec8 unpack_low(Iu16vec8 A, Iu16vec8 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1; R4 = A2; R5 = B2; R6 = A3; R7 = B3;_mm_unpacklo_epi16 - Interleave the two 16-bit values from the low half ofAwith the two 16-bit values from the low half ofB:
Corresponding intrinsic:I16vec4 unpack_low(I16vec4 A, I16vec4 B); Is16vec4 unpack_low(Is16vec4 A, Is16vec4 B); Iu16vec4 unpack_low(Iu16vec4 A, Iu16vec4 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1;_mm_unpacklo_pi16 - Interleave the four 8-bit values from the high low ofAwith the four 8-bit values from the low half ofB:
Corresponding intrinsic:I8vec16 unpack_low(I8vec16 A, I8vec16 B); Is8vec16 unpack_low(Is8vec16 A, Is8vec16 B); Iu8vec16 unpack_low(Iu8vec16 A, Iu8vec16 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1; R4 = A2; R5 = B2; R6 = A3; R7 = B3; R8 = A4; R9 = B4; R10 = A5; R11 = B5; R12 = A6; R13 = B6; R14 = A7; R15 = B7;_mm_unpacklo_epi8 - Interleave the four 8-bit values from the high low ofAwith the four 8-bit values from the low half ofB:
Corresponding intrinsic:I8vec8 unpack_low(I8vec8 A, I8vec8 B); Is8vec8 unpack_low(Is8vec8 A, Is8vec8 B); Iu8vec8 unpack_low(Iu8vec8 A, Iu8vec8 B); R0 = A0; R1 = B0; R2 = A1; R3 = B1; R4 = A2; R5 = B2; R6 = A3; R7 = B3;_mm_unpacklo_pi8