title: Funnel shift - what is it?
body: <p>When reading through CUDA 5.0 Programming Guide I stumbled on a feature called "Funnel shift" which is present in 3.5 compute-capable device, but not 3.0. It contains an annotation "see reference manual", but when I search for the "funnel shift" term in the manual, I don't find anything.</p>
  
  <p>I tried googling for it, but only found a mention on <a href="http://www.cudahandbook.com" rel="noreferrer">http://www.cudahandbook.com</a>, in the chapter 8:</p>
  
  <blockquote>
    <p>8.2.3 Funnel Shift (SM 3.5)</p>
    
    <p>GK110 added a 64-bit “funnel shift” instruction that may be accessed with the following intrinsics:</p>
    
    <p>__funnelshift_lc(): returns most significant 32 bits of a left funnel shift.</p>
    
    <p>__funnelshift_rc(): returns least significant 32 bits of a right funnel shift.</p>
    
    <p>These intrinsics are implemented as inline device
    functions (using inline PTX assembler) in sm_35_intrinsics.h.</p>
  </blockquote>
  
  <p>...but it still does not explain what the "left funnel shift" or "right funnel shift" is.</p>
  
  <p>So, what is it and where does one need it?</p>