A.5.230 PMACHRIW: Packed Multiply and Accumulate with Rounding
PMACHRIW mm,m64 ; 0F 5E /r [CYRIX,MMX]
PMACHRIW takes two packed 16-bit integer inputs, multiplies the values
in the inputs, rounds on bit 15 of each result, then adds bits 15-30 of
each result to the corresponding position of the _implied_ destination
register.
The operation of this instruction is:
dstI[0-15] := dstI[0-15] + (mm[0-15] *m64[0-15]
+ 0x00004000)[15-30],
dstI[16-31] := dstI[16-31] + (mm[16-31]*m64[16-31]
+ 0x00004000)[15-30],
dstI[32-47] := dstI[32-47] + (mm[32-47]*m64[32-47]
+ 0x00004000)[15-30],
dstI[48-63] := dstI[48-63] + (mm[48-63]*m64[48-63]
+ 0x00004000)[15-30].
Note that PMACHRIW cannot take a register as its second source operand.