【问题标题】:What does this x86 SSE code do?这个 x86 SSE 代码有什么作用?
【发布时间】:2014-07-30 14:56:42
【问题描述】:

我在 OpenCV 中看到了这段代码。

__m128i delta = _mm_set1_epi8(-128),
        t = _mm_set1_epi8((char)threshold),
        K16 = _mm_set1_epi8((char)K);
(void)K16;
(void)delta;
(void)t;

有人可以向我解释它的作用吗?我得到的只是 sse 函数的作用,但接下来三行发生的情况尚不清楚

【问题讨论】:

  • 你的意思是,“为什么所有的变量都被用作(void)v?”
  • 它们可能被用作某种优化障碍?
  • Git 历史注释,用于介绍“windows 下的警告”的变更集。因此,其目的是消除未使用值警告。

标签: opencv x86 sse intrinsics


【解决方案1】:

将 128 位值设置为 8 位跨度的有符号字符输入: http://msdn.microsoft.com/en-us/library/6e14xhyf(v=vs.90).aspx

【讨论】:

  • 哦,对不起,我看错了你的问题。 void casts 可能会阻止编译器抱怨那些未使用的变量。它们是否在代码中进一步使用?
  • 是的,它们已被使用。 (有opencv代码请参考fast.cpp)
猜你喜欢
  • 2013-04-17
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多