2. SIMD使用和介绍

2 SIMD指令集使用介绍

**2.1 命名规则

2.1.1 标量运算与矢量运算**
标量运算 _mm_add_ss _mm_sub_ss _mm_mul_ss _mm_div_ss
矢量运算 _mm_add_ps _mm_sub_ps _mm_mul_ps _mm_div_ps
标量(Scalar)运算:例如__m128 _m_add_ss(__m128 a, __m128 b)
在这里插入图片描述
矢量(packed)运算:例如__m128 _m_add_ps(__m128 a, __m128 b)

2.1.2 需字节对齐与无需字节对齐
需字节对齐 _mm_load_ps _mm_store_ps
无需字节对齐 _mm_loadu_ps _mm_storeu_ps

2.1.3 整型与浮点型
整型 _mm_add_epi16 _mm_add_epi32
浮点型 _mm_add_ps _mm_add_pd

2.1.4 饱和(Saturate)运算与非饱和运算
饱和运算 _mm_adds_epi8 _mm_subs_epi8
非饱和运算 _mm_add_epi8 _mm_sub_epi8
饱和度运算意味着超出某个“最大”值的值被设置为“最大”,而低于“最小值”的值被设置为“最小”。例如,如果对无符号字节进行算术运算,则“128 + 128”为“256”(十六进制0x100),有溢出。正常整

你可能感兴趣的:(CPU指令集,SIMD指令集的使用)