官方文档:https://software.intel.com/sites/landingpage/IntrinsicsGuide/#
离线版:https://link.zhihu.com/?target=https%3A//software.intel.com/sites/default/files/19.0U1_CPP_Compiler_DGR_0.pdf
image.png

image.png

image.png

函数名约定

image.png
ps:包含单精度浮点形的向量
pd:包含双精度浮点形的向量
epi8/epi16/epi32/epi64:包含有符号整形的向量
epu8/epu16/epu32/epu64:包含无符号整形的向量

https://www.cnblogs.com/walker-lin/p/11354687.html
介绍了常见的SIMD函数,摘取部分如下。

标量值初始化

image.png

从内存加载数据

image.png
mask要求0xffffffff时该元素才被选中,否则为0

算术运算

image.png
低位的元素运算结果溢出不会影响高位。
考虑内存饱和的指令会进行带饱和保护的运算,否则直接抛弃溢出的位。

水平方向加减法:
image.png

image.png


**

FMA乘加运算

image.png

排列

image.png
image.png