         UnsignedBits    twiddled_keys[ITEMS_PER_THREAD];            // Twiddled keys
         int             ranks[ITEMS_PER_THREAD];                    // For each key, the local rank within the CTA
         Offset          relative_bin_offsets[ITEMS_PER_THREAD];     // For each key, the global scatter base offset of the corresponding digit
-
-        if (LOAD_ALGORITHM != BLOCK_LOAD_DIRECT) __syncthreads();
 
         // Assign max-key to all keys
         #pragma unroll

    template <bool FULL_TILE>
    __device__ __forceinline__ void GatherScatterValues(
        NullType    (&values)[ITEMS_PER_THREAD],
        Offset       (&relative_bin_offsets)[ITEMS_PER_THREAD],
        int         (&ranks)[ITEMS_PER_THREAD],
        Offset       block_offset,
        Offset       valid_items)
    {}



        Offset      block_offset,
        Offset      valid_items)
    {
        __syncthreads();

        BlockLoadValues loader(temp_storage.load_values);
        LoadItems(
            loader,
