【发布时间】:2015-06-13 14:04:40
【问题描述】:
如何将 __m256i 数据类型存储为整数?
我知道花车有:
_mm256_store_ps(float *a, __m256 b)
第一个参数是输出数组。
对于我只找到的整数:
_mm256_store_si256(__m256i *a, __m256i b)
其中两个参数都是 __m256i 数据类型。
做这样的事情就够了吗:
int * X = (int*) _mm_malloc( N * sizeof (*X) ,32 );
(我将它用作函数的参数,我想获取它的值)
内部函数:
__m256i * Xmmtype = (__m256i*) X;
//fill output
_mm256_store_si256( &Xmmtype[ i ] , T ); //T is __m256i
这样好吗?
-----已更新 -----------
好的,如果我有:
__m256i T;
for ( y = 0; y < h; y++ )
{
for ( x = 0; x < w; x++ )
{
for ( int i = 0; i < N; i+=8 )
{
//calculate here the T
}
//write result
_mm256_store_si256( &Xmmtype[ x + y * w ] , T );
}
}
【问题讨论】:
标签: c x86 simd intrinsics avx2