如何测试__m128i变量在SSE-2及更早版本的处理器上是否有非零值?
发布于 2011-11-03 14:37:04
在SSE2中,您可以执行以下操作:
__m128i zero = _mm_setzero_si128();
if(_mm_movemask_epi8(_mm_cmpeq_epi32(x,zero)) == 0xFFFF)
{
//the code...
}这将测试四个int对0,然后为每个字节返回一个掩码,因此每个相应int的位偏移量将为0、4、8和12,但上面的测试将捕获是否设置了任何位,如果您保留掩码,则可以在需要时直接处理更细粒度的部分。
发布于 2016-03-09 19:47:38
https://stackoverflow.com/questions/7989897
复制相似问题