title: _mm256_testz_pd not working?
body: <p>I'm working on Core i7 on Linux and using g++ 4.63.</p>
  
  <p>I tried the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;immintrin.h&gt;
  
  int main() {
  __m256d a = _mm256_set_pd(1,2,3,4);
  __m256d z = _mm256_setzero_pd();
  std::cout &lt;&lt; _mm256_testz_pd(a,a) &lt;&lt; std::endl;
  std::cout &lt;&lt; _mm256_testz_pd(z,z) &lt;&lt; std::endl;
  std::cout &lt;&lt; _mm256_testz_pd(a,z) &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>It printed 3 1's. I was expecting at least one of them to be 0. </p>
  
  <p>I tried using <code>_mm256_castpd_si256</code> and then <code>_mm256_testz_si256</code>, it'll print 0 for the first line.</p>
  
  <p>Why?</p>