                 block_idx,          // Prefix item to be provided to <em>thread</em><sub>0</sub>
                 next_tile_idx);     // [out] Suffix item shifted out by the <em>thread</em><sub><tt>BLOCK_THREADS-1</tt></sub> to be provided to all threads
 
-//            if (block_idx.a_idx == next_tile_idx.a_idx)
-//            {
-//                // There are no segment end-offsets in this tile.  Perform a
-//                // simple block-wide reduction and accumulate the result into
-//                // the running total.
-//                SingleSegmentTile(next_tile_idx, block_idx);
-//            }
+            if (block_idx.a_idx == next_tile_idx.a_idx)
+            {
+                // There are no segment end-offsets in this tile.  Perform a
+                // simple block-wide reduction and accumulate the result into
+                // the running total.
+                SingleSegmentTile(next_tile_idx, block_idx);
+            }
 //          else if (block_idx.b_idx == next_tile_idx.b_idx)
 //            {
 //                // There are no values in this tile (only empty segments).
 //                EmptySegmentsTile(next_tile_idx.a_idx, block_idx.a_idx);
 //            }
-//            else
+            else
             if ((next_tile_idx.a_idx < num_segments) && (next_tile_idx.b_idx < num_values))
             {
                 // Merge the tile's segment and value indices (full tile)

            #pragma unroll
            for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM)
            {
                values[ITEM] = (value_offsets[ITEM] == -1) ?
                    identity :
                    d_values[value_offsets[ITEM]];
            }
        }


                running_total.key    = segment_ids[ITEM];
                running_total.value  = identity;
            }
            else
            {
                running_total.value = reduction_op(running_total.value, values[ITEM]);
            }
        }
/*
        // Barrier for smem reuse
        __syncthreads();

        KeyValuePair pairs[2];
        pairs[0] = first_partial;
        pairs[1] = running_total;

        // Use prefix scan to reduce values by segment-id.  The segment-reductions end up in items flagged as segment-tails.
        KeyValuePair block_aggregate;
