611 lines
22 KiB
Plaintext
611 lines
22 KiB
Plaintext
2006/09/01 Revision 1.2
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
This is a description of the VMX128-type opcodes found on
|
|
the xbox360 processor. I figured this out by looking at
|
|
various disassmblies, so there might some errors and
|
|
missing instructions. Some instructions have unknown
|
|
semantics for me.
|
|
|
|
See comments or corrections to sb#biallas.net
|
|
|
|
|
|
=================================================================
|
|
Conventions:
|
|
VD128, VS128: 5 lower bits of a VMX128 vector register
|
|
number
|
|
VDh: upper 2 bits of VD128
|
|
(so register number is (VDh << 5 | VD128))
|
|
|
|
VA128: same as VD128
|
|
A: bit 6 of VA128
|
|
a: bit 5 of VA128
|
|
(so register number is (A<<6 | a<<5 | VA128))
|
|
|
|
VB128: same as VD128
|
|
VBh: same as VDh
|
|
|
|
VC128: 3 bits of a VMX128 vector register number
|
|
(you can only use vr0-vr7 here)
|
|
|
|
RA, RB: general purpose register number
|
|
|
|
UIMM: unsigned immediate value
|
|
SIMM: signed immediate value
|
|
|
|
PERMh: upper 3 bits of a permutation
|
|
PERMl: lower 5 bits of a permutation
|
|
|
|
x, y, z: unknown immediate values
|
|
|
|
=================================================================
|
|
lvewx128 Load Vector128 Element Word Indexed
|
|
|0 0 0 1 0 0| VD128 | RA | RB |0 0 0 1 0 0 0|VDh|1 1|
|
|
|
|
lvewx128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvlx128 Load Vector128 Left Indexed
|
|
|0 0 0 1 0 0| VD128 | RA | RB |1 0 0 0 0 0 0|VDh|1 1|
|
|
|
|
lvlx128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvrx128 Load Vector128 Right Indexed
|
|
|0 0 0 1 0 0| VD128 | RA | RB |1 0 0 0 1 0 0|VDh|1 1|
|
|
|
|
lvrx128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvlxl128 Load Vector128 Left Indexed LRU
|
|
|0 0 0 1 0 0| VD128 | RA | RB |1 1 0 0 0 0 0|VDh|1 1|
|
|
|
|
lvlxl128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvrxl128 Load Vector128 Right Indexed LRU
|
|
|0 0 0 1 0 0| VD128 | RA | RB |1 1 0 0 1 0 0|VDh|1 1|
|
|
|
|
lvrxl128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvsl128 Load Vector128 for Shift Left
|
|
|0 0 0 1 0 0| VD128 | RA | RB |0 0 0 0 0 0 0|VDh|1 1|
|
|
|
|
lvsl128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvsr128 Load Vector128 for Shift Right
|
|
|0 0 0 1 0 0| VD128 | RA | RB |0 0 0 0 1 0 0|VDh|1 1|
|
|
|
|
lvsr128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvx128 Load Vector128 Indexed
|
|
|0 0 0 1 0 0| VD128 | RA | RB |0 0 0 1 1 0 0|VDh|1 1|
|
|
|
|
lvx128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
lvxl128 Load Vector128 Indexed LRU
|
|
|0 0 0 1 0 0| VD128 | RA | RB |0 1 0 1 1 0 0|VDh|1 1|
|
|
|
|
lvxl128 vr(VD128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stewx128 Store Vector128 Element Word Indexed
|
|
|0 0 0 1 0 0| VS128 | RA | RB |0 1 1 0 0 0 0|VDh|1 1|
|
|
|
|
stvewx128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvlx128 Store Vector128 Left Indexed
|
|
|0 0 0 1 0 0| VS128 | RA | RB |1 0 1 0 0 0 0|VDh|1 1|
|
|
|
|
stvlx128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvlxl128 Store Vector128 Left Indexed LRU
|
|
|0 0 0 1 0 0| VS128 | RA | RB |1 1 1 0 0 0 0|VDh|1 1|
|
|
|
|
lvlxl128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvrx128 Store Vector128 Right Indexed
|
|
|0 0 0 1 0 0| VS128 | RA | RB |1 0 1 0 1 0 0|VDh|1 1|
|
|
|
|
stvrx128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvrxl128 Store Vector128 Right Indexed LRU
|
|
|0 0 0 1 0 0| VS128 | RA | RB |1 1 1 0 1 0 0|VDh|1 1|
|
|
|
|
stvrxl128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvx128 Store Vector128 Indexed
|
|
|0 0 0 1 0 0| VS128 | RA | RB |0 0 1 1 1 0 0|VDh|1 1|
|
|
|
|
stvx128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
stvxl128 Store Vector128 Indexed LRU
|
|
|0 0 0 1 0 0| VS128 | RA | RB |0 1 1 1 1 0 0|VDh|1 1|
|
|
|
|
stvxl128 vr(VS128), r(RA), r(RB)
|
|
|
|
|
|
=================================================================
|
|
vaddfp128 Vector128 Add Floating Point
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 0 0 0|a|1|VDh|VBh|
|
|
|
|
vaddfp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vand128 Vector128 Logical AND
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 0 0|a|1|VDh|VBh|
|
|
|
|
vand128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vandc128 Vector128 Logical AND
|
|
with Complement
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 1 0|a|1|VDh|VBh|
|
|
|
|
vandc128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vcfpsxws128 Vector128 Convert From Floating-Point to
|
|
Signed Fixed-Point Word Saturate
|
|
|0 0 0 1 1 0| VD128 | SIMM | VB128 |0 1 0 0 0 1 1|VDh|VBh|
|
|
|
|
vcfpsxws128 vr(VD128), vr(VB128), SIMM
|
|
|
|
|
|
=================================================================
|
|
vcfpuxws128 Vector128 Convert From Floating-Point to
|
|
Unsigned Fixed-Point Word Saturate
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |0 1 0 0 1 1 1|VDh|VBh|
|
|
|
|
vcfpuxws128 vr(VD128), vr(VB128), UIMM
|
|
|
|
|
|
=================================================================
|
|
vcmpbfp128 Vector128 Compare Bounds
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 1 1|R|a|0|VDh|VBh|
|
|
|
|
vcmpbfp128 vr(VD128), vr(VA128), vr(VB128) (R == 0)
|
|
vcmpbfp128. vr(VD128), vr(VA128), vr(VB128) (R == 1)
|
|
|
|
|
|
=================================================================
|
|
vcmpeqfp128 Vector128 Compare Equal-to
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 0 0|R|a|0|VDh|VBh|
|
|
|
|
vcmpeqfp128 vr(VD128), vr(VA128), vr(VB128) (R == 0)
|
|
vcmpeqfp128. vr(VD128), vr(VA128), vr(VB128) (R == 1)
|
|
|
|
|
|
=================================================================
|
|
vcmpequw128 Vector128 Compare Equal-to
|
|
Unsigned Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 0 0|R|a|0|VDh|VBh|
|
|
|
|
vcmpequw128 vr(VD128), vr(VA128), vr(VB128) (R == 0)
|
|
vcmpequw128. vr(VD128), vr(VA128), vr(VB128) (R == 1)
|
|
|
|
|
|
=================================================================
|
|
vcmpgefp128 Vector128 Compare Greater-Than-
|
|
or-Equal-to Floating Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 0 1|R|a|0|VDh|VBh|
|
|
|
|
vcmpgefp128 vr(VD128), vr(VA128), vr(VB128) (R == 0)
|
|
vcmpgefp128. vr(VD128), vr(VA128), vr(VB128) (R == 1)
|
|
|
|
|
|
=================================================================
|
|
vcmpgtfp128 Vector128 Compare Greater-Than
|
|
Floating-Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 1 0|R|a|0|VDh|VBh|
|
|
|
|
vcmpgtfp128 vr(VD128), vr(VA128), vr(VB128) (R == 0)
|
|
vcmpgtfp128. vr(VD128), vr(VA128), vr(VB128) (R == 1)
|
|
|
|
|
|
=================================================================
|
|
vcsxwfp128 Vector128 Convert From Signed Fixed-Point
|
|
Word to Floating-Point
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |0 1 0 1 0 1 1|VDh|VBh|
|
|
|
|
vcsxwfp128 vr(VD128), vr(VB128), SIMM
|
|
|
|
|
|
=================================================================
|
|
vcuxwfp128 Vector128 Convert From Unsigned Fixed-Point
|
|
Word to Floating-Point
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |0 1 0 1 1 1 1|VDh|VBh|
|
|
|
|
vcuxwfp128 vr(VD128), vr(VB128), UIMM
|
|
|
|
|
|
=================================================================
|
|
vexptefp128 Vector128 2 Raised to the Exponent
|
|
Estimate Floating Point
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |1 1 0 1 0 1 1|VDh|VBh|
|
|
|
|
vexptefp128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vlogefp128 Vector128 Log2 Estimate
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |1 1 0 1 1 1 1|VDh|VBh|
|
|
|
|
vlogefp128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmaddcfp128 Vector128 Multiply Add
|
|
Floating Point
|
|
|0 0 0 1 0 1| VDS128 | VA128 | VB128 |A|0 1 0 0|a|1|VDh|VBh|
|
|
|
|
vmaddcfp128 vr(VDS128), vr(VA128), vr(VSD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmaddfp128 Vector128 Multiply Add
|
|
Floating Point
|
|
|0 0 0 1 0 1| VDS128 | VA128 | VB128 |A|0 0 1 1|a|1|VDh|VBh|
|
|
|
|
vmaddfp128 vr(VDS128), vr(VA128), vr(VB128), vr(VDS128)
|
|
|
|
|
|
=================================================================
|
|
vmaxfp128 Vector128 Maximum
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 0 1 0|a|0|VDh|VBh|
|
|
|
|
vmaxfp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vminfp128 Vector128 Minimum
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 0 1 1|a|0|VDh|VBh|
|
|
|
|
vminfp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmrghw128 Vector128 Merge High Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 1 0 0|a|0|VDh|VBh|
|
|
|
|
vmrghw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmrglw128 Vector128 Merge Low Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 1 0 1|a|0|VDh|VBh|
|
|
|
|
vmrglw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmsum3fp128 Vector128 Multiply Sum 3-way
|
|
Floating Point
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 1 1 0|a|1|VDh|VBh|
|
|
|
|
vmsub3fp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmsum4fp128 Vector128 Multiply Sum 4-way
|
|
Floating-Point
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 1 1 1|a|1|VDh|VBh|
|
|
|
|
vmsub4fp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vmulfp128 Vector128 Multiply
|
|
Floating-Point
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 0 1 0|a|1|VDh|VBh|
|
|
|
|
vmulfp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vnmsubfp128 Vector128 Negative Multiply-Subtract
|
|
Floating Point
|
|
|0 0 0 1 0 1| VDS128 | VA128 | VB128 |A|0 1 0 1|a|1|VDh|VBh|
|
|
|
|
vnmsubfp128 vr(VDS128), vr(VA128), vr(VB128), vr(VDS128)
|
|
|
|
|
|
=================================================================
|
|
vnor128 Vector128 Logical NOR
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 1 0|a|1|VDh|VBh|
|
|
|
|
vnor128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vor128 Vector128 Logical OR
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 1 1|a|1|VDh|VBh|
|
|
|
|
vor128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vperm128 Vector128 Permutation
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0| VC |a|0|VDh|VBh|
|
|
|
|
vperm128 vr(VD128), vr(VA128), vr(VB128), vr(VC)
|
|
|
|
|
|
=================================================================
|
|
vpermwi128 Vector128 Permutate Word Immediate
|
|
|0 0 0 1 1 0| VD128 | PERMl | VB128 |0|1|PERMh|0|1|VDh|VBh|
|
|
|
|
vpermwi128 vr(VD128), vr(VB128), (PERMh << 5 | PERMl)
|
|
|
|
|
|
=================================================================
|
|
vpkd3d128 Vector128 Pack D3Dtype, Rotate Left
|
|
Immediate and Mask Insert
|
|
|0 0 0 1 1 0| VD128 | x | y | VB128 |1 1 0| z |0 1|VDh|VBh|
|
|
|
|
vpkd3d128 vr(VD128), vr(VB128), x, y, z
|
|
|
|
|
|
=================================================================
|
|
vpkshss128 Vector128 Pack Signed Half Word
|
|
Signed Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 0 0|a|0|VDh|VBh|
|
|
|
|
vpkshss128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkshus128 Vector128 Pack Signed Half Word
|
|
Unsigned Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 0 1|a|0|VDh|VBh|
|
|
|
|
vpkshus128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkswss128 Vector128 Pack Signed Word
|
|
Signed Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 1 0|a|0|VDh|VBh|
|
|
|
|
vpkswss128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkswus128 Vector128 Pack Signed Word
|
|
Unsigned Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 0 1 1|a|0|VDh|VBh|
|
|
|
|
vpkswus128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkuhum128 Vector128 Pack Unsigned Half Word
|
|
Unsigned Modulo
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 0 0|a|0|VDh|VBh|
|
|
|
|
vpkuhum128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkuhus128 Vector128 Pack Unsigned Half Word
|
|
Unsigned Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 0 1|a|0|VDh|VBh|
|
|
|
|
vpkuhus128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkuwum128 Vector128 Pack Unsigned Word
|
|
Unsigned Modulo
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 1 0|a|0|VDh|VBh|
|
|
|
|
vpkuwum128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vpkuwus128 Vector128 Pack Unsigned Word
|
|
Unsigned Saturate
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 1 1|a|0|VDh|VBh|
|
|
|
|
vpkuwus128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrefp128 Vector128 Reciprocal Estimate
|
|
Floating Point
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |1 1 0 0 0 1 1|VDh|VBh|
|
|
|
|
vrefp128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrfim128 Vector128 Round to Floating-Point
|
|
Integer toward -oo
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 0 0 1 1|VDh|VBh|
|
|
|
|
vrfim128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrfin128 Vector128 Round to Floating-Point
|
|
Integer toward Nearest
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 0 1 1 1|VDh|VBh|
|
|
|
|
vrfin128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrfip128 Vector128 Round to Floating-Point
|
|
Integer toward +oo
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 1 0 1 1|VDh|VBh|
|
|
|
|
vrfip128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrfiz128 Vector128 Round to Floating-Point
|
|
Integer toward Zero
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 1 1 1 1|VDh|VBh|
|
|
|
|
vrfiz128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrlimi128 Vector128 Rotate Left Immediate
|
|
and Mask Insert
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |1 1 1| z |0 1|VDh|VBh|
|
|
|
|
vrlimi128 vr(VD128), vr(VB128), UIMM, z
|
|
|
|
|
|
=================================================================
|
|
vrlw128 Vector128 Rotate Left Word
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 0 0 1|a|1|VDh|VBh|
|
|
|
|
vrlw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vrsqrtefp128 Vector128 Reciprocal Square Root
|
|
Estimate Floating Point
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |1 1 0 0 1 1 1|VDh|VBh|
|
|
|
|
vrsqrtefp128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vsel128 Vector128 Select
|
|
|0 0 0 1 0 1| VDS128 | VA128 | VB128 |A|1 1 0 1|a|1|VDh|VBh|
|
|
|
|
vsel128 vr(VDS128), vr(VA128), vr(VB128), vr(VDS128)
|
|
|
|
|
|
=================================================================
|
|
vsldoi128 Vector128 Shift Left Double
|
|
by Octet Immediate
|
|
|0 0 0 1 0 0| VD128 | VA128 | VB128 |A| SHB |a|1|VDh|VBh|
|
|
|
|
vsldoi128 vr(VD128), vr(VA128), vr(VB128), SHB
|
|
|
|
|
|
=================================================================
|
|
vslo128 Vector128 Shift Left Octet
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 1 0|a|1|VDh|VBh|
|
|
|
|
vslo128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vslw128 Vector128 Shift Left Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 0 1 1|a|1|VDh|VBh|
|
|
|
|
vslw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vspltisw128 Vector128 Splat Immediate
|
|
Signed Word
|
|
|0 0 0 1 1 0| VD128 | SIMM | VB128 |1 1 1 0 1 1 1|VDh|VBh|
|
|
|
|
vspltisw128 vr(VD128), vr(VB128), SIMM
|
|
|
|
|
|
=================================================================
|
|
vspltw128 Vector128 Splat Word
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |1 1 1 0 0 1 1|VDh|VBh|
|
|
|
|
vspltw128 vr(VD128), vr(VB128), UIMM
|
|
|
|
|
|
=================================================================
|
|
vsraw128 Vector128 Shift Right
|
|
Arithmetic Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 1 0 1|a|1|VDh|VBh|
|
|
|
|
vsraw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vsro128 Vector128 Shift Right Octet
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|1 1 1 1|a|1|VDh|VBh|
|
|
|
|
vsro128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vsrw128 Vector128 Shift Right Word
|
|
|0 0 0 1 1 0| VD128 | VA128 | VB128 |A|0 1 1 1|a|1|VDh|VBh|
|
|
|
|
vsrw128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vsubfp128 Vector128 Subtract Floating Point
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|0 0 0 1|a|1|VDh|VBh|
|
|
|
|
vsubfp128 vr(VD128), vr(VA128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vupkd3d128 Vector128 Unpack D3Dtype
|
|
|0 0 0 1 1 0| VD128 | UIMM | VB128 |1 1 1 1 1 1 1|VDh|VBh|
|
|
|
|
vupkd3d128 vr(VD128), vr(VB128), UIMM
|
|
|
|
|
|
=================================================================
|
|
vupkhsb128 Vector128 Unpack
|
|
High Signed Byte
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 1 0 0 0|VDh|VBh|
|
|
|
|
vupkhsb128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vupklsb128 Vector128 Unpack
|
|
Low Signed Byte
|
|
|0 0 0 1 1 0| VD128 |0 0 0 0 0| VB128 |0 1 1 1 1 0 0|VDh|VBh|
|
|
|
|
vupkhsb128 vr(VD128), vr(VB128)
|
|
|
|
|
|
=================================================================
|
|
vxor128 Vector128 Logical XOR
|
|
|0 0 0 1 0 1| VD128 | VA128 | VB128 |A|1 1 0 0|a|1|VDh|VBh|
|
|
|
|
vxor128 vr(VD128), vr(VA128), vr(VB128)
|