quanshiyinian 发表于 2016-4-17 16:04:14

edius7 安装时候需要支持ssse3指令集,小编带您详细了解下关于ssse3指令集是啥?

这里简要描述几个重要的算数运算指令。1.水平相加指令      SSSE3指令集增加的主要是针对整数进行水平方向上相加的指令,与SSE3的浮点指令类似。  phaddd  寄存器水平方向上按照无符号32位整数进行加法
  phaddw    寄存器水平方向上按照无符号16位整数进行加法
  phaddsw  寄存器水平方向上按照16位整数进行饱和加法  phsubd  寄存器水平方向上按照无符号32位整数进行减法   phsubw  寄存器水平方向上按照无符号16位整数进行减法
 phsubsw 寄存器水平方向上按照16位整数进行饱和减法   示例:
   phaddwDest, SRC  源数据和目的数据水平相加并打包,适用于MMX和SSE寄存器:
  DEST ← DEST + DEST;
  DEST ← DEST + DEST;
  DEST ← SRC + SRC;
  DEST ← SRC + SRC;
  XMM寄存器类似。 2. 饱和字节乘加指令  PMADDUBSW
   按照字节对应位置做乘法,在把相邻两数相加,饱和在16位有符号数。示例:PMADDUBSWDEST, SRC
  取源数据和目的数据的乘加的有符号饱和值,适用于MMX和SSE寄存器:
  DEST ←saturatetoSWord(SRC*DST + SRC*DST);
  DEST←saturatetoSWord(SRC*DST + SRC*DST);
  DEST←saturatetoSWord(SRC*DST + SRC*DST);
  DEST←saturatetoSWord(SRC*DST + SRC*DST);
  XMM寄存器类似。
3.16位乘法取高位    PMULHRSW
    这条指令专门为定点运算设计
    用伪代码描述更为方便:
  signed short a; // input a
  signed short b; // input b
  signed short r; // output r

  for (i=0; i < 8; i++)
  r = INT16((a*b + 0x4000) >> 15);
这是一种Q15定点格式的舍入移位运算,在语音信号处理中颇为常见。
4. 取绝对值操作    PABSB/PABSW/PABSD
  示例:PABSW
  取源数据的绝对值,适用于MMX和SSE寄存器:
  DEST ← ABS(SRC);
  DEST ← ABS(SRC);
  DEST ← ABS(SRC);
  DEST ← ABS(SRC);
  XMM寄存器类似。 5. 字节混选指令PSHUFB 这条指令非常的灵活,用于选取源寄存器的任意字节重新排布到目的寄存器。
       用伪代码描述如下:  char a; // input a
  char b; // input b
  char r; // output r

  for (i=0; i < 16; i++)
  r = (b < 0) ? 0 : a % 16];如果源操作数的该字节高位符号位为1,即源字节操作数小于零的时候,把目的寄存器赋值为零。
否则,根据源操作数的低4位选择目的操作数,将其拷贝到目的操作数的相应位。
页: [1]
查看完整版本: edius7 安装时候需要支持ssse3指令集,小编带您详细了解下关于ssse3指令集是啥?