SSE中的等零指令[重复]
Posted
技术标签:
【中文标题】SSE中的等零指令[重复]【英文标题】:Equal zero instruction in SSE [duplicate] 【发布时间】:2015-01-14 12:09:14 【问题描述】:假设我有一个 128 位整数向量:
__m128i x;
那么如何知道 x 中的所有位是否都为零?
检查每个压缩整数是一种简单的方法。
但我正在寻找一种更快的方法。
SSE 中是否有任何指令可以完成这项工作?
【问题讨论】:
【参考方案1】:如果是SSE 4.1,可以使用_mm_testz_si128
,例如
_mm_testz_si128(idata, _mm_set1_epi32(0x0000))
可能还会查看Check XMM register for all zeroes 以获得与 SSE2 兼容的解决方案。
【讨论】:
很高兴听到这个消息:) 请注意,您不需要为第二个参数生成零向量,您可以为两者都传递idata
。
你知道如何对 256 位浮点向量执行此操作,即检查 256 位浮点向量中的所有位是否为零吗?@PaulR
@KUN 加油,我相信你可以从 128 位的名称中猜出 256 位的名称...
我说的是_mm256_testz_si256...以上是关于SSE中的等零指令[重复]的主要内容,如果未能解决你的问题,请参考以下文章
SSE 指令中的 UnsignedSaturate 是啥意思?