[英]Is an __m128i variable zero?
如何測試__m128i
變量在SSE-2及更早版本的處理器上是否具有任何非零值?
在SSE2中,您可以:
__m128i zero = _mm_setzero_si128();
if(_mm_movemask_epi8(_mm_cmpeq_epi32(x,zero)) == 0xFFFF)
{
//the code...
}
這將測試四個int與零然后為每個字節返回一個掩碼,因此每個對應的int
位偏移將是0,4,8和12,但上面的測試將捕獲是否設置了任何位,然后如果你如果需要,可以直接保留可以使用更細粒度部件的面罩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.