Developer Guide and Reference

Contents

Unpack Operators

Interleave the 64-bit value from the high half of
A
with the 64-bit value from the high half of
B
.
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;
Corresponding intrinsic:
_mm_unpackhi_epi64
Interleave the two 32-bit values from the high half of
A
with the two 32-bit values from the high half of
B
.
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;
Corresponding intrinsic:
_mm_unpackhi_epi32
Interleave the 32-bit value from the high half of
A
with the 32-bit value from the high half of
B
.
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;
Corresponding intrinsic:
_mm_unpackhi_pi32
Interleave the four 16-bit values from the high half of
A
with the two 16-bit values from the high half of
B
.
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;
Corresponding intrinsic:
_mm_unpackhi_epi16
Interleave the two 16-bit values from the high half of
A
with the two 16-bit values from the high half of
B
.
I16vec4 unpack_high(I16vec4 A, I16vec4 B);