WSLLlength[Condition] dest, op1, op2
WSLLlengthG[Condition] dest, op1, op2C
其中:
length | 所需的數據長度,可以由以下字元之一指定: H -- 操作 16 位(半字)SIMD 數據 W -- 操作 32 位(字)SIMD 數據 D -- 操作 64 位(雙字)SIMD 數據 G -- op2 欄位指定要給移位值使用的通用暫存器 |
condition | 可選。16 個條件之一。請參閱條件執行 |
dest | 目標,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op1 | 第一個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op2 | 第二個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 -- 指定移位量 |
op2C | 第二個源運算元,任何通用“控制暫存器”- 指定移位量 |
按照 op2 或 op2C 指定的位數,在 op1 上執行向量邏輯“左移”,並將結果放入“目標”暫存器 dest。
移位可以在 16、32 或 64 位數據的向量上執行。零從右向內移。假設移位量 > 63(對於 D 限定符)、31(對於 W 限定符)或 15(對於 H 限定符),則“目標”暫存器包含的將全是零。
指令中指定的任何條件必須與條件程式碼狀態匹配,否則不執行指令。
31
|
30
|
29
|
28
|
27
|
26
|
25
|
24
|
23
|
22
|
21
|
20
|
19
|
18
|
17
|
16
|
15
|
14
|
13
|
12
|
11
|
10
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cond
|
1110
|
ww01
|
op1
|
dest
|
000g
|
010
|
0
|
op2 或 op2C
|
限定符
|
欄位
|
值
|
---|---|---|
H
|
ww
|
01
|
W
|
ww
|
10
|
D
|
ww
|
11
|
保留
|
ww
|
00
|
G
|
g
|
1
|
無 G
|
g
|
0
|
標誌
|
操作
|
---|---|
N
|
根據最終結果設定
|
Z
|
根據最終結果設定
|
C
|
清除
|
V
|
清除
|
if (H Specified) then
dest[half 3] = op1[half 3] << ((G Specified) ? op2C[7:0]:op2[7:0])
dest[half 2] = op1[half 2] << ((G Specified) ? op2C[7:0]:op2[7:0])
dest[half 1] = op1[half 1] << ((G Specified) ? op2C[7:0]:op2[7:0])
dest[half 0] = op1[half 0] << ((G Specified) ? op2C[7:0]:op2[7:0])
else if (W Specified) then
dest[word 1] = op1[word 1] << ((G Specified) ? op2C[7:0]:op2[7:0])
dest[word 0] = op1[word 0] << ((G Specified) ? op2C[7:0]:op2[7:0])
else if (D Specified) then
dest = op1 << ((G Specified) ? op2C[7:0]:op2[7:0])