SSE 中的等零指令

Equal zero instruction in SSE

假设我有一个 128 位整数向量:

__m128i x;

那怎么知道x中的所有位是否都是0呢?

检查每个压缩整数是一种简单的方法。

但我正在寻找一种更快的方法。

SSE有没有指令可以做这个工作?

如果是SSE 4.1,可以使用_mm_testz_si128,例如

_mm_testz_si128(idata, _mm_set1_epi32(0x0000))

可能还要查看 Check XMM register for all zeroes 以获取 SSE2 兼容解决方案。