         if (LOGICAL_WARP_THREADS != 32)
             next_flag = CUB_MIN(next_flag, LOGICAL_WARP_THREADS);
 
+        #pragma unroll
         for (int STEP = 0; STEP < STEPS; STEP++)
         {
             const int OFFSET = 1 << STEP;

     ******************************************************************************/

    /**
     * Reduction
     */
    template <

        int                 folded_items_per_warp,  ///< [in] Total number of valid items folded into each logical warp
        ReductionOp         reduction_op)           ///< [in] Reduction operator
    {
        return ReduceStep<ALL_LANES_VALID, FOLDED_ITEMS_PER_LANE>(input, folded_items_per_warp, reduction_op, Int2Type<0>());
    }


    /**
     * Ballot-based segmented reduce
