__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/