x64的处理器不支持任何使用 __m64 数据类型的SSE2指令。
所有的SSE2指令的声明都在emmintrin.h头文件中可以找得到
1. _mm_store_si128 ( __m128i *p, __m128i a);
指令名:void _mm_store_si128 ( __m128i *p, __m128i a);
说明:将__m128i 变量a的值存储到p所指定的变量中去;
注意:p必须是一个16-bit对齐的一个变量的地址;
2. _mm_storeu_si128 ( __m128i *p, __m128i a);
指令名:void _mm_storeu_si128 ( __m128i *p, __m128i a);
说明:将__m128i 变量a的值存储到p所指定的变量中去;
注意:p不要求必须是一个16-bit对齐的一个变量的地址;
3. _mm_maskmoveu_si128( __m128i d, __m128i n, char *p);
指令名:void _mm_maskmoveu_si128( __m128i d, __m128i n, char *p);
说明:有条件的选择将d中的数值存储到p中去;
返回值:如果将n看做16个8位数值,则根据这16个8位数值的最高位来决定是不是讲16个8位d数值存储到p
所指定的数组中去;p不要求必须是一个16-bit对齐的一个变量的地址;
有如下规则:
if (n0[7]) p[0] := d0
if (n1[7]) p[1] := d1
...
if (n15[7]) p[15] := d15
如果括号中的条件不成立,p中的值不变;
4. _mm_storel_epi64( __m128i* a , __m128i b );
指令名: void _mm_storel_epi64( __m128i* a , __m128i b );
参数:
[in] a: 一个要写入的内存中的__m128i 结构体变量指针
[in] b:一个要读取(映射到XMM 硬件寄存器)的__m128i 结构体变量
说明:这个指令时将b中低64位数据存储到a中低64中去