title: Global bitwise shift of 128, 256, 512 bit registry using intrinsics?
body: <p>Consider an array of 64 bit unsigned integers, like:</p>
  
  <pre><code>std::array&lt;unsigned long long int, 20&gt; a;
  </code></pre>
  
  <p>What is the fastest way, including using <a href="https://software.intel.com/sites/landingpage/IntrinsicsGuide" rel="nofollow">intel</a> or compiler intrinsics (<a href="https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html" rel="nofollow">this</a> or <a href="https://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html#Target-Builtins" rel="nofollow">that</a>) (using g++ 5.3), to perform a global bitshift (right or left) as this array was a single bit integer?</p>