2

私は Linux で Core i7 に取り組んでおり、g++ 4.63 を使用しています。

次のコードを試しました:

#include <iostream>
#include <immintrin.h>

int main() {
__m256d a = _mm256_set_pd(1,2,3,4);
__m256d z = _mm256_setzero_pd();
std::cout << _mm256_testz_pd(a,a) << std::endl;
std::cout << _mm256_testz_pd(z,z) << std::endl;
std::cout << _mm256_testz_pd(a,z) << std::endl;
}

3 つの 1 が出力されました。そのうちの少なくとも 1 つが 0 になると予想していました。

を使用してみ_mm256_castpd_si256まし_mm256_testz_si256たが、最初の行に 0 が出力されます。

なんで?

4

1 に答える 1