這是SSE3的指令集:
http://msdn.microsoft.com/zh-tw/library/bb531427%28v=vs.90%29.aspx
__m128i _mm_shuffle_epi8(
__m128i a,
__m128i mask
);
msdn上面這樣寫:
rn = (maskn & 0x80) ? 0 : SELECT(a, maskn & 0x0f)
SELECT的解適是這樣
SELECT(a, n) extracts the nth 8-bit parameter from a. The 0th 8-bit parameter
is the least significant 8-bits.
但我真的不懂這是在幹嘛:
MSDN上的例子:
a.m128i_i8[15] = -1; ---> 1111 1111
mask.m128i_u8[15] = 0x00; -> 取第0個8bit ?
那為何輸出是 1 ( 0000 0001).
同理:
a.m128i_i8[13] = -64; ---> 1100 0000
mask.m128i_u8[13] = 0x02;
那為何輸出是 4 (0000 0100) ??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.158.204