SSE?
SSE(为Streaming SIMD Extensions的缩写)是由 Intel公司,在1999年推出Pentium III处理器时,同时推出的新指令集。如同其名称所表示的,SSE是一种SIMD指令集。所谓的SIMD是指single instruction, multiple data,也就是一个指令同时对多个资料进行相同的动作。较早的MMX和 AMD的3DNow!也都是SIMD指令集。因此,SSE本质上是非常类似一个向量处理器的。SSE指令包括了四个主要的部份:单精确度浮点数运算指令、整数运算指令(此为MMX之延伸,并和MMX使用同样的暂存器)、Cache控制指令、和状态控制指令。
寄存器
新增xmm0 ~ xmm7 共8个寄存器,均为128位,每一个用来存储从data0 ~ data3 共4个32位浮点数。其中排列从data0起作为低位,一直到data3作为最高位的浮点数。
128——————96————–64——————32—————-0
|———–data3—-|——-data2–|——–data1—–|—–data0—–|
指令
分类
- packed(包裹指令):对寄存器中4个浮点数均进行一次计算
- scalar(标量指令):对寄存器中的data0进行一次计算,其余data保持不变
两个大类。
操作指令后缀
|——具体操作——|——s或p——|——-s——–|
- 具体操作:如add, mov等等
- s或p,指明操作的种类,p即packed,s即scalar
- s&#