« MMX | メイン | MMX (3) - register - »
2005年07月16日
MMX (2) - Shuffle -
Shuffle に関して。これはデータの配置替えのような処理です。
Shuffle Packed Words
| pshufw mm0,mm1,imm8 | ||||||||
|---|---|---|---|---|---|---|---|---|
| * | * | * | * | mm0 | ||||
| W3 | W2 | W1 | W0 | mm1 | ||||
| ↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
| W0 | W1 | W2 | W3 | mm0 | ||||
Shuffle Packed Doublewords
| pshufd xmm0,xmm1,imm8 | ||||||||
|---|---|---|---|---|---|---|---|---|
| * | * | * | * | xmm0 | ||||
| D3 | D2 | D1 | D0 | xmm1 | ||||
| ↓Dj = shuffle( Di ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
| D0 | D1 | D2 | D3 | xmm0 | ||||
Shuffle Packed High Words
| pshufhw xmm0,xmm1,imm8 | ||||||||
|---|---|---|---|---|---|---|---|---|
| * | * | * | * | w3 | w2 | w1 | w0 | xmm0 | 
| W7 | W6 | W5 | W4 | * | * | * | * | xmm1 | 
| ↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
| W4 | W5 | W6 | W7 | w3 | w2 | w1 | w0 | xmm0 | 
Shuffle Packed Low Words
| pshuflw xmm0,xmm1,imm8 | ||||||||
|---|---|---|---|---|---|---|---|---|
| w7 | w6 | w5 | w4 | * | * | * | * | xmm0 | 
| * | * | * | * | W3 | W2 | W1 | W0 | xmm1 | 
| ↓Wj = shuffle( Wi ) [例えば、imm8=0x1b (0,1,2,3) の場合] | ||||||||
| w7 | w6 | w5 | w4 | W0 | W1 | W2 | W3 | xmm0 | 
投稿者 napier : 2005年07月16日 13:56
トラックバック
このエントリーのトラックバックURL:
http://will.squares.net/mt/mt-modified-tb.cgi/230