« 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