MMX-Swizzle-MMX#
_m_punpckhbw#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpckhbw(__m64 a, __m64 b);
Intel Description
Unpack and interleave 8-bit integers from the high half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
DEFINE INTERLEAVE_HIGH_BYTES(src1[63:0], src2[63:0]) {
dst[7:0] := src1[39:32]
dst[15:8] := src2[39:32]
dst[23:16] := src1[47:40]
dst[31:24] := src2[47:40]
dst[39:32] := src1[55:48]
dst[47:40] := src2[55:48]
dst[55:48] := src1[63:56]
dst[63:56] := src2[63:56]
RETURN dst[63:0]
}
dst[63:0] := INTERLEAVE_HIGH_BYTES(a[63:0], b[63:0])
_m_punpckhwd#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpckhwd(__m64 a, __m64 b);
Intel Description
Unpack and interleave 16-bit integers from the high half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
DEFINE INTERLEAVE_HIGH_WORDS(src1[63:0], src2[63:0]) {
dst[15:0] := src1[47:32]
dst[31:16] := src2[47:32]
dst[47:32] := src1[63:48]
dst[63:48] := src2[63:48]
RETURN dst[63:0]
}
dst[63:0] := INTERLEAVE_HIGH_WORDS(a[63:0], b[63:0])
_m_punpckhdq#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpckhdq(__m64 a, __m64 b);
Intel Description
Unpack and interleave 32-bit integers from the high half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
dst[31:0] := a[63:32]
dst[63:32] := b[63:32]
_m_punpcklbw#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpcklbw(__m64 a, __m64 b);
Intel Description
Unpack and interleave 8-bit integers from the low half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
DEFINE INTERLEAVE_BYTES(src1[63:0], src2[63:0]) {
dst[7:0] := src1[7:0]
dst[15:8] := src2[7:0]
dst[23:16] := src1[15:8]
dst[31:24] := src2[15:8]
dst[39:32] := src1[23:16]
dst[47:40] := src2[23:16]
dst[55:48] := src1[31:24]
dst[63:56] := src2[31:24]
RETURN dst[63:0]
}
dst[63:0] := INTERLEAVE_BYTES(a[63:0], b[63:0])
_m_punpcklwd#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpcklwd(__m64 a, __m64 b);
Intel Description
Unpack and interleave 16-bit integers from the low half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
DEFINE INTERLEAVE_WORDS(src1[63:0], src2[63:0]) {
dst[15:0] := src1[15:0]
dst[31:16] := src2[15:0]
dst[47:32] := src1[31:16]
dst[63:48] := src2[31:16]
RETURN dst[63:0]
}
dst[63:0] := INTERLEAVE_WORDS(a[63:0], b[63:0])
_m_punpckldq#
- Tech:
MMX
- Category:
Swizzle
- Header:
mmintrin.h
- Searchable:
MMX-Swizzle-MMX
- Register:
MMX 64 bit
- Return Type:
__m64
- Param Types:
__m64 a, __m64 b
- Param ETypes:
UI64 a, UI64 b
__m64 _m_punpckldq(__m64 a, __m64 b);
Intel Description
Unpack and interleave 32-bit integers from the low half of “a” and “b”, and store the results in “dst”.
Deprecated since version X87: MMX technology intrinsics can cause issues on modern processors and should generally be avoided. Use SSE2, AVX, or later instruction sets instead, especially when targeting modern processors.
Intel Implementation Psudeo-Code
dst[31:0] := a[31:0]
dst[63:32] := b[31:0]