__m128i被称为128bits的整数,当我们对其赋值时,调用
__m128i _mm_set1_epi32(int i)
Sets the four signed 32-bit integer values to i.
R0 |
R1 |
R2 |
R3 |
---|---|---|---|
i |
i |
i |
i |
则会有上面的效果,__m128i类型的值会被分为4部分,且这里这四部分都是相同的值,为什么是四部分呢?
由 epi32 =="every partion's bits is 32"可以得到, 128/32=4;
这里可以将它视为一个奇葩的整数,看起来像数组,可是却不能像数组那样调用,直接定义
__m128i nums;
这里的nums需要把它看成一个整数,不能直接调用,只有重新定义一个
int32_t *p = (int *) &nums;
cout<<p[0]<<endl;
这样子就可以拿出里面的值了。呼呼~~
reference:
http://caidongrong.blog.163.com/blog/static/21424025220133282132973/