小编Jos*_*uer的帖子

访问冲突 _mm_store_si128 SSE 内在函数

我想在 8 位灰度图像中创建垂直梯度直方图。可以指定计算梯度的垂直距离。我已经设法使用 Intrinsics 加速了代码的另一部分,但它在这里不起作用。如果 _mm_store_si128 被注释掉,则代码运行不会出现异常。当它没有被注释时,我会遇到访问冲突。

这里出了什么问题?

#define _mm_absdiff_epu8(a,b) _mm_adds_epu8(_mm_subs_epu8(a, b), _mm_subs_epu8(b, a)) //from opencv
void CreateAbsDiffHistogramUnmanaged(void* source, unsigned int sourcestride, unsigned int height, unsigned int verticalDistance, unsigned int histogram[])
{
unsigned int xcount = sourcestride / 16;
__m128i absdiffData;
unsigned char* bytes = (unsigned char*) _aligned_malloc(16, 16);
__m128i* absdiffresult = (__m128i*) bytes;
__m128i* sourceM = (__m128i*) source;
__m128i* sourceVOffset = (__m128i*)source + verticalDistance * sourcestride;

for (unsigned int y = 0; y < (height - verticalDistance); y++)
{ …
Run Code Online (Sandbox Code Playgroud)

c++ x86 sse simd intrinsics

5
推荐指数
1
解决办法
658
查看次数

标签 统计

c++ ×1

intrinsics ×1

simd ×1

sse ×1

x86 ×1