基本介紹
定義
指令集
處理器
新增的指令
PSIGNB, PSIGNW, PSIGND | Packed Sign | Negate the elements of a register of bytes, words or dwords if thesign of the corresponding elements of another register is negative. |
PABSB, PABSW, PABSD | Packed Absolute Value | Fill the elements of a register of bytes, words or dwords with the absolute values of the elements of another register |
PALIGNR | Packed Align Right | take two registers, concatenate their values, and pull out aregister-length section from an offset given by an immediate valueencoded in the instruction. |
PSHUFB | Packed Shuffle Bytes | takes registers of bytes A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and replaces A with [ab0 ab1 ab2 ...]; except that it replaces the ith entry with 0 if the top bit of bi is set. |
PMULHRSW | Packed Multiply High with Round and Scale | treat the sixteen-bit words in registers A and B as signed 15-bitfixed-point numbers between -1 and 1 (eg 0x4000 is treated as 0.5 and0xa000 as -0.75), and multiply them together with correct rounding. |
PMADDUBSW | Multiply and Add Packed Signed and Unsigned Bytes | Take the bytes in registers A and B, multiply them together, addpairs, signed-saturate and store. IE [a0 a1 a2 ...] pmaddubsw [b0 b1 b2...] = [satsw(a0b0+a1b1) satsw(a2b2+a3b3) ...] |
PHSUBW, PHSUBD | Packed Horizontal Subtract (Words or Doublewords) | takes registers A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and outputs [a0-a1 a2-a3 ... b0-b1 b2-b3 ...] |
PHSUBSW | Packed Horizontal Subtract and Saturate Words | like PHSUBW, but outputs [satsw(a0-a1) satsw(a2-a3) ... satsw(b0-b1) satsw(b2-b3) ...] |
PHADDW, PHADDD | Packed Horizontal Add (Words or Doublewords) | takes registers A = [a0 a1 a2 ...] and B = [b0 b1 b2 ...] and outputs [a0+a1 a2+a3 ... b0+b1 b2+b3 ...] |
PHADDSW | Packed Horizontal Add and Saturate Words | like PHADDW, but outputs [satsw(a0+a1) satsw(a2+a3) ... satsw(b0+b1) satsw(b2+b3) ...] |