WMAXsignlength[condition] dest, op1, op2
其中:
sign | 確定進行“有符號”還是“無符號”算術運算: S -- 有符號 U -- 無符號 |
length | 所需的數據長度,可以由以下字元之一指定: B -- 操作 8 位(位元組)SIMD 數據 H -- 操作 16 位(半字)SIMD 數據 W -- 操作 32 位(字)SIMD 數據 |
condition | 可選。16 個條件之一。請參閱條件執行 |
dest | 目標,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op1 | 第一個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op2 | 第二個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 |
在 op1 與 op2 內的每個“向量”中選擇最大值,並將產生的最大值放入目標暫存器 dest。此指令可以在有符號或無符號的 8 位、16 位或 32 位數據值上執行。
指令中指定的任何條件必須與條件程式碼狀態匹配,否則不執行指令。
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
|
wws0
|
op1
|
dest
|
0001
|
011
|
0
|
op2
|
限定符
|
欄位
|
值
|
---|---|---|
B
|
ww
|
00
|
H
|
ww
|
01
|
W
|
ww
|
10
|
保留
|
ww
|
11
|
S
|
s
|
1
|
U
|
s
|
0
|
if (B Specified)then
dest[byte 7] = (op1[byte 7] > op2[byte 7]) ? op1[byte 7] : op2[byte 7]
dest[byte 6] = (op1[byte 6] > op2[byte 6]) ? op1[byte 6] : op2[byte 6]
dest[byte 5] = (op1[byte 5] > op2[byte 5]) ? op1[byte 5] : op2[byte 5]
dest[byte 4] = (op1[byte 4] > op2[byte 4]) ? op1[byte 4] : op2[byte 4]
dest[byte 3] = (op1[byte 3] > op2[byte 3]) ? op1[byte 3] : op2[byte 3]
dest[byte 2] = (op1[byte 2] > op2[byte 2]) ? op1[byte 2] : op2[byte 2]
dest[byte 1] = (op1[byte 1] > op2[byte 1]) ? op1[byte 1] : op2[byte 1]
dest[byte 0] = (op1[byte 0] > op2[byte 0]) ? op1[byte 0] : op2[byte 0]
else if (H Specified)then
dest[half 3] = (op1[half 3] > op2[half 3]) ? op1[half 3] : op2[half 3]
dest[half 2] = (op1[half 2] > op2[half 2]) ? op1[half 2] : op2[half 2]
dest[half 1] = (op1[half 1] > op2[half 1]) ? op1[half 1] : op2[half 1]
dest[half 0] = (op1[half 0] > op2[half 0]) ? op1[half 0] : op2[half 0]
else if (W Specified) then
dest[word 1] = (op1[word 1] > op2[word 1]) ? op1[word 1] : op2[word 1]
dest[word 0] = (op1[word 0] > op2[word 0]) ? op1[word 0] : op2[word 0]