Re: [問題] _mm_shuffle_epi8 :: 看不懂MSDN上的解釋
※ 引述《DrStein (啤酒肚)》之銘言:
: 這是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) ??
: 謝謝
SELECT(a,x) 就是選出 a 的第 x 個 8-bit 值出來
或者換個講法就是 a_x
例如 a = 0xFEDCBA98765432100123456789ABCDEF 好了
那 SELECT(a,0) 就會得到 0xEF
SELECT(a,1) 0xCD
等等
既然 a_0 等的編號也是從低位開始 那 SELECT(a,x) 就等於是 a_x 了
這樣一來它的例子就很清楚了:
mask_0 = 0x8F => r_0 = 0
mask_1 = 0x0E => r_1 = a_14 = -128
mask_2 = 0x8D => r_2 = 0
mask_3 = 0x0C => r_3 = a_12 = -32
等等
--
1989/02/22 優希堂悟 1990/02/22 冬川こころ 1993/07/05 小町つぐみ 1994/05/21 高江
ミュウ 1995/04 歡迎來到 星野遊々 1997/03/24 守野いづみ 1997/03/24 伊野瀬チサト
1998/06/18 守野くるみ 1999/10/19 打越鋼太郎的 楠田ゆに 2000/02/15 樋口遙 2002/
12/17 八神ココ 2011/01/11 HAL18於朱倉岳墜機 2011/04/02 ∞與∫的世界 茜崎空啟動
2012/05/21 第貮日蝕計畫預定 2017/05/01~07 LeMU崩壞事故 2019/04/01~07 某大學合宿
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.62
→
04/06 23:07, , 1F
04/06 23:07, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):