__m128i
変数のすべてのビット/バイト/ワードなどが0であるかどうかを確認する方法はありますか?
私のアプリでは、__m128i
変数のaにパックされているすべての整数がゼロであるかどうかを確認する必要があります。それらを抽出して、それぞれを個別に比較する必要がありますか?
編集:
私が今していることは:
int next = 0;
do{
//some code
next = idata.m128i_i32[0] + idata.m128i_i32[1] + idata.m128i_i32[2] + idata.m128i_i32[3];
}while(next > 0);
idata
必要なのは、個々の要素にアクセスせずにすべてゼロであるかどうかを確認し、ゼロである場合はループを終了することです...
ハロルドのコメントに基づいて、これは解決策です:
__m128i idata = _mm_setr_epi32(i,j,k,l);
do{
//some code
}while( !_mm_testz_si128(idata, idata) );
の各DWのすべての下位ビットidata
が0の場合、これはループを終了します...ハロルドに感謝します!