
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Watcom C Library Reference - <u>synopsis:</u>
[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Synopsis:
#include <mmintrin.h>
__m64 _m_punpcklwd(__m64 *m1, __m64 *m2);
Description:
The _m_punpcklwd function performs an interleaved unpack of the
low-order data elements of m1 and m2. It ignores the high-order words.
When unpacking from a memory operand, 32 bits are accessed and all are
utilized by the instruction. By choosing m1 or m2 to be zero, an
unpacking of word elements into double-word elements is performed.
m2 m1
------------------------- -------------------------
| w3 | w2 | w1 | w0 | | w3 | w2 | w1 | w0 |
------------------------- -------------------------
| | | |
V V V V
w3 w1 w2 w0
-------------------------
| w3 | w2 | w1 | w0 |
-------------------------
result
Returns:
The result of the interleaved unpacking of the low-order words of two
multimedia values is returned.
Example:
#include <stdio.h>
#include <mmintrin.h>
#define AS_WORDS "%4.4x %4.4x %4.4x %4.4x"
__m64 a;
__m64 b = { 0x0004000300020001 };
__m64 c = { 0xff7fff800080007f };
void main()
{
a = _m_punpcklwd( b, c );
printf( "m2="AS_WORDS" "
"m1="AS_WORDS"\n"
"mm="AS_WORDS"\n",
c._16[3], c._16[2], c._16[1], c._16[0],
b._16[3], b._16[2], b._16[1], b._16[0],
a._16[3], a._16[2], a._16[1], a._16[0] );
}
produces the following:
m2=ff7f ff80 0080 007f m1=0004 0003 0002 0001
mm=0080 0002 007f 0001
Classification:
Intel
Systems:
MACRO
See Also:
_m_empty, _m_punpckhbw, _m_punpckhdq, _m_punpckhwd, _m_punpcklbw,
_m_punpckldq
See Also: _m_empty _m_punpckhbw
Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson