/*--

This file is a part of libcubwt, a library for CUDA accelerated
burrows wheeler transform construction.

   Copyright (c) 2022-2023 Ilya Grebnov <ilya.grebnov@gmail.com>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Please see the file LICENSE for full copyright and license details.

--*/

#include "libcubwt.cuh"

#if defined(_MSC_VER) && defined(__INTELLISENSE__)
    #define __launch_bounds__(block_size) /* */
    #define __CUDACC__

    #include <vector_functions.h>
    #include <device_functions.h>
    #include <device_launch_parameters.h>
#endif

#include <cub/cub.cuh>
#include <cuda.h>

#include <utility>

#if defined(__GNUC__) || defined(__clang__) || defined(__CUDACC__)
    #define RESTRICT __restrict__
#elif defined(_MSC_VER) || defined(__INTEL_COMPILER)
    #define RESTRICT __restrict
#else
    #define RESTRICT /* */
#endif

#ifndef __CUDA_ARCH__
    #define CUDA_DEVICE_ARCH                0
#else
    #define CUDA_DEVICE_ARCH                __CUDA_ARCH__
#endif

#if CUDA_DEVICE_ARCH == 750
    #define CUDA_SM_THREADS                 (1024)
#elif CUDA_DEVICE_ARCH == 860 || CUDA_DEVICE_ARCH == 870 || CUDA_DEVICE_ARCH == 890
    #define CUDA_SM_THREADS                 (1536)
#else
    #define CUDA_SM_THREADS                 (2048)
#endif

#if CUDA_DEVICE_ARCH == 860 || CUDA_DEVICE_ARCH == 870 || CUDA_DEVICE_ARCH == 890
    #define CUDA_BLOCK_THREADS              (768)
#else
    #define CUDA_BLOCK_THREADS              (512)
#endif

#define CUDA_WARP_THREADS                   (32)
#define CUDA_DEVICE_PADDING                 (12 * 768)

typedef struct LIBCUBWT_DEVICE_STORAGE
{
    void *          device_rsort_temp_storage;
    size_t          device_rsort_temp_storage_size;

    void *          device_ssort_temp_storage;
    size_t          device_ssort_temp_storage_size;

    uint8_t *       device_T;
    uint8_t *       device_heads;

    uint32_t *      device_SA;
    uint32_t *      device_ISA;

    uint32_t *      device_keys;
    uint32_t *      device_offsets;

    uint32_t *      device_temp_SA;
    uint32_t *      device_temp_ISA;
    uint32_t *      device_temp_keys;

    uint64_t *      device_SA_temp_SA;
    uint64_t *      device_keys_temp_keys;
    uint64_t *      device_offsets_ISA;

    uint4 *         device_descriptors_large;
    uint4 *         device_descriptors_copy;
    uint2 *         device_descriptors_small;

    void *          device_storage;
    int32_t         device_L2_cache_bits;

    void *          host_pinned_storage;
    size_t          host_pinned_storage_size;

    int64_t         max_length;
    uint32_t        num_unsorted_segments;
    uint32_t        num_unsorted_suffixes;
    
    uint32_t        cuda_block_threads;
    cudaStream_t    cuda_stream;
} LIBCUBWT_DEVICE_STORAGE;

static int64_t libcubwt_get_error_code(cudaError_t status)
{
    return
        status == cudaErrorMemoryAllocation     ? LIBCUBWT_GPU_NOT_ENOUGH_MEMORY :
        status == cudaErrorDevicesUnavailable   ? LIBCUBWT_GPU_NOT_SUPPORTED :
        status == cudaErrorNoDevice             ? LIBCUBWT_GPU_NOT_SUPPORTED :
        LIBCUBWT_GPU_ERROR;
}

static cudaError_t libcubwt_cuda_safe_call(const char * filename, int32_t line, cudaError_t result, cudaError_t status = cudaSuccess)
{
#if !defined(NDEBUG)
    if (result != cudaSuccess)
    {
        fprintf(stderr, "%s(%d): libcubwt_cuda_safe_call failed %d: '%s'.\n", filename, line, result, cudaGetErrorString(result));
        fflush(stderr);
    }
#else
    (void)(filename); (void)(line);
#endif

    return result != cudaSuccess ? result : status;
}

template <typename T>
__device__ __forceinline__ T libcubwt_warp_reduce_sum(T value) 
{
#if CUDA_DEVICE_ARCH >= 800 && !defined(__CUDA__)
    return __reduce_add_sync((uint32_t)-1, value);
#else

    #pragma unroll
    for (uint32_t mask = CUDA_WARP_THREADS / 2; mask > 0; mask >>= 1)
    {
        value = cub::Sum()(value, __shfl_xor_sync((uint32_t)-1, value, mask, CUDA_WARP_THREADS));
    }

    return value;
#endif
}

template <typename T>
__device__ __forceinline__ T libcubwt_warp_reduce_max(T value) 
{
#if CUDA_DEVICE_ARCH >= 800 && !defined(__CUDA__)
    return __reduce_max_sync((uint32_t)-1, value);
#else

    #pragma unroll
    for (uint32_t mask = CUDA_WARP_THREADS / 2; mask > 0; mask >>= 1)
    {
        value = cub::Max()(value, __shfl_xor_sync((uint32_t)-1, value, mask, CUDA_WARP_THREADS));
    }

    return value;
#endif
}

template <typename T>
__device__ __forceinline__ void libcubwt_delay_or_prevent_hoisting(T delay)
{
#if CUDA_DEVICE_ARCH >= 700
    __nanosleep(delay);
#else
    __threadfence_block(); (void)(delay);
#endif
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_gather_values_uint32_kernel(const uint32_t * device_idx, const uint32_t * RESTRICT device_src, uint32_t * device_dst, uint32_t m)
{
    const uint32_t block_index = blockIdx.x * CUDA_BLOCK_THREADS * 4;

    device_idx += block_index; device_dst += block_index; m -= block_index;

    if (m >= CUDA_BLOCK_THREADS * 4)
    {
        const uint4 indexes = *(uint4 *)(device_idx + threadIdx.x * 4);

        *(uint4 *)(device_dst + threadIdx.x * 4) = make_uint4(
            __ldg(device_src + indexes.x),
            __ldg(device_src + indexes.y),
            __ldg(device_src + indexes.z),
            __ldg(device_src + indexes.w));
    }
    else
    {
        for (uint32_t thread_index = threadIdx.x; thread_index < m; thread_index += CUDA_BLOCK_THREADS)
        {
            device_dst[thread_index] = __ldg(device_src + device_idx[thread_index]);
        }
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_scatter_values_uint32_kernel(const uint32_t * RESTRICT device_idx, const uint32_t * RESTRICT device_src, uint32_t * RESTRICT device_dst, uint32_t m)
{
    const uint32_t block_index = blockIdx.x * CUDA_BLOCK_THREADS * 4;

    device_idx += block_index; device_src += block_index; m -= block_index;

    if (m >= CUDA_BLOCK_THREADS * 4)
    {
        const uint4 indexes = __ldg((uint4 *)(device_idx + threadIdx.x * 4));
        const uint4 values  = __ldg((uint4 *)(device_src + threadIdx.x * 4));

        device_dst[indexes.x] = values.x;
        device_dst[indexes.y] = values.y;
        device_dst[indexes.z] = values.z;
        device_dst[indexes.w] = values.w;
    }
    else
    {
        for (uint32_t thread_index = threadIdx.x; thread_index < m; thread_index += CUDA_BLOCK_THREADS)
        {
            device_dst[__ldg(device_idx + thread_index)] = __ldg(device_src + thread_index);
        }
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_permute_block_values_uint32_kernel(const uint32_t * RESTRICT device_idx, const uint32_t * RESTRICT device_src, uint32_t * RESTRICT device_dst, uint32_t n)
{
    __shared__ __align__(32) uint32_t cache[16 * CUDA_BLOCK_THREADS];

    const uint32_t block_index = blockIdx.x * CUDA_BLOCK_THREADS * 16;

    device_idx += block_index; device_src += block_index; device_dst += block_index; n -= block_index;

    if (n >= CUDA_BLOCK_THREADS * 16)
    {
        {
            const uint32_t * RESTRICT thread_idx   = device_idx + threadIdx.x * 4;
            const uint32_t * RESTRICT thread_src   = device_src + threadIdx.x * 4;
                  uint32_t * RESTRICT thread_cache = cache - block_index;

            #pragma unroll
            for (uint32_t round = 0; round < 4; round += 1)
            {
                const uint4 indexes = __ldg((uint4 *)(thread_idx));
                const uint4 values  = __ldg((uint4 *)(thread_src));

                thread_cache[indexes.x] = values.x;
                thread_cache[indexes.y] = values.y;
                thread_cache[indexes.z] = values.z;
                thread_cache[indexes.w] = values.w;

                thread_idx += 4 * CUDA_BLOCK_THREADS; thread_src += 4 * CUDA_BLOCK_THREADS;
            }
        }

        __syncthreads();

        {
            const uint32_t * RESTRICT thread_cache = cache      + threadIdx.x * 4;
                  uint32_t * RESTRICT thread_dst   = device_dst + threadIdx.x * 4;

            #pragma unroll
            for (uint32_t round = 0; round < 4; round += 1)
            {
                *(uint4 *)(thread_dst) = *(uint4 *)(thread_cache);

                thread_cache += 4 * CUDA_BLOCK_THREADS; thread_dst += 4 * CUDA_BLOCK_THREADS;
            }
        }
    }
    else
    {
        {
            uint32_t * RESTRICT thread_cache = cache - block_index;

            for (uint32_t thread_index = threadIdx.x; thread_index < n; thread_index += CUDA_BLOCK_THREADS)
            {
                thread_cache[__ldg(device_idx + thread_index)] = __ldg(device_src + thread_index);
            }
        }

        __syncthreads();

        {
            for (uint32_t thread_index = threadIdx.x; thread_index < n; thread_index += CUDA_BLOCK_THREADS)
            {
                device_dst[thread_index] = cache[thread_index];
            }
        }
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_scatter_values_uint64_kernel(const uint32_t * RESTRICT device_idx, const uint64_t * RESTRICT device_src, uint64_t * RESTRICT device_dst, uint32_t m)
{
    const uint32_t block_index = blockIdx.x * CUDA_BLOCK_THREADS * 2;

    device_idx += block_index; device_src += block_index; m -= block_index;

    if (m >= CUDA_BLOCK_THREADS * 2)
    {
        const uint2      indexes = __ldg((uint2      *)(device_idx + threadIdx.x * 2));
        const ulonglong2 values  = __ldg((ulonglong2 *)(device_src + threadIdx.x * 2));

        device_dst[indexes.x] = values.x;
        device_dst[indexes.y] = values.y;
    }
    else
    {
        for (uint32_t thread_index = threadIdx.x; thread_index < m; thread_index += CUDA_BLOCK_THREADS)
        {
            device_dst[__ldg(device_idx + thread_index)] = __ldg(device_src + thread_index);
        }
    }
}

static cudaError_t libcubwt_gather_scatter_values_uint32(LIBCUBWT_DEVICE_STORAGE * storage, uint32_t * device_src_idx, uint32_t * device_src, uint32_t * device_dst_idx, uint32_t * device_dst, int64_t m, int64_t n, uint32_t * device_temp1, uint32_t * device_temp2)
{
    cudaError_t status = cudaSuccess;

    cub::DoubleBuffer<uint32_t> db_src_index_value(device_src_idx, device_temp1);
    cub::DoubleBuffer<uint32_t> db_dst_index(device_dst_idx, device_temp2);

    int32_t sort_end_bit        = 0; while ((n - 1) >= ((int64_t)1 << sort_end_bit)) { sort_end_bit += 1; }
    int32_t sort_aligned_bits   = (sort_end_bit > storage->device_L2_cache_bits - 2) ? (sort_end_bit - storage->device_L2_cache_bits + 2 + 7) & (-8) : 0;
    int32_t sort_start_bit      = std::max(0, sort_end_bit - sort_aligned_bits);

    if (sort_start_bit < sort_end_bit)
    {
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
            storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
            db_src_index_value, db_dst_index,
            (uint32_t)m,
            sort_start_bit, sort_end_bit,
            storage->cuda_stream));
    }

    if (status == cudaSuccess)
    {
        int64_t n_gather_scatter_blocks = (m + storage->cuda_block_threads * 4 - 1) / (storage->cuda_block_threads * 4);

        libcubwt_gather_values_uint32_kernel<<<(uint32_t)n_gather_scatter_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_src_index_value.Current(), device_src, db_src_index_value.Current(), (uint32_t)m);

        if (sort_start_bit < sort_end_bit)
        {
            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
                storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
                db_dst_index, db_src_index_value,
                (uint32_t)m,
                sort_start_bit, sort_end_bit,
                storage->cuda_stream));
        }

        if (status == cudaSuccess)
        {
            libcubwt_scatter_values_uint32_kernel<<<(uint32_t)n_gather_scatter_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_dst_index.Current(), db_src_index_value.Current(), device_dst, (uint32_t)m);
        }
    }

    return status;
}

static cudaError_t libcubwt_scatter_values_uint32(LIBCUBWT_DEVICE_STORAGE * storage, uint32_t * device_idx, uint32_t * device_src, uint32_t * device_dst, int64_t m, int64_t n, uint32_t * device_temp1, uint32_t * device_temp2)
{
    cudaError_t status = cudaSuccess;

    cub::DoubleBuffer<uint32_t> db_index(device_idx, device_temp1);
    cub::DoubleBuffer<uint32_t> db_value(device_src, device_temp2);

    int32_t sort_end_bit        = 0; while ((n - 1) >= ((int64_t)1 << sort_end_bit)) { sort_end_bit += 1; }
    int32_t sort_aligned_bits   = (sort_end_bit > storage->device_L2_cache_bits - 2) ? (sort_end_bit - storage->device_L2_cache_bits + 2 + 7) & (-8) : 0;
    int32_t sort_start_bit      = std::max(0, sort_end_bit - sort_aligned_bits);

    if (sort_start_bit < sort_end_bit)
    {
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
            storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
            db_index, db_value,
            (uint32_t)m,
            sort_start_bit, sort_end_bit,
            storage->cuda_stream));
    }

    if (status == cudaSuccess)
    {
        int64_t n_scatter_blocks = (m + storage->cuda_block_threads * 4 - 1) / (storage->cuda_block_threads * 4);

        libcubwt_scatter_values_uint32_kernel<<<(uint32_t)n_scatter_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_index.Current(), db_value.Current(), device_dst, (uint32_t)m);
    }

    return status;
}

static cudaError_t libcubwt_permute_values_uint32(LIBCUBWT_DEVICE_STORAGE * storage, uint32_t * device_idx, uint32_t * device_src, uint32_t * device_dst, int64_t n, uint32_t * device_temp1, uint32_t * device_temp2)
{
    cudaError_t status = cudaSuccess;

    cub::DoubleBuffer<uint32_t> db_index(device_idx, device_temp1);
    cub::DoubleBuffer<uint32_t> db_value(device_src, device_temp2);

    int32_t sort_end_bit        = 0; while ((n - 1) >= ((int64_t)1 << sort_end_bit)) { sort_end_bit += 1; }
    int32_t sort_aligned_bits   = (sort_end_bit > storage->device_L2_cache_bits - 2) ? (sort_end_bit - storage->device_L2_cache_bits + 2 + 7) & (-8) : 0;
    int32_t sort_start_bit      = std::max(0, sort_end_bit - sort_aligned_bits);

    if (sort_start_bit < sort_end_bit)
    {
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
            storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
            db_index, db_value,
            (uint32_t)n,
            sort_start_bit, sort_end_bit,
            storage->cuda_stream));
    }

    if (status == cudaSuccess)
    {
        if (((storage->cuda_block_threads * 16) % ((int64_t)1 << sort_start_bit)) == 0)
        {
            int64_t n_permute_blocks = (n + storage->cuda_block_threads * 16 - 1) / (storage->cuda_block_threads * 16);

            libcubwt_permute_block_values_uint32_kernel<<<(uint32_t)n_permute_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_index.Current(), db_value.Current(), device_dst, (uint32_t)n);
        }
        else
        {
            int64_t n_scatter_blocks = (n + storage->cuda_block_threads * 4 - 1) / (storage->cuda_block_threads * 4);

            libcubwt_scatter_values_uint32_kernel<<<(uint32_t)n_scatter_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_index.Current(), db_value.Current(), device_dst, (uint32_t)n);
        }
    }

    return status;
}

static cudaError_t libcubwt_scatter_values_uint64(LIBCUBWT_DEVICE_STORAGE * storage, cub::DoubleBuffer<uint32_t> & db_index, cub::DoubleBuffer<uint64_t> & db_value, int64_t m, int64_t n, int64_t k = 0)
{
    cudaError_t status = cudaSuccess;

    int32_t sort_end_bit        = 0; while ((n - 1) >= ((int64_t)1 << sort_end_bit)) { sort_end_bit += 1; }
    int32_t sort_aligned_bits   = (sort_end_bit > storage->device_L2_cache_bits - 3) ? (sort_end_bit - storage->device_L2_cache_bits + 3 + 7) & (-8) : 0;
    int32_t sort_start_bit      = std::max(0, sort_end_bit - sort_aligned_bits);

    if (sort_start_bit < sort_end_bit)
    {
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
            storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
            db_index, db_value,
            (uint32_t)m,
            sort_start_bit, sort_end_bit,
            storage->cuda_stream));
    }

    if (status == cudaSuccess)
    {
        int64_t n_scatter_blocks = (m + storage->cuda_block_threads * 2 - 1) / (storage->cuda_block_threads * 2);

        libcubwt_scatter_values_uint64_kernel<<<(uint32_t)n_scatter_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(db_index.Current(), db_value.Current(), db_value.Alternate() - k, (uint32_t)m);

        db_index.selector ^= 1;
        db_value.selector ^= 1;
    }

    return status;
}

template <bool extra_sentinel_bits>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_initialize_device_arrays_kernel(const uint8_t * RESTRICT device_T, uint32_t * RESTRICT device_SA, uint64_t * RESTRICT device_keys)
{
    __shared__ __align__(32) uint4 prefixes[4 * CUDA_BLOCK_THREADS];

    {
        device_T += blockIdx.x * CUDA_BLOCK_THREADS * 12 + threadIdx.x * 16;
        if (threadIdx.x < (12 * CUDA_BLOCK_THREADS + 8 + 15) / 16) { prefixes[threadIdx.x] = __ldg((uint4 *)device_T); }

        __syncthreads();
    }

    {
        uint32_t * RESTRICT thread_cache    = ((uint32_t *)prefixes) + threadIdx.x * 3;
        uint4 *    RESTRICT thread_prefixes = ((uint4 *   )prefixes) + threadIdx.x * 4;

        const uint32_t b0 = thread_cache[0];
        const uint32_t b1 = thread_cache[1];
        const uint32_t b2 = thread_cache[2];
        const uint32_t b3 = thread_cache[3];
        const uint32_t b4 = thread_cache[4];

        __syncthreads();

        thread_prefixes[0] = make_uint4
        (
            __byte_perm(b1, b2, 0x1234) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b0, b1, 0x1234),
            __byte_perm(b1, b2, 0x2345) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b0, b1, 0x2345)
        );

        thread_prefixes[1] = make_uint4
        (
            __byte_perm(b2, b3, 0x0123) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b1, b2, 0x0123),
            __byte_perm(b2, b3, 0x1234) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b1, b2, 0x1234)
        );

        thread_prefixes[2] = make_uint4
        (
            __byte_perm(b2, b3, 0x3456) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b1, b2, 0x3456),
            __byte_perm(b3, b4, 0x0123) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b2, b3, 0x0123)
        );

        thread_prefixes[3] = make_uint4
        (
            __byte_perm(b3, b4, 0x2345) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b2, b3, 0x2345),
            __byte_perm(b3, b4, 0x3456) | (extra_sentinel_bits ? (uint32_t)7 : (uint32_t)1), __byte_perm(b2, b3, 0x3456)
        );

        __syncwarp();
    }

    {
        const uint32_t block_index = blockIdx.x * CUDA_BLOCK_THREADS * 8;

        {
            uint32_t thread_index = block_index + threadIdx.x * 4; device_SA += thread_index;
            ((uint4 *)device_SA)[0] = make_uint4(thread_index + 0, thread_index + 1, thread_index + 2, thread_index + 3);

            thread_index += CUDA_BLOCK_THREADS * 4; device_SA += CUDA_BLOCK_THREADS * 4;
            ((uint4 *)device_SA)[0] = make_uint4(thread_index + 0, thread_index + 1, thread_index + 2, thread_index + 3);
        }

        {
            device_keys += block_index;

            uint4 * RESTRICT thread_prefixes = (uint4 *)prefixes    + ((threadIdx.x / CUDA_WARP_THREADS) * CUDA_WARP_THREADS * 4) + (threadIdx.x % CUDA_WARP_THREADS);
            uint4 * RESTRICT thread_keys     = (uint4 *)device_keys + ((threadIdx.x / CUDA_WARP_THREADS) * CUDA_WARP_THREADS * 4) + (threadIdx.x % CUDA_WARP_THREADS);

            thread_keys[0] = thread_prefixes[0]; thread_keys += CUDA_WARP_THREADS; thread_prefixes += CUDA_WARP_THREADS;
            thread_keys[0] = thread_prefixes[0]; thread_keys += CUDA_WARP_THREADS; thread_prefixes += CUDA_WARP_THREADS;
            thread_keys[0] = thread_prefixes[0]; thread_keys += CUDA_WARP_THREADS; thread_prefixes += CUDA_WARP_THREADS;
            thread_keys[0] = thread_prefixes[0];
        }
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, 1)
static void libcubwt_set_sentinel_values_kernel(uint8_t * RESTRICT device_T_end, uint64_t * RESTRICT device_keys_end, uint64_t k0, uint64_t k1, uint64_t k2, uint64_t k3, uint64_t k4, uint64_t k5, uint64_t k6, uint64_t k7)
{
    device_T_end[0] = 0;
    device_T_end[1] = 0;
    device_T_end[2] = 0;

    device_keys_end[-8] = k0;
    device_keys_end[-7] = k1;
    device_keys_end[-6] = k2;
    device_keys_end[-5] = k3;
    device_keys_end[-4] = k4;
    device_keys_end[-3] = k5;
    device_keys_end[-2] = k6;
    device_keys_end[-1] = k7;
}

static cudaError_t libcubwt_initialize_device_arrays(LIBCUBWT_DEVICE_STORAGE * storage, const uint8_t * T, int64_t reduced_n, int64_t expanded_n, int64_t input_n)
{
    cudaError_t status = cudaSuccess;

    if ((status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->device_T, T, (size_t)input_n, cudaMemcpyHostToDevice, storage->cuda_stream))) == cudaSuccess)
    {
        int64_t n_initialize_blocks = 1 + (expanded_n / (storage->cuda_block_threads * 12));

        bool extra_sentinel_bits = (expanded_n - input_n >= 2) || (T[input_n - 1] == 0);
        if (extra_sentinel_bits)
        {
            libcubwt_initialize_device_arrays_kernel<true><<<(uint32_t)n_initialize_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(storage->device_T, storage->device_SA, storage->device_keys_temp_keys);
        }
        else
        {
            libcubwt_initialize_device_arrays_kernel<false><<<(uint32_t)n_initialize_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(storage->device_T, storage->device_SA, storage->device_keys_temp_keys);
        }

        {
            uint64_t c0 = (expanded_n - 11 < input_n) ? T[expanded_n - 11] : (uint64_t)0;
            uint64_t c1 = (expanded_n - 10 < input_n) ? T[expanded_n - 10] : (uint64_t)0;
            uint64_t c2 = (expanded_n -  9 < input_n) ? T[expanded_n -  9] : (uint64_t)0;
            uint64_t c3 = (expanded_n -  8 < input_n) ? T[expanded_n -  8] : (uint64_t)0;
            uint64_t c4 = (expanded_n -  7 < input_n) ? T[expanded_n -  7] : (uint64_t)0;
            uint64_t c5 = (expanded_n -  6 < input_n) ? T[expanded_n -  6] : (uint64_t)0;
            uint64_t c6 = (expanded_n -  5 < input_n) ? T[expanded_n -  5] : (uint64_t)0;
            uint64_t c7 = (expanded_n -  4 < input_n) ? T[expanded_n -  4] : (uint64_t)0;
            uint64_t c8 = (expanded_n -  3 < input_n) ? T[expanded_n -  3] : (uint64_t)0;
            uint64_t c9 = (expanded_n -  2 < input_n) ? T[expanded_n -  2] : (uint64_t)0;
            uint64_t ca = (expanded_n -  1 < input_n) ? T[expanded_n -  1] : (uint64_t)0;

            uint64_t k0 = (c0 << 56) | (c1 << 48) | (c2 << 40) | (c3 << 32) | (c4 << 24) | (c5 << 16) | (c6 << 8) | (c7 << 0) | (extra_sentinel_bits ? 7 : 1);
            uint64_t k1 = (c1 << 56) | (c2 << 48) | (c3 << 40) | (c4 << 32) | (c5 << 24) | (c6 << 16) | (c7 << 8) | (c8 << 0) | (extra_sentinel_bits ? 7 : 1);

            uint64_t k2 = (c3 << 56) | (c4 << 48) | (c5 << 40) | (c6 << 32) | (c7 << 24) | (c8 << 16) | (c9 << 8) | (ca << 0) | (extra_sentinel_bits ? 7 : 0);
            uint64_t k3 = (c4 << 56) | (c5 << 48) | (c6 << 40) | (c7 << 32) | (c8 << 24) | (c9 << 16) | (ca << 8) | (extra_sentinel_bits ? 6 : 0);
            
            uint64_t k4 = (c6 << 56) | (c7 << 48) | (c8 << 40) | (c9 << 32) | (ca << 24) | (extra_sentinel_bits ? 4 : 0);
            uint64_t k5 = (c7 << 56) | (c8 << 48) | (c9 << 40) | (ca << 32) | (extra_sentinel_bits ? 3 : 0);

            uint64_t k6 = (c9 << 56) | (ca << 48) | (extra_sentinel_bits ? 1 : 0);
            uint64_t k7 = (ca << 56);

            libcubwt_set_sentinel_values_kernel<<<1, 1, 0, storage->cuda_stream>>>(storage->device_T + input_n, storage->device_keys_temp_keys + reduced_n, k0, k1, k2, k3, k4, k5, k6, k7);
        }

        storage->num_unsorted_segments      = (uint32_t)1;
        storage->num_unsorted_suffixes      = (uint32_t)reduced_n;
    }

    return status;
}

static cudaError_t libcubwt_sort_suffixes_by_prefix(LIBCUBWT_DEVICE_STORAGE * storage, int64_t n)
{
    cub::DoubleBuffer<uint64_t> db_keys(storage->device_keys_temp_keys, storage->device_offsets_ISA);
    cub::DoubleBuffer<uint32_t> db_SA(storage->device_SA, storage->device_temp_SA);

    cudaError_t status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
        storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
        db_keys, db_SA,
        (uint32_t)n,
        0, 64,
        storage->cuda_stream));

    if (db_keys.selector) 
    { 
        std::swap(storage->device_keys_temp_keys, storage->device_offsets_ISA);

        std::swap(storage->device_keys, storage->device_offsets); 
        std::swap(storage->device_temp_keys, storage->device_ISA);
    }

    if (db_SA.selector)
    {
        std::swap(storage->device_SA, storage->device_temp_SA);
    }

    return status;
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_rank_and_segment_suffixes_initialization_kernel(uint32_t * RESTRICT device_SA, uint64_t * RESTRICT device_keys, uint8_t * RESTRICT device_heads, uint4 * RESTRICT device_descriptors_large, uint2 * RESTRICT device_descriptors_small, uint32_t n)
{
    const uint32_t thread_index = blockIdx.x * CUDA_BLOCK_THREADS + threadIdx.x;

    device_descriptors_large += thread_index;
    device_descriptors_small += thread_index;

    device_descriptors_large[0] = make_uint4(0, 0, 0, 0);
    device_descriptors_small[0] = make_uint2(0, 0);

    if (blockIdx.x == 0)
    {
        if (threadIdx.x < CUDA_WARP_THREADS)
        {
            device_descriptors_large[-CUDA_WARP_THREADS] = make_uint4((uint32_t)-1, 0, 0, 0);
            device_descriptors_small[-CUDA_WARP_THREADS] = make_uint2((uint32_t)-1, 0);
        }

        {
            uint64_t key = (threadIdx.x % 2 == 0) ? 0 : (uint64_t)-1;

            device_SA += threadIdx.x; device_keys += threadIdx.x; device_heads += threadIdx.x;

            if (threadIdx.x < 2)
            {
                device_keys [-2] = key;
                device_heads[-2] = 1;
            }

            device_SA += n; device_keys += n; device_heads += n;

            device_SA   [0 * CUDA_BLOCK_THREADS] = n + threadIdx.x + 0 * CUDA_BLOCK_THREADS;
            device_SA   [1 * CUDA_BLOCK_THREADS] = n + threadIdx.x + 1 * CUDA_BLOCK_THREADS;
            device_SA   [2 * CUDA_BLOCK_THREADS] = n + threadIdx.x + 2 * CUDA_BLOCK_THREADS;
            device_SA   [3 * CUDA_BLOCK_THREADS] = n + threadIdx.x + 3 * CUDA_BLOCK_THREADS;

            device_keys [0 * CUDA_BLOCK_THREADS] = key;
            device_keys [1 * CUDA_BLOCK_THREADS] = key;
            device_keys [2 * CUDA_BLOCK_THREADS] = key;
            device_keys [3 * CUDA_BLOCK_THREADS] = key;

            device_heads[0 * CUDA_BLOCK_THREADS] = 1;
            device_heads[1 * CUDA_BLOCK_THREADS] = 1;
            device_heads[2 * CUDA_BLOCK_THREADS] = 1;
            device_heads[3 * CUDA_BLOCK_THREADS] = 1;
        }
    }
}

template <bool scatter_ranks_directly>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_rank_and_segment_suffixes_initiatory_kernel(
    const uint32_t *    RESTRICT device_SA,
    const uint64_t *    RESTRICT device_keys,
    uint8_t *           RESTRICT device_heads,
    uint32_t *          RESTRICT device_ISA,
    uint32_t *          RESTRICT device_offsets_begin,
    uint32_t *          RESTRICT device_offsets_end,
    uint4 *             RESTRICT device_descriptors
)
{
    __shared__ __align__(32) uint2 warp_state[1 + CUDA_WARP_THREADS];

    uint32_t    thread_exclusive_suffix_rank;
    uint32_t    thread_suffix_rank[4];

    uint32_t    thread_exclusive_segment_index;
    uint32_t    thread_segment_index[4];

    {
        __shared__ __align__(32) ulonglong2 cache[1 + 2 * CUDA_BLOCK_THREADS];

        {
            device_keys += blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 2;

            if (threadIdx.x == 0) { cache[0] = __ldg((ulonglong2 *)(device_keys - 2)); }
            cache[1 + threadIdx.x + 0 * CUDA_BLOCK_THREADS] = __ldg((ulonglong2 *)(device_keys + 0 * CUDA_BLOCK_THREADS));
            cache[1 + threadIdx.x + 1 * CUDA_BLOCK_THREADS] = __ldg((ulonglong2 *)(device_keys + 2 * CUDA_BLOCK_THREADS));
        }

        __syncthreads();

        {
            const uint32_t block_index  = blockIdx.x * CUDA_BLOCK_THREADS * 4;
            const uint32_t thread_index = block_index + threadIdx.x * 4;

            ulonglong2 key_a = cache[2 * threadIdx.x + 0];
            ulonglong2 key_b = cache[2 * threadIdx.x + 1];
            ulonglong2 key_c = cache[2 * threadIdx.x + 2];

            uchar4 thread_new_heads = make_uchar4(
                (key_a.y != key_b.x) ? (uint8_t)1 : (uint8_t)0,
                (key_b.x != key_b.y) ? (uint8_t)1 : (uint8_t)0,
                (key_b.y != key_c.x) ? (uint8_t)1 : (uint8_t)0,
                (key_c.x != key_c.y) ? (uint8_t)1 : (uint8_t)0);

            *(uchar4 *)(device_heads + thread_index) = thread_new_heads;

            thread_suffix_rank[0] = (thread_new_heads.x != 0) ? (thread_index + 0) : 0;
            thread_suffix_rank[1] = (thread_new_heads.y != 0) ? (thread_index + 1) : thread_suffix_rank[0];
            thread_suffix_rank[2] = (thread_new_heads.z != 0) ? (thread_index + 2) : thread_suffix_rank[1];
            thread_suffix_rank[3] = (thread_new_heads.w != 0) ? (thread_index + 3) : thread_suffix_rank[2];

            thread_segment_index[0] = ((thread_new_heads.x != 0) && (key_a.x == key_a.y));
            thread_segment_index[1] = thread_segment_index[0] + ((thread_new_heads.y != 0) && (thread_new_heads.x == 0));
            thread_segment_index[2] = thread_segment_index[1] + ((thread_new_heads.z != 0) && (thread_new_heads.y == 0));
            thread_segment_index[3] = thread_segment_index[2] + ((thread_new_heads.w != 0) && (thread_new_heads.z == 0));
        }
    }

    {
        uint32_t thread_inclusive_suffix_rank;
        uint32_t thread_inclusive_segment_index;

        typedef cub::WarpScan<uint32_t> WarpScan;

        __shared__ typename WarpScan::TempStorage warp_scan_storage[CUDA_WARP_THREADS];

        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_suffix_rank[3]  , thread_inclusive_suffix_rank  , thread_exclusive_suffix_rank  , (uint32_t)0, cub::Max());
        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_segment_index[3], thread_inclusive_segment_index, thread_exclusive_segment_index, (uint32_t)0, cub::Sum());

        if ((threadIdx.x % CUDA_WARP_THREADS) == (CUDA_WARP_THREADS - 1))
        {
            warp_state[threadIdx.x / CUDA_WARP_THREADS] = make_uint2(thread_inclusive_suffix_rank, thread_inclusive_segment_index);
        }

        __syncthreads();
    }

    {
        if (threadIdx.x < CUDA_WARP_THREADS)
        {
            uint32_t            block_exclusive_suffix_rank   = 0;
            uint32_t            block_exclusive_segment_index = 0;

            uint32_t            warp_inclusive_suffix_rank;
            uint32_t            warp_inclusive_segment_index;

            {
                typedef cub::WarpScan<uint32_t> WarpScan;

                __shared__ typename WarpScan::TempStorage warp_scan_storage;

                uint2 warp_inclusive_state = warp_state[threadIdx.x];

                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state.x, warp_inclusive_suffix_rank  , cub::Max());
                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state.y, warp_inclusive_segment_index, cub::Sum());
            }

            {
                const uint32_t descriptor_status_aggregate_not_ready        = 0;
                const uint32_t descriptor_status_partial_aggregate_ready    = 1;
                const uint32_t descriptor_status_full_aggregate_ready       = 4;

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint4(descriptor_status_partial_aggregate_ready, 0, warp_inclusive_suffix_rank, warp_inclusive_segment_index));
                }

                {
                    uint4 * RESTRICT descriptors_lookback = device_descriptors + blockIdx.x + threadIdx.x;

                    int32_t full_aggregate_lane, delay = 8;
                    do
                    {
                        descriptors_lookback -= CUDA_WARP_THREADS;

                        uint4 block_descriptor;
                        do
                        {
                            libcubwt_delay_or_prevent_hoisting(delay <<= 1);

                            block_descriptor = cub::ThreadLoad<cub::LOAD_CG>(descriptors_lookback);
                        } while (__any_sync((uint32_t)-1, block_descriptor.x == descriptor_status_aggregate_not_ready));

                        delay = 0;

                        {
                            full_aggregate_lane     = 31 - __clz((int32_t)__ballot_sync((uint32_t)-1, block_descriptor.x != descriptor_status_partial_aggregate_ready));
                            block_descriptor.z      = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.z : 0;
                            block_descriptor.w      = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.w : 0;
                        }

                        {
                            block_exclusive_suffix_rank      = cub::Max()(block_exclusive_suffix_rank  , libcubwt_warp_reduce_max(block_descriptor.z));
                            block_exclusive_segment_index    = cub::Sum()(block_exclusive_segment_index, libcubwt_warp_reduce_sum(block_descriptor.w));
                        }

                    } while (full_aggregate_lane == -1);

                    warp_inclusive_suffix_rank      = cub::Max()(warp_inclusive_suffix_rank  , block_exclusive_suffix_rank  );
                    warp_inclusive_segment_index    = cub::Sum()(warp_inclusive_segment_index, block_exclusive_segment_index);
                }

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint4(descriptor_status_full_aggregate_ready, 0, warp_inclusive_suffix_rank, warp_inclusive_segment_index));
                }
            }

            {
                if (threadIdx.x == 0)
                {
                    warp_state[0] = make_uint2(block_exclusive_suffix_rank, block_exclusive_segment_index);
                }

                warp_state[1 + threadIdx.x] = make_uint2(warp_inclusive_suffix_rank, warp_inclusive_segment_index);
            }
        }

        __syncthreads();
    }

    {
        uint2 warp_exclusive_state              = warp_state[threadIdx.x / CUDA_WARP_THREADS];
        
        thread_exclusive_suffix_rank            = cub::Max()(thread_exclusive_suffix_rank  , warp_exclusive_state.x);
        thread_exclusive_segment_index          = cub::Sum()(thread_exclusive_segment_index, warp_exclusive_state.y);

        thread_suffix_rank[0]                   = cub::Max()(thread_suffix_rank[0], thread_exclusive_suffix_rank);
        thread_suffix_rank[1]                   = cub::Max()(thread_suffix_rank[1], thread_exclusive_suffix_rank);
        thread_suffix_rank[2]                   = cub::Max()(thread_suffix_rank[2], thread_exclusive_suffix_rank);
        thread_suffix_rank[3]                   = cub::Max()(thread_suffix_rank[3], thread_exclusive_suffix_rank);

        thread_segment_index[0]                 = cub::Sum()(thread_segment_index[0], thread_exclusive_segment_index);
        thread_segment_index[1]                 = cub::Sum()(thread_segment_index[1], thread_exclusive_segment_index);
        thread_segment_index[2]                 = cub::Sum()(thread_segment_index[2], thread_exclusive_segment_index);
        thread_segment_index[3]                 = cub::Sum()(thread_segment_index[3], thread_exclusive_segment_index);

        const uint32_t thread_index             = blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;

        if (thread_exclusive_segment_index != thread_segment_index[0]) { device_offsets_begin[thread_segment_index[0]] = thread_exclusive_suffix_rank; device_offsets_end[thread_segment_index[0]] = thread_index + 0; }
        if (thread_segment_index[0]        != thread_segment_index[1]) { device_offsets_begin[thread_segment_index[1]] = thread_suffix_rank[0];        device_offsets_end[thread_segment_index[1]] = thread_index + 1; }
        if (thread_segment_index[1]        != thread_segment_index[2]) { device_offsets_begin[thread_segment_index[2]] = thread_suffix_rank[1];        device_offsets_end[thread_segment_index[2]] = thread_index + 2; }
        if (thread_segment_index[2]        != thread_segment_index[3]) { device_offsets_begin[thread_segment_index[3]] = thread_suffix_rank[2];        device_offsets_end[thread_segment_index[3]] = thread_index + 3; }

        if (scatter_ranks_directly)
        {
            const uint4 indexes                 = __ldg((uint4 *)(device_SA + thread_index));

            device_ISA[indexes.x]               = thread_suffix_rank[0];
            device_ISA[indexes.y]               = thread_suffix_rank[1];
            device_ISA[indexes.z]               = thread_suffix_rank[2];
            device_ISA[indexes.w]               = thread_suffix_rank[3];
        }
        else
        {
            *(uint4 *)(device_ISA + thread_index) = make_uint4(thread_suffix_rank[0], thread_suffix_rank[1], thread_suffix_rank[2], thread_suffix_rank[3]);
        }
    }
}

template <bool alternate_block_descriptor_statuses, bool scatter_ranks_directly>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_rank_and_segment_suffixes_incremental_kernel(
    const uint32_t *    RESTRICT device_SA,
    const uint32_t *    RESTRICT device_keys,
    uint8_t *           RESTRICT device_heads,
    uint32_t *          RESTRICT device_out_SA,
    uint32_t *          RESTRICT device_out_ISA,
    uint32_t *          RESTRICT device_offsets_begin,
    uint32_t *          RESTRICT device_offsets_end,
    uint4 *             RESTRICT device_descriptors,
    const uint4 *       RESTRICT device_descriptors_copy
)
{
    __shared__ __align__(32) uint4    warp_state1[1 + CUDA_WARP_THREADS];
    __shared__ __align__(32) uint32_t warp_state2[1 + CUDA_WARP_THREADS];

    uchar4      thread_old_heads;
    uint32_t    thread_exclusive_suffix_old_rank;

    uchar4      thread_new_heads;
    uint32_t    thread_exclusive_suffix_new_rank;

    uint32_t    thread_exclusive_segment_index;
    uint32_t    thread_segment_index[4];

    uint32_t    thread_exclusive_suffix_index;
    uint32_t    thread_suffix_index[4];

    {
        const uint32_t block_index  = blockIdx.x * CUDA_BLOCK_THREADS * 4;
        const uint32_t thread_index = block_index + threadIdx.x * 4;

        device_keys += thread_index; device_heads += thread_index;

        uint2 key_a                 = __ldg((uint2 *)(device_keys - 2));
        uint4 key_b                 = __ldg((uint4 *)(device_keys));
        thread_old_heads            = *(uchar4 *)(device_heads);

        thread_new_heads = make_uchar4(
            (key_a.y != key_b.x) ? (uint8_t)1 : (uint8_t)thread_old_heads.x,
            (key_b.x != key_b.y) ? (uint8_t)1 : (uint8_t)thread_old_heads.y,
            (key_b.y != key_b.z) ? (uint8_t)1 : (uint8_t)thread_old_heads.z,
            (key_b.z != key_b.w) ? (uint8_t)1 : (uint8_t)thread_old_heads.w);

        *(uchar4 *)(device_heads) = thread_new_heads;

        thread_exclusive_suffix_old_rank = (thread_old_heads.x != 0) ? (thread_index + 0) : 0;
        thread_exclusive_suffix_old_rank = (thread_old_heads.y != 0) ? (thread_index + 1) : thread_exclusive_suffix_old_rank;
        thread_exclusive_suffix_old_rank = (thread_old_heads.z != 0) ? (thread_index + 2) : thread_exclusive_suffix_old_rank;
        thread_exclusive_suffix_old_rank = (thread_old_heads.w != 0) ? (thread_index + 3) : thread_exclusive_suffix_old_rank;

        thread_exclusive_suffix_new_rank = (thread_new_heads.x != 0) ? (thread_index + 0) : 0;
        thread_exclusive_suffix_new_rank = (thread_new_heads.y != 0) ? (thread_index + 1) : thread_exclusive_suffix_new_rank;
        thread_exclusive_suffix_new_rank = (thread_new_heads.z != 0) ? (thread_index + 2) : thread_exclusive_suffix_new_rank;
        thread_exclusive_suffix_new_rank = (thread_new_heads.w != 0) ? (thread_index + 3) : thread_exclusive_suffix_new_rank;

        thread_segment_index[0] = ((thread_new_heads.x != 0) && (key_a.x == key_a.y) && (device_heads[-1] == 0));
        thread_segment_index[1] = thread_segment_index[0] + ((thread_new_heads.y != 0) && (thread_new_heads.x == 0));
        thread_segment_index[2] = thread_segment_index[1] + ((thread_new_heads.z != 0) && (thread_new_heads.y == 0));
        thread_segment_index[3] = thread_segment_index[2] + ((thread_new_heads.w != 0) && (thread_new_heads.z == 0));
    }

    {
        uint32_t thread_inclusive_suffix_old_rank;
        uint32_t thread_inclusive_suffix_new_rank;
        uint32_t thread_inclusive_segment_index;

        typedef cub::WarpScan<uint32_t> WarpScan;

        __shared__ typename WarpScan::TempStorage warp_scan_storage[CUDA_BLOCK_THREADS];

        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_exclusive_suffix_old_rank, thread_inclusive_suffix_old_rank, thread_exclusive_suffix_old_rank, (uint32_t)0, cub::Max());
        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_exclusive_suffix_new_rank, thread_inclusive_suffix_new_rank, thread_exclusive_suffix_new_rank, (uint32_t)0, cub::Max());
        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_segment_index[3]         , thread_inclusive_segment_index  , thread_exclusive_segment_index  , (uint32_t)0, cub::Sum());

        if ((threadIdx.x % CUDA_WARP_THREADS) == (CUDA_WARP_THREADS - 1))
        {
            warp_state1[threadIdx.x / CUDA_WARP_THREADS] = make_uint4(0, thread_inclusive_suffix_old_rank, thread_inclusive_suffix_new_rank, thread_inclusive_segment_index);
        }

        __syncthreads();
    }

    {
        if (threadIdx.x < CUDA_WARP_THREADS)
        {
            uint32_t            block_exclusive_suffix_new_rank = 0;
            uint32_t            block_exclusive_segment_index   = 0;

            uint32_t            warp_inclusive_suffix_old_rank;
            uint32_t            warp_inclusive_suffix_new_rank;
            uint32_t            warp_inclusive_segment_index;

            {
                typedef cub::WarpScan<uint32_t> WarpScan;

                __shared__ typename WarpScan::TempStorage warp_scan_storage;

                uint4 warp_inclusive_state = warp_state1[threadIdx.x];

                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state.y, warp_inclusive_suffix_old_rank, cub::Max());
                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state.z, warp_inclusive_suffix_new_rank, cub::Max());
                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state.w, warp_inclusive_segment_index  , cub::Sum());
            }

            {
                const uint32_t descriptor_status_aggregate_not_ready        = alternate_block_descriptor_statuses ? 4 : 0;
                const uint32_t descriptor_status_partial_aggregate_ready    = alternate_block_descriptor_statuses ? 3 : 1;
                const uint32_t descriptor_status_full_aggregate_ready       = scatter_ranks_directly ? (alternate_block_descriptor_statuses ? 0 : 4) : 2;

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint4(descriptor_status_partial_aggregate_ready, 0, warp_inclusive_suffix_new_rank, warp_inclusive_segment_index));
                }

                {
                    uint4 * RESTRICT descriptors_lookback = device_descriptors + blockIdx.x + threadIdx.x;

                    int32_t full_aggregate_lane, delay = 8;
                    do
                    {
                        descriptors_lookback -= CUDA_WARP_THREADS;

                        uint4 block_descriptor;
                        do
                        {
                            libcubwt_delay_or_prevent_hoisting(delay <<= 1);

                            block_descriptor = cub::ThreadLoad<cub::LOAD_CG>(descriptors_lookback);
                        } while (__any_sync((uint32_t)-1, block_descriptor.x == descriptor_status_aggregate_not_ready));

                        delay = 0;

                        {
                            full_aggregate_lane     = 31 - __clz((int32_t)__ballot_sync((uint32_t)-1, block_descriptor.x != descriptor_status_partial_aggregate_ready));
                            block_descriptor.z      = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.z : 0;
                            block_descriptor.w      = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.w : 0;
                        }

                        {
                            block_exclusive_suffix_new_rank     = cub::Max()(block_exclusive_suffix_new_rank , libcubwt_warp_reduce_max(block_descriptor.z));
                            block_exclusive_segment_index       = cub::Sum()(block_exclusive_segment_index   , libcubwt_warp_reduce_sum(block_descriptor.w));
                        }

                    } while (full_aggregate_lane == -1);

                    warp_inclusive_suffix_new_rank  = cub::Max()(warp_inclusive_suffix_new_rank, block_exclusive_suffix_new_rank);
                    warp_inclusive_segment_index    = cub::Sum()(warp_inclusive_segment_index  , block_exclusive_segment_index  );
                }

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint4(descriptor_status_full_aggregate_ready, 0, warp_inclusive_suffix_new_rank, warp_inclusive_segment_index));
                }
            }

            {
                uint32_t block_exclusive_suffix_old_rank    = __ldg((uint32_t *)(device_descriptors_copy + blockIdx.x - 1) + 2);
                warp_inclusive_suffix_old_rank              = cub::Max()(warp_inclusive_suffix_old_rank, block_exclusive_suffix_old_rank);

                if (threadIdx.x == 0)
                {
                    warp_state1[0] = make_uint4(0, block_exclusive_suffix_old_rank, block_exclusive_suffix_new_rank, block_exclusive_segment_index);
                }

                warp_state1[1 + threadIdx.x] = make_uint4(0, warp_inclusive_suffix_old_rank, warp_inclusive_suffix_new_rank, warp_inclusive_segment_index);
            }
        }

        __syncthreads();
    }

    {
        uint32_t thread_suffix_old_rank[4];
        uint32_t thread_suffix_new_rank[4];

        uint4 warp_exclusive_state              = warp_state1[threadIdx.x / CUDA_WARP_THREADS];
        
        thread_exclusive_suffix_old_rank        = cub::Max()(thread_exclusive_suffix_old_rank, warp_exclusive_state.y);
        thread_exclusive_suffix_new_rank        = cub::Max()(thread_exclusive_suffix_new_rank, warp_exclusive_state.z);
        thread_exclusive_segment_index          = cub::Sum()(thread_exclusive_segment_index  , warp_exclusive_state.w);

        const uint32_t thread_index             = blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;

        thread_suffix_old_rank[0]               = (thread_old_heads.x != 0) ? (thread_index + 0) : thread_exclusive_suffix_old_rank;
        thread_suffix_old_rank[1]               = (thread_old_heads.y != 0) ? (thread_index + 1) : thread_suffix_old_rank[0];
        thread_suffix_old_rank[2]               = (thread_old_heads.z != 0) ? (thread_index + 2) : thread_suffix_old_rank[1];
        thread_suffix_old_rank[3]               = (thread_old_heads.w != 0) ? (thread_index + 3) : thread_suffix_old_rank[2];

        thread_suffix_new_rank[0]               = (thread_new_heads.x != 0) ? (thread_index + 0) : thread_exclusive_suffix_new_rank;
        thread_suffix_new_rank[1]               = (thread_new_heads.y != 0) ? (thread_index + 1) : thread_suffix_new_rank[0];
        thread_suffix_new_rank[2]               = (thread_new_heads.z != 0) ? (thread_index + 2) : thread_suffix_new_rank[1];
        thread_suffix_new_rank[3]               = (thread_new_heads.w != 0) ? (thread_index + 3) : thread_suffix_new_rank[2];

        thread_segment_index[0]                 = cub::Sum()(thread_segment_index[0], thread_exclusive_segment_index);
        thread_segment_index[1]                 = cub::Sum()(thread_segment_index[1], thread_exclusive_segment_index);
        thread_segment_index[2]                 = cub::Sum()(thread_segment_index[2], thread_exclusive_segment_index);
        thread_segment_index[3]                 = cub::Sum()(thread_segment_index[3], thread_exclusive_segment_index);

        if (thread_exclusive_segment_index != thread_segment_index[0]) { device_offsets_begin[thread_segment_index[0]] = thread_exclusive_suffix_new_rank; device_offsets_end[thread_segment_index[0]] = thread_index + 0; }
        if (thread_segment_index[0]        != thread_segment_index[1]) { device_offsets_begin[thread_segment_index[1]] = thread_suffix_new_rank[0];        device_offsets_end[thread_segment_index[1]] = thread_index + 1; }
        if (thread_segment_index[1]        != thread_segment_index[2]) { device_offsets_begin[thread_segment_index[2]] = thread_suffix_new_rank[1];        device_offsets_end[thread_segment_index[2]] = thread_index + 2; }
        if (thread_segment_index[2]        != thread_segment_index[3]) { device_offsets_begin[thread_segment_index[3]] = thread_suffix_new_rank[2];        device_offsets_end[thread_segment_index[3]] = thread_index + 3; }

        if (scatter_ranks_directly)
        {
            const uint4    indexes              = __ldg((uint4 *)(device_SA + thread_index));

            if (thread_suffix_old_rank[0] != thread_suffix_new_rank[0])  { device_out_ISA[indexes.x] = thread_suffix_new_rank[0]; }
            if (thread_suffix_old_rank[1] != thread_suffix_new_rank[1])  { device_out_ISA[indexes.y] = thread_suffix_new_rank[1]; }
            if (thread_suffix_old_rank[2] != thread_suffix_new_rank[2])  { device_out_ISA[indexes.z] = thread_suffix_new_rank[2]; }
            if (thread_suffix_old_rank[3] != thread_suffix_new_rank[3])  { device_out_ISA[indexes.w] = thread_suffix_new_rank[3]; }
        }
        else
        {
            thread_suffix_index[0]              = (thread_suffix_old_rank[0] != thread_suffix_new_rank[0]);
            thread_suffix_index[1]              = thread_suffix_index[0] + (thread_suffix_old_rank[1] != thread_suffix_new_rank[1]);
            thread_suffix_index[2]              = thread_suffix_index[1] + (thread_suffix_old_rank[2] != thread_suffix_new_rank[2]);
            thread_suffix_index[3]              = thread_suffix_index[2] + (thread_suffix_old_rank[3] != thread_suffix_new_rank[3]);
        }
    }

    if (!scatter_ranks_directly)
    {
        {
            uint32_t thread_inclusive_suffix_index;

            typedef cub::WarpScan<uint32_t> WarpScan;

            __shared__ typename WarpScan::TempStorage warp_scan_storage[CUDA_WARP_THREADS];

            WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_suffix_index[3], thread_inclusive_suffix_index, thread_exclusive_suffix_index, (uint32_t)0, cub::Sum());

            if ((threadIdx.x % CUDA_WARP_THREADS) == (CUDA_WARP_THREADS - 1))
            {
                warp_state2[threadIdx.x / CUDA_WARP_THREADS] = thread_inclusive_suffix_index;
            }

            __syncthreads();
        }

        {
            if (threadIdx.x < CUDA_WARP_THREADS)
            {
                uint32_t            block_exclusive_suffix_index = 0;
                uint32_t            warp_inclusive_suffix_index;

                {
                    typedef cub::WarpScan<uint32_t> WarpScan;

                    __shared__ typename WarpScan::TempStorage warp_scan_storage;

                    uint32_t warp_inclusive_state = warp_state2[threadIdx.x];

                    WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state, warp_inclusive_suffix_index, cub::Sum());
                }

                {
                    const uint32_t descriptor_status_aggregate_not_ready        = alternate_block_descriptor_statuses ? 2 : 2;
                    const uint32_t descriptor_status_partial_aggregate_ready    = alternate_block_descriptor_statuses ? 1 : 3;
                    const uint32_t descriptor_status_full_aggregate_ready       = alternate_block_descriptor_statuses ? 0 : 4;

                    if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                    {
                        cub::ThreadStore<cub::STORE_CG>((uint2 *)(device_descriptors + blockIdx.x), make_uint2(descriptor_status_partial_aggregate_ready, warp_inclusive_suffix_index));
                    }

                    {
                        uint4 * RESTRICT descriptors_lookback = device_descriptors + blockIdx.x + threadIdx.x;

                        int32_t full_aggregate_lane, delay = 8;
                        do
                        {
                            descriptors_lookback -= CUDA_WARP_THREADS;

                            uint2 block_descriptor;
                            do
                            {
                                libcubwt_delay_or_prevent_hoisting(delay <<= 1);

                                block_descriptor = cub::ThreadLoad<cub::LOAD_CG>((uint2 *)descriptors_lookback);
                            } while (__any_sync((uint32_t)-1, alternate_block_descriptor_statuses 
                                ? ((int32_t )block_descriptor.x >= (int32_t )descriptor_status_aggregate_not_ready)
                                : ((uint32_t)block_descriptor.x <= (uint32_t)descriptor_status_aggregate_not_ready)));

                            delay = 0;

                            {
                                full_aggregate_lane = 31 - __clz((int32_t)__ballot_sync((uint32_t)-1, block_descriptor.x != descriptor_status_partial_aggregate_ready));
                                block_descriptor.y  = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.y : 0;
                            }

                            {
                                block_exclusive_suffix_index = cub::Sum()(block_exclusive_suffix_index, libcubwt_warp_reduce_sum(block_descriptor.y));
                            }

                        } while (full_aggregate_lane == -1);

                        warp_inclusive_suffix_index = cub::Sum()(warp_inclusive_suffix_index, block_exclusive_suffix_index);
                    }

                    if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                    {
                        cub::ThreadStore<cub::STORE_CG>((uint2 *)(device_descriptors + blockIdx.x), make_uint2(descriptor_status_full_aggregate_ready, warp_inclusive_suffix_index));
                    }
                }

                {
                    if (threadIdx.x == 0)
                    {
                        warp_state2[0] = block_exclusive_suffix_index;
                    }

                    warp_state2[1 + threadIdx.x] = warp_inclusive_suffix_index;
                }
            }

            __syncthreads();
        }

        {
            if (thread_suffix_index[3] > 0)
            {
                uint32_t thread_suffix_new_rank[4];

                uint32_t warp_exclusive_state           = warp_state2[threadIdx.x / CUDA_WARP_THREADS];
                thread_exclusive_suffix_index           = cub::Sum()(thread_exclusive_suffix_index, warp_exclusive_state);

                thread_suffix_index[0]                  = cub::Sum()(thread_suffix_index[0], thread_exclusive_suffix_index);
                thread_suffix_index[1]                  = cub::Sum()(thread_suffix_index[1], thread_exclusive_suffix_index);
                thread_suffix_index[2]                  = cub::Sum()(thread_suffix_index[2], thread_exclusive_suffix_index);
                thread_suffix_index[3]                  = cub::Sum()(thread_suffix_index[3], thread_exclusive_suffix_index);

                const uint32_t thread_index             = blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;
                const uint4    indexes                  = __ldg((uint4 *)(device_SA + thread_index));

                thread_suffix_new_rank[0]               = (thread_new_heads.x != 0) ? (thread_index + 0) : thread_exclusive_suffix_new_rank;
                thread_suffix_new_rank[1]               = (thread_new_heads.y != 0) ? (thread_index + 1) : thread_suffix_new_rank[0];
                thread_suffix_new_rank[2]               = (thread_new_heads.z != 0) ? (thread_index + 2) : thread_suffix_new_rank[1];
                thread_suffix_new_rank[3]               = (thread_new_heads.w != 0) ? (thread_index + 3) : thread_suffix_new_rank[2];

                if (thread_exclusive_suffix_index != thread_suffix_index[0])  { device_out_SA[thread_suffix_index[0]] = indexes.x; device_out_ISA[thread_suffix_index[0]] = thread_suffix_new_rank[0]; }
                if (thread_suffix_index[0]        != thread_suffix_index[1])  { device_out_SA[thread_suffix_index[1]] = indexes.y; device_out_ISA[thread_suffix_index[1]] = thread_suffix_new_rank[1]; }
                if (thread_suffix_index[1]        != thread_suffix_index[2])  { device_out_SA[thread_suffix_index[2]] = indexes.z; device_out_ISA[thread_suffix_index[2]] = thread_suffix_new_rank[2]; }
                if (thread_suffix_index[2]        != thread_suffix_index[3])  { device_out_SA[thread_suffix_index[3]] = indexes.w; device_out_ISA[thread_suffix_index[3]] = thread_suffix_new_rank[3]; }
            }
        }
    }
}

static cudaError_t libcubwt_rank_and_segment_suffixes(LIBCUBWT_DEVICE_STORAGE * storage, int64_t n, int64_t iteration)
{
    cudaError_t status                      = cudaSuccess;
    int64_t     n_segmentation_blocks       = 1 + (n / (storage->cuda_block_threads * 4));
    int64_t     n_initialization_blocks     = (n_segmentation_blocks + storage->cuda_block_threads - 1) / storage->cuda_block_threads;
    bool        scatter_ranks_directly      = (n <= ((int64_t)1 << (storage->device_L2_cache_bits - 3)));

    if (iteration == 0)
    {
        libcubwt_rank_and_segment_suffixes_initialization_kernel<<<(uint32_t)n_initialization_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
            storage->device_SA,
            storage->device_keys_temp_keys,
            storage->device_heads,
            storage->device_descriptors_large,
            storage->device_descriptors_small,
            (uint32_t)n);

        if (scatter_ranks_directly)
        {
            libcubwt_rank_and_segment_suffixes_initiatory_kernel<true><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                storage->device_SA,
                storage->device_keys_temp_keys,
                storage->device_heads,
                storage->device_ISA,
                storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                storage->device_descriptors_large);
        }
        else
        {
            libcubwt_rank_and_segment_suffixes_initiatory_kernel<false><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                NULL,
                storage->device_keys_temp_keys,
                storage->device_heads,
                storage->device_temp_ISA,
                storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                storage->device_descriptors_large);
        }

        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->host_pinned_storage, &storage->device_descriptors_large[n_segmentation_blocks - 1], sizeof(uint4), cudaMemcpyDeviceToHost, storage->cuda_stream));
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamSynchronize(storage->cuda_stream), status);

        if (status == cudaSuccess)
        {
            storage->num_unsorted_segments = ((uint4 *)storage->host_pinned_storage)->w;

            if (!scatter_ranks_directly)
            {
                if ((status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->device_temp_SA, storage->device_SA, n * sizeof(uint32_t), cudaMemcpyDeviceToDevice, storage->cuda_stream))) == cudaSuccess)
                {
                    status = libcubwt_permute_values_uint32(storage, storage->device_temp_SA, storage->device_temp_ISA, storage->device_ISA, n, storage->device_keys, storage->device_temp_keys);
                }
            }
        }
    }
    else
    {
        if ((status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->device_descriptors_copy - 1, storage->device_descriptors_large - 1, n_segmentation_blocks * sizeof(uint4), cudaMemcpyDeviceToDevice, storage->cuda_stream))) == cudaSuccess)
        {
            if (scatter_ranks_directly)
            {
                if ((iteration % 2) == 0)
                {
                    libcubwt_rank_and_segment_suffixes_incremental_kernel<false, true><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        storage->device_SA,
                        storage->device_keys,
                        storage->device_heads,
                        NULL, storage->device_ISA,
                        storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                        storage->device_descriptors_large, storage->device_descriptors_copy);
                }
                else
                {
                    libcubwt_rank_and_segment_suffixes_incremental_kernel<true, true><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        storage->device_SA,
                        storage->device_keys,
                        storage->device_heads,
                        NULL, storage->device_ISA,
                        storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                        storage->device_descriptors_large, storage->device_descriptors_copy);
                }
            }
            else
            {
                if ((iteration % 2) == 0)
                {
                    libcubwt_rank_and_segment_suffixes_incremental_kernel<false, false><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        storage->device_SA,
                        storage->device_keys,
                        storage->device_heads,
                        storage->device_temp_SA - 1, storage->device_temp_ISA - 1,
                        storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                        storage->device_descriptors_large, storage->device_descriptors_copy);
                }
                else
                {
                    libcubwt_rank_and_segment_suffixes_incremental_kernel<true, false><<<(uint32_t)n_segmentation_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        storage->device_SA,
                        storage->device_keys,
                        storage->device_heads,
                        storage->device_temp_SA - 1, storage->device_temp_ISA - 1,
                        storage->device_offsets - 1, storage->device_offsets + (n / 2) - 1,
                        storage->device_descriptors_large, storage->device_descriptors_copy);
                }
            }

            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->host_pinned_storage, &storage->device_descriptors_large[n_segmentation_blocks - 1], sizeof(uint4), cudaMemcpyDeviceToHost, storage->cuda_stream));
            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamSynchronize(storage->cuda_stream), status);

            if (status == cudaSuccess)
            {
                storage->num_unsorted_segments = ((uint4 *)storage->host_pinned_storage)->w;

                if (!scatter_ranks_directly)
                {
                    uint32_t num_updated_suffixes = ((uint4 *)storage->host_pinned_storage)->y;

                    if (num_updated_suffixes > 0)
                    {
                        status = libcubwt_scatter_values_uint32(storage, storage->device_temp_SA, storage->device_temp_ISA, storage->device_ISA, num_updated_suffixes, n, storage->device_keys, storage->device_temp_keys);
                    }
                }
            }
        }
    }

    return status;
}

template <bool alternate_block_descriptor_statuses>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_gather_unsorted_suffixes_kernel(
    const uint8_t *     RESTRICT device_heads, 
    const uint32_t *    RESTRICT device_SA,
    uint32_t *          RESTRICT device_out_keys,
    uint32_t *          RESTRICT device_out_SA,
    uint2 *             RESTRICT device_descriptors)
{
    __shared__ __align__(32) uint32_t warp_state[1 + CUDA_WARP_THREADS];

    uint32_t    thread_exclusive_suffix_index;
    uint32_t    thread_suffix_index[4];

    {
        device_heads += blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;

        const uchar4    current_heads   = __ldg((uchar4 *)(device_heads));
        const uint8_t   next_head       = current_heads.w > 0 ? __ldg(device_heads + 4) : 0;

        thread_suffix_index[0]          = (current_heads.x + current_heads.y < 2);
        thread_suffix_index[1]          = thread_suffix_index[0] + (current_heads.y + current_heads.z < 2);
        thread_suffix_index[2]          = thread_suffix_index[1] + (current_heads.z + current_heads.w < 2);
        thread_suffix_index[3]          = thread_suffix_index[2] + (current_heads.w +       next_head < 2);
    }

    {
        uint32_t thread_inclusive_suffix_index;

        typedef cub::WarpScan<uint32_t> WarpScan;

        __shared__ typename WarpScan::TempStorage warp_scan_storage[CUDA_WARP_THREADS];

        WarpScan(warp_scan_storage[threadIdx.x / CUDA_WARP_THREADS]).Scan(thread_suffix_index[3], thread_inclusive_suffix_index, thread_exclusive_suffix_index, (uint32_t)0, cub::Sum());

        if ((threadIdx.x % CUDA_WARP_THREADS) == (CUDA_WARP_THREADS - 1))
        {
            warp_state[threadIdx.x / CUDA_WARP_THREADS] = thread_inclusive_suffix_index;
        }

        __syncthreads();
    }

    {
        if (threadIdx.x < CUDA_WARP_THREADS)
        {
            uint32_t block_exclusive_suffix_index = 0;
            uint32_t warp_inclusive_suffix_index;

            {
                typedef cub::WarpScan<uint32_t> WarpScan;

                __shared__ typename WarpScan::TempStorage warp_scan_storage;

                uint32_t warp_inclusive_state = warp_state[threadIdx.x];

                WarpScan(warp_scan_storage).InclusiveScan(warp_inclusive_state, warp_inclusive_suffix_index, cub::Sum());
            }

            {
                const uint32_t descriptor_status_aggregate_not_ready        = alternate_block_descriptor_statuses ? 2 : 0;
                const uint32_t descriptor_status_partial_aggregate_ready    = alternate_block_descriptor_statuses ? 1 : 1;
                const uint32_t descriptor_status_full_aggregate_ready       = alternate_block_descriptor_statuses ? 0 : 2;

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint2(descriptor_status_partial_aggregate_ready, warp_inclusive_suffix_index));
                }

                {
                    uint2 * RESTRICT descriptors_lookback = device_descriptors + blockIdx.x + threadIdx.x;

                    int32_t full_aggregate_lane, delay = 8;
                    do
                    {
                        descriptors_lookback -= CUDA_WARP_THREADS;

                        uint2 block_descriptor;
                        do
                        {
                            libcubwt_delay_or_prevent_hoisting(delay <<= 1);

                            block_descriptor = cub::ThreadLoad<cub::LOAD_CG>(descriptors_lookback);
                        } while (__any_sync((uint32_t)-1, block_descriptor.x == descriptor_status_aggregate_not_ready));

                        delay = 0;

                        {
                            full_aggregate_lane = 31 - __clz((int32_t)__ballot_sync((uint32_t)-1, block_descriptor.x != descriptor_status_partial_aggregate_ready));
                            block_descriptor.y  = (((int32_t)threadIdx.x) >= full_aggregate_lane) ? block_descriptor.y : 0;
                        }

                        {
                            block_exclusive_suffix_index = cub::Sum()(block_exclusive_suffix_index, libcubwt_warp_reduce_sum(block_descriptor.y));
                        }

                    } while (full_aggregate_lane == -1);

                    warp_inclusive_suffix_index = cub::Sum()(warp_inclusive_suffix_index, block_exclusive_suffix_index);
                }

                if (threadIdx.x == ((CUDA_BLOCK_THREADS / CUDA_WARP_THREADS) - 1))
                {
                    cub::ThreadStore<cub::STORE_CG>(device_descriptors + blockIdx.x, make_uint2(descriptor_status_full_aggregate_ready, warp_inclusive_suffix_index));
                }
            }

            {
                if (threadIdx.x == 0)
                {
                    warp_state[0] = block_exclusive_suffix_index;
                }

                warp_state[1 + threadIdx.x] = warp_inclusive_suffix_index;
            }
        }

        __syncthreads();
    }

    {
        if (thread_suffix_index[3] > 0)
        {
            uint32_t warp_exclusive_state           = warp_state[threadIdx.x / CUDA_WARP_THREADS];
        
            thread_exclusive_suffix_index           = cub::Sum()(thread_exclusive_suffix_index, warp_exclusive_state);

            thread_suffix_index[0]                  = cub::Sum()(thread_suffix_index[0], thread_exclusive_suffix_index);
            thread_suffix_index[1]                  = cub::Sum()(thread_suffix_index[1], thread_exclusive_suffix_index);
            thread_suffix_index[2]                  = cub::Sum()(thread_suffix_index[2], thread_exclusive_suffix_index);
            thread_suffix_index[3]                  = cub::Sum()(thread_suffix_index[3], thread_exclusive_suffix_index);

            const uint32_t thread_index             = blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;
            const uint4    indexes                  = __ldg((uint4 *)(device_SA + thread_index));

            if (thread_exclusive_suffix_index != thread_suffix_index[0]) { device_out_keys[thread_suffix_index[0]] = thread_index + 0; device_out_SA[thread_suffix_index[0]] = indexes.x; }
            if (thread_suffix_index[0]        != thread_suffix_index[1]) { device_out_keys[thread_suffix_index[1]] = thread_index + 1; device_out_SA[thread_suffix_index[1]] = indexes.y; }
            if (thread_suffix_index[1]        != thread_suffix_index[2]) { device_out_keys[thread_suffix_index[2]] = thread_index + 2; device_out_SA[thread_suffix_index[2]] = indexes.z; }
            if (thread_suffix_index[2]        != thread_suffix_index[3]) { device_out_keys[thread_suffix_index[3]] = thread_index + 3; device_out_SA[thread_suffix_index[3]] = indexes.w; }
        }
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_update_suffix_sorting_keys_kernel(const uint8_t * RESTRICT device_heads, const uint32_t * RESTRICT device_SA, const uint32_t * RESTRICT device_ISA, uint32_t * RESTRICT device_keys)
{
    const uint32_t  thread_index    = blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;

    device_heads += thread_index;

    const uchar4    current_heads   = __ldg((uchar4 *)(device_heads));
    const uint8_t   next_head       = current_heads.w > 0 ? __ldg(device_heads + 4) : 0;

    if (current_heads.x + current_heads.y + current_heads.z + current_heads.w + next_head < 5)
    {
        device_SA += thread_index; device_keys += thread_index;

        const uint4 current_SA = __ldg((uint4 *)(device_SA));

        ((uint4 *)device_keys)[0] = make_uint4(
            (current_heads.x + current_heads.y < 2) ? __ldg(device_ISA + current_SA.x) : (uint32_t)-1,
            (current_heads.y + current_heads.z < 2) ? __ldg(device_ISA + current_SA.y) : (uint32_t)-2,
            (current_heads.z + current_heads.w < 2) ? __ldg(device_ISA + current_SA.z) : (uint32_t)-3,
            (current_heads.w +       next_head < 2) ? __ldg(device_ISA + current_SA.w) : (uint32_t)-4);
    }
}

static cudaError_t libcubwt_update_suffix_sorting_keys(LIBCUBWT_DEVICE_STORAGE * storage, int64_t n, int64_t iteration, int64_t depth)
{
    cudaError_t status                  = cudaSuccess;
    int64_t     n_ranking_blocks        = (n + storage->cuda_block_threads * 4 - 1) / (storage->cuda_block_threads * 4);
    bool        gather_keys_directly    = (n <= ((int64_t)1 << (storage->device_L2_cache_bits - 2))) || (n > ((int64_t)1 << (storage->device_L2_cache_bits - 2 + 8)));

    if (gather_keys_directly || (storage->num_unsorted_suffixes <= (n / 4)))
    {
        libcubwt_update_suffix_sorting_keys_kernel<<<(uint32_t)n_ranking_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(storage->device_heads, storage->device_SA, storage->device_ISA + depth, storage->device_keys);
    }
    else
    {
        if ((iteration % 2) == 0)
        {
            libcubwt_gather_unsorted_suffixes_kernel<false><<<(uint32_t)n_ranking_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                storage->device_heads,
                storage->device_SA,
                storage->device_temp_keys - 1, storage->device_temp_SA - 1,
                storage->device_descriptors_small);
        }
        else
        {
            libcubwt_gather_unsorted_suffixes_kernel<true><<<(uint32_t)n_ranking_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                storage->device_heads,
                storage->device_SA,
                storage->device_temp_keys - 1, storage->device_temp_SA - 1,
                storage->device_descriptors_small);
        }

        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->host_pinned_storage, &storage->device_descriptors_small[n_ranking_blocks - 1], sizeof(uint2), cudaMemcpyDeviceToHost, storage->cuda_stream));
        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamSynchronize(storage->cuda_stream), status);

        if (status == cudaSuccess)
        {
            storage->num_unsorted_suffixes = ((uint2 *)storage->host_pinned_storage)->y;

            if (storage->num_unsorted_suffixes > 0)
            {
                status = libcubwt_gather_scatter_values_uint32(storage, storage->device_temp_SA, storage->device_ISA + depth, storage->device_temp_keys, storage->device_keys, storage->num_unsorted_suffixes, n, storage->device_temp_ISA, storage->device_keys);
            }
        }
    }

    return status;
}

static cudaError_t libcubwt_sort_segmented_suffixes_by_rank(LIBCUBWT_DEVICE_STORAGE * storage, int64_t n)
{
    cub::DoubleBuffer<uint32_t> d_keys(storage->device_keys, storage->device_temp_keys);
    cub::DoubleBuffer<uint32_t> d_values(storage->device_SA, storage->device_temp_SA);

    cudaError_t status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceSegmentedSort::SortPairs(
        storage->device_ssort_temp_storage, storage->device_ssort_temp_storage_size,
        d_keys, d_values,
        (int)storage->num_unsorted_suffixes, (int)storage->num_unsorted_segments,
        storage->device_offsets, storage->device_offsets + (n / 2),
        storage->cuda_stream));

    if (d_keys.selector) { std::swap(storage->device_keys, storage->device_temp_keys); }
    if (d_values.selector) { std::swap(storage->device_SA, storage->device_temp_SA); }

    return status;
}

template <bool process_auxiliary_indexes>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_prepare_mod12_suffixes_kernel(const uint8_t * RESTRICT device_T, const uint32_t * RESTRICT device_ISA, const uint64_t * RESTRICT device_suffixes, const uint32_t rm, const uint32_t rs)
{
    __shared__ union
    {
        struct
        {
            __align__(32) uint32_t bytes[4 * CUDA_BLOCK_THREADS];
            __align__(32) uint4    ranks[3 * CUDA_BLOCK_THREADS];
        } stage1;

        struct
        {
            __align__(32) uint4 suffixes[4 * CUDA_BLOCK_THREADS];
        } stage2;

    } shared_storage;

    {
        device_T   += blockIdx.x * CUDA_BLOCK_THREADS * 12 + threadIdx.x * 16;
        device_ISA += blockIdx.x * CUDA_BLOCK_THREADS * 8  + threadIdx.x * 4;

        uint4 * RESTRICT thread_bytes = (uint4 *)shared_storage.stage1.bytes + threadIdx.x;
        uint4 * RESTRICT thread_ranks = (uint4 *)shared_storage.stage1.ranks + threadIdx.x;

        if (threadIdx.x < (12 * CUDA_BLOCK_THREADS + 4 + 15) / 16) { thread_bytes[0] = __ldg((uint4 *)device_T); }

        thread_ranks[0] = __ldg((uint4 *)device_ISA); thread_ranks += CUDA_BLOCK_THREADS; device_ISA += CUDA_BLOCK_THREADS * 4;
        thread_ranks[0] = __ldg((uint4 *)device_ISA); thread_ranks += CUDA_BLOCK_THREADS; device_ISA += CUDA_BLOCK_THREADS * 4;
        if (threadIdx.x == 0) { thread_ranks[0] = __ldg((uint4 *)device_ISA); }
    }

    {
        __syncthreads();

        uint32_t bytes0 = shared_storage.stage1.bytes[threadIdx.x * 3 + 0];
        uint32_t bytes1 = shared_storage.stage1.bytes[threadIdx.x * 3 + 1];
        uint32_t bytes2 = shared_storage.stage1.bytes[threadIdx.x * 3 + 2];
        uint32_t bytes3 = shared_storage.stage1.bytes[threadIdx.x * 3 + 3];

        uint4    ranks0 = shared_storage.stage1.ranks[threadIdx.x * 2 + 0];
        uint4    ranks1 = shared_storage.stage1.ranks[threadIdx.x * 2 + 1];
        uint4    ranks2 = shared_storage.stage1.ranks[threadIdx.x * 2 + 2];

        __syncthreads();

        uint32_t v4 = 0, v8 = 0;

        if (process_auxiliary_indexes)
        {
            const uint32_t i4 = blockIdx.x * CUDA_BLOCK_THREADS * 12 + threadIdx.x * 12 + 4 + rm + 1;
            const uint32_t i8 = blockIdx.x * CUDA_BLOCK_THREADS * 12 + threadIdx.x * 12 + 8 + rm + 1;

            if ((i4 & rm) == 0) { v4 = (i4 >> rs) << 24; }
            if ((i8 & rm) == 0) { v8 = (i8 >> rs) << 24; }
        }

        shared_storage.stage2.suffixes[threadIdx.x * 4 + 0] = make_uint4
        (
            ranks0.y, __byte_perm(bytes0, 0, 0x4021),
            ranks0.z | (uint32_t)INT32_MIN, __byte_perm(bytes0, 0, 0x4132)
        );

        shared_storage.stage2.suffixes[threadIdx.x * 4 + 1] = make_uint4
        (
            ranks0.w, (__byte_perm(bytes0, bytes1, 0x0354) & 0xffffffu) | v4,
            ranks1.x | (uint32_t)INT32_MIN, __byte_perm(bytes1, 0, 0x4021)
        );

        shared_storage.stage2.suffixes[threadIdx.x * 4 + 2] = make_uint4
        (
            ranks1.y, __byte_perm(bytes1, bytes2, 0x0243) & 0xffffffu,
            ranks1.z | (uint32_t)INT32_MIN, (__byte_perm(bytes1, bytes2, 0x0354) & 0xffffffu) | v8
        );

        shared_storage.stage2.suffixes[threadIdx.x * 4 + 3] = make_uint4
        (
            ranks1.w, __byte_perm(bytes2, 0, 0x4132),
            ranks2.x | (uint32_t)INT32_MIN, __byte_perm(bytes2, bytes3, 0x0243) & 0xffffffu
        );

        __syncwarp();
    }

    {
        device_suffixes += blockIdx.x * CUDA_BLOCK_THREADS * 8;

        uint4 * RESTRICT thread_src = shared_storage.stage2.suffixes + ((threadIdx.x / CUDA_WARP_THREADS) * CUDA_WARP_THREADS * 4) + (threadIdx.x % CUDA_WARP_THREADS);
        uint4 * RESTRICT thread_dst = (uint4 *)device_suffixes       + ((threadIdx.x / CUDA_WARP_THREADS) * CUDA_WARP_THREADS * 4) + (threadIdx.x % CUDA_WARP_THREADS);

        thread_dst[0] = thread_src[0]; thread_src += CUDA_WARP_THREADS; thread_dst += CUDA_WARP_THREADS;
        thread_dst[0] = thread_src[0]; thread_src += CUDA_WARP_THREADS; thread_dst += CUDA_WARP_THREADS;
        thread_dst[0] = thread_src[0]; thread_src += CUDA_WARP_THREADS; thread_dst += CUDA_WARP_THREADS;
        thread_dst[0] = thread_src[0];
    }
}

template <bool process_auxiliary_indexes>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_prepare_mod0_suffixes_kernel(const uint8_t * RESTRICT device_T, const uint32_t * RESTRICT device_ISA, const uint64_t * RESTRICT device_suffixes_lh, const uint32_t * RESTRICT device_suffixes_hh, const uint32_t rm, const uint32_t rs)
{
    __shared__ __align__(32) uint16_t bytes[3 * CUDA_BLOCK_THREADS + 8];

    {
        device_T += blockIdx.x * CUDA_BLOCK_THREADS * 6 + threadIdx.x * 16;

        uint4 * RESTRICT thread_bytes = (uint4 *)bytes + threadIdx.x;

        if (threadIdx.x <= (6 * CUDA_BLOCK_THREADS) / 16) { thread_bytes[0] = __ldg((uint4 *)(device_T - 16)); }
    }

    {
        device_ISA         += blockIdx.x * CUDA_BLOCK_THREADS * 4 + threadIdx.x * 4;
        device_suffixes_lh += blockIdx.x * CUDA_BLOCK_THREADS * 2 + threadIdx.x * 2;
        device_suffixes_hh += blockIdx.x * CUDA_BLOCK_THREADS * 2 + threadIdx.x * 2;

        __syncthreads();

        uint32_t bytes0 = bytes[threadIdx.x * 3 + 7 ];
        uint32_t bytes1 = bytes[threadIdx.x * 3 + 8 ];
        uint32_t bytes2 = bytes[threadIdx.x * 3 + 9 ];
        uint32_t bytes3 = bytes[threadIdx.x * 3 + 10];
        uint4    ranks  = __ldg((uint4 *)(device_ISA));

        uint32_t v0 = 0;

        if (process_auxiliary_indexes)
        {
            const uint32_t i0 = blockIdx.x * CUDA_BLOCK_THREADS * 6 + threadIdx.x * 6 + 0 + rm + 1;

            if ((i0 & rm) == 0) { v0 = (i0 >> rs) << 24; }
        }
        else if ((blockIdx.x | threadIdx.x) == 0)
        {
            v0 = 1u << 24;
        }

        *(uint4 *)(device_suffixes_lh) = make_uint4
        (
            ranks.x, __byte_perm(bytes0, bytes1, 0x3154) | v0,
            ranks.z, __byte_perm(bytes2, bytes3, 0x3041)
        );

        *(uint2 *)(device_suffixes_hh) = make_uint2(ranks.y | (uint32_t)INT32_MIN, ranks.w | (uint32_t)INT32_MIN);
    }
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, 1)
static void libcubwt_set_sentinel_suffixes_kernel(uint64_t * RESTRICT device_mod0l_suffixes_end, uint32_t * RESTRICT device_mod0h_suffixes_end,uint64_t * RESTRICT device_mod12_suffixes_end)
{
    uint32_t thread_index = blockIdx.x * CUDA_BLOCK_THREADS + threadIdx.x;

    device_mod0l_suffixes_end += thread_index; 
    device_mod0h_suffixes_end += thread_index;
    device_mod12_suffixes_end += thread_index;

    *(uint2    *)(device_mod0l_suffixes_end) = make_uint2(0x7fffffffu - 12 * CUDA_BLOCK_THREADS + 2 * thread_index + 0, 0x00ffffffu);
    *(uint32_t *)(device_mod0h_suffixes_end) = (uint32_t)(0xffffffffu - 12 * CUDA_BLOCK_THREADS + 2 * thread_index + 0             );
    *(uint2    *)(device_mod12_suffixes_end) = make_uint2(0x7fffffffu - 12 * CUDA_BLOCK_THREADS + 2 * thread_index + 1, 0x00ffffffu);
}

__device__ __forceinline__
bool libcubwt_compare_suffixes_kernel(const uint2 mod0l_suffix, const uint32_t mod0h_suffix, const uint2 mod12_suffix)
{
    uint32_t difference = __byte_perm(mod0l_suffix.y, 0, 0x4401) - __byte_perm(mod12_suffix.y, 0, 0x4401);
    if (difference == 0) { difference = (((int32_t)mod12_suffix.x < 0) ? mod0h_suffix : mod0l_suffix.x) - mod12_suffix.x; }

    return (int32_t)difference <= 0;
}

__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_suffixes_merge_initialization_kernel(
    const uint64_t * RESTRICT device_mod0l_suffixes,
    const uint32_t * RESTRICT device_mod0h_suffixes,
    const uint32_t num_mod0_suffixes,

    const uint64_t * RESTRICT device_mod12_suffixes,
    const uint32_t num_mod12_suffixes,

    uint32_t * RESTRICT device_suffixes_merge_path,
    uint32_t num_merging_blocks)
{
    uint32_t thread_index = blockIdx.x * CUDA_BLOCK_THREADS + threadIdx.x;

    if (thread_index <= num_merging_blocks)
    {
        uint32_t diagonal   = thread_index * CUDA_BLOCK_THREADS * 5;
        uint32_t begin      = (diagonal > num_mod12_suffixes) ? (diagonal - num_mod12_suffixes) : 0;
        uint32_t end        = (diagonal > num_mod0_suffixes ) ? (num_mod0_suffixes            ) : diagonal;

        while (begin < end)
        {
            uint32_t pivot = begin + ((end - begin) >> 1);

            bool predicate = libcubwt_compare_suffixes_kernel(
                __ldg((uint2    *)(device_mod0l_suffixes + pivot)),
                __ldg((uint32_t *)(device_mod0h_suffixes + pivot)),
                __ldg((uint2    *)(device_mod12_suffixes + diagonal - pivot - 1)));

            begin = predicate ? (pivot + 1) : begin;
            end   = predicate ? (end      ) : pivot;
        }

        __syncwarp();

        device_suffixes_merge_path[thread_index] = begin;
    }
}

template <bool process_auxiliary_indexes>
__global__ __launch_bounds__(CUDA_BLOCK_THREADS, CUDA_SM_THREADS / CUDA_BLOCK_THREADS)
static void libcubwt_merge_suffixes_kernel(
    const uint64_t * RESTRICT device_mod0l_suffixes,
    const uint32_t * RESTRICT device_mod0h_suffixes,
    const uint64_t * RESTRICT device_mod12_suffixes,
    const uint32_t * RESTRICT device_suffixes_merge_path,

    uint32_t * RESTRICT device_auxiliary_indexes,
    uint8_t  * RESTRICT device_L)
{
    __shared__ union
    {
        struct
        {
            __align__(32) uint2    suffixes_l[CUDA_BLOCK_THREADS * 5 + 12];
            __align__(32) uint32_t suffixes_h[CUDA_BLOCK_THREADS * 5 + 12];
        } stage1;

        struct
        {
            __align__(32) uint8_t  bwt[CUDA_BLOCK_THREADS * 5];
        } stage2;

    } shared_storage;

    uint32_t num_mod0_suffixes;
    uint32_t num_mod12_suffixes;

    {
        const uint32_t block_mod0_path_begin = (device_suffixes_merge_path + blockIdx.x)[0];
        const uint32_t block_mod0_path_end   = (device_suffixes_merge_path + blockIdx.x)[1];
        
        num_mod0_suffixes   = block_mod0_path_end - block_mod0_path_begin + 6; 
        num_mod12_suffixes  = CUDA_BLOCK_THREADS * 5 + 12 - num_mod0_suffixes;

        device_mod0l_suffixes += block_mod0_path_begin; 
        device_mod0h_suffixes += block_mod0_path_begin;

        device_mod12_suffixes += (blockIdx.x * CUDA_BLOCK_THREADS * 5 - block_mod0_path_begin);
        device_mod12_suffixes -= num_mod0_suffixes;

        #pragma unroll
        for (uint32_t thread_index = threadIdx.x; thread_index < CUDA_BLOCK_THREADS * 5 + 12; thread_index += CUDA_BLOCK_THREADS)
        {
            if (thread_index < num_mod0_suffixes) { shared_storage.stage1.suffixes_h[thread_index] = __ldg(device_mod0h_suffixes + thread_index); }
            shared_storage.stage1.suffixes_l[thread_index] = __ldg((uint2 *)(thread_index < num_mod0_suffixes ? device_mod0l_suffixes : device_mod12_suffixes) + thread_index);
        }

        __syncthreads();
    }

    {
        uint32_t diagonal   = threadIdx.x * 5;
        uint32_t begin      = (diagonal > num_mod12_suffixes) ? (diagonal - num_mod12_suffixes) : 0;
        uint32_t end        = (diagonal > num_mod0_suffixes ) ? (num_mod0_suffixes            ) : diagonal;

        while (begin < end)
        {
            uint32_t pivot = (begin + end) >> 1;

            bool predicate = libcubwt_compare_suffixes_kernel(
                shared_storage.stage1.suffixes_l[pivot],
                shared_storage.stage1.suffixes_h[pivot],
                shared_storage.stage1.suffixes_l[num_mod0_suffixes + diagonal - pivot - 1]);

            begin = predicate ? (pivot + 1) : begin;
            end   = predicate ? (end      ) : pivot;
        }

        __syncwarp();

        uint32_t suffixes[5];

        {
            uint32_t mod0_index     = begin;
            uint32_t mod12_index    = num_mod0_suffixes + diagonal - begin;
            uint2    mod0l_suffix   = shared_storage.stage1.suffixes_l[mod0_index];
            uint32_t mod0h_suffix   = shared_storage.stage1.suffixes_h[mod0_index];
            uint2    mod12_suffix   = shared_storage.stage1.suffixes_l[mod12_index];

            #pragma unroll
            for (uint32_t item = 0; item < 5; ++item)
            {
                bool predicate = libcubwt_compare_suffixes_kernel(mod0l_suffix, mod0h_suffix, mod12_suffix);
           
                suffixes[item] = predicate ? mod0l_suffix.y : mod12_suffix.y;

                if ( predicate) { mod0_index  += 1; mod0l_suffix = shared_storage.stage1.suffixes_l[mod0_index]; mod0h_suffix = shared_storage.stage1.suffixes_h[mod0_index]; }
                if (!predicate) { mod12_index += 1; mod12_suffix = shared_storage.stage1.suffixes_l[mod12_index]; }
            }

            __syncthreads();
        }

        {
            #pragma unroll
            for (uint32_t item = 0; item < 5; ++item)
            {
                if (suffixes[item] >= 0x01000000u)
                {
                    device_auxiliary_indexes[process_auxiliary_indexes ? suffixes[item] >> 24 : 1] = blockIdx.x * CUDA_BLOCK_THREADS * 5 + diagonal + item;
                }

                shared_storage.stage2.bwt[diagonal + item] = (uint8_t)(suffixes[item] >> 16);
            }

            __syncthreads();
        }
    }

    {
        device_L += blockIdx.x * CUDA_BLOCK_THREADS * 5 + threadIdx.x * 16;
        if (threadIdx.x < (CUDA_BLOCK_THREADS * 5 / 16)) { ((uint4 *)device_L)[0] = ((uint4 *)shared_storage.stage2.bwt)[threadIdx.x]; }
    }
}

static cudaError_t libcubwt_compute_burrows_wheeler_transform(LIBCUBWT_DEVICE_STORAGE * storage, const uint8_t * T, int64_t input_n, int64_t r, uint32_t * I)
{
    cudaError_t status  = cudaSuccess;

    int64_t reduced_n   = (input_n   / 3) * 2 + 2;
    int64_t expanded_n  = (reduced_n / 2) * 3 + 0;
    int64_t num_indexes = (input_n + r - 1) / r;

    if ((status = libcubwt_initialize_device_arrays(storage, T, reduced_n, expanded_n, input_n)) == cudaSuccess)
    {
        status = libcubwt_sort_suffixes_by_prefix(storage, reduced_n);
    }

    if (status == cudaSuccess)
    {
        for (int64_t iteration = 0, depth = 4; true; iteration += 1, depth *= 2)
        {
            if ((status = libcubwt_rank_and_segment_suffixes(storage, reduced_n, iteration)) != cudaSuccess)
            {
                break;
            }

            if (storage->num_unsorted_segments == 0)
            {
                break;
            }

            if ((status = libcubwt_update_suffix_sorting_keys(storage, reduced_n, iteration, depth)) != cudaSuccess)
            {
                break;
            }

            if ((status = libcubwt_sort_segmented_suffixes_by_rank(storage, reduced_n)) != cudaSuccess)
            {
                break;
            }
        }
    }

    if (status == cudaSuccess)
    {
        int64_t num_mod0_suffixes  = (input_n / 3) * 1 + ((input_n % 3) != 0);
        int64_t num_mod12_suffixes = (input_n / 3) * 2 + ((input_n % 3) == 2);

        if ((status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(storage->device_temp_ISA, storage->device_ISA, reduced_n * sizeof(uint32_t), cudaMemcpyDeviceToDevice, storage->cuda_stream))) == cudaSuccess)
        {
            cub::DoubleBuffer<uint64_t> db_mod12_suffixes(storage->device_keys_temp_keys, storage->device_SA_temp_SA);

            if (status == cudaSuccess)
            {
                {
                    int64_t n_preparing_blocks = (num_mod12_suffixes + storage->cuda_block_threads * 8 - 1) / (storage->cuda_block_threads * 8);

                    if (num_indexes > 1)
                    {
                        uint32_t rm = (uint32_t)(r - 1), rs = 0; while (rm >= ((uint32_t)1 << rs)) { rs += 1; }

                        libcubwt_prepare_mod12_suffixes_kernel<true><<<(uint32_t)n_preparing_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            storage->device_T, storage->device_ISA,
                            db_mod12_suffixes.Current(),
                            rm, rs);
                    }
                    else
                    {
                        libcubwt_prepare_mod12_suffixes_kernel<false><<<(uint32_t)n_preparing_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            storage->device_T, storage->device_ISA,
                            db_mod12_suffixes.Current(),
                            0, 0);
                    }
                }

                {
                    cub::DoubleBuffer<uint32_t> db_index(storage->device_ISA, storage->device_offsets);
                    status = libcubwt_scatter_values_uint64(storage, db_index, db_mod12_suffixes, num_mod12_suffixes, reduced_n, reduced_n - num_mod12_suffixes);
                }
            }

            cub::DoubleBuffer<uint32_t> db_mod0h_suffixes(storage->device_ISA, storage->device_offsets);
            cub::DoubleBuffer<uint64_t> db_mod0l_suffixes = db_mod12_suffixes.Current() == storage->device_keys_temp_keys
                ? cub::DoubleBuffer<uint64_t>((uint64_t *)storage->device_SA, (uint64_t *)storage->device_temp_SA)
                : cub::DoubleBuffer<uint64_t>((uint64_t *)storage->device_keys, (uint64_t *)storage->device_temp_keys);

            if (status == cudaSuccess)
            {
                {
                    int64_t n_preparing_blocks = (num_mod0_suffixes + storage->cuda_block_threads * 2 - 1) / (storage->cuda_block_threads * 2);

                    if (num_indexes > 1)
                    {
                        uint32_t rm = (uint32_t)(r - 1), rs = 0; while (rm >= ((uint32_t)1 << rs)) { rs += 1; }

                        libcubwt_prepare_mod0_suffixes_kernel<true><<<(uint32_t)n_preparing_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            storage->device_T, storage->device_temp_ISA,
                            db_mod0l_suffixes.Current(), db_mod0h_suffixes.Current(),
                            rm, rs);
                    }
                    else
                    {
                        libcubwt_prepare_mod0_suffixes_kernel<false><<<(uint32_t)n_preparing_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            storage->device_T, storage->device_temp_ISA,
                            db_mod0l_suffixes.Current(), db_mod0h_suffixes.Current(),
                            0, 0);
                    }
                }

                if (reduced_n <= (1 << 24))
                {
                    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
                        storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
                        db_mod0l_suffixes, db_mod0h_suffixes,
                        (uint32_t)num_mod0_suffixes,
                        0, 24,
                        storage->cuda_stream));

                    if (status == cudaSuccess)
                    {
                        status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
                            storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
                            db_mod0l_suffixes, db_mod0h_suffixes,
                            (uint32_t)num_mod0_suffixes,
                            32, 40,
                            storage->cuda_stream));
                    }
                }
                else
                {
                    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(
                        storage->device_rsort_temp_storage, storage->device_rsort_temp_storage_size,
                        db_mod0l_suffixes, db_mod0h_suffixes,
                        (uint32_t)num_mod0_suffixes,
                        0, 40,
                        storage->cuda_stream));
                }
            }

            if (status == cudaSuccess)
            {
                int64_t n_merging_blocks = (input_n + storage->cuda_block_threads * 5 - 1) / (storage->cuda_block_threads * 5);

                {
                    libcubwt_set_sentinel_suffixes_kernel<<<6, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        db_mod0l_suffixes.Current() + num_mod0_suffixes,
                        db_mod0h_suffixes.Current() + num_mod0_suffixes,
                        db_mod12_suffixes.Current() + num_mod12_suffixes);
                }

                {
                    int64_t n_merge_initialization_blocks = 1 + (n_merging_blocks / storage->cuda_block_threads);

                    libcubwt_suffixes_merge_initialization_kernel<<<(uint32_t)n_merge_initialization_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                        db_mod0l_suffixes.Current(), db_mod0h_suffixes.Current(), (uint32_t)(num_mod0_suffixes + 6 * storage->cuda_block_threads),
                        db_mod12_suffixes.Current(), (uint32_t)(num_mod12_suffixes + 6 * storage->cuda_block_threads),
                        (uint32_t *)storage->device_descriptors_large, (uint32_t)n_merging_blocks);
                }

                {
                    if (num_indexes > 1)
                    {
                        libcubwt_merge_suffixes_kernel<true><<<(uint32_t)n_merging_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            db_mod0l_suffixes.Current(), db_mod0h_suffixes.Current(), db_mod12_suffixes.Current(),
                            (uint32_t *)storage->device_descriptors_large,
                            (uint32_t *)storage->device_descriptors_small - 1,
                            storage->device_T);
                    }
                    else
                    {
                        libcubwt_merge_suffixes_kernel<false><<<(uint32_t)n_merging_blocks, storage->cuda_block_threads, 0, storage->cuda_stream>>>(
                            db_mod0l_suffixes.Current(), db_mod0h_suffixes.Current(), db_mod12_suffixes.Current(),
                            (uint32_t *)storage->device_descriptors_large,
                            (uint32_t *)storage->device_descriptors_small - 1,
                            storage->device_T);
                    }
                }
            }

            if (status == cudaSuccess)
            {
                uint32_t * buffer = ((sizeof(uint32_t) * num_indexes) <= storage->host_pinned_storage_size) ? (uint32_t *)storage->host_pinned_storage : I;

                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(buffer, storage->device_descriptors_small, sizeof(uint32_t) * num_indexes, cudaMemcpyDeviceToHost, storage->cuda_stream), status);

                if ((status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamSynchronize(storage->cuda_stream), status)) == cudaSuccess)
                {
                    if (I != buffer) { memcpy(I, buffer, sizeof(uint32_t) * num_indexes); }

                    for (int64_t index = 0; index < num_indexes; index += 1) { I[index] += 1; }
                }
            }
        }
    }

    return status;
}

static cudaError_t libcubwt_copy_burrows_wheeler_transform(LIBCUBWT_DEVICE_STORAGE * storage, const uint8_t * T, uint8_t * L, int64_t input_n, int64_t index)
{
    cudaError_t status = cudaSuccess;

    L[0] = T[input_n - 1];

    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(L + 1, storage->device_T, (size_t)(index - 1), cudaMemcpyDeviceToHost, storage->cuda_stream), status);
    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMemcpyAsync(L + index, storage->device_T + index, (size_t)(input_n - index), cudaMemcpyDeviceToHost, storage->cuda_stream), status);

    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamSynchronize(storage->cuda_stream), status);

    return status;
}

int64_t libcubwt_allocate_device_storage(void ** device_storage, int64_t max_length)
{
    int64_t max_reduced_length  = ((max_length         / 3) * 2 + 2 + 1023) & (-1024);
    int64_t max_expanded_length = ((max_reduced_length / 2) * 3 + 0 + 1023) & (-1024);

    if ((device_storage == NULL) || (max_expanded_length >= INT32_MAX))
    {
        return LIBCUBWT_BAD_PARAMETER;
    }

    *device_storage = NULL;

    LIBCUBWT_DEVICE_STORAGE * storage = (LIBCUBWT_DEVICE_STORAGE *)malloc(sizeof(LIBCUBWT_DEVICE_STORAGE));
    if (storage != NULL)
    {
        memset(storage, 0, sizeof(LIBCUBWT_DEVICE_STORAGE));

        cudaError_t status = cudaSuccess;

        {
            int32_t cuda_device_ordinal;
            int32_t cuda_device_L2_cache_size;
            int32_t cuda_device_capability;

            libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaGetDevice(&cuda_device_ordinal), status);
            libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaDeviceGetAttribute(&cuda_device_L2_cache_size, cudaDevAttrL2CacheSize, cuda_device_ordinal), status);
            libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::PtxVersion(cuda_device_capability, cuda_device_ordinal), status);

            if (status == cudaSuccess)
            {
                storage->device_L2_cache_bits = 0; while (cuda_device_L2_cache_size >>= 1) { storage->device_L2_cache_bits += 1; };

                storage->cuda_block_threads = (cuda_device_capability == 860 || cuda_device_capability == 870 || cuda_device_capability == 890) ? 768 : 512;
            }
        }
               
        if (status == cudaSuccess)
        {
            int64_t num_descriptors = ((max_reduced_length / (storage->cuda_block_threads * 4)) + 1024) & (-1024);

            {
                cub::DoubleBuffer<uint8_t> uint8_db;
                cub::DoubleBuffer<uint32_t> uint32_db;
                cub::DoubleBuffer<uint64_t> uint64_db;

                size_t temp_radix_segmented_sort_k32v32 = 0;
                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceSegmentedSort::SortPairs(NULL, temp_radix_segmented_sort_k32v32, uint32_db, uint32_db, (int)max_reduced_length, (int)max_reduced_length / 2, uint32_db.Current(), uint32_db.Current()), status);

                size_t temp_radix_sort_k32v32 = 0;
                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(NULL, temp_radix_sort_k32v32, uint32_db, uint32_db, (uint32_t)max_reduced_length), status);

                size_t temp_radix_sort_k64v32 = 0;
                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(NULL, temp_radix_sort_k64v32, uint64_db, uint32_db, (uint32_t)max_reduced_length), status);

                size_t temp_radix_sort_k32v64 = 0;
                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cub::DeviceRadixSort::SortPairs(NULL, temp_radix_sort_k32v64, uint32_db, uint64_db, (uint32_t)max_reduced_length), status);

                storage->device_ssort_temp_storage_size = std::max(temp_radix_segmented_sort_k32v32, (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint32_t));
                storage->device_rsort_temp_storage_size = std::max(std::max(temp_radix_sort_k32v32, temp_radix_sort_k64v32), temp_radix_sort_k32v64);

                storage->device_ssort_temp_storage_size = (storage->device_ssort_temp_storage_size + (size_t)1023) & (size_t)(-1024);
                storage->device_rsort_temp_storage_size = (storage->device_rsort_temp_storage_size + (size_t)1023) & (size_t)(-1024);
            }

            if (status == cudaSuccess)
            {
                size_t device_storage_size = 0;

                device_storage_size += storage->device_ssort_temp_storage_size;
                device_storage_size += storage->device_rsort_temp_storage_size;

                device_storage_size += (max_expanded_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint8_t);

                device_storage_size += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint8_t);
                device_storage_size += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);
                device_storage_size += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);
                device_storage_size += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);

                device_storage_size += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint4);
                device_storage_size += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint4);
                device_storage_size += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint2);

                status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMalloc((void **)&storage->device_storage, device_storage_size), status);

                if (status == cudaSuccess)
                {
                    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaMallocHost((void **)&storage->host_pinned_storage, storage->host_pinned_storage_size = 256 * sizeof(uint32_t)), status);
                    status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamCreate(&storage->cuda_stream), status);
                }
            }

            if (status == cudaSuccess)
            {
                uint8_t * device_alloc              = (uint8_t *)storage->device_storage;

                storage->device_ssort_temp_storage  = (void *)device_alloc; device_alloc += storage->device_ssort_temp_storage_size;
                storage->device_rsort_temp_storage  = (void *)device_alloc; device_alloc += storage->device_rsort_temp_storage_size;

                storage->device_T                   = (uint8_t  *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (max_expanded_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint8_t);

                storage->device_heads               = (uint8_t  *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint8_t);
                storage->device_SA_temp_SA          = (uint64_t *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);
                storage->device_keys_temp_keys      = (uint64_t *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);
                storage->device_offsets_ISA         = (uint64_t *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (max_reduced_length + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint64_t);

                storage->device_descriptors_large   = (uint4    *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint4);
                storage->device_descriptors_copy    = (uint4    *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint4);
                storage->device_descriptors_small   = (uint2    *)(void *)device_alloc + CUDA_DEVICE_PADDING; device_alloc += (num_descriptors + (int64_t)2 * CUDA_DEVICE_PADDING) * sizeof(uint2);

                storage->device_temp_ISA            = (uint32_t *)(void *)storage->device_ssort_temp_storage + CUDA_DEVICE_PADDING;

                storage->device_SA                  = (uint32_t *)(void *)(storage->device_SA_temp_SA       - CUDA_DEVICE_PADDING) + 1 * CUDA_DEVICE_PADDING;
                storage->device_keys                = (uint32_t *)(void *)(storage->device_keys_temp_keys   - CUDA_DEVICE_PADDING) + 1 * CUDA_DEVICE_PADDING;
                storage->device_offsets             = (uint32_t *)(void *)(storage->device_offsets_ISA      - CUDA_DEVICE_PADDING) + 1 * CUDA_DEVICE_PADDING;

                storage->device_temp_SA             = (uint32_t *)(void *)(storage->device_SA_temp_SA       - CUDA_DEVICE_PADDING) + 3 * CUDA_DEVICE_PADDING + max_reduced_length;
                storage->device_temp_keys           = (uint32_t *)(void *)(storage->device_keys_temp_keys   - CUDA_DEVICE_PADDING) + 3 * CUDA_DEVICE_PADDING + max_reduced_length;
                storage->device_ISA                 = (uint32_t *)(void *)(storage->device_offsets_ISA      - CUDA_DEVICE_PADDING) + 3 * CUDA_DEVICE_PADDING + max_reduced_length;

                storage->max_length                 = max_length;

                *device_storage = storage;
                return LIBCUBWT_NO_ERROR;
            }
        }

        libcubwt_free_device_storage(storage);

        return libcubwt_get_error_code(status);
    }

    return LIBCUBWT_NOT_ENOUGH_MEMORY;
}

int64_t libcubwt_free_device_storage(void * device_storage)
{
    cudaError_t status = cudaSuccess;

    LIBCUBWT_DEVICE_STORAGE * storage = (LIBCUBWT_DEVICE_STORAGE *)device_storage;
    if (storage != NULL)
    {
        if (storage->device_storage != NULL)
        {
            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaStreamDestroy(storage->cuda_stream), status);
            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaFreeHost((void *)storage->host_pinned_storage), status);
            status = libcubwt_cuda_safe_call(__FILE__, __LINE__, cudaFree((void *)storage->device_storage), status);
        }

        free(storage);
    }

    return status != cudaSuccess ? libcubwt_get_error_code(status) : LIBCUBWT_NO_ERROR;
}

int64_t libcubwt_bwt(void * device_storage, const uint8_t * T, uint8_t * L, int64_t n)
{
    LIBCUBWT_DEVICE_STORAGE * storage = (LIBCUBWT_DEVICE_STORAGE *)device_storage;

    if ((storage == NULL) || (T == NULL) || (L == NULL) || (n < 16) || (n > storage->max_length))
    {
        return LIBCUBWT_BAD_PARAMETER;
    }

    cudaError_t status; uint32_t index;
    if ((status = libcubwt_compute_burrows_wheeler_transform(storage, T, n, n, &index)) == cudaSuccess &&
        (status = libcubwt_copy_burrows_wheeler_transform(storage, T, L, n, index)) == cudaSuccess)
    {
        return index;
    }

    return libcubwt_get_error_code(status);
}

int64_t libcubwt_bwt_aux(void * device_storage, const uint8_t * T, uint8_t * L, int64_t n, int64_t r, uint32_t * I)
{
    LIBCUBWT_DEVICE_STORAGE * storage = (LIBCUBWT_DEVICE_STORAGE *)device_storage;

    if ((storage == NULL) || (T == NULL) || (L == NULL) || (n < 16) || (n > storage->max_length) || (r < 4) || ((r & (r - 1)) != 0) || ((n + r - 1) / r > 255) || (I == NULL))
    {
        return LIBCUBWT_BAD_PARAMETER;
    }

    cudaError_t status;
    if ((status = libcubwt_compute_burrows_wheeler_transform(storage, T, n, r, I)) == cudaSuccess &&
        (status = libcubwt_copy_burrows_wheeler_transform(storage, T, L, n, I[0])) == cudaSuccess)
    {
        return LIBCUBWT_NO_ERROR;
    }

    return libcubwt_get_error_code(status);
}

	.file	"tmpxft_00354221_00000000-6_libcubwt.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	nvtxDomainRangePop, @function
nvtxDomainRangePop:
.LFB7561:
	.cfi_startproc
	movq	424+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L2
	jmp	*%rax
.L2:
	movl	$-2, %eax
	ret
	.cfi_endproc
.LFE7561:
	.size	nvtxDomainRangePop, .-nvtxDomainRangePop
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.weak	nvtxEtiGetModuleFunctionTable_v3
	.hidden	nvtxEtiGetModuleFunctionTable_v3
	.type	nvtxEtiGetModuleFunctionTable_v3, @function
nvtxEtiGetModuleFunctionTable_v3:
.LFB7572:
	.cfi_startproc
	endbr64
	decl	%edi
	xorl	%eax, %eax
	cmpl	$5, %edi
	ja	.L4
	leaq	.L7(%rip), %rcx
	movslq	(%rcx,%rdi,4), %rax
	addq	%rcx, %rax
	notrack jmp	*%rax
	.section	.rodata.nvtxEtiGetModuleFunctionTable_v3,"aG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.align 4
	.align 4
.L7:
	.long	.L12-.L7
	.long	.L17-.L7
	.long	.L10-.L7
	.long	.L9-.L7
	.long	.L8-.L7
	.long	.L6-.L7
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
.L12:
	leaq	560+nvtxGlobals_v3(%rip), %rcx
	jmp	.L21
.L10:
	leaq	776+nvtxGlobals_v3(%rip), %rcx
	movl	$128, %eax
	jmp	.L11
.L9:
	leaq	904+nvtxGlobals_v3(%rip), %rcx
	jmp	.L22
.L8:
	leaq	968+nvtxGlobals_v3(%rip), %rcx
.L21:
	movl	$136, %eax
	jmp	.L11
.L6:
	leaq	1104+nvtxGlobals_v3(%rip), %rcx
.L22:
	movl	$64, %eax
	jmp	.L11
.L17:
	leaq	696+nvtxGlobals_v3(%rip), %rcx
	movl	$80, %eax
.L11:
	testq	%rdx, %rdx
	je	.L13
	shrl	$3, %eax
	decl	%eax
	movl	%eax, (%rdx)
.L13:
	testq	%rsi, %rsi
	jne	.L14
.L15:
	movl	$1, %eax
	ret
.L14:
	movq	%rcx, (%rsi)
	jmp	.L15
.L4:
	ret
	.cfi_endproc
.LFE7572:
	.size	nvtxEtiGetModuleFunctionTable_v3, .-nvtxEtiGetModuleFunctionTable_v3
	.section	.text.nvtxGetExportTable_v3,"axG",@progbits,nvtxGetExportTable_v3,comdat
	.weak	nvtxGetExportTable_v3
	.hidden	nvtxGetExportTable_v3
	.type	nvtxGetExportTable_v3, @function
nvtxGetExportTable_v3:
.LFB7573:
	.cfi_startproc
	endbr64
	leaq	8+nvtxGlobals_v3(%rip), %rax
	cmpl	$1, %edi
	je	.L23
	cmpl	$3, %edi
	leaq	16(%rax), %rax
	movl	$0, %edx
	cmovne	%rdx, %rax
.L23:
	ret
	.cfi_endproc
.LFE7573:
	.size	nvtxGetExportTable_v3, .-nvtxGetExportTable_v3
	.section	.text.nvtxEtiSetInjectionNvtxVersion_v3,"axG",@progbits,nvtxEtiSetInjectionNvtxVersion_v3,comdat
	.weak	nvtxEtiSetInjectionNvtxVersion_v3
	.hidden	nvtxEtiSetInjectionNvtxVersion_v3
	.type	nvtxEtiSetInjectionNvtxVersion_v3, @function
nvtxEtiSetInjectionNvtxVersion_v3:
.LFB7574:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE7574:
	.size	nvtxEtiSetInjectionNvtxVersion_v3, .-nvtxEtiSetInjectionNvtxVersion_v3
	.section	.text._ZN4cuda3__410cuda_errorD2Ev,"axG",@progbits,_ZN4cuda3__410cuda_errorD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__410cuda_errorD2Ev
	.type	_ZN4cuda3__410cuda_errorD2Ev, @function
_ZN4cuda3__410cuda_errorD2Ev:
.LFB8024:
	.cfi_startproc
	endbr64
	leaq	16+_ZTVN4cuda3__410cuda_errorE(%rip), %rax
	movq	%rax, (%rdi)
	jmp	_ZNSt13runtime_errorD2Ev@PLT
	.cfi_endproc
.LFE8024:
	.size	_ZN4cuda3__410cuda_errorD2Ev, .-_ZN4cuda3__410cuda_errorD2Ev
	.weak	_ZN4cuda3__410cuda_errorD1Ev
	.set	_ZN4cuda3__410cuda_errorD1Ev,_ZN4cuda3__410cuda_errorD2Ev
	.section	.text._ZN4cuda3__410cuda_errorD0Ev,"axG",@progbits,_ZN4cuda3__410cuda_errorD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__410cuda_errorD0Ev
	.type	_ZN4cuda3__410cuda_errorD0Ev, @function
_ZN4cuda3__410cuda_errorD0Ev:
.LFB8026:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	_ZN4cuda3__410cuda_errorD1Ev
	movq	8(%rsp), %rdi
	movl	$16, %esi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE8026:
	.size	_ZN4cuda3__410cuda_errorD0Ev, .-_ZN4cuda3__410cuda_errorD0Ev
	.text
	.type	_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll, @function
_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll:
.LFB11760:
	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movb	-1(%rcx,%rsi), %al
	movl	$2, %ecx
	movb	%al, (%rdx)
	leaq	-1(%r8), %rdx
	movq	32(%rdi), %rsi
	leaq	1(%r12), %rdi
	movq	208(%rbp), %r8
	call	cudaMemcpyAsync@PLT
	movq	32(%rbp), %rsi
	movq	%r13, %rdx
	leaq	(%r12,%r14), %rdi
	movq	208(%rbp), %r8
	subq	%r14, %rdx
	movl	$2, %ecx
	movl	%eax, %ebx
	addq	%r14, %rsi
	call	cudaMemcpyAsync@PLT
	movq	208(%rbp), %rdi
	testl	%eax, %eax
	cmovne	%eax, %ebx
	call	cudaStreamSynchronize@PLT
	testl	%eax, %eax
	cmovne	%eax, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11760:
	.size	_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll, .-_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll
	.type	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im, @function
_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im:
.LFB13273:
	.cfi_startproc
	xorl	%r8d, %r8d
	jmp	cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags@PLT
	.cfi_endproc
.LFE13273:
	.size	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im, .-_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKmPmPKjPjS5_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS7_6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjPKmPmS2_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS7_6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjS1_S2_S2_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjiEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.set	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im,_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB11777:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE11777:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_ZL23libcubwt_get_error_code9cudaError, @function
_ZL23libcubwt_get_error_code9cudaError:
.LFB11728:
	.cfi_startproc
	movq	$-9, %rax
	cmpl	$2, %edi
	je	.L42
	cmpl	$100, %edi
	sete	%dl
	cmpl	$46, %edi
	sete	%al
	orl	%eax, %edx
	movq	$-7, %rax
	movzbl	%dl, %edx
	subq	%rdx, %rax
.L42:
	ret
	.cfi_endproc
.LFE11728:
	.size	_ZL23libcubwt_get_error_code9cudaError, .-_ZL23libcubwt_get_error_code9cudaError
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13557:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	20(%rdi), %ecx
	movq	32(%rax), %r9
	movq	128(%rsp), %rdx
	movq	112(%rsp), %r10
	movq	%rsi, (%rsp)
	movq	120(%rsp), %r11
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	movq	96(%rsp), %r14
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	movq	%r10, 24(%rsp)
	movq	%r11, 16(%rsp)
	movq	104(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L46
	subq	$48, %rsp
	.cfi_def_cfa_offset 144
	movl	$10, %ecx
	movq	56(%rsp), %rsi
	movq	%rsp, %rdi
	rep movsl
	movq	64(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 152
	movq	80(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 160
	movq	64(%rsp), %rax
	movl	(%r15), %r9d
	movq	(%r14), %r8
	movq	0(%r13), %rcx
	movq	(%r12), %rdx
	movq	0(%rbp), %rsi
	movq	(%rbx), %rdi
	call	*%rax
	addq	$64, %rsp
	.cfi_def_cfa_offset 96
.L46:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13557:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13558:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	88(%rsp), %rdx
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	80(%rsp), %r14
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L49
	subq	$48, %rsp
	.cfi_def_cfa_offset 128
	movl	$10, %ecx
	movq	56(%rsp), %rsi
	movq	%rsp, %rdi
	rep movsl
	movl	(%r14), %r8d
	movl	(%r15), %ecx
	movl	0(%r13), %edx
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
	addq	$48, %rsp
	.cfi_def_cfa_offset 80
.L49:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13558:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13559:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	20(%rdi), %ecx
	movq	32(%rax), %r9
	movq	128(%rsp), %rdx
	movq	112(%rsp), %r10
	movq	%rsi, (%rsp)
	movq	120(%rsp), %r11
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	movq	96(%rsp), %r14
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	movq	%r10, 24(%rsp)
	movq	%r11, 16(%rsp)
	movq	104(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L52
	subq	$48, %rsp
	.cfi_def_cfa_offset 144
	movl	$10, %ecx
	movq	56(%rsp), %rsi
	movq	%rsp, %rdi
	rep movsl
	movq	64(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 152
	movq	80(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 160
	movq	64(%rsp), %rax
	movl	(%r15), %r9d
	movq	(%r14), %r8
	movq	0(%r13), %rcx
	movq	(%r12), %rdx
	movq	0(%rbp), %rsi
	movq	(%rbx), %rdi
	call	*%rax
	addq	$64, %rsp
	.cfi_def_cfa_offset 96
.L52:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13559:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13560:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	20(%rdi), %ecx
	movq	32(%rax), %r9
	movq	128(%rsp), %rdx
	movq	112(%rsp), %r10
	movq	%rsi, (%rsp)
	movq	120(%rsp), %r11
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	movq	96(%rsp), %r14
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	movq	%r10, 24(%rsp)
	movq	%r11, 16(%rsp)
	movq	104(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L55
	subq	$48, %rsp
	.cfi_def_cfa_offset 144
	movl	$10, %ecx
	movq	56(%rsp), %rsi
	movq	%rsp, %rdi
	rep movsl
	movq	64(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 152
	movq	80(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 160
	movq	64(%rsp), %rax
	movl	(%r15), %r9d
	movq	(%r14), %r8
	movq	0(%r13), %rcx
	movq	(%r12), %rdx
	movq	0(%rbp), %rsi
	movq	(%rbx), %rdi
	call	*%rax
	addq	$64, %rsp
	.cfi_def_cfa_offset 96
.L55:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13560:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	.text
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13561:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rdi), %rax
	movq	%rsi, %rbx
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rdi), %esi
	movq	32(%rdi), %r9
	movq	24(%rdi), %r8
	movq	%rax, %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L58
	movl	(%r12), %esi
	movq	0(%rbp), %rdi
	call	*%rbx
.L58:
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13561:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13562:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	88(%rsp), %rdx
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	80(%rsp), %r14
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L61
	subq	$48, %rsp
	.cfi_def_cfa_offset 128
	movl	$10, %ecx
	movq	56(%rsp), %rsi
	movq	%rsp, %rdi
	rep movsl
	movl	(%r14), %r8d
	movl	(%r15), %ecx
	movl	0(%r13), %edx
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
	addq	$48, %rsp
	.cfi_def_cfa_offset 80
.L61:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13562:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13563:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	%rsi, 8(%rsp)
	movq	144(%rsp), %r10
	movq	152(%rsp), %r11
	movl	8(%rax), %esi
	movq	%rdx, 16(%rsp)
	movq	12(%rdi), %rdx
	movq	112(%rsp), %r14
	movq	%rcx, 24(%rsp)
	movl	20(%rdi), %ecx
	movq	(%rdi), %rdi
	movq	%r10, 40(%rsp)
	movq	%r11, 32(%rsp)
	movq	120(%rsp), %r15
	movq	128(%rsp), %r12
	movq	136(%rsp), %r13
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L64
	movq	32(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 120
	movq	48(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 128
	movups	0(%r13), %xmm0
	subq	$48, %rsp
	.cfi_def_cfa_offset 176
	movups	%xmm0, 24(%rsp)
	movq	16(%r13), %rax
	movq	%rax, 40(%rsp)
	movups	(%r12), %xmm1
	movups	%xmm1, (%rsp)
	movq	16(%r12), %rax
	movq	%rax, 16(%rsp)
	movq	88(%rsp), %rax
	movq	(%r15), %r9
	movq	(%r14), %r8
	movq	(%rax), %rsi
	movq	80(%rsp), %rax
	movq	0(%rbp), %rcx
	movq	(%rbx), %rdx
	movl	(%rax), %edi
	movq	72(%rsp), %rax
	call	*%rax
	addq	$64, %rsp
	.cfi_def_cfa_offset 112
.L64:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13563:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13564:
	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %rax
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	pushq	%r9
	.cfi_def_cfa_offset 48
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	(%rdi), %rdi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L67
	movq	0(%r13), %rdx
	movl	(%r12), %esi
	movq	0(%rbp), %rdi
	call	*%rbx
.L67:
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13564:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	.text
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13565:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	32(%rax), %r9
	movq	152(%rsp), %r10
	movq	160(%rsp), %r11
	movq	%rsi, (%rsp)
	movq	112(%rsp), %rbp
	movq	120(%rsp), %r12
	movq	%rdx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	%r8, 24(%rsp)
	movq	%r10, 40(%rsp)
	movq	128(%rsp), %r13
	movq	136(%rsp), %r14
	movq	144(%rsp), %r15
	movq	%r11, 32(%rsp)
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L70
	pushq	%rax
	.cfi_def_cfa_offset 120
	movq	40(%rsp), %r11
	pushq	(%r11)
	.cfi_def_cfa_offset 128
	movq	56(%rsp), %r10
	pushq	(%r10)
	.cfi_def_cfa_offset 136
	pushq	(%r15)
	.cfi_def_cfa_offset 144
	pushq	(%r14)
	.cfi_def_cfa_offset 152
	pushq	0(%r13)
	.cfi_def_cfa_offset 160
	movq	72(%rsp), %rax
	movq	(%r12), %r9
	movq	0(%rbp), %r8
	movl	(%rax), %edx
	movq	64(%rsp), %rax
	movq	(%rbx), %rcx
	movl	(%rax), %esi
	movq	56(%rsp), %rax
	movl	(%rax), %edi
	movq	48(%rsp), %rax
	call	*%rax
	addq	$48, %rsp
	.cfi_def_cfa_offset 112
.L70:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13565:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13566:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	20(%rdi), %ecx
	movq	32(%rax), %r9
	movq	120(%rsp), %r10
	movq	24(%rax), %r8
	movq	%rsi, (%rsp)
	movq	128(%rsp), %r11
	movl	8(%rax), %esi
	movq	%rdx, 8(%rsp)
	movq	12(%rdi), %rdx
	movq	(%rdi), %rdi
	movq	%r10, 24(%rsp)
	movq	96(%rsp), %r13
	movq	104(%rsp), %r14
	movq	%r11, 16(%rsp)
	movq	112(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L73
	movq	(%rbx), %rcx
	pushq	%rax
	.cfi_def_cfa_offset 104
	movq	24(%rsp), %r11
	pushq	(%r11)
	.cfi_def_cfa_offset 112
	movq	40(%rsp), %r10
	pushq	(%r10)
	.cfi_def_cfa_offset 120
	pushq	8(%r15)
	.cfi_def_cfa_offset 128
	pushq	(%r15)
	.cfi_def_cfa_offset 136
	pushq	(%r14)
	.cfi_def_cfa_offset 144
	movq	56(%rsp), %rax
	movq	0(%r13), %r9
	movq	8(%rbx), %r8
	movq	(%rax), %rdi
	movq	(%r12), %rdx
	movq	48(%rsp), %rax
	movq	0(%rbp), %rsi
	call	*%rax
	addq	$48, %rsp
	.cfi_def_cfa_offset 96
.L73:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13566:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13567:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	112(%rsp), %r10
	movq	120(%rsp), %r11
	movq	%rsi, 8(%rsp)
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	%r10, 24(%rsp)
	movq	96(%rsp), %r14
	movq	104(%rsp), %r15
	movq	%r11, 16(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L76
	movq	16(%rsp), %r11
	movq	0(%r13), %rax
	movq	8(%r13), %rdx
	pushq	(%r11)
	.cfi_def_cfa_offset 104
	movq	32(%rsp), %r10
	movq	%rdx, %rcx
	movq	%rax, %rdx
	pushq	(%r10)
	.cfi_def_cfa_offset 112
	pushq	8(%r15)
	.cfi_def_cfa_offset 120
	pushq	(%r15)
	.cfi_def_cfa_offset 128
	movq	40(%rsp), %rax
	movq	(%r14), %r9
	movq	(%r12), %r8
	movq	0(%rbp), %rsi
	movq	(%rbx), %rdi
	call	*%rax
	addq	$32, %rsp
	.cfi_def_cfa_offset 96
.L76:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13567:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13568:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	32(%rax), %r9
	movq	152(%rsp), %r10
	movq	160(%rsp), %r11
	movq	%rsi, (%rsp)
	movq	112(%rsp), %rbp
	movq	120(%rsp), %r12
	movq	%rdx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	%r8, 24(%rsp)
	movq	%r10, 40(%rsp)
	movq	128(%rsp), %r13
	movq	136(%rsp), %r14
	movq	144(%rsp), %r15
	movq	%r11, 32(%rsp)
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L79
	pushq	%rax
	.cfi_def_cfa_offset 120
	movq	40(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 128
	movq	56(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 136
	movl	(%r15), %eax
	pushq	%rax
	.cfi_def_cfa_offset 144
	pushq	(%r14)
	.cfi_def_cfa_offset 152
	pushq	0(%r13)
	.cfi_def_cfa_offset 160
	movq	72(%rsp), %rax
	movq	(%r12), %r9
	movq	0(%rbp), %r8
	movq	(%rax), %rdx
	movq	64(%rsp), %rax
	movq	(%rbx), %rcx
	movq	(%rax), %rsi
	movq	56(%rsp), %rax
	movq	(%rax), %rdi
	movq	48(%rsp), %rax
	call	*%rax
	addq	$48, %rsp
	.cfi_def_cfa_offset 112
.L79:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13568:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13569:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	pushq	%r10
	.cfi_def_cfa_offset 64
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	(%rdi), %rdi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	64(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L82
	movl	(%r15), %r8d
	movl	(%r14), %ecx
	movl	0(%r13), %edx
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
.L82:
	popq	%rax
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13569:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13570:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	32(%rax), %r9
	movq	152(%rsp), %r10
	movq	160(%rsp), %r11
	movq	%rsi, (%rsp)
	movq	112(%rsp), %rbp
	movq	120(%rsp), %r12
	movq	%rdx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	%r8, 24(%rsp)
	movq	%r10, 40(%rsp)
	movq	128(%rsp), %r13
	movq	136(%rsp), %r14
	movq	144(%rsp), %r15
	movq	%r11, 32(%rsp)
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L85
	pushq	%rax
	.cfi_def_cfa_offset 120
	movq	40(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 128
	movq	56(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 136
	movl	(%r15), %eax
	pushq	%rax
	.cfi_def_cfa_offset 144
	pushq	(%r14)
	.cfi_def_cfa_offset 152
	pushq	0(%r13)
	.cfi_def_cfa_offset 160
	movq	72(%rsp), %rax
	movq	(%r12), %r9
	movq	0(%rbp), %r8
	movq	(%rax), %rdx
	movq	64(%rsp), %rax
	movq	(%rbx), %rcx
	movq	(%rax), %rsi
	movq	56(%rsp), %rax
	movq	(%rax), %rdi
	movq	48(%rsp), %rax
	call	*%rax
	addq	$48, %rsp
	.cfi_def_cfa_offset 112
.L85:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13570:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13571:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	32(%rax), %r9
	movq	152(%rsp), %r10
	movq	160(%rsp), %r11
	movq	%rsi, (%rsp)
	movq	112(%rsp), %rbp
	movq	120(%rsp), %r12
	movq	%rdx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	%r8, 24(%rsp)
	movq	%r10, 40(%rsp)
	movq	128(%rsp), %r13
	movq	136(%rsp), %r14
	movq	144(%rsp), %r15
	movq	%r11, 32(%rsp)
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	24(%rax), %r8
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L88
	pushq	%rax
	.cfi_def_cfa_offset 120
	movq	40(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 128
	movq	56(%rsp), %r10
	movl	(%r10), %eax
	pushq	%rax
	.cfi_def_cfa_offset 136
	movl	(%r15), %eax
	pushq	%rax
	.cfi_def_cfa_offset 144
	pushq	(%r14)
	.cfi_def_cfa_offset 152
	pushq	0(%r13)
	.cfi_def_cfa_offset 160
	movq	72(%rsp), %rax
	movq	(%r12), %r9
	movq	0(%rbp), %r8
	movq	(%rax), %rdx
	movq	64(%rsp), %rax
	movq	(%rbx), %rcx
	movq	(%rax), %rsi
	movq	56(%rsp), %rax
	movq	(%rax), %rdi
	movq	48(%rsp), %rax
	call	*%rax
	addq	$48, %rsp
	.cfi_def_cfa_offset 112
.L88:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13571:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	.text
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13572:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	pushq	%r10
	.cfi_def_cfa_offset 64
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	(%rdi), %rdi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	64(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L91
	movl	(%r15), %r8d
	movl	(%r14), %ecx
	movl	0(%r13), %edx
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
.L91:
	popq	%rax
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13572:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13573:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	88(%rsp), %r10
	movq	96(%rsp), %r11
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	%r10, 8(%rsp)
	movq	%r11, (%rsp)
	movq	80(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L94
	pushq	%rax
	.cfi_def_cfa_offset 88
	movq	8(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r10
	movq	(%r14), %rcx
	movq	0(%r13), %rdx
	movl	(%r10), %r9d
	movl	(%r15), %r8d
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
.L94:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13573:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13574:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	88(%rsp), %r10
	movq	96(%rsp), %r11
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	%r10, 8(%rsp)
	movq	%r11, (%rsp)
	movq	80(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L97
	pushq	%rax
	.cfi_def_cfa_offset 88
	movq	8(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r10
	movq	(%r14), %rcx
	movq	0(%r13), %rdx
	movl	(%r10), %r9d
	movl	(%r15), %r8d
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
.L97:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13574:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0:
.LFB13575:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movq	88(%rsp), %r10
	movq	96(%rsp), %r11
	movq	(%rdi), %rdi
	movl	8(%rax), %esi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	%r10, 8(%rsp)
	movq	%r11, (%rsp)
	movq	80(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L100
	pushq	%rax
	.cfi_def_cfa_offset 88
	movq	8(%rsp), %r11
	movl	(%r11), %eax
	pushq	%rax
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r10
	movq	(%r14), %rcx
	movq	0(%r13), %rdx
	movl	(%r10), %r9d
	movl	(%r15), %r8d
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
.L100:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13575:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	.text
	.type	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0, @function
_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0:
.LFB13576:
	.cfi_startproc
	jmp	cudaLaunchKernel@PLT
	.cfi_endproc
.LFE13576:
	.size	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0, .-_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	.type	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh, @function
_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh:
.LFB11847:
	.cfi_startproc
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	40(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L103
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L103:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L105
	call	__stack_chk_fail@PLT
.L105:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11847:
	.size	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh, .-_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
	.type	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh, @function
_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh:
.LFB11845:
	.cfi_startproc
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	40(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L107
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L107:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L109
	call	__stack_chk_fail@PLT
.L109:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11845:
	.size	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh, .-_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
	.type	_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj, @function
_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj:
.LFB11835:
	.cfi_startproc
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movl	%edx, 12(%rsp)
	leaq	56(%rsp), %rdx
	movl	%r8d, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 24(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	176(%rsp), %rax
	movq	%rsi, 32(%rsp)
	leaq	84(%rsp), %rsi
	movq	%rcx, 40(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movq	%r9, 48(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L111
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L111:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L113
	call	__stack_chk_fail@PLT
.L113:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11835:
	.size	_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj, .-_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj
	.type	_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj, @function
_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj:
.LFB11836:
	.cfi_startproc
	endbr64
	jmp	_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj
	.cfi_endproc
.LFE11836:
	.size	_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj, .-_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj
	.type	_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_, @function
_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_:
.LFB11833:
	.cfi_startproc
	subq	$104, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	32(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	8(%rsp), %rax
	leaq	40(%rsp), %rdi
	movq	%rax, 72(%rsp)
	leaq	16(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	52(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	24(%rsp), %rdx
	movq	%rax, 80(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movl	$1, 48(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L116
	pushq	32(%rsp)
	.cfi_def_cfa_offset 120
	leaq	_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 128
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	80(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 120
	popq	%rdx
	.cfi_def_cfa_offset 112
.L116:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L118
	call	__stack_chk_fail@PLT
.L118:
	addq	$104, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11833:
	.size	_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_, .-_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_
	.type	_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_, @function
_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_:
.LFB11834:
	.cfi_startproc
	endbr64
	jmp	_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_
	.cfi_endproc
.LFE11834:
	.size	_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_, .-_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_
	.type	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj, @function
_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj:
.LFB11843:
	.cfi_startproc
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	%r8d, 12(%rsp)
	movl	%r9d, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	8(%rsp), %rax
	movq	%rsi, 24(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 32(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 40(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L121
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L121:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L123
	call	__stack_chk_fail@PLT
.L123:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11843:
	.size	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj, .-_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
	.type	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj, @function
_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj:
.LFB11841:
	.cfi_startproc
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	%r8d, 12(%rsp)
	movl	%r9d, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	8(%rsp), %rax
	movq	%rsi, 24(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 32(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 40(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L125
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L125:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L127
	call	__stack_chk_fail@PLT
.L127:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11841:
	.size	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj, .-_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
	.type	_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj, @function
_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj:
.LFB11805:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movl	%ecx, 12(%rsp)
	leaq	56(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 24(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rsi, 32(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 40(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L129
	pushq	56(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 160
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L129:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L131
	call	__stack_chk_fail@PLT
.L131:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11805:
	.size	_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj, .-_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj
	.type	_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj, @function
_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj:
.LFB11806:
	.cfi_startproc
	endbr64
	jmp	_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj
	.cfi_endproc
.LFE11806:
	.size	_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj, .-_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj
	.type	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj, @function
_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj:
.LFB11839:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movl	%ecx, 12(%rsp)
	leaq	48(%rsp), %rcx
	movl	%r8d, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rax, 80(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	8(%rsp), %rax
	movq	%rsi, 24(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 32(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L134
	pushq	48(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 160
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L134:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L136
	call	__stack_chk_fail@PLT
.L136:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11839:
	.size	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj, .-_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj
	.type	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj, @function
_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj:
.LFB11837:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movl	%ecx, 12(%rsp)
	leaq	48(%rsp), %rcx
	movl	%r8d, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rax, 80(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	8(%rsp), %rax
	movq	%rsi, 24(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 32(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L138
	pushq	48(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 160
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L138:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L140
	call	__stack_chk_fail@PLT
.L140:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11837:
	.size	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj, .-_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj
	.type	_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, @function
_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj:
.LFB11799:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdi, 24(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 12(%rsp)
	leaq	56(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rax, 88(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L142
	pushq	56(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 160
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L142:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L144
	call	__stack_chk_fail@PLT
.L144:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11799:
	.size	_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, .-_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.type	_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj, @function
_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj:
.LFB11800:
	.cfi_startproc
	endbr64
	jmp	_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.cfi_endproc
.LFE11800:
	.size	_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj, .-_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj
	.type	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2, @function
_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2:
.LFB11831:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	56(%rsp), %rdi
	movq	%rax, 80(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	32(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	48(%rsp), %rcx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L147
	pushq	48(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 160
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L147:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L149
	call	__stack_chk_fail@PLT
.L149:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11831:
	.size	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2, .-_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
	.type	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2, @function
_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2:
.LFB11829:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	56(%rsp), %rdi
	movq	%rax, 80(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	32(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	48(%rsp), %rcx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L151
	pushq	48(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 160
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L151:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L153
	call	__stack_chk_fail@PLT
.L153:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11829:
	.size	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2, .-_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
	.type	_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj, @function
_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj:
.LFB11827:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	48(%rsp), %rdi
	movq	%rax, 72(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	24(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	60(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	32(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	40(%rsp), %rcx
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 48(%rsp)
	movl	$1, 56(%rsp)
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L155
	pushq	40(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj(%rip), %rdi
	pushq	40(%rsp)
	.cfi_def_cfa_offset 144
	movq	76(%rsp), %rcx
	movl	84(%rsp), %r8d
	movq	64(%rsp), %rsi
	movl	72(%rsp), %edx
	leaq	88(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L155:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L157
	call	__stack_chk_fail@PLT
.L157:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11827:
	.size	_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj, .-_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj
	.type	_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj, @function
_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj:
.LFB11828:
	.cfi_startproc
	endbr64
	jmp	_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj
	.cfi_endproc
.LFE11828:
	.size	_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj, .-_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj
	.type	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, @function
_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_:
.LFB11825:
	.cfi_startproc
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	88(%rsp), %rdi
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	100(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	72(%rsp), %rdx
	movq	%rax, 56(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rcx, 24(%rsp)
	leaq	80(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 88(%rsp)
	movl	$1, 96(%rsp)
	movq	%rax, 100(%rsp)
	movl	$1, 108(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L160
	pushq	80(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rdi
	pushq	80(%rsp)
	.cfi_def_cfa_offset 224
	movq	116(%rsp), %rcx
	movl	124(%rsp), %r8d
	movq	104(%rsp), %rsi
	movl	112(%rsp), %edx
	leaq	128(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L160:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L162
	call	__stack_chk_fail@PLT
.L162:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11825:
	.size	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, .-_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.type	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, @function
_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_:
.LFB11823:
	.cfi_startproc
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	88(%rsp), %rdi
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	100(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	72(%rsp), %rdx
	movq	%rax, 56(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rcx, 24(%rsp)
	leaq	80(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 88(%rsp)
	movl	$1, 96(%rsp)
	movq	%rax, 100(%rsp)
	movl	$1, 108(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L164
	pushq	80(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rdi
	pushq	80(%rsp)
	.cfi_def_cfa_offset 224
	movq	116(%rsp), %rcx
	movl	124(%rsp), %r8d
	movq	104(%rsp), %rsi
	movl	112(%rsp), %edx
	leaq	128(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L164:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L166
	call	__stack_chk_fail@PLT
.L166:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11823:
	.size	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, .-_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.type	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, @function
_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_:
.LFB11821:
	.cfi_startproc
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	88(%rsp), %rdi
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	100(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	72(%rsp), %rdx
	movq	%rax, 56(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rcx, 24(%rsp)
	leaq	80(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 88(%rsp)
	movl	$1, 96(%rsp)
	movq	%rax, 100(%rsp)
	movl	$1, 108(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L168
	pushq	80(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rdi
	pushq	80(%rsp)
	.cfi_def_cfa_offset 224
	movq	116(%rsp), %rcx
	movl	124(%rsp), %r8d
	movq	104(%rsp), %rsi
	movl	112(%rsp), %edx
	leaq	128(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L168:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L170
	call	__stack_chk_fail@PLT
.L170:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11821:
	.size	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, .-_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.type	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, @function
_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_:
.LFB11819:
	.cfi_startproc
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	88(%rsp), %rdi
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	208(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	100(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 160(%rsp)
	movq	216(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	72(%rsp), %rdx
	movq	%rax, 56(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 168(%rsp)
	movq	224(%rsp), %rax
	movq	%rcx, 24(%rsp)
	leaq	80(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 88(%rsp)
	movl	$1, 96(%rsp)
	movq	%rax, 100(%rsp)
	movl	$1, 108(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L172
	pushq	80(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rdi
	pushq	80(%rsp)
	.cfi_def_cfa_offset 224
	movq	116(%rsp), %rcx
	movl	124(%rsp), %r8d
	movq	104(%rsp), %rsi
	movl	112(%rsp), %edx
	leaq	128(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L172:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L174
	call	__stack_chk_fail@PLT
.L174:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11819:
	.size	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_, .-_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.type	_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, @function
_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj:
.LFB11801:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movl	%ecx, 12(%rsp)
	leaq	56(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 24(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rsi, 32(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 40(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L176
	pushq	56(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 160
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L176:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L178
	call	__stack_chk_fail@PLT
.L178:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11801:
	.size	_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, .-_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.type	_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj, @function
_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj:
.LFB11802:
	.cfi_startproc
	endbr64
	jmp	_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.cfi_endproc
.LFE11802:
	.size	_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj, .-_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj
	.type	_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, @function
_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj:
.LFB11803:
	.cfi_startproc
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movl	%ecx, 12(%rsp)
	leaq	56(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 24(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rsi, 32(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 40(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L181
	pushq	56(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 160
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L181:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L183
	call	__stack_chk_fail@PLT
.L183:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11803:
	.size	_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj, .-_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.type	_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj, @function
_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj:
.LFB11804:
	.cfi_startproc
	endbr64
	jmp	_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	.cfi_endproc
.LFE11804:
	.size	_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj, .-_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj
	.type	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4, @function
_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4:
.LFB11817:
	.cfi_startproc
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 136(%rsp)
	movq	176(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	84(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	56(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L186
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L186:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L188
	call	__stack_chk_fail@PLT
.L188:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11817:
	.size	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4, .-_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
	.type	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4, @function
_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4:
.LFB11815:
	.cfi_startproc
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 136(%rsp)
	movq	176(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	84(%rsp), %rsi
	movq	%rax, 48(%rsp)
	leaq	48(%rsp), %rax
	movq	%rdx, 16(%rsp)
	leaq	56(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L190
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L190:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L192
	call	__stack_chk_fail@PLT
.L192:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11815:
	.size	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4, .-_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
	.type	_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j, @function
_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j:
.LFB11813:
	.cfi_startproc
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movl	%r9d, 12(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 24(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 104(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	12(%rsp), %rax
	movq	%rsi, 32(%rsp)
	leaq	92(%rsp), %rsi
	movq	%rdx, 40(%rsp)
	leaq	64(%rsp), %rdx
	movq	%rcx, 48(%rsp)
	leaq	72(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 56(%rsp)
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L194
	pushq	72(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 192
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L194:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L196
	call	__stack_chk_fail@PLT
.L196:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11813:
	.size	_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j, .-_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j
	.type	_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j, @function
_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j:
.LFB11814:
	.cfi_startproc
	endbr64
	jmp	_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j
	.cfi_endproc
.LFE11814:
	.size	_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j, .-_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j
	.type	_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm, @function
_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm:
.LFB11807:
	.cfi_startproc
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdx, 24(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 16(%rsp)
	leaq	56(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movq	%r9, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	movq	%rsp, %rax
	movq	%rax, 128(%rsp)
	leaq	192(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	200(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	208(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	216(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L199
	pushq	56(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 208
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L199:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L201
	call	__stack_chk_fail@PLT
.L201:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11807:
	.size	_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm, .-_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm
	.type	_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm, @function
_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm:
.LFB11808:
	.cfi_startproc
	endbr64
	jmp	_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm
	.cfi_endproc
.LFE11808:
	.size	_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm, .-_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm
	.type	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm, @function
_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm:
.LFB11811:
	.cfi_startproc
	subq	$104, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	32(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	8(%rsp), %rax
	leaq	40(%rsp), %rdi
	movq	%rax, 72(%rsp)
	leaq	16(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	52(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	24(%rsp), %rdx
	movq	%rax, 80(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movl	$1, 48(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L204
	pushq	32(%rsp)
	.cfi_def_cfa_offset 120
	leaq	_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 128
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	80(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 120
	popq	%rdx
	.cfi_def_cfa_offset 112
.L204:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L206
	call	__stack_chk_fail@PLT
.L206:
	addq	$104, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11811:
	.size	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm, .-_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm
	.type	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm, @function
_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm:
.LFB11809:
	.cfi_startproc
	subq	$104, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	32(%rsp), %rcx
	movq	%rax, 64(%rsp)
	leaq	8(%rsp), %rax
	leaq	40(%rsp), %rdi
	movq	%rax, 72(%rsp)
	leaq	16(%rsp), %rax
	movq	%rsi, 8(%rsp)
	leaq	52(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	24(%rsp), %rdx
	movq	%rax, 80(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movl	$1, 48(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L208
	pushq	32(%rsp)
	.cfi_def_cfa_offset 120
	leaq	_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 128
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	80(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 120
	popq	%rdx
	.cfi_def_cfa_offset 112
.L208:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L210
	call	__stack_chk_fail@PLT
.L210:
	addq	$104, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11809:
	.size	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm, .-_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm
	.section	.text._ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,comdat
	.weak	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.hidden	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.type	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, @function
_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv:
.LFB12304:
	.cfi_startproc
	endbr64
	subq	$72, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	movabsq	$4294967297, %rax
	leaq	16(%rsp), %rcx
	leaq	8(%rsp), %rdx
	movl	$1, 32(%rsp)
	leaq	36(%rsp), %rsi
	leaq	24(%rsp), %rdi
	movl	$1, 44(%rsp)
	movq	%rax, 24(%rsp)
	movq	%rax, 36(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L212
	pushq	16(%rsp)
	.cfi_def_cfa_offset 88
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rdi
	pushq	16(%rsp)
	.cfi_def_cfa_offset 96
	movq	52(%rsp), %rcx
	movl	60(%rsp), %r8d
	movq	40(%rsp), %rsi
	movl	48(%rsp), %edx
	leaq	64(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 88
	popq	%rdx
	.cfi_def_cfa_offset 80
.L212:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L214
	call	__stack_chk_fail@PLT
.L214:
	addq	$72, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12304:
	.size	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, .-_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.section	.text._ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_
	.hidden	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_
	.type	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_, @function
_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_:
.LFB12524:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdx, (%rsp)
	leaq	64(%rsp), %rdx
	movq	%rcx, 8(%rsp)
	leaq	72(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movq	208(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	leaq	92(%rsp), %rsi
	movq	%rax, 48(%rsp)
	movq	216(%rsp), %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 56(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	movq	%rsp, %rax
	movq	%rax, 120(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	192(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movq	%r9, 40(%rsp)
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L216
	pushq	72(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 208
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L216:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L218
	call	__stack_chk_fail@PLT
.L218:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12524:
	.size	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_, .-_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_, @function
_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_:
.LFB12523:
	.cfi_startproc
	endbr64
	subq	$232, %rsp
	.cfi_def_cfa_offset 240
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	movq	240(%rsp), %rax
	movl	%edi, 12(%rsp)
	leaq	104(%rsp), %rdi
	movl	%esi, 16(%rsp)
	leaq	116(%rsp), %rsi
	movq	%rax, 48(%rsp)
	movq	248(%rsp), %rax
	movl	%edx, 20(%rsp)
	leaq	88(%rsp), %rdx
	movq	%rax, 56(%rsp)
	movq	256(%rsp), %rax
	movq	%rcx, 24(%rsp)
	leaq	96(%rsp), %rcx
	movq	%rax, 64(%rsp)
	movq	264(%rsp), %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 72(%rsp)
	movq	272(%rsp), %rax
	movq	%r9, 40(%rsp)
	movq	%rax, 80(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	80(%rsp), %rax
	movq	%rax, 208(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 104(%rsp)
	movl	$1, 112(%rsp)
	movq	%rax, 116(%rsp)
	movl	$1, 124(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L220
	pushq	96(%rsp)
	.cfi_def_cfa_offset 248
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rdi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 256
	movq	132(%rsp), %rcx
	movl	140(%rsp), %r8d
	movq	120(%rsp), %rsi
	movl	128(%rsp), %edx
	leaq	144(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 248
	popq	%rdx
	.cfi_def_cfa_offset 240
.L220:
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	je	.L222
	call	__stack_chk_fail@PLT
.L222:
	addq	$232, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12523:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_, .-_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_, @function
_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_:
.LFB12522:
	.cfi_startproc
	endbr64
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movq	%rcx, (%rsp)
	leaq	80(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	208(%rsp), %rax
	movq	%rdi, 16(%rsp)
	leaq	88(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	leaq	100(%rsp), %rsi
	movq	%rax, 48(%rsp)
	movq	232(%rsp), %rax
	movq	%rdx, 32(%rsp)
	leaq	72(%rsp), %rdx
	movq	%rax, 56(%rsp)
	movq	240(%rsp), %rax
	movq	%r9, 40(%rsp)
	movq	%rax, 64(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 128(%rsp)
	movq	%rsp, %rax
	movq	%rax, 136(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	216(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 88(%rsp)
	movl	$1, 96(%rsp)
	movq	%rax, 100(%rsp)
	movl	$1, 108(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L224
	pushq	80(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	80(%rsp)
	.cfi_def_cfa_offset 224
	movq	116(%rsp), %rcx
	movl	124(%rsp), %r8d
	movq	104(%rsp), %rsi
	movl	112(%rsp), %edx
	leaq	128(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L224:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L226
	call	__stack_chk_fail@PLT
.L226:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12522:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_, .-_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_
	.section	.text._ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i,comdat
	.weak	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i
	.hidden	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i
	.type	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i, @function
_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i:
.LFB12520:
	.cfi_startproc
	endbr64
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movl	%edi, 28(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rcx, 16(%rsp)
	leaq	72(%rsp), %rcx
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movl	256(%rsp), %eax
	movq	%rsi, 40(%rsp)
	leaq	92(%rsp), %rsi
	movq	%rdx, 48(%rsp)
	leaq	64(%rsp), %rdx
	movl	%eax, 32(%rsp)
	movl	264(%rsp), %eax
	movq	%r8, 56(%rsp)
	movl	%eax, 36(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	208(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	232(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L228
	pushq	72(%rsp)
	.cfi_def_cfa_offset 216
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 224
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 216
	popq	%rdx
	.cfi_def_cfa_offset 208
.L228:
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	je	.L230
	call	__stack_chk_fail@PLT
.L230:
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12520:
	.size	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i, .-_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i
	.section	.text._ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_
	.hidden	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_
	.type	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_, @function
_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_:
.LFB12515:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 8(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	%esi, 28(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rax, 80(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	32(%rsp), %rax
	movq	%rdx, 32(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L232
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L232:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L234
	call	__stack_chk_fail@PLT
.L234:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12515:
	.size	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_, .-_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_
	.section	.text._ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.hidden	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.type	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, @function
_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_:
.LFB12513:
	.cfi_startproc
	endbr64
	subq	$248, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	256(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	112(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	124(%rsp), %rsi
	movq	%rax, 80(%rsp)
	movq	264(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	96(%rsp), %rdx
	movq	%rax, 88(%rsp)
	movl	272(%rsp), %eax
	movq	%rcx, 56(%rsp)
	leaq	104(%rsp), %rcx
	movl	%eax, 20(%rsp)
	movl	280(%rsp), %eax
	movq	%r8, 64(%rsp)
	movl	%eax, 24(%rsp)
	movl	288(%rsp), %eax
	movq	%r9, 72(%rsp)
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	80(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	88(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 208(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 216(%rsp)
	leaq	15(%rsp), %rax
	movq	%rax, 224(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 112(%rsp)
	movl	$1, 120(%rsp)
	movq	%rax, 124(%rsp)
	movl	$1, 132(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L236
	pushq	104(%rsp)
	.cfi_def_cfa_offset 264
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rdi
	pushq	104(%rsp)
	.cfi_def_cfa_offset 272
	movq	140(%rsp), %rcx
	movl	148(%rsp), %r8d
	movq	128(%rsp), %rsi
	movl	136(%rsp), %edx
	leaq	152(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 264
	popq	%rdx
	.cfi_def_cfa_offset 256
.L236:
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	je	.L238
	call	__stack_chk_fail@PLT
.L238:
	addq	$248, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12513:
	.size	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, .-_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.section	.text._ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_
	.hidden	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_
	.type	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_, @function
_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_:
.LFB12512:
	.cfi_startproc
	endbr64
	subq	$72, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	16(%rsp), %rcx
	movq	%rax, 48(%rsp)
	leaq	8(%rsp), %rdx
	leaq	36(%rsp), %rsi
	movabsq	$4294967297, %rax
	leaq	24(%rsp), %rdi
	movq	%rax, 24(%rsp)
	movl	$1, 32(%rsp)
	movq	%rax, 36(%rsp)
	movl	$1, 44(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L240
	pushq	16(%rsp)
	.cfi_def_cfa_offset 88
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rdi
	pushq	16(%rsp)
	.cfi_def_cfa_offset 96
	movq	52(%rsp), %rcx
	movl	60(%rsp), %r8d
	movq	40(%rsp), %rsi
	movl	48(%rsp), %edx
	leaq	64(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 88
	popq	%rdx
	.cfi_def_cfa_offset 80
.L240:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L242
	call	__stack_chk_fail@PLT
.L242:
	addq	$72, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12512:
	.size	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_, .-_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_:
.LFB12511:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movl	%edx, 20(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 28(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L244
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L244:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L246
	call	__stack_chk_fail@PLT
.L246:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12511:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12510:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L248
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L248:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L250
	call	__stack_chk_fail@PLT
.L250:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12510:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12509:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L252
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L252:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L254
	call	__stack_chk_fail@PLT
.L254:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12509:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i,comdat
	.weak	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i
	.hidden	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i
	.type	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i, @function
_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i:
.LFB12508:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	%esi, 4(%rsp)
	leaq	24(%rsp), %rcx
	movq	%rax, 56(%rsp)
	leaq	4(%rsp), %rax
	leaq	16(%rsp), %rdx
	movq	%rdi, 8(%rsp)
	leaq	44(%rsp), %rsi
	leaq	32(%rsp), %rdi
	movq	%rax, 64(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 32(%rsp)
	movl	$1, 40(%rsp)
	movq	%rax, 44(%rsp)
	movl	$1, 52(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L256
	pushq	24(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rdi
	pushq	24(%rsp)
	.cfi_def_cfa_offset 112
	movq	60(%rsp), %rcx
	movl	68(%rsp), %r8d
	movq	48(%rsp), %rsi
	movl	56(%rsp), %edx
	leaq	72(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L256:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L258
	call	__stack_chk_fail@PLT
.L258:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12508:
	.size	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i, .-_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12507:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L260
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L260:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L262
	call	__stack_chk_fail@PLT
.L262:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12507:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12506:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L264
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L264:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L266
	call	__stack_chk_fail@PLT
.L266:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12506:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.type	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, @function
_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_:
.LFB12505:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movl	192(%rsp), %eax
	movq	%rdi, 32(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	92(%rsp), %rsi
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	15(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	64(%rsp), %rdx
	movq	%rcx, 56(%rsp)
	leaq	72(%rsp), %rcx
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 20(%rsp)
	movl	%r9d, 24(%rsp)
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L268
	pushq	72(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 208
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L268:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L270
	call	__stack_chk_fail@PLT
.L270:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12505:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, .-_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.section	.text._ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.hidden	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.type	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, @function
_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_:
.LFB12504:
	.cfi_startproc
	endbr64
	subq	$248, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	256(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	112(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	124(%rsp), %rsi
	movq	%rax, 80(%rsp)
	movq	264(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	96(%rsp), %rdx
	movq	%rax, 88(%rsp)
	movl	272(%rsp), %eax
	movq	%rcx, 56(%rsp)
	leaq	104(%rsp), %rcx
	movl	%eax, 20(%rsp)
	movl	280(%rsp), %eax
	movq	%r8, 64(%rsp)
	movl	%eax, 24(%rsp)
	movl	288(%rsp), %eax
	movq	%r9, 72(%rsp)
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	80(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	88(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 208(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 216(%rsp)
	leaq	15(%rsp), %rax
	movq	%rax, 224(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 112(%rsp)
	movl	$1, 120(%rsp)
	movq	%rax, 124(%rsp)
	movl	$1, 132(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L272
	pushq	104(%rsp)
	.cfi_def_cfa_offset 264
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rdi
	pushq	104(%rsp)
	.cfi_def_cfa_offset 272
	movq	140(%rsp), %rcx
	movl	148(%rsp), %r8d
	movq	128(%rsp), %rsi
	movl	136(%rsp), %edx
	leaq	152(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 264
	popq	%rdx
	.cfi_def_cfa_offset 256
.L272:
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	je	.L274
	call	__stack_chk_fail@PLT
.L274:
	addq	$248, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12504:
	.size	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, .-_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.section	.text._ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_
	.hidden	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_
	.type	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_, @function
_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_:
.LFB12503:
	.cfi_startproc
	endbr64
	subq	$72, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	16(%rsp), %rcx
	movq	%rax, 48(%rsp)
	leaq	8(%rsp), %rdx
	leaq	36(%rsp), %rsi
	movabsq	$4294967297, %rax
	leaq	24(%rsp), %rdi
	movq	%rax, 24(%rsp)
	movl	$1, 32(%rsp)
	movq	%rax, 36(%rsp)
	movl	$1, 44(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L276
	pushq	16(%rsp)
	.cfi_def_cfa_offset 88
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rdi
	pushq	16(%rsp)
	.cfi_def_cfa_offset 96
	movq	52(%rsp), %rcx
	movl	60(%rsp), %r8d
	movq	40(%rsp), %rsi
	movl	48(%rsp), %edx
	leaq	64(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 88
	popq	%rdx
	.cfi_def_cfa_offset 80
.L276:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L278
	call	__stack_chk_fail@PLT
.L278:
	addq	$72, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12503:
	.size	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_, .-_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_:
.LFB12502:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movl	%edx, 20(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 28(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L280
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L280:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L282
	call	__stack_chk_fail@PLT
.L282:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12502:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12501:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L284
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L284:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L286
	call	__stack_chk_fail@PLT
.L286:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12501:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12500:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L288
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L288:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L290
	call	__stack_chk_fail@PLT
.L290:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12500:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i,comdat
	.weak	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i
	.hidden	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i
	.type	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i, @function
_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i:
.LFB12499:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	%esi, 4(%rsp)
	leaq	24(%rsp), %rcx
	movq	%rax, 56(%rsp)
	leaq	4(%rsp), %rax
	leaq	16(%rsp), %rdx
	movq	%rdi, 8(%rsp)
	leaq	44(%rsp), %rsi
	leaq	32(%rsp), %rdi
	movq	%rax, 64(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 32(%rsp)
	movl	$1, 40(%rsp)
	movq	%rax, 44(%rsp)
	movl	$1, 52(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L292
	pushq	24(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rdi
	pushq	24(%rsp)
	.cfi_def_cfa_offset 112
	movq	60(%rsp), %rcx
	movl	68(%rsp), %r8d
	movq	48(%rsp), %rsi
	movl	56(%rsp), %edx
	leaq	72(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L292:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L294
	call	__stack_chk_fail@PLT
.L294:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12499:
	.size	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i, .-_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12498:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L296
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L296:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L298
	call	__stack_chk_fail@PLT
.L298:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12498:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12497:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L300
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L300:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L302
	call	__stack_chk_fail@PLT
.L302:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12497:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.type	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, @function
_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_:
.LFB12496:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movl	192(%rsp), %eax
	movq	%rdi, 32(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	92(%rsp), %rsi
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	15(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	64(%rsp), %rdx
	movq	%rcx, 56(%rsp)
	leaq	72(%rsp), %rcx
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 20(%rsp)
	movl	%r9d, 24(%rsp)
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L304
	pushq	72(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 208
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L304:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L306
	call	__stack_chk_fail@PLT
.L306:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12496:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, .-_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.section	.text._ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.hidden	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.type	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, @function
_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_:
.LFB12495:
	.cfi_startproc
	endbr64
	subq	$248, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	256(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	112(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	124(%rsp), %rsi
	movq	%rax, 80(%rsp)
	movq	264(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	96(%rsp), %rdx
	movq	%rax, 88(%rsp)
	movl	272(%rsp), %eax
	movq	%rcx, 56(%rsp)
	leaq	104(%rsp), %rcx
	movl	%eax, 20(%rsp)
	movl	280(%rsp), %eax
	movq	%r8, 64(%rsp)
	movl	%eax, 24(%rsp)
	movl	288(%rsp), %eax
	movq	%r9, 72(%rsp)
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	80(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	88(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 208(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 216(%rsp)
	leaq	15(%rsp), %rax
	movq	%rax, 224(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 112(%rsp)
	movl	$1, 120(%rsp)
	movq	%rax, 124(%rsp)
	movl	$1, 132(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L308
	pushq	104(%rsp)
	.cfi_def_cfa_offset 264
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rdi
	pushq	104(%rsp)
	.cfi_def_cfa_offset 272
	movq	140(%rsp), %rcx
	movl	148(%rsp), %r8d
	movq	128(%rsp), %rsi
	movl	136(%rsp), %edx
	leaq	152(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 264
	popq	%rdx
	.cfi_def_cfa_offset 256
.L308:
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	je	.L310
	call	__stack_chk_fail@PLT
.L310:
	addq	$248, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12495:
	.size	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_, .-_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_
	.section	.text._ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_
	.hidden	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_
	.type	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_, @function
_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_:
.LFB12494:
	.cfi_startproc
	endbr64
	subq	$72, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, (%rsp)
	leaq	16(%rsp), %rcx
	movq	%rax, 48(%rsp)
	leaq	8(%rsp), %rdx
	leaq	36(%rsp), %rsi
	movabsq	$4294967297, %rax
	leaq	24(%rsp), %rdi
	movq	%rax, 24(%rsp)
	movl	$1, 32(%rsp)
	movq	%rax, 36(%rsp)
	movl	$1, 44(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L312
	pushq	16(%rsp)
	.cfi_def_cfa_offset 88
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rdi
	pushq	16(%rsp)
	.cfi_def_cfa_offset 96
	movq	52(%rsp), %rcx
	movl	60(%rsp), %r8d
	movq	40(%rsp), %rsi
	movl	48(%rsp), %edx
	leaq	64(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 88
	popq	%rdx
	.cfi_def_cfa_offset 80
.L312:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L314
	call	__stack_chk_fail@PLT
.L314:
	addq	$72, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12494:
	.size	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_, .-_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_:
.LFB12493:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 88(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movl	%edx, 20(%rsp)
	leaq	48(%rsp), %rdx
	movl	%ecx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 28(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L316
	pushq	56(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 176
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	104(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L316:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L318
	call	__stack_chk_fail@PLT
.L318:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12493:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12492:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L320
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L320:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L322
	call	__stack_chk_fail@PLT
.L322:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12492:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.hidden	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.type	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, @function
_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_:
.LFB12491:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movl	224(%rsp), %eax
	movq	%rdi, 40(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rsi, 48(%rsp)
	leaq	108(%rsp), %rsi
	movl	%eax, 32(%rsp)
	movl	232(%rsp), %eax
	movq	%rdx, 56(%rsp)
	leaq	80(%rsp), %rdx
	movl	%eax, 36(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	15(%rsp), %rax
	movq	%rcx, 64(%rsp)
	leaq	88(%rsp), %rcx
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%r8, 72(%rsp)
	movl	%r9d, 28(%rsp)
	movq	%rax, 96(%rsp)
	movl	$1, 104(%rsp)
	movq	%rax, 108(%rsp)
	movl	$1, 116(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L324
	pushq	88(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rdi
	pushq	88(%rsp)
	.cfi_def_cfa_offset 240
	movq	124(%rsp), %rcx
	movl	132(%rsp), %r8d
	movq	112(%rsp), %rsi
	movl	120(%rsp), %edx
	leaq	136(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L324:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L326
	call	__stack_chk_fail@PLT
.L326:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12491:
	.size	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_, .-_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_
	.section	.text._ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i,comdat
	.weak	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i
	.hidden	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i
	.type	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i, @function
_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i:
.LFB12490:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	%esi, 4(%rsp)
	leaq	24(%rsp), %rcx
	movq	%rax, 56(%rsp)
	leaq	4(%rsp), %rax
	leaq	16(%rsp), %rdx
	movq	%rdi, 8(%rsp)
	leaq	44(%rsp), %rsi
	leaq	32(%rsp), %rdi
	movq	%rax, 64(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 32(%rsp)
	movl	$1, 40(%rsp)
	movq	%rax, 44(%rsp)
	movl	$1, 52(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L328
	pushq	24(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rdi
	pushq	24(%rsp)
	.cfi_def_cfa_offset 112
	movq	60(%rsp), %rcx
	movl	68(%rsp), %r8d
	movq	48(%rsp), %rsi
	movl	56(%rsp), %edx
	leaq	72(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L328:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L330
	call	__stack_chk_fail@PLT
.L330:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12490:
	.size	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i, .-_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12489:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L332
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L332:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L334
	call	__stack_chk_fail@PLT
.L334:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12489:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.hidden	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.type	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, @function
_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_:
.LFB12488:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	15(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 28(%rsp)
	leaq	56(%rsp), %rdx
	movl	%ecx, 32(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 36(%rsp)
	movq	%rax, 72(%rsp)
	movl	$1, 80(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L336
	pushq	64(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 192
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	112(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L336:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L338
	call	__stack_chk_fail@PLT
.L338:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12488:
	.size	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_, .-_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.type	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, @function
_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_:
.LFB12486:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movl	192(%rsp), %eax
	movq	%rdi, 32(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	leaq	92(%rsp), %rsi
	movl	%eax, 28(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	28(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	15(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	64(%rsp), %rdx
	movq	%rcx, 56(%rsp)
	leaq	72(%rsp), %rcx
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 20(%rsp)
	movl	%r9d, 24(%rsp)
	movq	%rax, 80(%rsp)
	movl	$1, 88(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L340
	pushq	72(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 208
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	120(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L340:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L342
	call	__stack_chk_fail@PLT
.L342:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12486:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_, .-_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_
	.text
	.type	_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm, @function
_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm:
.LFB12461:
	.cfi_startproc
	endbr64
	jmp	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm
	.cfi_endproc
.LFE12461:
	.size	_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm, .-_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm
	.type	_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm, @function
_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm:
.LFB12462:
	.cfi_startproc
	endbr64
	jmp	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm
	.cfi_endproc
.LFE12462:
	.size	_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm, .-_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm
	.type	_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh, @function
_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh:
.LFB12482:
	.cfi_startproc
	endbr64
	jmp	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
	.cfi_endproc
.LFE12482:
	.size	_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh, .-_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh
	.type	_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh, @function
_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh:
.LFB12483:
	.cfi_startproc
	endbr64
	jmp	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
	.cfi_endproc
.LFE12483:
	.size	_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh, .-_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh
	.type	_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj, @function
_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj:
.LFB12480:
	.cfi_startproc
	endbr64
	jmp	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
	.cfi_endproc
.LFE12480:
	.size	_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj, .-_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj
	.type	_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj, @function
_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj:
.LFB12481:
	.cfi_startproc
	endbr64
	jmp	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
	.cfi_endproc
.LFE12481:
	.size	_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj, .-_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj
	.type	_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj, @function
_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj:
.LFB12478:
	.cfi_startproc
	endbr64
	jmp	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj
	.cfi_endproc
.LFE12478:
	.size	_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj, .-_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj
	.type	_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj, @function
_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj:
.LFB12479:
	.cfi_startproc
	endbr64
	jmp	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj
	.cfi_endproc
.LFE12479:
	.size	_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj, .-_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj
	.type	_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2, @function
_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2:
.LFB12475:
	.cfi_startproc
	endbr64
	jmp	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
	.cfi_endproc
.LFE12475:
	.size	_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2, .-_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2
	.type	_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2, @function
_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2:
.LFB12476:
	.cfi_startproc
	endbr64
	jmp	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
	.cfi_endproc
.LFE12476:
	.size	_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2, .-_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2
	.type	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4, @function
_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4:
.LFB12469:
	.cfi_startproc
	endbr64
	jmp	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
	.cfi_endproc
.LFE12469:
	.size	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4, .-_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4
	.type	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4, @function
_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4:
.LFB12470:
	.cfi_startproc
	endbr64
	jmp	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
	.cfi_endproc
.LFE12470:
	.size	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4, .-_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4
	.type	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, @function
_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_:
.LFB12474:
	.cfi_startproc
	endbr64
	jmp	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.cfi_endproc
.LFE12474:
	.size	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, .-_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_
	.type	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, @function
_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_:
.LFB12471:
	.cfi_startproc
	endbr64
	jmp	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.cfi_endproc
.LFE12471:
	.size	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, .-_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_
	.type	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, @function
_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_:
.LFB12472:
	.cfi_startproc
	endbr64
	jmp	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.cfi_endproc
.LFE12472:
	.size	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, .-_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_
	.type	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, @function
_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_:
.LFB12473:
	.cfi_startproc
	endbr64
	jmp	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	.cfi_endproc
.LFE12473:
	.size	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_, .-_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_
	.section	.text.nvtxSetInitFunctionsToNoops_v3,"axG",@progbits,nvtxSetInitFunctionsToNoops_v3,comdat
	.weak	nvtxSetInitFunctionsToNoops_v3
	.hidden	nvtxSetInitFunctionsToNoops_v3
	.type	nvtxSetInitFunctionsToNoops_v3, @function
nvtxSetInitFunctionsToNoops_v3:
.LFB7639:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	leaq	nvtxMarkEx_impl_init_v3(%rip), %rdx
	setne	%al
	cmpq	%rdx, 48+nvtxGlobals_v3(%rip)
	je	.L489
	testb	%al, %al
	je	.L361
.L489:
	xorl	%r10d, %r10d
	movq	%r10, 48+nvtxGlobals_v3(%rip)
.L361:
	leaq	nvtxMarkA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 56+nvtxGlobals_v3(%rip)
	je	.L490
	testb	%al, %al
	je	.L363
.L490:
	xorl	%r9d, %r9d
	movq	%r9, 56+nvtxGlobals_v3(%rip)
.L363:
	leaq	nvtxMarkW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 64+nvtxGlobals_v3(%rip)
	je	.L491
	testb	%al, %al
	je	.L365
.L491:
	xorl	%r8d, %r8d
	movq	%r8, 64+nvtxGlobals_v3(%rip)
.L365:
	leaq	nvtxRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 72+nvtxGlobals_v3(%rip)
	je	.L492
	testb	%al, %al
	je	.L367
.L492:
	xorl	%edi, %edi
	movq	%rdi, 72+nvtxGlobals_v3(%rip)
.L367:
	leaq	nvtxRangeStartA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 80+nvtxGlobals_v3(%rip)
	je	.L493
	testb	%al, %al
	je	.L369
.L493:
	xorl	%esi, %esi
	movq	%rsi, 80+nvtxGlobals_v3(%rip)
.L369:
	leaq	nvtxRangeStartW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 88+nvtxGlobals_v3(%rip)
	je	.L494
	testb	%al, %al
	je	.L371
.L494:
	xorl	%ecx, %ecx
	movq	%rcx, 88+nvtxGlobals_v3(%rip)
.L371:
	leaq	nvtxRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 96+nvtxGlobals_v3(%rip)
	je	.L495
	testb	%al, %al
	je	.L373
.L495:
	xorl	%edx, %edx
	movq	%rdx, 96+nvtxGlobals_v3(%rip)
.L373:
	leaq	nvtxRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 104+nvtxGlobals_v3(%rip)
	je	.L496
	testb	%al, %al
	je	.L375
.L496:
	xorl	%r11d, %r11d
	movq	%r11, 104+nvtxGlobals_v3(%rip)
.L375:
	leaq	nvtxRangePushA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 112+nvtxGlobals_v3(%rip)
	je	.L497
	testb	%al, %al
	je	.L377
.L497:
	xorl	%r10d, %r10d
	movq	%r10, 112+nvtxGlobals_v3(%rip)
.L377:
	leaq	nvtxRangePushW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 120+nvtxGlobals_v3(%rip)
	je	.L498
	testb	%al, %al
	je	.L379
.L498:
	xorl	%r9d, %r9d
	movq	%r9, 120+nvtxGlobals_v3(%rip)
.L379:
	leaq	nvtxRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 128+nvtxGlobals_v3(%rip)
	je	.L499
	testb	%al, %al
	je	.L381
.L499:
	xorl	%r8d, %r8d
	movq	%r8, 128+nvtxGlobals_v3(%rip)
.L381:
	leaq	nvtxNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 136+nvtxGlobals_v3(%rip)
	je	.L500
	testb	%al, %al
	je	.L383
.L500:
	xorl	%edi, %edi
	movq	%rdi, 136+nvtxGlobals_v3(%rip)
.L383:
	leaq	nvtxNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 144+nvtxGlobals_v3(%rip)
	je	.L501
	testb	%al, %al
	je	.L385
.L501:
	xorl	%esi, %esi
	movq	%rsi, 144+nvtxGlobals_v3(%rip)
.L385:
	leaq	nvtxNameOsThreadA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 152+nvtxGlobals_v3(%rip)
	je	.L502
	testb	%al, %al
	je	.L387
.L502:
	xorl	%ecx, %ecx
	movq	%rcx, 152+nvtxGlobals_v3(%rip)
.L387:
	leaq	nvtxNameOsThreadW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 160+nvtxGlobals_v3(%rip)
	je	.L503
	testb	%al, %al
	je	.L389
.L503:
	xorl	%edx, %edx
	movq	%rdx, 160+nvtxGlobals_v3(%rip)
.L389:
	leaq	nvtxNameCuDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 168+nvtxGlobals_v3(%rip)
	je	.L504
	testb	%al, %al
	je	.L391
.L504:
	xorl	%r11d, %r11d
	movq	%r11, 168+nvtxGlobals_v3(%rip)
.L391:
	leaq	nvtxNameCuDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 176+nvtxGlobals_v3(%rip)
	je	.L505
	testb	%al, %al
	je	.L393
.L505:
	xorl	%r10d, %r10d
	movq	%r10, 176+nvtxGlobals_v3(%rip)
.L393:
	leaq	nvtxNameCuContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 184+nvtxGlobals_v3(%rip)
	je	.L506
	testb	%al, %al
	je	.L395
.L506:
	xorl	%r9d, %r9d
	movq	%r9, 184+nvtxGlobals_v3(%rip)
.L395:
	leaq	nvtxNameCuContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 192+nvtxGlobals_v3(%rip)
	je	.L507
	testb	%al, %al
	je	.L397
.L507:
	xorl	%r8d, %r8d
	movq	%r8, 192+nvtxGlobals_v3(%rip)
.L397:
	leaq	nvtxNameCuStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 200+nvtxGlobals_v3(%rip)
	je	.L508
	testb	%al, %al
	je	.L399
.L508:
	xorl	%edi, %edi
	movq	%rdi, 200+nvtxGlobals_v3(%rip)
.L399:
	leaq	nvtxNameCuStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 208+nvtxGlobals_v3(%rip)
	je	.L509
	testb	%al, %al
	je	.L401
.L509:
	xorl	%esi, %esi
	movq	%rsi, 208+nvtxGlobals_v3(%rip)
.L401:
	leaq	nvtxNameCuEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 216+nvtxGlobals_v3(%rip)
	je	.L510
	testb	%al, %al
	je	.L403
.L510:
	xorl	%ecx, %ecx
	movq	%rcx, 216+nvtxGlobals_v3(%rip)
.L403:
	leaq	nvtxNameCuEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 224+nvtxGlobals_v3(%rip)
	je	.L511
	testb	%al, %al
	je	.L405
.L511:
	xorl	%edx, %edx
	movq	%rdx, 224+nvtxGlobals_v3(%rip)
.L405:
	leaq	nvtxNameClDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 232+nvtxGlobals_v3(%rip)
	je	.L512
	testb	%al, %al
	je	.L407
.L512:
	xorl	%r11d, %r11d
	movq	%r11, 232+nvtxGlobals_v3(%rip)
.L407:
	leaq	nvtxNameClDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 240+nvtxGlobals_v3(%rip)
	je	.L513
	testb	%al, %al
	je	.L409
.L513:
	xorl	%r10d, %r10d
	movq	%r10, 240+nvtxGlobals_v3(%rip)
.L409:
	leaq	nvtxNameClContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 248+nvtxGlobals_v3(%rip)
	je	.L514
	testb	%al, %al
	je	.L411
.L514:
	xorl	%r9d, %r9d
	movq	%r9, 248+nvtxGlobals_v3(%rip)
.L411:
	leaq	nvtxNameClContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 256+nvtxGlobals_v3(%rip)
	je	.L515
	testb	%al, %al
	je	.L413
.L515:
	xorl	%r8d, %r8d
	movq	%r8, 256+nvtxGlobals_v3(%rip)
.L413:
	leaq	nvtxNameClCommandQueueA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 264+nvtxGlobals_v3(%rip)
	je	.L516
	testb	%al, %al
	je	.L415
.L516:
	xorl	%edi, %edi
	movq	%rdi, 264+nvtxGlobals_v3(%rip)
.L415:
	leaq	nvtxNameClCommandQueueW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 272+nvtxGlobals_v3(%rip)
	je	.L517
	testb	%al, %al
	je	.L417
.L517:
	xorl	%esi, %esi
	movq	%rsi, 272+nvtxGlobals_v3(%rip)
.L417:
	leaq	nvtxNameClMemObjectA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 280+nvtxGlobals_v3(%rip)
	je	.L518
	testb	%al, %al
	je	.L419
.L518:
	xorl	%ecx, %ecx
	movq	%rcx, 280+nvtxGlobals_v3(%rip)
.L419:
	leaq	nvtxNameClMemObjectW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 288+nvtxGlobals_v3(%rip)
	je	.L519
	testb	%al, %al
	je	.L421
.L519:
	xorl	%edx, %edx
	movq	%rdx, 288+nvtxGlobals_v3(%rip)
.L421:
	leaq	nvtxNameClSamplerA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 296+nvtxGlobals_v3(%rip)
	je	.L520
	testb	%al, %al
	je	.L423
.L520:
	xorl	%r11d, %r11d
	movq	%r11, 296+nvtxGlobals_v3(%rip)
.L423:
	leaq	nvtxNameClSamplerW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 304+nvtxGlobals_v3(%rip)
	je	.L521
	testb	%al, %al
	je	.L425
.L521:
	xorl	%r10d, %r10d
	movq	%r10, 304+nvtxGlobals_v3(%rip)
.L425:
	leaq	nvtxNameClProgramA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 312+nvtxGlobals_v3(%rip)
	je	.L522
	testb	%al, %al
	je	.L427
.L522:
	xorl	%r9d, %r9d
	movq	%r9, 312+nvtxGlobals_v3(%rip)
.L427:
	leaq	nvtxNameClProgramW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 320+nvtxGlobals_v3(%rip)
	je	.L523
	testb	%al, %al
	je	.L429
.L523:
	xorl	%r8d, %r8d
	movq	%r8, 320+nvtxGlobals_v3(%rip)
.L429:
	leaq	nvtxNameClEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 328+nvtxGlobals_v3(%rip)
	je	.L524
	testb	%al, %al
	je	.L431
.L524:
	xorl	%edi, %edi
	movq	%rdi, 328+nvtxGlobals_v3(%rip)
.L431:
	leaq	nvtxNameClEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 336+nvtxGlobals_v3(%rip)
	je	.L525
	testb	%al, %al
	je	.L433
.L525:
	xorl	%esi, %esi
	movq	%rsi, 336+nvtxGlobals_v3(%rip)
.L433:
	leaq	nvtxNameCudaDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 344+nvtxGlobals_v3(%rip)
	je	.L526
	testb	%al, %al
	je	.L435
.L526:
	xorl	%ecx, %ecx
	movq	%rcx, 344+nvtxGlobals_v3(%rip)
.L435:
	leaq	nvtxNameCudaDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 352+nvtxGlobals_v3(%rip)
	je	.L527
	testb	%al, %al
	je	.L437
.L527:
	xorl	%edx, %edx
	movq	%rdx, 352+nvtxGlobals_v3(%rip)
.L437:
	leaq	nvtxNameCudaStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 360+nvtxGlobals_v3(%rip)
	je	.L528
	testb	%al, %al
	je	.L439
.L528:
	xorl	%r11d, %r11d
	movq	%r11, 360+nvtxGlobals_v3(%rip)
.L439:
	leaq	nvtxNameCudaStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 368+nvtxGlobals_v3(%rip)
	je	.L529
	testb	%al, %al
	je	.L441
.L529:
	xorl	%r10d, %r10d
	movq	%r10, 368+nvtxGlobals_v3(%rip)
.L441:
	leaq	nvtxNameCudaEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 376+nvtxGlobals_v3(%rip)
	je	.L530
	testb	%al, %al
	je	.L443
.L530:
	xorl	%r9d, %r9d
	movq	%r9, 376+nvtxGlobals_v3(%rip)
.L443:
	leaq	nvtxNameCudaEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 384+nvtxGlobals_v3(%rip)
	je	.L531
	testb	%al, %al
	je	.L445
.L531:
	xorl	%r8d, %r8d
	movq	%r8, 384+nvtxGlobals_v3(%rip)
.L445:
	leaq	nvtxDomainMarkEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 392+nvtxGlobals_v3(%rip)
	je	.L532
	testb	%al, %al
	je	.L447
.L532:
	xorl	%edi, %edi
	movq	%rdi, 392+nvtxGlobals_v3(%rip)
.L447:
	leaq	nvtxDomainRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 400+nvtxGlobals_v3(%rip)
	je	.L533
	testb	%al, %al
	je	.L449
.L533:
	xorl	%esi, %esi
	movq	%rsi, 400+nvtxGlobals_v3(%rip)
.L449:
	leaq	nvtxDomainRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 408+nvtxGlobals_v3(%rip)
	je	.L534
	testb	%al, %al
	je	.L451
.L534:
	xorl	%ecx, %ecx
	movq	%rcx, 408+nvtxGlobals_v3(%rip)
.L451:
	leaq	nvtxDomainRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 416+nvtxGlobals_v3(%rip)
	je	.L535
	testb	%al, %al
	je	.L453
.L535:
	xorl	%edx, %edx
	movq	%rdx, 416+nvtxGlobals_v3(%rip)
.L453:
	leaq	nvtxDomainRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 424+nvtxGlobals_v3(%rip)
	je	.L536
	testb	%al, %al
	je	.L455
.L536:
	xorl	%r11d, %r11d
	movq	%r11, 424+nvtxGlobals_v3(%rip)
.L455:
	leaq	nvtxDomainResourceCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 432+nvtxGlobals_v3(%rip)
	je	.L537
	testb	%al, %al
	je	.L457
.L537:
	xorl	%r10d, %r10d
	movq	%r10, 432+nvtxGlobals_v3(%rip)
.L457:
	leaq	nvtxDomainResourceDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 440+nvtxGlobals_v3(%rip)
	je	.L538
	testb	%al, %al
	je	.L459
.L538:
	xorl	%r9d, %r9d
	movq	%r9, 440+nvtxGlobals_v3(%rip)
.L459:
	leaq	nvtxDomainNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 448+nvtxGlobals_v3(%rip)
	je	.L539
	testb	%al, %al
	je	.L461
.L539:
	xorl	%r8d, %r8d
	movq	%r8, 448+nvtxGlobals_v3(%rip)
.L461:
	leaq	nvtxDomainNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 456+nvtxGlobals_v3(%rip)
	je	.L540
	testb	%al, %al
	je	.L463
.L540:
	xorl	%edi, %edi
	movq	%rdi, 456+nvtxGlobals_v3(%rip)
.L463:
	leaq	nvtxDomainRegisterStringA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 464+nvtxGlobals_v3(%rip)
	je	.L541
	testb	%al, %al
	je	.L465
.L541:
	xorl	%esi, %esi
	movq	%rsi, 464+nvtxGlobals_v3(%rip)
.L465:
	leaq	nvtxDomainRegisterStringW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 472+nvtxGlobals_v3(%rip)
	je	.L542
	testb	%al, %al
	je	.L467
.L542:
	xorl	%ecx, %ecx
	movq	%rcx, 472+nvtxGlobals_v3(%rip)
.L467:
	leaq	nvtxDomainCreateA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 480+nvtxGlobals_v3(%rip)
	je	.L543
	testb	%al, %al
	je	.L469
.L543:
	xorl	%edx, %edx
	movq	%rdx, 480+nvtxGlobals_v3(%rip)
.L469:
	leaq	nvtxDomainCreateW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 488+nvtxGlobals_v3(%rip)
	je	.L544
	testb	%al, %al
	je	.L471
.L544:
	xorl	%r11d, %r11d
	movq	%r11, 488+nvtxGlobals_v3(%rip)
.L471:
	leaq	nvtxDomainDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 496+nvtxGlobals_v3(%rip)
	je	.L545
	testb	%al, %al
	je	.L473
.L545:
	xorl	%r10d, %r10d
	movq	%r10, 496+nvtxGlobals_v3(%rip)
.L473:
	leaq	nvtxInitialize_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 504+nvtxGlobals_v3(%rip)
	je	.L546
	testb	%al, %al
	je	.L475
.L546:
	xorl	%r9d, %r9d
	movq	%r9, 504+nvtxGlobals_v3(%rip)
.L475:
	leaq	nvtxDomainSyncUserCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 512+nvtxGlobals_v3(%rip)
	je	.L547
	testb	%al, %al
	je	.L477
.L547:
	xorl	%r8d, %r8d
	movq	%r8, 512+nvtxGlobals_v3(%rip)
.L477:
	leaq	nvtxDomainSyncUserDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 520+nvtxGlobals_v3(%rip)
	je	.L548
	testb	%al, %al
	je	.L479
.L548:
	xorl	%edi, %edi
	movq	%rdi, 520+nvtxGlobals_v3(%rip)
.L479:
	leaq	nvtxDomainSyncUserAcquireStart_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 528+nvtxGlobals_v3(%rip)
	je	.L549
	testb	%al, %al
	je	.L481
.L549:
	xorl	%esi, %esi
	movq	%rsi, 528+nvtxGlobals_v3(%rip)
.L481:
	leaq	nvtxDomainSyncUserAcquireFailed_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 536+nvtxGlobals_v3(%rip)
	je	.L550
	testb	%al, %al
	je	.L483
.L550:
	xorl	%ecx, %ecx
	movq	%rcx, 536+nvtxGlobals_v3(%rip)
.L483:
	leaq	nvtxDomainSyncUserAcquireSuccess_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 544+nvtxGlobals_v3(%rip)
	je	.L551
	testb	%al, %al
	je	.L485
.L551:
	xorl	%edx, %edx
	movq	%rdx, 544+nvtxGlobals_v3(%rip)
.L485:
	leaq	nvtxDomainSyncUserReleasing_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 552+nvtxGlobals_v3(%rip)
	je	.L552
	testb	%al, %al
	je	.L360
.L552:
	xorl	%eax, %eax
	movq	%rax, 552+nvtxGlobals_v3(%rip)
.L360:
	ret
	.cfi_endproc
.LFE7639:
	.size	nvtxSetInitFunctionsToNoops_v3, .-nvtxSetInitFunctionsToNoops_v3
	.section	.rodata.nvtxInitializeInjectionLibrary_v3.str1.1,"aMS",@progbits,1
.LC1:
	.string	"NVTX_INJECTION64_PATH"
.LC2:
	.string	"InitializeInjectionNvtx2"
	.section	.text.nvtxInitializeInjectionLibrary_v3,"axG",@progbits,nvtxInitializeInjectionLibrary_v3,comdat
	.weak	nvtxInitializeInjectionLibrary_v3
	.hidden	nvtxInitializeInjectionLibrary_v3
	.type	nvtxInitializeInjectionLibrary_v3, @function
nvtxInitializeInjectionLibrary_v3:
.LFB7640:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	.LC1(%rip), %rdi
	call	getenv@PLT
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L746
	movl	$1, %esi
	movq	%rax, %rdi
	call	dlopen@PLT
	movl	$4, %edx
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L745
	leaq	.LC2(%rip), %rsi
	movq	%rax, %rdi
	call	dlsym@PLT
	testq	%rax, %rax
	jne	.L748
	movq	%rbx, %rdi
	call	dlclose@PLT
	movl	$5, %edx
	jmp	.L745
.L746:
	movq	InitializeInjectionNvtx2_fnptr(%rip), %rax
	movl	$7, %edx
	testq	%rax, %rax
	je	.L745
.L748:
	leaq	nvtxGetExportTable_v3(%rip), %rdi
	call	*%rax
	xorl	%edx, %edx
	testl	%eax, %eax
	jne	.L745
	testq	%rbx, %rbx
	je	.L749
	movq	%rbx, %rdi
	call	dlclose@PLT
.L749:
	movl	$6, %edx
.L745:
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7640:
	.size	nvtxInitializeInjectionLibrary_v3, .-nvtxInitializeInjectionLibrary_v3
	.section	.text.nvtxInitOnce_v3,"axG",@progbits,nvtxInitOnce_v3,comdat
	.weak	nvtxInitOnce_v3
	.hidden	nvtxInitOnce_v3
	.type	nvtxInitOnce_v3, @function
nvtxInitOnce_v3:
.LFB7641:
	.cfi_startproc
	endbr64
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L765
	pushq	%rdx
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	xorl	%edx, %edx
	mfence
	lock cmpxchgl	%edx, nvtxGlobals_v3(%rip)
	testl	%eax, %eax
	jne	.L768
	call	nvtxInitializeInjectionLibrary_v3
	xorl	%edi, %edi
	testl	%eax, %eax
	setne	%dil
	call	nvtxSetInitFunctionsToNoops_v3
	movl	$2, %eax
	mfence
	xchgl	nvtxGlobals_v3(%rip), %eax
	jmp	.L757
.L768:
	mfence
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L757
	call	sched_yield@PLT
	jmp	.L768
.L757:
	popq	%rax
	.cfi_def_cfa_offset 8
	ret
.L765:
	ret
	.cfi_endproc
.LFE7641:
	.size	nvtxInitOnce_v3, .-nvtxInitOnce_v3
	.section	.text.nvtxDomainSyncUserReleasing_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserReleasing_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserReleasing_impl_init_v3
	.hidden	nvtxDomainSyncUserReleasing_impl_init_v3
	.type	nvtxDomainSyncUserReleasing_impl_init_v3, @function
nvtxDomainSyncUserReleasing_impl_init_v3:
.LFB7638:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	552+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L769
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L769:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7638:
	.size	nvtxDomainSyncUserReleasing_impl_init_v3, .-nvtxDomainSyncUserReleasing_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireSuccess_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireSuccess_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.type	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, @function
nvtxDomainSyncUserAcquireSuccess_impl_init_v3:
.LFB7637:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	544+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L772
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L772:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7637:
	.size	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, .-nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireFailed_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireFailed_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.type	nvtxDomainSyncUserAcquireFailed_impl_init_v3, @function
nvtxDomainSyncUserAcquireFailed_impl_init_v3:
.LFB7636:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	536+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L775
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L775:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7636:
	.size	nvtxDomainSyncUserAcquireFailed_impl_init_v3, .-nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireStart_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireStart_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.type	nvtxDomainSyncUserAcquireStart_impl_init_v3, @function
nvtxDomainSyncUserAcquireStart_impl_init_v3:
.LFB7635:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	528+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L778
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L778:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7635:
	.size	nvtxDomainSyncUserAcquireStart_impl_init_v3, .-nvtxDomainSyncUserAcquireStart_impl_init_v3
	.section	.text.nvtxDomainSyncUserDestroy_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserDestroy_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserDestroy_impl_init_v3
	.hidden	nvtxDomainSyncUserDestroy_impl_init_v3
	.type	nvtxDomainSyncUserDestroy_impl_init_v3, @function
nvtxDomainSyncUserDestroy_impl_init_v3:
.LFB7634:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	520+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L781
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L781:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7634:
	.size	nvtxDomainSyncUserDestroy_impl_init_v3, .-nvtxDomainSyncUserDestroy_impl_init_v3
	.section	.text.nvtxDomainSyncUserCreate_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserCreate_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserCreate_impl_init_v3
	.hidden	nvtxDomainSyncUserCreate_impl_init_v3
	.type	nvtxDomainSyncUserCreate_impl_init_v3, @function
nvtxDomainSyncUserCreate_impl_init_v3:
.LFB7633:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	512+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L785
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L785:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7633:
	.size	nvtxDomainSyncUserCreate_impl_init_v3, .-nvtxDomainSyncUserCreate_impl_init_v3
	.section	.text.nvtxInitialize_impl_init_v3,"axG",@progbits,nvtxInitialize_impl_init_v3,comdat
	.weak	nvtxInitialize_impl_init_v3
	.hidden	nvtxInitialize_impl_init_v3
	.type	nvtxInitialize_impl_init_v3, @function
nvtxInitialize_impl_init_v3:
.LFB7604:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	504+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L787
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L787:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7604:
	.size	nvtxInitialize_impl_init_v3, .-nvtxInitialize_impl_init_v3
	.section	.text.nvtxDomainDestroy_impl_init_v3,"axG",@progbits,nvtxDomainDestroy_impl_init_v3,comdat
	.weak	nvtxDomainDestroy_impl_init_v3
	.hidden	nvtxDomainDestroy_impl_init_v3
	.type	nvtxDomainDestroy_impl_init_v3, @function
nvtxDomainDestroy_impl_init_v3:
.LFB7603:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	496+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L790
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L790:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7603:
	.size	nvtxDomainDestroy_impl_init_v3, .-nvtxDomainDestroy_impl_init_v3
	.section	.text.nvtxDomainCreateW_impl_init_v3,"axG",@progbits,nvtxDomainCreateW_impl_init_v3,comdat
	.weak	nvtxDomainCreateW_impl_init_v3
	.hidden	nvtxDomainCreateW_impl_init_v3
	.type	nvtxDomainCreateW_impl_init_v3, @function
nvtxDomainCreateW_impl_init_v3:
.LFB7602:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	488+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L794
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L794:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7602:
	.size	nvtxDomainCreateW_impl_init_v3, .-nvtxDomainCreateW_impl_init_v3
	.section	.text.nvtxDomainCreateA_impl_init_v3,"axG",@progbits,nvtxDomainCreateA_impl_init_v3,comdat
	.weak	nvtxDomainCreateA_impl_init_v3
	.hidden	nvtxDomainCreateA_impl_init_v3
	.type	nvtxDomainCreateA_impl_init_v3, @function
nvtxDomainCreateA_impl_init_v3:
.LFB7601:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	480+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L797
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L797:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7601:
	.size	nvtxDomainCreateA_impl_init_v3, .-nvtxDomainCreateA_impl_init_v3
	.section	.text.nvtxDomainRegisterStringW_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringW_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringW_impl_init_v3
	.hidden	nvtxDomainRegisterStringW_impl_init_v3
	.type	nvtxDomainRegisterStringW_impl_init_v3, @function
nvtxDomainRegisterStringW_impl_init_v3:
.LFB7600:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	472+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L800
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L800:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7600:
	.size	nvtxDomainRegisterStringW_impl_init_v3, .-nvtxDomainRegisterStringW_impl_init_v3
	.section	.text.nvtxDomainRegisterStringA_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringA_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringA_impl_init_v3
	.hidden	nvtxDomainRegisterStringA_impl_init_v3
	.type	nvtxDomainRegisterStringA_impl_init_v3, @function
nvtxDomainRegisterStringA_impl_init_v3:
.LFB7599:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	464+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L803
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L803:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7599:
	.size	nvtxDomainRegisterStringA_impl_init_v3, .-nvtxDomainRegisterStringA_impl_init_v3
	.section	.text.nvtxDomainNameCategoryW_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryW_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryW_impl_init_v3
	.hidden	nvtxDomainNameCategoryW_impl_init_v3
	.type	nvtxDomainNameCategoryW_impl_init_v3, @function
nvtxDomainNameCategoryW_impl_init_v3:
.LFB7598:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	456+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L805
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L805:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7598:
	.size	nvtxDomainNameCategoryW_impl_init_v3, .-nvtxDomainNameCategoryW_impl_init_v3
	.section	.text.nvtxDomainNameCategoryA_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryA_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryA_impl_init_v3
	.hidden	nvtxDomainNameCategoryA_impl_init_v3
	.type	nvtxDomainNameCategoryA_impl_init_v3, @function
nvtxDomainNameCategoryA_impl_init_v3:
.LFB7597:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	448+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L808
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L808:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7597:
	.size	nvtxDomainNameCategoryA_impl_init_v3, .-nvtxDomainNameCategoryA_impl_init_v3
	.section	.text.nvtxDomainResourceDestroy_impl_init_v3,"axG",@progbits,nvtxDomainResourceDestroy_impl_init_v3,comdat
	.weak	nvtxDomainResourceDestroy_impl_init_v3
	.hidden	nvtxDomainResourceDestroy_impl_init_v3
	.type	nvtxDomainResourceDestroy_impl_init_v3, @function
nvtxDomainResourceDestroy_impl_init_v3:
.LFB7596:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	440+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L811
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L811:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7596:
	.size	nvtxDomainResourceDestroy_impl_init_v3, .-nvtxDomainResourceDestroy_impl_init_v3
	.section	.text.nvtxDomainResourceCreate_impl_init_v3,"axG",@progbits,nvtxDomainResourceCreate_impl_init_v3,comdat
	.weak	nvtxDomainResourceCreate_impl_init_v3
	.hidden	nvtxDomainResourceCreate_impl_init_v3
	.type	nvtxDomainResourceCreate_impl_init_v3, @function
nvtxDomainResourceCreate_impl_init_v3:
.LFB7595:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	432+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L815
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L815:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7595:
	.size	nvtxDomainResourceCreate_impl_init_v3, .-nvtxDomainResourceCreate_impl_init_v3
	.section	.text.nvtxDomainRangePop_impl_init_v3,"axG",@progbits,nvtxDomainRangePop_impl_init_v3,comdat
	.weak	nvtxDomainRangePop_impl_init_v3
	.hidden	nvtxDomainRangePop_impl_init_v3
	.type	nvtxDomainRangePop_impl_init_v3, @function
nvtxDomainRangePop_impl_init_v3:
.LFB7594:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	nvtxDomainRangePop
	.cfi_endproc
.LFE7594:
	.size	nvtxDomainRangePop_impl_init_v3, .-nvtxDomainRangePop_impl_init_v3
	.section	.text.nvtxDomainRangePushEx_impl_init_v3,"axG",@progbits,nvtxDomainRangePushEx_impl_init_v3,comdat
	.weak	nvtxDomainRangePushEx_impl_init_v3
	.hidden	nvtxDomainRangePushEx_impl_init_v3
	.type	nvtxDomainRangePushEx_impl_init_v3, @function
nvtxDomainRangePushEx_impl_init_v3:
.LFB7593:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L820
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L820:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7593:
	.size	nvtxDomainRangePushEx_impl_init_v3, .-nvtxDomainRangePushEx_impl_init_v3
	.section	.text.nvtxDomainRangeEnd_impl_init_v3,"axG",@progbits,nvtxDomainRangeEnd_impl_init_v3,comdat
	.weak	nvtxDomainRangeEnd_impl_init_v3
	.hidden	nvtxDomainRangeEnd_impl_init_v3
	.type	nvtxDomainRangeEnd_impl_init_v3, @function
nvtxDomainRangeEnd_impl_init_v3:
.LFB7592:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	408+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L822
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L822:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7592:
	.size	nvtxDomainRangeEnd_impl_init_v3, .-nvtxDomainRangeEnd_impl_init_v3
	.section	.text.nvtxDomainRangeStartEx_impl_init_v3,"axG",@progbits,nvtxDomainRangeStartEx_impl_init_v3,comdat
	.weak	nvtxDomainRangeStartEx_impl_init_v3
	.hidden	nvtxDomainRangeStartEx_impl_init_v3
	.type	nvtxDomainRangeStartEx_impl_init_v3, @function
nvtxDomainRangeStartEx_impl_init_v3:
.LFB7591:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	400+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L826
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L826:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7591:
	.size	nvtxDomainRangeStartEx_impl_init_v3, .-nvtxDomainRangeStartEx_impl_init_v3
	.section	.text.nvtxDomainMarkEx_impl_init_v3,"axG",@progbits,nvtxDomainMarkEx_impl_init_v3,comdat
	.weak	nvtxDomainMarkEx_impl_init_v3
	.hidden	nvtxDomainMarkEx_impl_init_v3
	.type	nvtxDomainMarkEx_impl_init_v3, @function
nvtxDomainMarkEx_impl_init_v3:
.LFB7590:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	392+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L828
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L828:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7590:
	.size	nvtxDomainMarkEx_impl_init_v3, .-nvtxDomainMarkEx_impl_init_v3
	.section	.text.nvtxNameCudaEventW_impl_init_v3,"axG",@progbits,nvtxNameCudaEventW_impl_init_v3,comdat
	.weak	nvtxNameCudaEventW_impl_init_v3
	.hidden	nvtxNameCudaEventW_impl_init_v3
	.type	nvtxNameCudaEventW_impl_init_v3, @function
nvtxNameCudaEventW_impl_init_v3:
.LFB7618:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	384+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L831
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L831:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7618:
	.size	nvtxNameCudaEventW_impl_init_v3, .-nvtxNameCudaEventW_impl_init_v3
	.section	.text.nvtxNameCudaEventA_impl_init_v3,"axG",@progbits,nvtxNameCudaEventA_impl_init_v3,comdat
	.weak	nvtxNameCudaEventA_impl_init_v3
	.hidden	nvtxNameCudaEventA_impl_init_v3
	.type	nvtxNameCudaEventA_impl_init_v3, @function
nvtxNameCudaEventA_impl_init_v3:
.LFB7617:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	376+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L834
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L834:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7617:
	.size	nvtxNameCudaEventA_impl_init_v3, .-nvtxNameCudaEventA_impl_init_v3
	.section	.text.nvtxNameCudaStreamW_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamW_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamW_impl_init_v3
	.hidden	nvtxNameCudaStreamW_impl_init_v3
	.type	nvtxNameCudaStreamW_impl_init_v3, @function
nvtxNameCudaStreamW_impl_init_v3:
.LFB7616:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	368+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L837
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L837:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7616:
	.size	nvtxNameCudaStreamW_impl_init_v3, .-nvtxNameCudaStreamW_impl_init_v3
	.section	.text.nvtxNameCudaStreamA_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamA_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamA_impl_init_v3
	.hidden	nvtxNameCudaStreamA_impl_init_v3
	.type	nvtxNameCudaStreamA_impl_init_v3, @function
nvtxNameCudaStreamA_impl_init_v3:
.LFB7615:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	360+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L840
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L840:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7615:
	.size	nvtxNameCudaStreamA_impl_init_v3, .-nvtxNameCudaStreamA_impl_init_v3
	.section	.text.nvtxNameCudaDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceW_impl_init_v3
	.hidden	nvtxNameCudaDeviceW_impl_init_v3
	.type	nvtxNameCudaDeviceW_impl_init_v3, @function
nvtxNameCudaDeviceW_impl_init_v3:
.LFB7614:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	352+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L843
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L843:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7614:
	.size	nvtxNameCudaDeviceW_impl_init_v3, .-nvtxNameCudaDeviceW_impl_init_v3
	.section	.text.nvtxNameCudaDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceA_impl_init_v3
	.hidden	nvtxNameCudaDeviceA_impl_init_v3
	.type	nvtxNameCudaDeviceA_impl_init_v3, @function
nvtxNameCudaDeviceA_impl_init_v3:
.LFB7613:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	344+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L846
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L846:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7613:
	.size	nvtxNameCudaDeviceA_impl_init_v3, .-nvtxNameCudaDeviceA_impl_init_v3
	.section	.text.nvtxNameClEventW_impl_init_v3,"axG",@progbits,nvtxNameClEventW_impl_init_v3,comdat
	.weak	nvtxNameClEventW_impl_init_v3
	.hidden	nvtxNameClEventW_impl_init_v3
	.type	nvtxNameClEventW_impl_init_v3, @function
nvtxNameClEventW_impl_init_v3:
.LFB7632:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	336+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L849
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L849:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7632:
	.size	nvtxNameClEventW_impl_init_v3, .-nvtxNameClEventW_impl_init_v3
	.section	.text.nvtxNameClEventA_impl_init_v3,"axG",@progbits,nvtxNameClEventA_impl_init_v3,comdat
	.weak	nvtxNameClEventA_impl_init_v3
	.hidden	nvtxNameClEventA_impl_init_v3
	.type	nvtxNameClEventA_impl_init_v3, @function
nvtxNameClEventA_impl_init_v3:
.LFB7631:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	328+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L852
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L852:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7631:
	.size	nvtxNameClEventA_impl_init_v3, .-nvtxNameClEventA_impl_init_v3
	.section	.text.nvtxNameClProgramW_impl_init_v3,"axG",@progbits,nvtxNameClProgramW_impl_init_v3,comdat
	.weak	nvtxNameClProgramW_impl_init_v3
	.hidden	nvtxNameClProgramW_impl_init_v3
	.type	nvtxNameClProgramW_impl_init_v3, @function
nvtxNameClProgramW_impl_init_v3:
.LFB7630:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	320+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L855
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L855:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7630:
	.size	nvtxNameClProgramW_impl_init_v3, .-nvtxNameClProgramW_impl_init_v3
	.section	.text.nvtxNameClProgramA_impl_init_v3,"axG",@progbits,nvtxNameClProgramA_impl_init_v3,comdat
	.weak	nvtxNameClProgramA_impl_init_v3
	.hidden	nvtxNameClProgramA_impl_init_v3
	.type	nvtxNameClProgramA_impl_init_v3, @function
nvtxNameClProgramA_impl_init_v3:
.LFB7629:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	312+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L858
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L858:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7629:
	.size	nvtxNameClProgramA_impl_init_v3, .-nvtxNameClProgramA_impl_init_v3
	.section	.text.nvtxNameClSamplerW_impl_init_v3,"axG",@progbits,nvtxNameClSamplerW_impl_init_v3,comdat
	.weak	nvtxNameClSamplerW_impl_init_v3
	.hidden	nvtxNameClSamplerW_impl_init_v3
	.type	nvtxNameClSamplerW_impl_init_v3, @function
nvtxNameClSamplerW_impl_init_v3:
.LFB7628:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	304+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L861
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L861:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7628:
	.size	nvtxNameClSamplerW_impl_init_v3, .-nvtxNameClSamplerW_impl_init_v3
	.section	.text.nvtxNameClSamplerA_impl_init_v3,"axG",@progbits,nvtxNameClSamplerA_impl_init_v3,comdat
	.weak	nvtxNameClSamplerA_impl_init_v3
	.hidden	nvtxNameClSamplerA_impl_init_v3
	.type	nvtxNameClSamplerA_impl_init_v3, @function
nvtxNameClSamplerA_impl_init_v3:
.LFB7627:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	296+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L864
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L864:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7627:
	.size	nvtxNameClSamplerA_impl_init_v3, .-nvtxNameClSamplerA_impl_init_v3
	.section	.text.nvtxNameClMemObjectW_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectW_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectW_impl_init_v3
	.hidden	nvtxNameClMemObjectW_impl_init_v3
	.type	nvtxNameClMemObjectW_impl_init_v3, @function
nvtxNameClMemObjectW_impl_init_v3:
.LFB7626:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	288+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L867
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L867:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7626:
	.size	nvtxNameClMemObjectW_impl_init_v3, .-nvtxNameClMemObjectW_impl_init_v3
	.section	.text.nvtxNameClMemObjectA_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectA_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectA_impl_init_v3
	.hidden	nvtxNameClMemObjectA_impl_init_v3
	.type	nvtxNameClMemObjectA_impl_init_v3, @function
nvtxNameClMemObjectA_impl_init_v3:
.LFB7625:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	280+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L870
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L870:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7625:
	.size	nvtxNameClMemObjectA_impl_init_v3, .-nvtxNameClMemObjectA_impl_init_v3
	.section	.text.nvtxNameClCommandQueueW_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueW_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueW_impl_init_v3
	.hidden	nvtxNameClCommandQueueW_impl_init_v3
	.type	nvtxNameClCommandQueueW_impl_init_v3, @function
nvtxNameClCommandQueueW_impl_init_v3:
.LFB7624:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	272+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L873
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L873:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7624:
	.size	nvtxNameClCommandQueueW_impl_init_v3, .-nvtxNameClCommandQueueW_impl_init_v3
	.section	.text.nvtxNameClCommandQueueA_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueA_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueA_impl_init_v3
	.hidden	nvtxNameClCommandQueueA_impl_init_v3
	.type	nvtxNameClCommandQueueA_impl_init_v3, @function
nvtxNameClCommandQueueA_impl_init_v3:
.LFB7623:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	264+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L876
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L876:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7623:
	.size	nvtxNameClCommandQueueA_impl_init_v3, .-nvtxNameClCommandQueueA_impl_init_v3
	.section	.text.nvtxNameClContextW_impl_init_v3,"axG",@progbits,nvtxNameClContextW_impl_init_v3,comdat
	.weak	nvtxNameClContextW_impl_init_v3
	.hidden	nvtxNameClContextW_impl_init_v3
	.type	nvtxNameClContextW_impl_init_v3, @function
nvtxNameClContextW_impl_init_v3:
.LFB7622:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	256+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L879
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L879:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7622:
	.size	nvtxNameClContextW_impl_init_v3, .-nvtxNameClContextW_impl_init_v3
	.section	.text.nvtxNameClContextA_impl_init_v3,"axG",@progbits,nvtxNameClContextA_impl_init_v3,comdat
	.weak	nvtxNameClContextA_impl_init_v3
	.hidden	nvtxNameClContextA_impl_init_v3
	.type	nvtxNameClContextA_impl_init_v3, @function
nvtxNameClContextA_impl_init_v3:
.LFB7621:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	248+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L882
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L882:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7621:
	.size	nvtxNameClContextA_impl_init_v3, .-nvtxNameClContextA_impl_init_v3
	.section	.text.nvtxNameClDeviceW_impl_init_v3,"axG",@progbits,nvtxNameClDeviceW_impl_init_v3,comdat
	.weak	nvtxNameClDeviceW_impl_init_v3
	.hidden	nvtxNameClDeviceW_impl_init_v3
	.type	nvtxNameClDeviceW_impl_init_v3, @function
nvtxNameClDeviceW_impl_init_v3:
.LFB7620:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	240+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L885
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L885:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7620:
	.size	nvtxNameClDeviceW_impl_init_v3, .-nvtxNameClDeviceW_impl_init_v3
	.section	.text.nvtxNameClDeviceA_impl_init_v3,"axG",@progbits,nvtxNameClDeviceA_impl_init_v3,comdat
	.weak	nvtxNameClDeviceA_impl_init_v3
	.hidden	nvtxNameClDeviceA_impl_init_v3
	.type	nvtxNameClDeviceA_impl_init_v3, @function
nvtxNameClDeviceA_impl_init_v3:
.LFB7619:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	232+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L888
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L888:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7619:
	.size	nvtxNameClDeviceA_impl_init_v3, .-nvtxNameClDeviceA_impl_init_v3
	.section	.text.nvtxNameCuEventW_impl_init_v3,"axG",@progbits,nvtxNameCuEventW_impl_init_v3,comdat
	.weak	nvtxNameCuEventW_impl_init_v3
	.hidden	nvtxNameCuEventW_impl_init_v3
	.type	nvtxNameCuEventW_impl_init_v3, @function
nvtxNameCuEventW_impl_init_v3:
.LFB7612:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	224+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L891
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L891:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7612:
	.size	nvtxNameCuEventW_impl_init_v3, .-nvtxNameCuEventW_impl_init_v3
	.section	.text.nvtxNameCuEventA_impl_init_v3,"axG",@progbits,nvtxNameCuEventA_impl_init_v3,comdat
	.weak	nvtxNameCuEventA_impl_init_v3
	.hidden	nvtxNameCuEventA_impl_init_v3
	.type	nvtxNameCuEventA_impl_init_v3, @function
nvtxNameCuEventA_impl_init_v3:
.LFB7611:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	216+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L894
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L894:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7611:
	.size	nvtxNameCuEventA_impl_init_v3, .-nvtxNameCuEventA_impl_init_v3
	.section	.text.nvtxNameCuStreamW_impl_init_v3,"axG",@progbits,nvtxNameCuStreamW_impl_init_v3,comdat
	.weak	nvtxNameCuStreamW_impl_init_v3
	.hidden	nvtxNameCuStreamW_impl_init_v3
	.type	nvtxNameCuStreamW_impl_init_v3, @function
nvtxNameCuStreamW_impl_init_v3:
.LFB7610:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	208+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L897
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L897:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7610:
	.size	nvtxNameCuStreamW_impl_init_v3, .-nvtxNameCuStreamW_impl_init_v3
	.section	.text.nvtxNameCuStreamA_impl_init_v3,"axG",@progbits,nvtxNameCuStreamA_impl_init_v3,comdat
	.weak	nvtxNameCuStreamA_impl_init_v3
	.hidden	nvtxNameCuStreamA_impl_init_v3
	.type	nvtxNameCuStreamA_impl_init_v3, @function
nvtxNameCuStreamA_impl_init_v3:
.LFB7609:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	200+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L900
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L900:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7609:
	.size	nvtxNameCuStreamA_impl_init_v3, .-nvtxNameCuStreamA_impl_init_v3
	.section	.text.nvtxNameCuContextW_impl_init_v3,"axG",@progbits,nvtxNameCuContextW_impl_init_v3,comdat
	.weak	nvtxNameCuContextW_impl_init_v3
	.hidden	nvtxNameCuContextW_impl_init_v3
	.type	nvtxNameCuContextW_impl_init_v3, @function
nvtxNameCuContextW_impl_init_v3:
.LFB7608:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	192+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L903
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L903:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7608:
	.size	nvtxNameCuContextW_impl_init_v3, .-nvtxNameCuContextW_impl_init_v3
	.section	.text.nvtxNameCuContextA_impl_init_v3,"axG",@progbits,nvtxNameCuContextA_impl_init_v3,comdat
	.weak	nvtxNameCuContextA_impl_init_v3
	.hidden	nvtxNameCuContextA_impl_init_v3
	.type	nvtxNameCuContextA_impl_init_v3, @function
nvtxNameCuContextA_impl_init_v3:
.LFB7607:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	184+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L906
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L906:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7607:
	.size	nvtxNameCuContextA_impl_init_v3, .-nvtxNameCuContextA_impl_init_v3
	.section	.text.nvtxNameCuDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceW_impl_init_v3
	.hidden	nvtxNameCuDeviceW_impl_init_v3
	.type	nvtxNameCuDeviceW_impl_init_v3, @function
nvtxNameCuDeviceW_impl_init_v3:
.LFB7606:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	176+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L909
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L909:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7606:
	.size	nvtxNameCuDeviceW_impl_init_v3, .-nvtxNameCuDeviceW_impl_init_v3
	.section	.text.nvtxNameCuDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceA_impl_init_v3
	.hidden	nvtxNameCuDeviceA_impl_init_v3
	.type	nvtxNameCuDeviceA_impl_init_v3, @function
nvtxNameCuDeviceA_impl_init_v3:
.LFB7605:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	168+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L912
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L912:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7605:
	.size	nvtxNameCuDeviceA_impl_init_v3, .-nvtxNameCuDeviceA_impl_init_v3
	.section	.text.nvtxNameOsThreadW_impl_init_v3,"axG",@progbits,nvtxNameOsThreadW_impl_init_v3,comdat
	.weak	nvtxNameOsThreadW_impl_init_v3
	.hidden	nvtxNameOsThreadW_impl_init_v3
	.type	nvtxNameOsThreadW_impl_init_v3, @function
nvtxNameOsThreadW_impl_init_v3:
.LFB7589:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	160+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L915
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L915:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7589:
	.size	nvtxNameOsThreadW_impl_init_v3, .-nvtxNameOsThreadW_impl_init_v3
	.section	.text.nvtxNameOsThreadA_impl_init_v3,"axG",@progbits,nvtxNameOsThreadA_impl_init_v3,comdat
	.weak	nvtxNameOsThreadA_impl_init_v3
	.hidden	nvtxNameOsThreadA_impl_init_v3
	.type	nvtxNameOsThreadA_impl_init_v3, @function
nvtxNameOsThreadA_impl_init_v3:
.LFB7588:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	152+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L918
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L918:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7588:
	.size	nvtxNameOsThreadA_impl_init_v3, .-nvtxNameOsThreadA_impl_init_v3
	.section	.text.nvtxNameCategoryW_impl_init_v3,"axG",@progbits,nvtxNameCategoryW_impl_init_v3,comdat
	.weak	nvtxNameCategoryW_impl_init_v3
	.hidden	nvtxNameCategoryW_impl_init_v3
	.type	nvtxNameCategoryW_impl_init_v3, @function
nvtxNameCategoryW_impl_init_v3:
.LFB7587:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	144+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L921
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L921:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7587:
	.size	nvtxNameCategoryW_impl_init_v3, .-nvtxNameCategoryW_impl_init_v3
	.section	.text.nvtxNameCategoryA_impl_init_v3,"axG",@progbits,nvtxNameCategoryA_impl_init_v3,comdat
	.weak	nvtxNameCategoryA_impl_init_v3
	.hidden	nvtxNameCategoryA_impl_init_v3
	.type	nvtxNameCategoryA_impl_init_v3, @function
nvtxNameCategoryA_impl_init_v3:
.LFB7586:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	136+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L924
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L924:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7586:
	.size	nvtxNameCategoryA_impl_init_v3, .-nvtxNameCategoryA_impl_init_v3
	.section	.text.nvtxRangePop_impl_init_v3,"axG",@progbits,nvtxRangePop_impl_init_v3,comdat
	.weak	nvtxRangePop_impl_init_v3
	.hidden	nvtxRangePop_impl_init_v3
	.type	nvtxRangePop_impl_init_v3, @function
nvtxRangePop_impl_init_v3:
.LFB7585:
	.cfi_startproc
	endbr64
	pushq	%rsi
	.cfi_def_cfa_offset 16
	call	nvtxInitOnce_v3
	movq	128+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L928
	popq	%rcx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L928:
	.cfi_restore_state
	movl	$-2, %eax
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7585:
	.size	nvtxRangePop_impl_init_v3, .-nvtxRangePop_impl_init_v3
	.section	.text.nvtxRangePushW_impl_init_v3,"axG",@progbits,nvtxRangePushW_impl_init_v3,comdat
	.weak	nvtxRangePushW_impl_init_v3
	.hidden	nvtxRangePushW_impl_init_v3
	.type	nvtxRangePushW_impl_init_v3, @function
nvtxRangePushW_impl_init_v3:
.LFB7584:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	120+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L931
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L931:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7584:
	.size	nvtxRangePushW_impl_init_v3, .-nvtxRangePushW_impl_init_v3
	.section	.text.nvtxRangePushA_impl_init_v3,"axG",@progbits,nvtxRangePushA_impl_init_v3,comdat
	.weak	nvtxRangePushA_impl_init_v3
	.hidden	nvtxRangePushA_impl_init_v3
	.type	nvtxRangePushA_impl_init_v3, @function
nvtxRangePushA_impl_init_v3:
.LFB7583:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	112+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L934
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L934:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7583:
	.size	nvtxRangePushA_impl_init_v3, .-nvtxRangePushA_impl_init_v3
	.section	.text.nvtxRangePushEx_impl_init_v3,"axG",@progbits,nvtxRangePushEx_impl_init_v3,comdat
	.weak	nvtxRangePushEx_impl_init_v3
	.hidden	nvtxRangePushEx_impl_init_v3
	.type	nvtxRangePushEx_impl_init_v3, @function
nvtxRangePushEx_impl_init_v3:
.LFB7582:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	104+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L937
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L937:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7582:
	.size	nvtxRangePushEx_impl_init_v3, .-nvtxRangePushEx_impl_init_v3
	.section	.text.nvtxRangeEnd_impl_init_v3,"axG",@progbits,nvtxRangeEnd_impl_init_v3,comdat
	.weak	nvtxRangeEnd_impl_init_v3
	.hidden	nvtxRangeEnd_impl_init_v3
	.type	nvtxRangeEnd_impl_init_v3, @function
nvtxRangeEnd_impl_init_v3:
.LFB7581:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	96+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L939
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L939:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7581:
	.size	nvtxRangeEnd_impl_init_v3, .-nvtxRangeEnd_impl_init_v3
	.section	.text.nvtxRangeStartW_impl_init_v3,"axG",@progbits,nvtxRangeStartW_impl_init_v3,comdat
	.weak	nvtxRangeStartW_impl_init_v3
	.hidden	nvtxRangeStartW_impl_init_v3
	.type	nvtxRangeStartW_impl_init_v3, @function
nvtxRangeStartW_impl_init_v3:
.LFB7580:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	88+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L943
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L943:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7580:
	.size	nvtxRangeStartW_impl_init_v3, .-nvtxRangeStartW_impl_init_v3
	.section	.text.nvtxRangeStartA_impl_init_v3,"axG",@progbits,nvtxRangeStartA_impl_init_v3,comdat
	.weak	nvtxRangeStartA_impl_init_v3
	.hidden	nvtxRangeStartA_impl_init_v3
	.type	nvtxRangeStartA_impl_init_v3, @function
nvtxRangeStartA_impl_init_v3:
.LFB7579:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	80+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L946
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L946:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7579:
	.size	nvtxRangeStartA_impl_init_v3, .-nvtxRangeStartA_impl_init_v3
	.section	.text.nvtxRangeStartEx_impl_init_v3,"axG",@progbits,nvtxRangeStartEx_impl_init_v3,comdat
	.weak	nvtxRangeStartEx_impl_init_v3
	.hidden	nvtxRangeStartEx_impl_init_v3
	.type	nvtxRangeStartEx_impl_init_v3, @function
nvtxRangeStartEx_impl_init_v3:
.LFB7578:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	72+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L949
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L949:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7578:
	.size	nvtxRangeStartEx_impl_init_v3, .-nvtxRangeStartEx_impl_init_v3
	.section	.text.nvtxMarkW_impl_init_v3,"axG",@progbits,nvtxMarkW_impl_init_v3,comdat
	.weak	nvtxMarkW_impl_init_v3
	.hidden	nvtxMarkW_impl_init_v3
	.type	nvtxMarkW_impl_init_v3, @function
nvtxMarkW_impl_init_v3:
.LFB7577:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	64+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L951
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L951:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7577:
	.size	nvtxMarkW_impl_init_v3, .-nvtxMarkW_impl_init_v3
	.section	.text.nvtxMarkA_impl_init_v3,"axG",@progbits,nvtxMarkA_impl_init_v3,comdat
	.weak	nvtxMarkA_impl_init_v3
	.hidden	nvtxMarkA_impl_init_v3
	.type	nvtxMarkA_impl_init_v3, @function
nvtxMarkA_impl_init_v3:
.LFB7576:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	56+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L954
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L954:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7576:
	.size	nvtxMarkA_impl_init_v3, .-nvtxMarkA_impl_init_v3
	.section	.text.nvtxMarkEx_impl_init_v3,"axG",@progbits,nvtxMarkEx_impl_init_v3,comdat
	.weak	nvtxMarkEx_impl_init_v3
	.hidden	nvtxMarkEx_impl_init_v3
	.type	nvtxMarkEx_impl_init_v3, @function
nvtxMarkEx_impl_init_v3:
.LFB7575:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	48+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L957
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L957:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE7575:
	.size	nvtxMarkEx_impl_init_v3, .-nvtxMarkEx_impl_init_v3
	.section	.rodata._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc.str1.1,"aMS",@progbits,1
.LC3:
	.string	"cudaError %d: %s"
	.section	.text.unlikely._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"axG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
	.weak	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.hidden	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.type	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc, @function
_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc:
.LFB8022:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8022
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$288, %rsp
	.cfi_def_cfa_offset 320
	movl	%edi, 12(%rsp)
	movl	$16, %edi
	leaq	24(%rsp), %r12
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
	call	__cxa_allocate_exception@PLT
	leaq	24(%rsp), %rdi
	movl	$64, %ecx
	leaq	.LC3(%rip), %r8
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	$256, %esi
	rep stosl
	pushq	%rdx
	.cfi_def_cfa_offset 328
	movl	$256, %ecx
	movl	$2, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 336
	movl	28(%rsp), %r9d
	movq	%r12, %rdi
	call	__snprintf_chk@PLT
	popq	%rcx
	.cfi_def_cfa_offset 328
	movq	%rbx, %rdi
	popq	%rsi
	.cfi_def_cfa_offset 320
	movq	%r12, %rsi
	call	_ZNSt13runtime_errorC2EPKc@PLT
	leaq	16+_ZTVN4cuda3__410cuda_errorE(%rip), %rax
	movq	%rax, (%rbx)
	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	je	.L961
	call	__stack_chk_fail@PLT
.L961:
	leaq	_ZN4cuda3__410cuda_errorD1Ev(%rip), %rdx
	leaq	_ZTIN4cuda3__410cuda_errorE(%rip), %rsi
	movq	%rbx, %rdi
.LEHB0:
	call	__cxa_throw@PLT
.LEHE0:
	.cfi_endproc
.LFE8022:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"aG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
.LLSDA8022:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8022-.LLSDACSB8022
.LLSDACSB8022:
	.uleb128 .LEHB0-.LFB8022
	.uleb128 .LEHE0-.LEHB0
	.uleb128 0
	.uleb128 0
.LLSDACSE8022:
	.section	.text.unlikely._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"axG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
	.size	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc, .-_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.section	.rodata._ZN4cuda3__423__ensure_current_deviceD2Ev.str1.1,"aMS",@progbits,1
.LC4:
	.string	"Failed to set device"
	.section	.text._ZN4cuda3__423__ensure_current_deviceD2Ev,"axG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__423__ensure_current_deviceD2Ev
	.type	_ZN4cuda3__423__ensure_current_deviceD2Ev, @function
_ZN4cuda3__423__ensure_current_deviceD2Ev:
.LFB8031:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8031
	endbr64
	movl	4(%rdi), %eax
	cmpl	(%rdi), %eax
	je	.L970
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%eax, %edi
	call	cudaSetDevice@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L964
	call	cudaGetLastError@PLT
	leaq	.LC4(%rip), %rsi
	movl	%ebx, %edi
	call	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
.L964:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L970:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE8031:
	.section	.gcc_except_table._ZN4cuda3__423__ensure_current_deviceD2Ev,"aG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
.LLSDA8031:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8031-.LLSDACSB8031
.LLSDACSB8031:
.LLSDACSE8031:
	.section	.text._ZN4cuda3__423__ensure_current_deviceD2Ev,"axG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
	.size	_ZN4cuda3__423__ensure_current_deviceD2Ev, .-_ZN4cuda3__423__ensure_current_deviceD2Ev
	.weak	_ZN4cuda3__423__ensure_current_deviceD1Ev
	.set	_ZN4cuda3__423__ensure_current_deviceD1Ev,_ZN4cuda3__423__ensure_current_deviceD2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st:
.LFB8268:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	call	cudaStreamSynchronize@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L976
	testl	%eax, %eax
	jne	.L973
.L976:
	movl	%ebx, %eax
.L973:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8268:
	.size	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st, .-_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	.text
	.globl	libcubwt_free_device_storage
	.type	libcubwt_free_device_storage, @function
libcubwt_free_device_storage:
.LFB11772:
	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L996
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	xorl	%ebx, %ebx
	pushq	%rsi
	.cfi_def_cfa_offset 32
	cmpq	$0, 152(%rdi)
	je	.L984
	movq	208(%rdi), %rdi
	call	cudaStreamDestroy@PLT
	movq	168(%rbp), %rdi
	movl	%eax, %ebx
	call	cudaFreeHost@PLT
	movq	152(%rbp), %rdi
	testl	%eax, %eax
	cmovne	%eax, %ebx
	call	cudaFree@PLT
	testl	%eax, %eax
	cmovne	%eax, %ebx
.L984:
	movq	%rbp, %rdi
	call	free@PLT
	testl	%ebx, %ebx
	je	.L983
	popq	%rcx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %edi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 8
	jmp	_ZL23libcubwt_get_error_code9cudaError
.L983:
	.cfi_restore_state
	popq	%rdx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L996:
	.cfi_restore 3
	.cfi_restore 6
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE11772:
	.size	libcubwt_free_device_storage, .-libcubwt_free_device_storage
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC5:
	.string	"_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_"
.LC6:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_"
.LC7:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_"
.LC8:
	.ascii	"_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS"
	.ascii	"0_6detail37device_three_way_partition_policy_hubIiiE9Policy9"
	.ascii	"00EN6thrust20THRUST_200700_890_NS17counting_iterato"
	.string	"rIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i"
.LC9:
	.string	"_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_"
.LC10:
	.string	"_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_"
.LC11:
	.string	"_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_"
.LC12:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_"
.LC13:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC14:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC15:
	.string	"_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i"
.LC16:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC17:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC18:
	.string	"_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_"
.LC19:
	.string	"_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_"
.LC20:
	.string	"_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_"
.LC21:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_"
.LC22:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC23:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC24:
	.string	"_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i"
.LC25:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC26:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC27:
	.string	"_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_"
.LC28:
	.string	"_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_"
.LC29:
	.string	"_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_"
.LC30:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_"
.LC31:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC32:
	.string	"_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_"
.LC33:
	.string	"_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i"
.LC34:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC35:
	.string	"_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_"
.LC36:
	.string	"_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_"
.LC37:
	.string	"_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv"
.LC38:
	.string	"_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh"
.LC39:
	.string	"_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh"
.LC40:
	.string	"_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj"
.LC41:
	.string	"_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj"
.LC42:
	.string	"_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj"
.LC43:
	.string	"_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj"
.LC44:
	.string	"_Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj"
.LC45:
	.string	"_Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_"
.LC46:
	.string	"_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2"
.LC47:
	.string	"_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2"
.LC48:
	.string	"_Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj"
.LC49:
	.string	"_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_"
.LC50:
	.string	"_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_"
.LC51:
	.string	"_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_"
.LC52:
	.string	"_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_"
.LC53:
	.string	"_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4"
.LC54:
	.string	"_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4"
.LC55:
	.string	"_Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j"
.LC56:
	.string	"_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm"
.LC57:
	.string	"_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm"
.LC58:
	.string	"_Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm"
.LC59:
	.string	"_Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmj"
.LC60:
	.string	"_Z43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj"
.LC61:
	.string	"_Z37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj"
.LC62:
	.string	"_Z36libcubwt_gather_values_uint32_kernelPKjS0_Pjj"
.LC63:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo5beginE"
.LC64:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo3endE"
.LC65:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo6cbeginE"
.LC66:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo4cendE"
.LC67:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo6rbeginE"
.LC68:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo4rendE"
.LC69:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo7crbeginE"
.LC70:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__45__cpo5crendE"
.LC71:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE"
.LC72:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__419piecewise_constructE"
.LC73:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__48in_placeE"
.LC74:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__420unreachable_sentinelE"
.LC75:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std3__47nulloptE"
.LC76:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4swapE"
.LC77:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo9iter_moveE"
.LC78:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo7advanceE"
.LC79:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo5beginE"
.LC80:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo3endE"
.LC81:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo6cbeginE"
.LC82:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4cendE"
.LC83:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo9iter_swapE"
.LC84:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4nextE"
.LC85:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4prevE"
.LC86:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4dataE"
.LC87:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo5cdataE"
.LC88:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo4sizeE"
.LC89:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo5ssizeE"
.LC90:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c34cuda3std6ranges3__45__cpo8distanceE"
.LC91:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS6system6detail10sequential3seqE"
.LC92:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_1E"
.LC93:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_2E"
.LC94:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_3E"
.LC95:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_4E"
.LC96:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_5E"
.LC97:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_6E"
.LC98:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_7E"
.LC99:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_8E"
.LC100:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders2_9E"
.LC101:
	.string	"_ZN42_INTERNAL_0549c4bf_11_libcubwt_cu_e3e3f9c36thrust20THRUST_200700_890_NS12placeholders3_10E"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB11916:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC5(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC6(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC7(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC8(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC9(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC10(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC11(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC12(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC13(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC14(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC15(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC16(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC17(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC18(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC19(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC20(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC21(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC22(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC23(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC24(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC25(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC26(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC27(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC28(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC29(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC30(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC31(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC32(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC33(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC34(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC35(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC36(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC37(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC38(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPh(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC39(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPh(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC40(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC41(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC42(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC43(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC44(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC45(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZL37libcubwt_set_sentinel_suffixes_kernelPmPjS_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC46(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC47(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC48(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_Pj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC49(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC50(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC51(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC52(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC53(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC54(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC55(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC56(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPm(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC57(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPm(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC58(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmm(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC59(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL37libcubwt_scatter_values_uint64_kernelPKjPKmPmj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC60(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL43libcubwt_permute_block_values_uint32_kernelPKjS0_Pjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC61(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_ZL37libcubwt_scatter_values_uint32_kernelPKjS0_Pjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC62(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZL36libcubwt_gather_values_uint32_kernelPKjS0_Pjj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC63(%rip), %rdx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5beginE(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC64(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC65(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC66(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC67(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6rbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC68(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4rendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC69(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo7crbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC70(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5crendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC71(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC72(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__419piecewise_constructE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC73(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__48in_placeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC74(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__420unreachable_sentinelE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC75(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__47nulloptE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC76(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4swapE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC77(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_moveE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC78(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo7advanceE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC79(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5beginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC80(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC81(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC82(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC83(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_swapE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC84(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4nextE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC85(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4prevE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC86(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4dataE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC87(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5cdataE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC88(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4sizeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC89(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5ssizeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC90(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo8distanceE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC91(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC92(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC93(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC94(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC95(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC96(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC97(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC98(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC99(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC100(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC101(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movl	$1, %r9d
	movq	%rdx, %rcx
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE11916:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.rodata._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i.str1.1,"aMS",@progbits,1
.LC102:
	.string	"Failed to query current device"
	.section	.text._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	.type	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i, @function
_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i:
.LFB12307:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12307
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$168, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movb	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %al
	testb	%al, %al
	jne	.L1003
	leaq	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L1003
	movq	%rsp, %rdi
	movl	$-1, (%rsp)
.LEHB1:
	call	cudaGetDeviceCount@PLT
	movl	%eax, %ebp
	call	cudaGetLastError@PLT
.LEHE1:
	testl	%ebp, %ebp
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L1030
	testl	%ebp, %ebp
	je	.L1005
.L1030:
	movl	$-1, (%rsp)
.L1005:
	movl	(%rsp), %eax
	movq	%r14, %rdi
	movl	%eax, _ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip)
	call	__cxa_guard_release@PLT
.L1003:
	cmpl	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %ebx
	jge	.L1007
	testl	%ebx, %ebx
	js	.L1007
	jmp	.L1051
.L1028:
	endbr64
	movq	%rax, %rbx
.L1009:
	movq	%r14, %rdi
	call	__cxa_guard_abort@PLT
	jmp	.L1050
.L1051:
	imulq	$12, %rbx, %rbp
	addq	%r13, %rbp
	movl	0(%rbp), %eax
	cmpl	$2, %eax
	je	.L1025
	jmp	.L1052
.L1007:
	movl	$101, %eax
	salq	$32, %rax
	jmp	.L1013
.L1052:
	xorl	%eax, %eax
	movl	$1, %edx
	lock cmpxchgl	%edx, 0(%rbp)
	jne	.L1014
	movl	(%r12), %eax
	leaq	4(%rsp), %rdi
	movl	%eax, (%rsp)
	xorl	%eax, %eax
	movl	%eax, 4(%rsp)
.LEHB2:
	call	cudaGetDevice@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L1015
	call	cudaGetLastError@PLT
	leaq	.LC102(%rip), %rsi
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1049
	jmp	.L1048
.L1015:
	movl	(%rsp), %edi
	cmpl	%edi, 4(%rsp)
	je	.L1017
	call	cudaSetDevice@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L1017
	call	cudaGetLastError@PLT
	leaq	.LC4(%rip), %rsi
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1048
.L1049:
	movl	%r12d, %edi
	call	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
.LEHE2:
.L1017:
	leaq	8(%rsp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rsi
	movq	%rsp, %r15
.LEHB3:
	call	cudaFuncGetAttributes@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
.LEHE3:
	movl	%eax, %r12d
	testl	%r14d, %r14d
	jne	.L1031
	testl	%eax, %eax
	jne	.L1019
.L1031:
	movl	%r14d, %r12d
.L1019:
	imull	$10, 40(%rsp), %eax
	movq	%r15, %rdi
	movl	%eax, 4(%rbp)
	call	_ZN4cuda3__423__ensure_current_deviceD1Ev
	movl	%r12d, 8(%rbp)
	testl	%r12d, %r12d
	je	.L1022
.LEHB4:
	call	cudaGetLastError@PLT
	jmp	.L1022
.L1029:
	endbr64
	movq	%rax, %rbx
.L1023:
	movq	%r15, %rdi
	call	_ZN4cuda3__423__ensure_current_deviceD1Ev
.L1050:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1048
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE4:
.L1022:
	movl	$2, 0(%rbp)
	jmp	.L1025
.L1014:
	decl	%eax
	jne	.L1025
.L1026:
	movl	0(%rbp), %eax
	cmpl	$2, %eax
	jne	.L1026
.L1025:
	imulq	$12, %rbx, %rbx
	movq	4(%r13,%rbx), %rax
.L1013:
	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1027
.L1048:
	call	__stack_chk_fail@PLT
.L1027:
	addq	$168, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12307:
	.section	.gcc_except_table._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,"aG",@progbits,_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,comdat
.LLSDA12307:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12307-.LLSDACSB12307
.LLSDACSB12307:
	.uleb128 .LEHB1-.LFB12307
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L1028-.LFB12307
	.uleb128 0
	.uleb128 .LEHB2-.LFB12307
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB3-.LFB12307
	.uleb128 .LEHE3-.LEHB3
	.uleb128 .L1029-.LFB12307
	.uleb128 0
	.uleb128 .LEHB4-.LFB12307
	.uleb128 .LEHE4-.LEHB4
	.uleb128 0
	.uleb128 0
.LLSDACSE12307:
	.section	.text._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,comdat
	.size	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i, .-_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	.section	.text._ZN3cub17CUB_200700_890_NS10PtxVersionERii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS10PtxVersionERii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS10PtxVersionERii
	.type	_ZN3cub17CUB_200700_890_NS10PtxVersionERii, @function
_ZN3cub17CUB_200700_890_NS10PtxVersionERii:
.LFB8262:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movl	%esi, %ebx
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movb	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %al
	testb	%al, %al
	jne	.L1055
	leaq	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %r13
	movq	%r13, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L1055
	movl	$384, %ecx
	xorl	%eax, %eax
	movq	%r12, %rdi
	rep stosl
	movq	%r13, %rdi
	call	__cxa_guard_release@PLT
.L1055:
	movl	%ebx, %edx
	movq	%r12, %rdi
	leaq	4(%rsp), %rsi
	movl	%ebx, 4(%rsp)
	call	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	movq	%rax, %r12
	movq	%rax, %rbx
	call	cudaGetLastError@PLT
	shrq	$32, %r12
	orl	%r12d, %eax
	movl	%r12d, %r13d
	jne	.L1053
	movl	%ebx, 0(%rbp)
.L1053:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1058
	call	__stack_chk_fail@PLT
.L1058:
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8262:
	.size	_ZN3cub17CUB_200700_890_NS10PtxVersionERii, .-_ZN3cub17CUB_200700_890_NS10PtxVersionERii
	.section	.text._ZN3cub17CUB_200700_890_NS10PtxVersionERi,"axG",@progbits,_ZN3cub17CUB_200700_890_NS10PtxVersionERi,comdat
	.weak	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	.type	_ZN3cub17CUB_200700_890_NS10PtxVersionERi, @function
_ZN3cub17CUB_200700_890_NS10PtxVersionERi:
.LFB8264:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rdi
	movl	$-1, 4(%rsp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L1067
	testl	%ebx, %ebx
	jne	.L1067
	movl	4(%rsp), %esi
	jmp	.L1064
.L1067:
	orl	$-1, %esi
.L1064:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1065
	call	__stack_chk_fail@PLT
.L1065:
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZN3cub17CUB_200700_890_NS10PtxVersionERii
	.cfi_endproc
.LFE8264:
	.size	_ZN3cub17CUB_200700_890_NS10PtxVersionERi, .-_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	.section	.rodata
	.align 32
.LC0:
	.value	3
	.value	48
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.quad	0
	.long	0
	.zero	4
	.quad	0
	.section	.text._ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_,"axG",@progbits,_ZN5nvtx32v116event_attributesC5IJEEERKNS0_7messageEDpRKT_,comdat
	.align 2
	.weak	_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_
	.type	_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_, @function
_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_:
.LFB12451:
	.cfi_startproc
	endbr64
	movq	%rsi, %rdx
	movq	%rdi, %rax
	movl	$12, %ecx
	leaq	.LC0(%rip), %rsi
	rep movsl
	movq	8(%rdx), %rcx
	movl	(%rdx), %edx
	movq	%rcx, 40(%rax)
	movl	%edx, 32(%rax)
	ret
	.cfi_endproc
.LFE12451:
	.size	_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_, .-_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_
	.weak	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_
	.set	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_,_ZN5nvtx32v116event_attributesC2IJEEERKNS0_7messageEDpRKT_
	.section	.rodata._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v.str1.1,"aMS",@progbits,1
.LC103:
	.string	"CCCL"
	.section	.text._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,"axG",@progbits,_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,comdat
	.weak	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	.type	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v, @function
_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v:
.LFB12972:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12972
	endbr64
	movb	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %al
	testb	%al, %al
	jne	.L1080
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rbx
	movq	%rbx, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L1072
	movq	480+nvtxGlobals_v3(%rip), %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L1074
	leaq	.LC103(%rip), %rdi
	call	*%rdx
.L1074:
	movq	%rbx, %rdi
	movq	%rax, _ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip)
	call	__cxa_guard_release@PLT
.L1072:
	leaq	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L1080:
	.cfi_restore 3
	leaq	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rax
	ret
	.cfi_endproc
.LFE12972:
	.section	.gcc_except_table._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,"aG",@progbits,_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,comdat
.LLSDA12972:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12972-.LLSDACSB12972
.LLSDACSB12972:
.LLSDACSE12972:
	.section	.text._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,"axG",@progbits,_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,comdat
	.size	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v, .-_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	.section	.text._ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc,"axG",@progbits,_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC5EPKc,comdat
	.align 2
	.weak	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc
	.type	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc, @function
_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc:
.LFB12775:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12775
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%rsi, 8(%rsp)
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	464+nvtxGlobals_v3(%rip), %rdx
	movq	(%rax), %rdi
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L1084
	movq	8(%rsp), %rsi
	call	*%rdx
.L1084:
	movq	%rax, (%rbx)
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12775:
	.section	.gcc_except_table._ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc,"aG",@progbits,_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC5EPKc,comdat
.LLSDA12775:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12775-.LLSDACSB12775
.LLSDACSB12775:
.LLSDACSE12775:
	.section	.text._ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc,"axG",@progbits,_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC5EPKc,comdat
	.size	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc, .-_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc
	.weak	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc
	.set	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc,_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC2EPKc
	.text
	.align 2
	.type	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0, @function
_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0:
.LFB13626:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13626
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	cmpb	$0, 1(%rdi)
	je	.L1089
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	call	nvtxDomainRangePop
	movb	$0, 1(%rbx)
.L1089:
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L1090
	movq	%rbp, %rsi
	call	*%rax
.L1090:
	movb	$1, 1(%rbx)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13626:
	.section	.gcc_except_table,"a",@progbits
.LLSDA13626:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13626-.LLSDACSB13626
.LLSDACSB13626:
.LLSDACSE13626:
	.text
	.size	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0, .-_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0
	.section	.text._ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev,"axG",@progbits,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED5Ev,comdat
	.align 2
	.weak	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.hidden	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.type	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev, @function
_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev:
.LFB12772:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12772
	endbr64
	cmpb	$0, 1(%rdi)
	je	.L1098
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	call	nvtxDomainRangePop
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
.L1098:
	ret
	.cfi_endproc
.LFE12772:
	.section	.gcc_except_table
.LLSDA12772:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12772-.LLSDACSB12772
.LLSDACSB12772:
.LLSDACSE12772:
	.section	.text._ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev,"axG",@progbits,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED5Ev,comdat
	.size	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev, .-_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.weak	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev
	.hidden	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev
	.set	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC5Ev,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev:
.LFB13180:
	.cfi_startproc
	endbr64
	movq	%rdi, %rdx
	movl	$20, %ecx
	xorl	%eax, %eax
	rep stosl
	movb	$0, 160(%rdx)
	ret
	.cfi_endproc
.LFE13180:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	.set	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC2Ev
	.section	.text._ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv,"axG",@progbits,_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv,comdat
	.align 2
	.weak	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	.type	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv, @function
_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv:
.LFB13234:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	cmpq	$0, 8(%rdi)
	je	.L1102
	movq	(%rdi), %rax
	movq	8(%rax), %rax
.L1102:
	ret
	.cfi_endproc
.LFE13234:
	.size	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv, .-_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv:
.LFB13299:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rdx
	movq	8(%rdi), %rax
	movq	(%rdx), %rcx
	leaq	0(,%rax,4), %rax
	cmpq	%rcx, %rax
	cmovb	%rcx, %rax
	movq	%rax, (%rdx)
	ret
	.cfi_endproc
.LFE13299:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm:
.LFB13224:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rdi, 8(%rsp)
	leaq	8(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	movq	8(%rsp), %rax
	movq	16(%rsp), %rdx
	movq	24(%rsp), %rcx
	subq	%fs:40, %rcx
	je	.L1107
	call	__stack_chk_fail@PLT
.L1107:
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13224:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv:
.LFB13313:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rdx
	movq	8(%rdi), %rcx
	movq	(%rdx), %rax
	cmpq	%rcx, %rax
	cmovb	%rcx, %rax
	movq	%rax, (%rdx)
	ret
	.cfi_endproc
.LFE13313:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm:
.LFB13232:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rdi, 8(%rsp)
	leaq	8(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
	movq	8(%rsp), %rax
	movq	16(%rsp), %rdx
	movq	24(%rsp), %rcx
	subq	%fs:40, %rcx
	je	.L1111
	call	__stack_chk_fail@PLT
.L1111:
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13232:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv:
.LFB13314:
	.cfi_startproc
	endbr64
	cmpb	$0, 160(%rdi)
	jne	.L1113
	movq	(%rdi), %rax
	leaq	120(%rdi), %rdx
	movl	$10, %ecx
	movq	%rax, 80(%rdi)
	movq	16(%rdi), %rax
	movq	%rax, 88(%rdi)
	movq	32(%rdi), %rax
	movq	%rax, 96(%rdi)
	movq	48(%rdi), %rax
	movq	%rax, 104(%rdi)
	movq	64(%rdi), %rax
	movq	%rax, 112(%rdi)
	xorl	%eax, %eax
	movq	%rdx, %rdi
	rep stosl
.L1113:
	ret
	.cfi_endproc
.LFE13314:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv:
.LFB13240:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv
	xorl	%ecx, %ecx
	xorl	%eax, %eax
.L1116:
	movq	80(%rbx,%rcx), %rsi
	addq	$8, %rcx
	leaq	255(%rsi), %rdx
	xorb	%dl, %dl
	addq	%rdx, %rax
	cmpq	$40, %rcx
	jne	.L1116
	addq	$255, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13240:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv
	.section	.text._ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm,"axG",@progbits,_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	.type	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm, @function
_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm:
.LFB13241:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$48, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	movl	$208, %eax
	cmpb	$0, 160(%rdi)
	jne	.L1119
	movq	%rsi, %rbp
	movq	%rdx, %r12
	movq	%rdi, %rbx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE17prepare_interfaceEv
	xorl	%edx, %edx
	xorl	%eax, %eax
	movq	%rsp, %rsi
.L1121:
	movq	80(%rbx,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L1121
	addq	$255, %rax
	testq	%rbp, %rbp
	jne	.L1122
.L1125:
	movq	120(%rbx), %rax
	movb	$1, 160(%rbx)
	movq	%rax, 8(%rbx)
	movq	128(%rbx), %rax
	movq	%rax, 24(%rbx)
	movq	136(%rbx), %rax
	movq	%rax, 40(%rbx)
	movq	144(%rbx), %rax
	movq	%rax, 56(%rbx)
	movq	152(%rbx), %rax
	movq	%rax, 72(%rbx)
	xorl	%eax, %eax
	jmp	.L1119
.L1122:
	cmpq	%rax, %r12
	jnb	.L1123
	call	cudaGetLastError@PLT
	movl	$1, %eax
	jmp	.L1119
.L1123:
	addq	$255, %rbp
	xorl	%eax, %eax
	xorb	%bpl, %bpl
.L1124:
	movq	(%rsi,%rax), %rdx
	addq	%rbp, %rdx
	movq	%rdx, 120(%rbx,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L1124
	jmp	.L1125
.L1119:
	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1126
	call	__stack_chk_fail@PLT
.L1126:
	addq	$48, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13241:
	.size	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm, .-_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	.section	.text._ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv,"axG",@progbits,_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv,comdat
	.align 2
	.weak	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	.type	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv, @function
_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv:
.LFB13315:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	cmpq	$0, 8(%rdi)
	je	.L1131
	movq	(%rdi), %rax
	movq	8(%rax), %rax
.L1131:
	ret
	.cfi_endproc
.LFE13315:
	.size	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv, .-_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13317:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1135
.L1139:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$15, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$4, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$127, %cl
	setne	%al
	shrl	$7, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1134
	jmp	.L1153
.L1135:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1144
	testl	%r15d, %r15d
	je	.L1134
.L1144:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1134
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1134
	jmp	.L1139
.L1153:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1145
	testl	%eax, %eax
	jne	.L1134
.L1145:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1134
	call	cudaGetLastError@PLT
.L1134:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1141
	call	__stack_chk_fail@PLT
.L1141:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13317:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	.hidden	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_:
.LFB13334:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rax
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rdi), %esi
	movq	32(%rdi), %r9
	movq	24(%rdi), %r8
	movq	%rax, %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1155
	movq	0(%rbp), %rdi
	call	*%rbx
.L1155:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE13334:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13353:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1158
.L1162:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$127, %cl
	setne	%al
	shrl	$7, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1157
	jmp	.L1176
.L1158:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1167
	testl	%r15d, %r15d
	je	.L1157
.L1167:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1157
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1157
	jmp	.L1162
.L1176:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1168
	testl	%eax, %eax
	jne	.L1157
.L1168:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1157
	call	cudaGetLastError@PLT
.L1157:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1164
	call	__stack_chk_fail@PLT
.L1164:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13353:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13387:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1178
.L1182:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$31, %cl
	setne	%al
	shrl	$5, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1177
	jmp	.L1196
.L1178:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1187
	testl	%r15d, %r15d
	je	.L1177
.L1187:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1177
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1177
	jmp	.L1182
.L1196:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1188
	testl	%eax, %eax
	jne	.L1177
.L1188:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1177
	call	cudaGetLastError@PLT
.L1177:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1184
	call	__stack_chk_fail@PLT
.L1184:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13387:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13412:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1198
.L1202:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$63, %cl
	setne	%al
	shrl	$6, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1197
	jmp	.L1216
.L1198:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1207
	testl	%r15d, %r15d
	je	.L1197
.L1207:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1197
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1197
	jmp	.L1202
.L1216:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1208
	testl	%eax, %eax
	jne	.L1197
.L1208:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1197
	call	cudaGetLastError@PLT
.L1197:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1204
	call	__stack_chk_fail@PLT
.L1204:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13412:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13433:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1218
.L1222:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$63, %cl
	setne	%al
	shrl	$6, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1217
	jmp	.L1236
.L1218:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1227
	testl	%r15d, %r15d
	je	.L1217
.L1227:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1217
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1217
	jmp	.L1222
.L1236:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1228
	testl	%eax, %eax
	jne	.L1217
.L1228:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1217
	call	cudaGetLastError@PLT
.L1217:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1224
	call	__stack_chk_fail@PLT
.L1224:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13433:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev,"axG",@progbits,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC5Ev,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev
	.type	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev, @function
_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev:
.LFB13450:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	movq	%rax, 8(%rdi)
	movq	%rax, 16(%rdi)
	movq	%rax, 32(%rdi)
	movq	%rax, 40(%rdi)
	movq	%rax, 56(%rdi)
	movq	%rax, 64(%rdi)
	movq	%rax, 84(%rdi)
	movq	%rax, 92(%rdi)
	movq	%rax, 100(%rdi)
	movq	%rax, 108(%rdi)
	movq	%rax, 116(%rdi)
	ret
	.cfi_endproc
.LFE13450:
	.size	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev, .-_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev
	.set	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev,"axG",@progbits,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC5Ev,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev
	.type	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev, @function
_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev:
.LFB13456:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	movq	%rax, 8(%rdi)
	movq	%rax, 16(%rdi)
	movq	%rax, 32(%rdi)
	movq	%rax, 40(%rdi)
	movq	%rax, 56(%rdi)
	movq	%rax, 64(%rdi)
	movq	%rax, 84(%rdi)
	movq	%rax, 92(%rdi)
	movq	%rax, 100(%rdi)
	movq	%rax, 108(%rdi)
	movq	%rax, 116(%rdi)
	ret
	.cfi_endproc
.LFE13456:
	.size	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev, .-_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev
	.set	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev,"axG",@progbits,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC5Ev,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev
	.type	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev, @function
_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev:
.LFB13462:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	movq	%rax, 8(%rdi)
	movq	%rax, 16(%rdi)
	movq	%rax, 32(%rdi)
	movq	%rax, 40(%rdi)
	movq	%rax, 56(%rdi)
	movq	%rax, 64(%rdi)
	movq	%rax, 84(%rdi)
	movq	%rax, 92(%rdi)
	movq	%rax, 100(%rdi)
	movq	%rax, 108(%rdi)
	movq	%rax, 116(%rdi)
	ret
	.cfi_endproc
.LFE13462:
	.size	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev, .-_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev
	.weak	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev
	.set	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev,_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13467:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1241
.L1245:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$63, %cl
	setne	%al
	shrl	$6, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1240
	jmp	.L1259
.L1241:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1250
	testl	%r15d, %r15d
	je	.L1240
.L1250:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1240
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1240
	jmp	.L1245
.L1259:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1251
	testl	%eax, %eax
	jne	.L1240
.L1251:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1240
	call	cudaGetLastError@PLT
.L1240:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1247
	call	__stack_chk_fail@PLT
.L1247:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13467:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13491:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1261
.L1265:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$7, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$3, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$63, %cl
	setne	%al
	shrl	$6, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1260
	jmp	.L1279
.L1261:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$1099511627777, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1270
	testl	%r15d, %r15d
	je	.L1260
.L1270:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1260
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1260
	jmp	.L1265
.L1279:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$1099511627777, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1271
	testl	%eax, %eax
	jne	.L1260
.L1271:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1260
	call	cudaGetLastError@PLT
.L1260:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1267
	call	__stack_chk_fail@PLT
.L1267:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13491:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.hidden	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st:
.LFB13519:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movq	224(%rsp), %rdx
	movq	264(%rsp), %r14
	movq	%rcx, 56(%rsp)
	movq	%r8, 48(%rsp)
	movq	288(%rsp), %r13
	movq	%rdx, 32(%rsp)
	movq	248(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movl	(%r14), %ebp
	movq	%rdx, 24(%rsp)
	movq	256(%rsp), %rdx
	movq	%rdx, 16(%rsp)
	movq	272(%rsp), %rdx
	movq	%rdx, 8(%rsp)
	movq	280(%rsp), %rdx
	movq	%rdx, (%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	testl	%ebp, %ebp
	jne	.L1281
.L1285:
	movl	4(%r14), %ecx
	movl	%ebx, %edx
	xorl	%esi, %esi
	addl	%ecx, %ebp
	movl	%ecx, 76(%rsp)
	subl	%ebp, %edx
	testb	$3, %dl
	movl	%edx, %eax
	movl	%edx, 80(%rsp)
	setne	%sil
	shrl	$2, %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	$31, %cl
	setne	%al
	shrl	$5, %ecx
	movl	%esi, 84(%rsp)
	addl	%ecx, %eax
	addl	%esi, %eax
	je	.L1280
	jmp	.L1299
.L1281:
	movq	%rdi, %rax
	leaq	56(%rsp), %rcx
	movl	%ebp, 96(%rsp)
	movabsq	$549755813889, %rdi
	movq	%rdi, 104(%rsp)
	leaq	8(%rsp), %rdx
	movabsq	$4294967297, %rdi
	movq	%rdi, 112(%rsp)
	xorl	%edi, %edi
	movq	%rdi, 120(%rsp)
	leaq	96(%rsp), %rdi
	movl	$1, 100(%rsp)
	movq	%r13, 128(%rsp)
	pushq	%r8
	.cfi_def_cfa_offset 216
	leaq	24(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 232
	leaq	256(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 240
	leaq	64(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 248
	leaq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 256
	movq	%rax, %rsi
	leaq	256(%rsp), %r9
	leaq	96(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjS6_PjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	je	.L1290
	testl	%r15d, %r15d
	je	.L1280
.L1290:
	movl	%r15d, %eax
	testl	%r15d, %r15d
	jne	.L1280
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1280
	jmp	.L1285
.L1299:
	movl	%eax, 96(%rsp)
	subq	%rdx, %rbx
	leaq	80(%rsp), %rcx
	movabsq	$549755813889, %rax
	movq	%rax, 104(%rsp)
	leaq	76(%rsp), %rdx
	movabsq	$4294967297, %rax
	leaq	96(%rsp), %rdi
	movq	%rax, 112(%rsp)
	xorl	%eax, %eax
	movq	%rax, 120(%rsp)
	movq	8(%rsp), %rax
	movl	$1, 100(%rsp)
	leaq	(%rax,%rbx,4), %rax
	movq	%r13, 128(%rsp)
	movq	%rax, 88(%rsp)
	pushq	%rsi
	.cfi_def_cfa_offset 216
	movq	%r12, %rsi
	leaq	24(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 224
	leaq	40(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 232
	leaq	56(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 240
	leaq	72(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 248
	leaq	88(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 256
	leaq	104(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 264
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	64(%rsp), %r9
	leaq	148(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvjjjPKjS6_S6_PjS6_S7_S7_S7_EJjjjS7_S7_S7_S7_S7_S7_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	.cfi_def_cfa_offset 208
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1291
	testl	%eax, %eax
	jne	.L1280
.L1291:
	movl	%ebx, %eax
	testl	%ebx, %ebx
	jne	.L1280
	call	cudaGetLastError@PLT
.L1280:
	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1287
	call	__stack_chk_fail@PLT
.L1287:
	addq	$152, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13519:
	.size	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st:
.LFB12787:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%r9d, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$632, %rsp
	.cfi_def_cfa_offset 688
	movq	688(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rsi, 40(%rsp)
	movq	704(%rsp), %r12
	movq	%rax, 16(%rsp)
	movq	696(%rsp), %rax
	movl	%r8d, 48(%rsp)
	movq	%rax, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 616(%rsp)
	xorl	%eax, %eax
	xorl	%eax, %eax
	movl	%eax, 72(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1962
	testl	%eax, %eax
	jne	.L1301
	testl	%ebx, %ebx
	jne	.L1962
	movq	32(%rsp), %rax
	leaq	448(%rsp), %rsi
	movq	%r14, 264(%rsp)
	leaq	464(%rsp), %r15
	movq	%r13, 272(%rsp)
	movq	%rax, 248(%rsp)
	movq	40(%rsp), %rax
	movl	%ebp, 284(%rsp)
	movq	%rax, 256(%rsp)
	movl	48(%rsp), %eax
	movb	$1, 304(%rsp)
	movl	%eax, 280(%rsp)
	movq	16(%rsp), %rax
	movq	%r12, 312(%rsp)
	movq	%rax, 288(%rsp)
	movq	24(%rsp), %rax
	movq	%rsi, 8(%rsp)
	movq	%rax, 296(%rsp)
	movl	72(%rsp), %eax
	cmpl	$859, %eax
	jg	.L1303
	cmpl	$799, %eax
	jg	.L1304
	cmpl	$699, %eax
	jg	.L1305
	cmpl	$619, %eax
	jg	.L1306
	cmpl	$609, %eax
	jg	.L1307
	cmpl	$599, %eax
	jg	.L1308
	cmpl	$499, %eax
	jg	.L1309
	movq	%rsi, %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$300, %ebp
	jle	.L1310
	movslq	%ebp, %r15
	leaq	112(%rsp), %rdi
	movq	%r15, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	128(%rsp), %rdi
	movq	%r15, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L1964
	testl	%r15d, %r15d
	jne	.L1964
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1312
	cmpl	$859, %eax
	jg	.L1313
	cmpl	$799, %eax
	jle	.L1313
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2285
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1317
.L2285:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1317
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3416
	jmp	.L1317
.L1313:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2286
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1317
.L2286:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1317
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3416
	jmp	.L1317
.L1312:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2287
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1317
.L2287:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1317
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1317
	movl	$3840, %ecx
.L3416:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1317:
	call	cudaGetLastError@PLT
	jmp	.L1324
.L1964:
	xorl	%r15d, %r15d
.L1324:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1310:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2288
	testl	%eax, %eax
	jne	.L1391
.L2288:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$300, %ebp
	jle	.L1330
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L1978
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1331
	testl	%r15d, %r15d
	jne	.L1978
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$160, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$21, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1333
	cmpl	$859, %eax
	jg	.L1334
	cmpl	$799, %eax
	jle	.L1334
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L1994
	testl	%eax, %eax
	jne	.L1371
	testl	%ecx, %ecx
	jne	.L1994
	movl	$2816, %ecx
	jmp	.L3713
.L1334:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L1994
	testl	%eax, %eax
	jne	.L1371
	testl	%ecx, %ecx
	jne	.L1994
	movl	$2304, %ecx
.L3713:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1362
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1363
.L1362:
	cmpq	%rax, 96(%rsp)
	jnb	.L1364
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1363
.L1364:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1363:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2301
	testl	%eax, %eax
	jne	.L1995
.L2301:
	testl	%edx, %edx
	jne	.L1371
	testq	%rbx, %rbx
	je	.L1371
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2302
	testl	%eax, %eax
	jne	.L1371
.L2302:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1371
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L1997
	testl	%eax, %eax
	jne	.L1371
	testl	%ebx, %ebx
	jne	.L1997
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3456
.L1333:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L1994
	testl	%eax, %eax
	jne	.L1371
	testl	%ecx, %ecx
	jne	.L1994
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1373
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1374
.L1373:
	cmpq	%rax, 96(%rsp)
	jnb	.L1375
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1374
.L1375:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1374:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2306
	testl	%eax, %eax
	jne	.L1995
.L2306:
	testl	%edx, %edx
	jne	.L1371
	testq	%rbx, %rbx
	je	.L1371
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2307
	testl	%eax, %eax
	jne	.L1371
.L2307:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1371
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L1997
	testl	%eax, %eax
	jne	.L1371
	testl	%ebx, %ebx
	jne	.L1997
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3456:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2309
	testl	%eax, %eax
	jne	.L1371
.L2309:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1371
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1371
	jmp	.L1347
.L1994:
	movl	%ecx, %edx
	jmp	.L1371
.L1995:
	movl	%eax, %edx
	jmp	.L1371
.L1997:
	movl	%ebx, %edx
.L1371:
	movl	%edx, %r15d
.L1347:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L1978
	testl	%eax, %eax
	jne	.L1331
	testl	%r15d, %r15d
	je	.L1383
.L1978:
	movl	%r15d, %eax
.L1331:
	movl	%eax, %r15d
.L1383:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2311
	testl	%eax, %eax
	jne	.L1957
.L2311:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2312
	testl	%eax, %eax
	jne	.L1957
.L2312:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2313
	testl	%eax, %eax
	jne	.L1957
.L2313:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi128ELi9EjLNS0_18BlockLoadAlgorithmE4ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi128ELi9EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi128ENS0_27AgentSubWarpMergeSortPolicyILi4ELi5ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi5ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1330:
	.cfi_restore_state
	movl	%ebp, 320(%rsp)
	movabsq	$549755813889, %rbx
	movl	$1, 324(%rsp)
	jmp	.L3540
.L1309:
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$300, %ebp
	jle	.L1392
	movslq	%ebp, %r15
	leaq	112(%rsp), %rdi
	movq	%r15, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	128(%rsp), %rdi
	movq	%r15, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L2004
	testl	%r15d, %r15d
	jne	.L2004
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1394
	cmpl	$859, %eax
	jg	.L1395
	cmpl	$799, %eax
	jle	.L1395
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2316
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1399
.L2316:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1399
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3417
	jmp	.L1399
.L1395:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2317
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1399
.L2317:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1399
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3417
	jmp	.L1399
.L1394:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2318
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1399
.L2318:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1399
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1399
	movl	$3840, %ecx
.L3417:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1399:
	call	cudaGetLastError@PLT
	jmp	.L1406
.L2004:
	xorl	%r15d, %r15d
.L1406:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1392:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2319
	testl	%eax, %eax
	jne	.L1391
.L2319:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$300, %ebp
	jle	.L1898
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2018
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1413
	testl	%r15d, %r15d
	jne	.L2018
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$224, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$29, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1415
	cmpl	$859, %eax
	jg	.L1416
	cmpl	$799, %eax
	jle	.L1416
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2034
	testl	%eax, %eax
	jne	.L1453
	testl	%ecx, %ecx
	jne	.L2034
	movl	$2816, %ecx
	jmp	.L3718
.L1416:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2034
	testl	%eax, %eax
	jne	.L1453
	testl	%ecx, %ecx
	jne	.L2034
	movl	$2304, %ecx
.L3718:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1444
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1445
.L1444:
	cmpq	%rax, 96(%rsp)
	jnb	.L1446
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1445
.L1446:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1445:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2332
	testl	%eax, %eax
	jne	.L2035
.L2332:
	testl	%edx, %edx
	jne	.L1453
	testq	%rbx, %rbx
	je	.L1453
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2333
	testl	%eax, %eax
	jne	.L1453
.L2333:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1453
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2037
	testl	%eax, %eax
	jne	.L1453
	testl	%ebx, %ebx
	jne	.L2037
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3462
.L1415:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2034
	testl	%eax, %eax
	jne	.L1453
	testl	%ecx, %ecx
	jne	.L2034
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1455
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1456
.L1455:
	cmpq	%rax, 96(%rsp)
	jnb	.L1457
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1456
.L1457:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1456:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2337
	testl	%eax, %eax
	jne	.L2035
.L2337:
	testl	%edx, %edx
	jne	.L1453
	testq	%rbx, %rbx
	je	.L1453
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2338
	testl	%eax, %eax
	jne	.L1453
.L2338:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1453
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2037
	testl	%eax, %eax
	jne	.L1453
	testl	%ebx, %ebx
	jne	.L2037
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3462:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2340
	testl	%eax, %eax
	jne	.L1453
.L2340:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1453
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1453
	jmp	.L1429
.L2034:
	movl	%ecx, %edx
	jmp	.L1453
.L2035:
	movl	%eax, %edx
	jmp	.L1453
.L2037:
	movl	%ebx, %edx
.L1453:
	movl	%edx, %r15d
.L1429:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2018
	testl	%eax, %eax
	jne	.L1413
	testl	%r15d, %r15d
	je	.L1465
.L2018:
	movl	%r15d, %eax
.L1413:
	movl	%eax, %r15d
.L1465:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2342
	testl	%eax, %eax
	jne	.L1957
.L2342:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2343
	testl	%eax, %eax
	jne	.L1957
.L2343:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2344
	testl	%eax, %eax
	jne	.L1957
.L2344:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi6ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1308:
	.cfi_restore_state
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1473
	movslq	%ebp, %r15
	leaq	112(%rsp), %rdi
	movq	%r15, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	128(%rsp), %rdi
	movq	%r15, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L2044
	testl	%r15d, %r15d
	jne	.L2044
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1475
	cmpl	$859, %eax
	jg	.L1476
	cmpl	$799, %eax
	jle	.L1476
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2347
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1480
.L2347:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1480
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3418
	jmp	.L1480
.L1476:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2348
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1480
.L2348:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1480
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3418
	jmp	.L1480
.L1475:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2349
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1480
.L2349:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1480
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1480
	movl	$3840, %ecx
.L3418:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1480:
	call	cudaGetLastError@PLT
	jmp	.L1487
.L2044:
	xorl	%r15d, %r15d
.L1487:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1473:
	cmpq	$0, 32(%rsp)
	je	.L3425
	testl	%ebp, %ebp
	je	.L1391
	cmpl	$0, 48(%rsp)
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2350
	testl	%eax, %eax
	jne	.L1391
.L2350:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1817
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2058
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1494
	testl	%r15d, %r15d
	jne	.L2058
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$288, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$37, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1496
	cmpl	$859, %eax
	jg	.L1497
	cmpl	$799, %eax
	jle	.L1497
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2074
	testl	%eax, %eax
	jne	.L1534
	testl	%ecx, %ecx
	jne	.L2074
	movl	$2816, %ecx
	jmp	.L3723
.L1497:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2074
	testl	%eax, %eax
	jne	.L1534
	testl	%ecx, %ecx
	jne	.L2074
	movl	$2304, %ecx
.L3723:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1525
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1526
.L1525:
	cmpq	%rax, 96(%rsp)
	jnb	.L1527
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1526
.L1527:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1526:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2363
	testl	%eax, %eax
	jne	.L2075
.L2363:
	testl	%edx, %edx
	jne	.L1534
	testq	%rbx, %rbx
	je	.L1534
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2364
	testl	%eax, %eax
	jne	.L1534
.L2364:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1534
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2077
	testl	%eax, %eax
	jne	.L1534
	testl	%ebx, %ebx
	jne	.L2077
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3468
.L1496:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2074
	testl	%eax, %eax
	jne	.L1534
	testl	%ecx, %ecx
	jne	.L2074
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1536
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1537
.L1536:
	cmpq	%rax, 96(%rsp)
	jnb	.L1538
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1537
.L1538:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1537:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2368
	testl	%eax, %eax
	jne	.L2075
.L2368:
	testl	%edx, %edx
	jne	.L1534
	testq	%rbx, %rbx
	je	.L1534
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2369
	testl	%eax, %eax
	jne	.L1534
.L2369:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1534
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2077
	testl	%eax, %eax
	jne	.L1534
	testl	%ebx, %ebx
	jne	.L2077
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3468:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2371
	testl	%eax, %eax
	jne	.L1534
.L2371:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1534
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1534
	jmp	.L1510
.L2074:
	movl	%ecx, %edx
	jmp	.L1534
.L2075:
	movl	%eax, %edx
	jmp	.L1534
.L2077:
	movl	%ebx, %edx
.L1534:
	movl	%edx, %r15d
.L1510:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2058
	testl	%eax, %eax
	jne	.L1494
	testl	%r15d, %r15d
	je	.L1546
.L2058:
	movl	%r15d, %eax
.L1494:
	movl	%eax, %r15d
.L1546:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2373
	testl	%eax, %eax
	jne	.L1957
.L2373:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2374
	testl	%eax, %eax
	jne	.L1957
.L2374:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2375
	testl	%eax, %eax
	jne	.L1957
.L2375:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE2ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1307:
	.cfi_restore_state
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1554
	movslq	%ebp, %r15
	leaq	112(%rsp), %rdi
	movq	%r15, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	128(%rsp), %rdi
	movq	%r15, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L2084
	testl	%r15d, %r15d
	jne	.L2084
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1556
	cmpl	$859, %eax
	jg	.L1557
	cmpl	$799, %eax
	jle	.L1557
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2378
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1561
.L2378:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1561
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3419
	jmp	.L1561
.L1557:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2379
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1561
.L2379:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1561
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3419
	jmp	.L1561
.L1556:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2380
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1561
.L2380:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1561
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1561
	movl	$3840, %ecx
.L3419:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1561:
	call	cudaGetLastError@PLT
	jmp	.L1568
.L2084:
	xorl	%r15d, %r15d
.L1568:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1554:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2381
	testl	%eax, %eax
	jne	.L1391
.L2381:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1898
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2098
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1575
	testl	%r15d, %r15d
	jne	.L2098
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$288, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$37, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1577
	cmpl	$859, %eax
	jg	.L1578
	cmpl	$799, %eax
	jle	.L1578
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2114
	testl	%eax, %eax
	jne	.L1615
	testl	%ecx, %ecx
	jne	.L2114
	movl	$2816, %ecx
	jmp	.L3728
.L1578:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2114
	testl	%eax, %eax
	jne	.L1615
	testl	%ecx, %ecx
	jne	.L2114
	movl	$2304, %ecx
.L3728:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1606
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1607
.L1606:
	cmpq	%rax, 96(%rsp)
	jnb	.L1608
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1607
.L1608:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1607:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2394
	testl	%eax, %eax
	jne	.L2115
.L2394:
	testl	%edx, %edx
	jne	.L1615
	testq	%rbx, %rbx
	je	.L1615
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2395
	testl	%eax, %eax
	jne	.L1615
.L2395:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1615
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2117
	testl	%eax, %eax
	jne	.L1615
	testl	%ebx, %ebx
	jne	.L2117
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3474
.L1577:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2114
	testl	%eax, %eax
	jne	.L1615
	testl	%ecx, %ecx
	jne	.L2114
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1617
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1618
.L1617:
	cmpq	%rax, 96(%rsp)
	jnb	.L1619
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1618
.L1619:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1618:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2399
	testl	%eax, %eax
	jne	.L2115
.L2399:
	testl	%edx, %edx
	jne	.L1615
	testq	%rbx, %rbx
	je	.L1615
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2400
	testl	%eax, %eax
	jne	.L1615
.L2400:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1615
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2117
	testl	%eax, %eax
	jne	.L1615
	testl	%ebx, %ebx
	jne	.L2117
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3474:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2402
	testl	%eax, %eax
	jne	.L1615
.L2402:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1615
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1615
	jmp	.L1591
.L2114:
	movl	%ecx, %edx
	jmp	.L1615
.L2115:
	movl	%eax, %edx
	jmp	.L1615
.L2117:
	movl	%ebx, %edx
.L1615:
	movl	%edx, %r15d
.L1591:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2098
	testl	%eax, %eax
	jne	.L1575
	testl	%r15d, %r15d
	je	.L1627
.L2098:
	movl	%r15d, %eax
.L1575:
	movl	%eax, %r15d
.L1627:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2404
	testl	%eax, %eax
	jne	.L1957
.L2404:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2405
	testl	%eax, %eax
	jne	.L1957
.L2405:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2406
	testl	%eax, %eax
	jne	.L1957
.L2406:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1306:
	.cfi_restore_state
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1635
	movslq	%ebp, %r15
	leaq	112(%rsp), %rdi
	movq	%r15, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	128(%rsp), %rdi
	movq	%r15, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L2124
	testl	%r15d, %r15d
	jne	.L2124
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1637
	cmpl	$859, %eax
	jg	.L1638
	cmpl	$799, %eax
	jle	.L1638
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2409
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1642
.L2409:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1642
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3420
	jmp	.L1642
.L1638:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2410
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1642
.L2410:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1642
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3420
	jmp	.L1642
.L1637:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2411
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1642
.L2411:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1642
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1642
	movl	$3840, %ecx
.L3420:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1642:
	call	cudaGetLastError@PLT
	jmp	.L1649
.L2124:
	xorl	%r15d, %r15d
.L1649:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1635:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2412
	testl	%eax, %eax
	jne	.L1391
.L2412:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1655
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2138
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1656
	testl	%r15d, %r15d
	jne	.L2138
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$288, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$37, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1658
	cmpl	$859, %eax
	jg	.L1659
	cmpl	$799, %eax
	jle	.L1659
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2154
	testl	%eax, %eax
	jne	.L1696
	testl	%ecx, %ecx
	jne	.L2154
	movl	$2816, %ecx
	jmp	.L3733
.L1659:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2154
	testl	%eax, %eax
	jne	.L1696
	testl	%ecx, %ecx
	jne	.L2154
	movl	$2304, %ecx
.L3733:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1687
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1688
.L1687:
	cmpq	%rax, 96(%rsp)
	jnb	.L1689
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1688
.L1689:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1688:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2425
	testl	%eax, %eax
	jne	.L2155
.L2425:
	testl	%edx, %edx
	jne	.L1696
	testq	%rbx, %rbx
	je	.L1696
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2426
	testl	%eax, %eax
	jne	.L1696
.L2426:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1696
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2157
	testl	%eax, %eax
	jne	.L1696
	testl	%ebx, %ebx
	jne	.L2157
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3480
.L1658:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2154
	testl	%eax, %eax
	jne	.L1696
	testl	%ecx, %ecx
	jne	.L2154
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1698
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1699
.L1698:
	cmpq	%rax, 96(%rsp)
	jnb	.L1700
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1699
.L1700:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1699:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2430
	testl	%eax, %eax
	jne	.L2155
.L2430:
	testl	%edx, %edx
	jne	.L1696
	testq	%rbx, %rbx
	je	.L1696
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2431
	testl	%eax, %eax
	jne	.L1696
.L2431:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1696
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2157
	testl	%eax, %eax
	jne	.L1696
	testl	%ebx, %ebx
	jne	.L2157
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3480:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2433
	testl	%eax, %eax
	jne	.L1696
.L2433:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1696
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1696
	jmp	.L1672
.L2154:
	movl	%ecx, %edx
	jmp	.L1696
.L2155:
	movl	%eax, %edx
	jmp	.L1696
.L2157:
	movl	%ebx, %edx
.L1696:
	movl	%edx, %r15d
.L1672:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2138
	testl	%eax, %eax
	jne	.L1656
	testl	%r15d, %r15d
	je	.L1708
.L2138:
	movl	%r15d, %eax
.L1656:
	movl	%eax, %r15d
.L1708:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2435
	testl	%eax, %eax
	jne	.L1714
.L2435:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1714
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2436
	testl	%eax, %eax
	jne	.L1714
.L2436:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1714
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2437
	testl	%eax, %eax
	jne	.L1714
.L2437:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1714
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	8(%rsp), %rcx
	movslq	16(%r13), %rsi
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	leal	7(%rcx), %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_def_cfa_offset 696
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rax
	.cfi_def_cfa_offset 720
	leal	7(%rsi), %eax
	andl	$1, %eax
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi16EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE1ELi5ENS0_15RegBoundScalingILi256ELi16EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi4ELi9ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi9ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	addq	$96, %rsp
	.cfi_def_cfa_offset 688
	movl	%eax, %ebx
	jmp	.L1714
.L1655:
	addl	$7, %eax
	addl	$7, %edx
	xorl	%ecx, %ecx
	movl	%ebp, 320(%rsp)
	andl	$1, %eax
	andl	$1, %edx
	movabsq	$1099511627777, %rbx
	movq	%rcx, 344(%rsp)
	movq	(%r14,%rax,8), %rax
	movq	0(%r13,%rdx,8), %rdx
	leaq	96(%rsp), %rcx
	movq	%rbx, 328(%rsp)
	movabsq	$4294967297, %rbx
	movq	%rdi, 104(%rsp)
	leaq	320(%rsp), %rdi
	movq	%rax, 96(%rsp)
	leaq	296(%rsp), %rax
	movq	%rbx, 336(%rsp)
	movq	%rdx, 208(%rsp)
	leaq	88(%rsp), %rdx
	movq	%rsi, 88(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_(%rip), %rsi
	movl	$1, 324(%rsp)
	movq	%r12, 352(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	296(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	208(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	232(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %r9
	leaq	208(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebp
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%ebp, %ebp
	jne	.L2438
	testl	%eax, %eax
	jne	.L1714
.L2438:
	movl	%ebp, %ebx
	testl	%ebp, %ebp
	jne	.L1714
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
.L1714:
	movl	16(%r14), %eax
	addl	$7, %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	movl	16(%r13), %eax
	addl	$7, %eax
	andl	$1, %eax
	movl	%eax, 16(%r13)
	jmp	.L1391
.L1305:
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1716
	movslq	%ebp, %rax
	leaq	112(%rsp), %rdi
	movq	%rax, 120(%rsp)
	movq	%rax, 56(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	movq	56(%rsp), %rax
	leaq	128(%rsp), %rdi
	movq	%rax, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	sete	%cl
	testl	%eax, %eax
	setne	%al
	testb	%al, %cl
	jne	.L2164
	testl	%edx, %edx
	jne	.L2164
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1718
	cmpl	$859, %eax
	jg	.L1719
	cmpl	$799, %eax
	jg	.L1720
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	je	.L3577
	jmp	.L2441
.L1720:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2440
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1723
.L2440:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1723
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3421
	jmp	.L1723
.L1719:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2441
	xorl	%r15d, %r15d
.L3577:
	testl	%eax, %eax
	jne	.L1723
.L2441:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1723
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3421
	jmp	.L1723
.L1718:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2442
	testl	%eax, %eax
	jne	.L1723
.L2442:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1723
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1723
	movl	$3840, %ecx
.L3421:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1723:
	call	cudaGetLastError@PLT
	jmp	.L1730
.L2164:
	xorl	%r15d, %r15d
.L1730:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1716:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2443
	testl	%eax, %eax
	jne	.L1391
.L2443:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1898
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2178
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1737
	testl	%r15d, %r15d
	jne	.L2178
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$224, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$57, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1739
	cmpl	$859, %eax
	jg	.L1740
	cmpl	$799, %eax
	jle	.L1740
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2194
	testl	%eax, %eax
	jne	.L1777
	testl	%ecx, %ecx
	jne	.L2194
	movl	$2816, %ecx
	jmp	.L3738
.L1740:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2194
	testl	%eax, %eax
	jne	.L1777
	testl	%ecx, %ecx
	jne	.L2194
	movl	$2304, %ecx
.L3738:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1768
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1769
.L1768:
	cmpq	%rax, 96(%rsp)
	jnb	.L1770
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1769
.L1770:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1769:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2456
	testl	%eax, %eax
	jne	.L2195
.L2456:
	testl	%edx, %edx
	jne	.L1777
	testq	%rbx, %rbx
	je	.L1777
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2457
	testl	%eax, %eax
	jne	.L1777
.L2457:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1777
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2197
	testl	%eax, %eax
	jne	.L1777
	testl	%ebx, %ebx
	jne	.L2197
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3486
.L1739:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2194
	testl	%eax, %eax
	jne	.L1777
	testl	%ecx, %ecx
	jne	.L2194
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1779
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1780
.L1779:
	cmpq	%rax, 96(%rsp)
	jnb	.L1781
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1780
.L1781:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1780:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2461
	testl	%eax, %eax
	jne	.L2195
.L2461:
	testl	%edx, %edx
	jne	.L1777
	testq	%rbx, %rbx
	je	.L1777
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2462
	testl	%eax, %eax
	jne	.L1777
.L2462:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1777
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2197
	testl	%eax, %eax
	jne	.L1777
	testl	%ebx, %ebx
	jne	.L2197
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3486:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2464
	testl	%eax, %eax
	jne	.L1777
.L2464:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1777
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1777
	jmp	.L1753
.L2194:
	movl	%ecx, %edx
	jmp	.L1777
.L2195:
	movl	%eax, %edx
	jmp	.L1777
.L2197:
	movl	%ebx, %edx
.L1777:
	movl	%edx, %r15d
.L1753:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2178
	testl	%eax, %eax
	jne	.L1737
	testl	%r15d, %r15d
	je	.L1789
.L2178:
	movl	%r15d, %eax
.L1737:
	movl	%eax, %r15d
.L1789:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2466
	testl	%eax, %eax
	jne	.L1957
.L2466:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2467
	testl	%eax, %eax
	jne	.L1957
.L2467:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2468
	testl	%eax, %eax
	jne	.L1957
.L2468:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi19EjLNS0_18BlockLoadAlgorithmE0ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi19EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi8ELi7ELNS0_17WarpLoadAlgorithmE0ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi7ELSC_0ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1304:
	.cfi_restore_state
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1797
	movslq	%ebp, %rax
	leaq	112(%rsp), %rdi
	movq	%rax, 120(%rsp)
	movq	%rax, 56(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	movq	56(%rsp), %rax
	leaq	128(%rsp), %rdi
	movq	%rax, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	sete	%cl
	testl	%eax, %eax
	setne	%al
	testb	%al, %cl
	jne	.L2204
	testl	%edx, %edx
	jne	.L2204
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1799
	cmpl	$859, %eax
	jg	.L1800
	cmpl	$799, %eax
	jle	.L1800
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2471
	xorl	%r15d, %r15d
	testl	%eax, %eax
	jne	.L1804
.L2471:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1804
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3422
	jmp	.L1804
.L1800:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2472
	testl	%eax, %eax
	jne	.L1804
.L2472:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1804
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3422
	jmp	.L1804
.L1799:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2473
	testl	%eax, %eax
	jne	.L1804
.L2473:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1804
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1804
	movl	$3840, %ecx
.L3422:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1804:
	call	cudaGetLastError@PLT
	jmp	.L1811
.L2204:
	xorl	%r15d, %r15d
.L1811:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1797:
	cmpq	$0, 32(%rsp)
	je	.L3425
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2474
	testl	%eax, %eax
	jne	.L1391
.L2474:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1817
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2218
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1818
	testl	%r15d, %r15d
	jne	.L2218
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$352, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$19, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1820
	cmpl	$859, %eax
	jg	.L1821
	cmpl	$799, %eax
	jle	.L1821
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2234
	testl	%eax, %eax
	jne	.L1858
	testl	%ecx, %ecx
	jne	.L2234
	movl	$2816, %ecx
	jmp	.L3743
.L1821:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2234
	testl	%eax, %eax
	jne	.L1858
	testl	%ecx, %ecx
	jne	.L2234
	movl	$2304, %ecx
.L3743:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1849
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1850
.L1849:
	cmpq	%rax, 96(%rsp)
	jnb	.L1851
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1850
.L1851:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1850:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2487
	testl	%eax, %eax
	jne	.L2235
.L2487:
	testl	%edx, %edx
	jne	.L1858
	testq	%rbx, %rbx
	je	.L1858
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2488
	testl	%eax, %eax
	jne	.L1858
.L2488:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1858
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2237
	testl	%eax, %eax
	jne	.L1858
	testl	%ebx, %ebx
	jne	.L2237
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3492
.L1820:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2234
	testl	%eax, %eax
	jne	.L1858
	testl	%ecx, %ecx
	jne	.L2234
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1860
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1861
.L1860:
	cmpq	%rax, 96(%rsp)
	jnb	.L1862
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1861
.L1862:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1861:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2492
	testl	%eax, %eax
	jne	.L2235
.L2492:
	testl	%edx, %edx
	jne	.L1858
	testq	%rbx, %rbx
	je	.L1858
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2493
	testl	%eax, %eax
	jne	.L1858
.L2493:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1858
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2237
	testl	%eax, %eax
	jne	.L1858
	testl	%ebx, %ebx
	jne	.L2237
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3492:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2495
	testl	%eax, %eax
	jne	.L1858
.L2495:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1858
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1858
	jmp	.L1834
.L2234:
	movl	%ecx, %edx
	jmp	.L1858
.L2235:
	movl	%eax, %edx
	jmp	.L1858
.L2237:
	movl	%ebx, %edx
.L1858:
	movl	%edx, %r15d
.L1834:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2218
	testl	%eax, %eax
	jne	.L1818
	testl	%r15d, %r15d
	je	.L1870
.L2218:
	movl	%r15d, %eax
.L1818:
	movl	%eax, %r15d
.L1870:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2497
	testl	%eax, %eax
	jne	.L1957
.L2497:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2498
	testl	%eax, %eax
	jne	.L1957
.L2498:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2499
	testl	%eax, %eax
	jne	.L1957
.L2499:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_0ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi32ELi11ELSC_3ELS4_0ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
	jmp	.L3452
.L1817:
	.cfi_restore_state
	movl	%ebp, 320(%rsp)
	movabsq	$1099511627777, %rbx
	movl	$1, 324(%rsp)
.L3540:
	andl	$1, %edx
	andl	$1, %eax
	movq	%rbx, 328(%rsp)
	xorl	%ecx, %ecx
	movq	0(%r13,%rdx,8), %rdx
	movq	%rdi, 104(%rsp)
	movabsq	$4294967297, %rbx
	leaq	320(%rsp), %rdi
	movq	%rcx, 344(%rsp)
	leaq	96(%rsp), %rcx
	movq	%rdx, 208(%rsp)
	movq	(%r14,%rax,8), %rax
	leaq	88(%rsp), %rdx
	movq	%rbx, 336(%rsp)
	movq	%rax, 96(%rsp)
	leaq	296(%rsp), %rax
	movq	%r12, 352(%rsp)
	movq	%rsi, 88(%rsp)
	pushq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 696
	leaq	296(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	208(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	232(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %r9
	jmp	.L3502
.L1303:
	.cfi_restore_state
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EEC1Ev
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	%r15, %rdi
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	480(%rsp), %rdi
	xorl	%esi, %esi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	496(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 112(%rsp)
	movq	%rdx, 120(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	leaq	512(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIjEENS2_5aliasIT_EEm
	movq	8(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage4slot12create_aliasIhEENS2_5aliasIT_EEm
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	cmpl	$500, %ebp
	jle	.L1878
	movslq	%ebp, %rax
	leaq	112(%rsp), %rdi
	movq	%rax, 120(%rsp)
	movq	%rax, 56(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	movq	56(%rsp), %rax
	leaq	128(%rsp), %rdi
	movq	%rax, 136(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	leaq	144(%rsp), %rdi
	movq	$2, 152(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE11update_slotEv
	xorl	%eax, %eax
	leaq	208(%rsp), %rdi
	movl	%eax, 208(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	sete	%cl
	testl	%eax, %eax
	setne	%al
	testb	%al, %cl
	jne	.L2244
	testl	%edx, %edx
	jne	.L2244
	movl	208(%rsp), %eax
	leaq	320(%rsp), %rdi
	cmpl	$899, %eax
	jg	.L1880
	cmpl	$859, %eax
	jg	.L1881
	cmpl	$799, %eax
	jle	.L1881
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2502
	testl	%eax, %eax
	jne	.L1885
.L2502:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1885
	call	cudaGetLastError@PLT
	movl	$2816, %ecx
	testl	%eax, %eax
	je	.L3423
	jmp	.L1885
.L1881:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2503
	testl	%eax, %eax
	jne	.L1885
.L2503:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1885
	call	cudaGetLastError@PLT
	movl	$2304, %ecx
	testl	%eax, %eax
	je	.L3423
	jmp	.L1885
.L1880:
	call	cudaGetDevice@PLT
	movl	%eax, 56(%rsp)
	call	cudaGetLastError@PLT
	movl	56(%rsp), %edx
	testl	%edx, %edx
	jne	.L2504
	testl	%eax, %eax
	jne	.L1885
.L2504:
	xorl	%r15d, %r15d
	testl	%edx, %edx
	jne	.L1885
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L1885
	movl	$3840, %ecx
.L3423:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-33, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	movq	%rax, %r15
	call	cudaGetLastError@PLT
.L1885:
	call	cudaGetLastError@PLT
	jmp	.L1892
.L2244:
	xorl	%r15d, %r15d
.L1892:
	leaq	160(%rsp), %rdi
	movq	%r15, 168(%rsp)
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE11update_slotEv
.L1878:
	cmpq	$0, 32(%rsp)
	jne	.L1894
.L3425:
	movq	8(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE8get_sizeEv
	movq	40(%rsp), %rsi
	movq	%rax, (%rsi)
	jmp	.L1391
.L1894:
	cmpl	$0, 48(%rsp)
	je	.L1391
	testl	%ebp, %ebp
	je	.L1391
	movq	40(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	call	_ZN3cub17CUB_200700_890_NS6detail17temporary_storage6layoutILi5EE13map_to_bufferEPvm
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2505
	testl	%eax, %eax
	jne	.L1391
.L2505:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1391
	movslq	16(%r14), %rdx
	movslq	16(%r13), %rcx
	movq	(%r14,%rdx,8), %rsi
	movq	%rdx, %rax
	xorl	$1, %edx
	movq	0(%r13,%rcx,8), %rdi
	movslq	%edx, %rdx
	movq	(%r14,%rdx,8), %rdx
	movq	%rsi, 184(%rsp)
	movq	%rdi, 200(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rcx, %rdx
	xorl	$1, %ecx
	movslq	%ecx, %rcx
	movq	0(%r13,%rcx,8), %rcx
	movq	%rcx, 192(%rsp)
	cmpl	$500, %ebp
	jle	.L1898
	leaq	112(%rsp), %rax
	movq	%r15, 96(%rsp)
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	144(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	%rax, 48(%rsp)
	leaq	128(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	leaq	160(%rsp), %rdi
	movq	%rax, 8(%rsp)
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIhE3getEv
	leaq	76(%rsp), %rdi
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	%eax, 76(%rsp)
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r15d
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2258
	testl	%eax, %eax
	movq	8(%rsp), %rsi
	movq	48(%rsp), %rcx
	movq	56(%rsp), %rdx
	jne	.L1899
	testl	%r15d, %r15d
	jne	.L2258
	leaq	96(%rsp), %rax
	movq	%rbx, 320(%rsp)
	leaq	80(%rsp), %rdi
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	movl	%eax, 336(%rsp)
	movslq	%ebp, %rax
	leaq	(%rdx,%rax,4), %rax
	movq	%rdx, 344(%rsp)
	movq	%rax, 360(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 352(%rsp)
	movq	%rax, 384(%rsp)
	movq	24(%rsp), %rax
	movq	%rcx, 368(%rsp)
	movq	%rax, 392(%rsp)
	movq	16(%rsp), %rax
	movl	$112, 376(%rsp)
	movq	%rax, 408(%rsp)
	movq	24(%rsp), %rax
	movl	$19, 400(%rsp)
	movq	%rax, 416(%rsp)
	movl	76(%rsp), %eax
	movl	%ebp, 424(%rsp)
	cmpl	$899, %eax
	movq	%r12, 432(%rsp)
	jg	.L1901
	cmpl	$859, %eax
	jg	.L1902
	cmpl	$799, %eax
	jle	.L1902
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2274
	testl	%eax, %eax
	jne	.L1939
	testl	%ecx, %ecx
	jne	.L2274
	movl	$2816, %ecx
	jmp	.L3748
.L1902:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2274
	testl	%eax, %eax
	jne	.L1939
	testl	%ecx, %ecx
	jne	.L2274
	movl	$2304, %ecx
.L3748:
	movl	%ebp, %eax
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1930
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1931
.L1930:
	cmpq	%rax, 96(%rsp)
	jnb	.L1932
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1931
.L1932:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1931:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2518
	testl	%eax, %eax
	jne	.L2275
.L2518:
	testl	%edx, %edx
	jne	.L1939
	testq	%rbx, %rbx
	je	.L1939
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r11d, %r11d
	leaq	104(%rsp), %rdx
	movq	%r11, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2519
	testl	%eax, %eax
	jne	.L1939
.L2519:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1939
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2277
	testl	%eax, %eax
	jne	.L1939
	testl	%ebx, %ebx
	jne	.L2277
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1099511627777, %rax
	movl	%ecx, 208(%rsp)
	jmp	.L3498
.L1901:
	call	cudaGetDevice@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %ecx
	movl	%eax, %edx
	testl	%ecx, %ecx
	jne	.L2274
	testl	%eax, %eax
	jne	.L1939
	testl	%ecx, %ecx
	jne	.L2274
	movl	%ebp, %eax
	movl	$3840, %ecx
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, 8(%rsp)
	movl	%eax, 84(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	8(%rsp), %eax
	addl	$32, %eax
	cltq
	salq	$4, %rax
	addq	$255, %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L1941
	movq	%rax, 96(%rsp)
	xorl	%ecx, %ecx
	jmp	.L1942
.L1941:
	cmpq	%rax, 96(%rsp)
	jnb	.L1943
	call	cudaGetLastError@PLT
	xorl	%ecx, %ecx
	movl	$1, %edx
	jmp	.L1942
.L1943:
	leaq	255(%rbx), %rcx
	xorb	%cl, %cl
.L1942:
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	cudaGetLastError@PLT
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	testb	$1, %dl
	jne	.L2523
	testl	%eax, %eax
	jne	.L2275
.L2523:
	testl	%edx, %edx
	jne	.L1939
	testq	%rbx, %rbx
	je	.L1939
	movq	%rcx, 104(%rsp)
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	8(%rsp), %edx
	xorl	%eax, %eax
	cmpb	$0, 8(%rsp)
	leaq	84(%rsp), %rcx
	setne	%al
	leaq	208(%rsp), %rdi
	leaq	368(%rsp), %r8
	movl	$1, 212(%rsp)
	sarl	$8, %edx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceThreeWayPartitionInitKernelINS0_13ScanTileStateImLb1EEEPjEEvT_iT0_(%rip), %rsi
	movq	%r12, 240(%rsp)
	addl	%edx, %eax
	movl	$1, %edx
	testl	%eax, %eax
	cmovle	%edx, %eax
	xorl	%r10d, %r10d
	leaq	104(%rsp), %rdx
	movq	%r10, 232(%rsp)
	movl	%eax, 208(%rsp)
	movabsq	$1099511627777, %rax
	movq	%rax, 216(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 224(%rsp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateImLb1EEEiPjEJS8_iS9_EEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2524
	testl	%eax, %eax
	jne	.L1939
.L2524:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1939
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	movl	80(%rsp), %edx
	leaq	88(%rsp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2277
	testl	%eax, %eax
	jne	.L1939
	testl	%ebx, %ebx
	jne	.L2277
	movl	8(%rsp), %eax
	movl	88(%rsp), %ecx
	movl	8(%rsp), %esi
	cltd
	idivl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%esi, %ecx
	cmovg	%esi, %ecx
	movl	%eax, 212(%rsp)
	movabsq	$1374389534721, %rax
	movl	%ecx, 208(%rsp)
.L3498:
	movq	%rax, 216(%rsp)
	xorl	%r9d, %r9d
	movabsq	$4294967297, %rax
	leaq	336(%rsp), %rdx
	movq	%rax, 224(%rsp)
	leaq	84(%rsp), %rax
	leaq	344(%rsp), %rcx
	leaq	208(%rsp), %rdi
	movq	%r9, 232(%rsp)
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceThreeWayPartitionKernelINS0_6detail37device_three_way_partition_policy_hubIiiE9Policy900EN6thrust20THRUST_200700_890_NS17counting_iteratorIiNS7_11use_defaultES9_S9_EEPjSB_NS7_16reverse_iteratorISB_EESB_NS0_13ScanTileStateImLb1EEENS0_21DispatchSegmentedSortILb0EjjiSB_SB_NS0_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSJ_22SmallSegmentsSelectorTEiEEvT0_T1_T2_T3_T4_T5_T6_T7_T8_i(%rip), %rsi
	movq	%r12, 240(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	432(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	416(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	400(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	136(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 728
	leaq	408(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 736
	leaq	408(%rsp), %r9
	leaq	400(%rsp), %r8
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvNS0_17counting_iteratorIiNS0_11use_defaultES6_S6_EEPjS8_NS0_16reverse_iteratorIS8_EES8_N3cub17CUB_200700_890_NS13ScanTileStateImLb1EEENSC_21DispatchSegmentedSortILb0EjjiS8_S8_NSC_25DeviceSegmentedSortPolicyIjjEEE22LargeSegmentsSelectorTENSI_22SmallSegmentsSelectorTEiiEJS7_S8_S8_SA_S8_SE_SJ_SK_iiEEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%ebx, %ebx
	jne	.L2526
	testl	%eax, %eax
	jne	.L1939
.L2526:
	movl	%ebx, %edx
	testl	%ebx, %ebx
	jne	.L1939
	call	cudaGetLastError@PLT
	movl	%eax, %edx
	testl	%eax, %eax
	jne	.L1939
	jmp	.L1915
.L2274:
	movl	%ecx, %edx
	jmp	.L1939
.L2275:
	movl	%eax, %edx
	jmp	.L1939
.L2277:
	movl	%ebx, %edx
.L1939:
	movl	%edx, %r15d
.L1915:
	call	cudaGetLastError@PLT
	testl	%r15d, %r15d
	jne	.L2258
	testl	%eax, %eax
	jne	.L1899
	testl	%r15d, %r15d
	je	.L1951
.L2258:
	movl	%r15d, %eax
.L1899:
	movl	%eax, %r15d
.L1951:
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r15d, %r15d
	jne	.L2528
	testl	%eax, %eax
	jne	.L1957
.L2528:
	movl	%r15d, %ebx
	testl	%r15d, %r15d
	jne	.L1957
	leaq	144(%rsp), %rdi
	leaq	440(%rsp), %r15
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movl	$8, %edx
	movq	%r12, %r8
	movq	%r15, %rdi
	movq	%rax, %rsi
	movl	$2, %ecx
	call	cudaMemcpyAsync@PLT
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2529
	testl	%eax, %eax
	jne	.L1957
.L2529:
	movl	%edx, %ebx
	testl	%edx, %edx
	jne	.L1957
	movq	%r12, %rdi
	call	_ZN3cub17CUB_200700_890_NS10SyncStreamEP11CUstream_st
	movl	%eax, 8(%rsp)
	call	cudaGetLastError@PLT
	movl	8(%rsp), %edx
	movl	%eax, %ebx
	testl	%edx, %edx
	jne	.L2530
	testl	%eax, %eax
	jne	.L1957
.L2530:
	movl	16(%r14), %ecx
	movl	%edx, %ebx
	movl	%ecx, 8(%rsp)
	testl	%edx, %edx
	jne	.L1957
	movq	40(%rsp), %rdi
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movq	32(%rsp), %rdi
	movq	%rax, %rbx
	call	_ZNK3cub17CUB_200700_890_NS6detail17temporary_storage5aliasIjE3getEv
	movslq	16(%r13), %rsi
	movslq	8(%rsp), %rcx
	movq	%rax, %rdi
	movq	%rsi, %rax
	movl	%ecx, %edx
	movq	(%r14,%rcx,8), %rcx
	pushq	%r8
	.cfi_def_cfa_offset 696
	andl	$1, %eax
	pushq	%r12
	.cfi_def_cfa_offset 704
	andl	$1, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 712
	pushq	%rdi
	.cfi_def_cfa_offset 720
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelLargeILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKjPKT1_PS8_NS0_6detail20device_double_bufferIS8_EEPKT2_PSF_NSD_ISF_EET3_T4_(%rip), %rdi
	pushq	%r15
	.cfi_def_cfa_offset 728
	pushq	64(%rsp)
	.cfi_def_cfa_offset 736
	pushq	64(%rsp)
	.cfi_def_cfa_offset 744
	pushq	256(%rsp)
	.cfi_def_cfa_offset 752
	pushq	256(%rsp)
	.cfi_def_cfa_offset 760
	pushq	0(%r13,%rax,8)
	.cfi_def_cfa_offset 768
	pushq	264(%rsp)
	.cfi_def_cfa_offset 776
	pushq	264(%rsp)
	.cfi_def_cfa_offset 784
	movq	0(%r13,%rsi,8), %r9
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceSegmentedSortKernelSmallILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvjjjPKjS7_PKT1_PS8_PKT2_PSC_T3_T4_(%rip), %rsi
	movq	(%r14,%rdx,8), %r8
	movl	%ebp, %edx
	call	_ZN3cub17CUB_200700_890_NS31DeviceSegmentedSortContinuationINS0_29AgentRadixSortDownsweepPolicyILi256ELi23EjLNS0_18BlockLoadAlgorithmE3ELNS0_17CacheLoadModifierE0ELNS0_18RadixRankAlgorithmE1ELNS0_18BlockScanAlgorithmE2ELi6ENS0_15RegBoundScalingILi256ELi23EjEEEENS0_38AgentSmallAndMediumSegmentedSortPolicyILi256ENS0_27AgentSubWarpMergeSortPolicyILi2ELi9ELNS0_17WarpLoadAlgorithmE3ELS4_5ELNS0_18WarpStoreAlgorithmE0EEENSB_ILi16ELi7ELSC_3ELS4_5ELSD_0EEEEEPFvPKjSI_PjNS0_6detail20device_double_bufferIjEESI_SJ_SM_SJ_SJ_EPFvjjjSI_SI_SI_SJ_SI_SJ_SJ_SJ_EjjSJ_SJ_EE9cudaErrorT1_T2_iPT3_SV_NSL_ISU_EEPT4_SY_NSL_ISX_EET5_T6_SJ_SJ_SJ_P11CUstream_st
.L3452:
	movl	%eax, %ebx
	addq	$96, %rsp
	.cfi_def_cfa_offset 688
	jmp	.L1957
.L1898:
	andl	$1, %edx
	andl	$1, %eax
	xorl	%ecx, %ecx
	movl	%ebp, 320(%rsp)
	movq	0(%r13,%rdx,8), %rdx
	movq	%rdi, 96(%rsp)
	movabsq	$1099511627777, %rbx
	leaq	320(%rsp), %rdi
	movq	%rbx, 328(%rsp)
	movabsq	$4294967297, %rbx
	movq	%rdx, 88(%rsp)
	movq	(%r14,%rax,8), %rax
	leaq	208(%rsp), %rdx
	movq	%rcx, 344(%rsp)
	leaq	104(%rsp), %rcx
	movq	%rax, 104(%rsp)
	leaq	296(%rsp), %rax
	movl	$1, 324(%rsp)
	movq	%rbx, 336(%rsp)
	movq	%r12, 352(%rsp)
	movq	%rsi, 208(%rsp)
	pushq	%rax
	.cfi_def_cfa_offset 696
	leaq	296(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 704
	leaq	208(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	leaq	112(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 720
	leaq	128(%rsp), %r9
.L3502:
	leaq	208(%rsp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceSegmentedSortFallbackKernelILb0ENS0_25DeviceSegmentedSortPolicyIjjE9Policy860EjjPjS5_iEEvPKT1_PS6_NS0_6detail20device_double_bufferIS6_EEPKT2_PSD_NSB_ISD_EET3_T4_(%rip), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjN3cub17CUB_200700_890_NS6detail20device_double_bufferIjEES6_S7_SC_S7_S7_EJS7_S7_SC_S7_S7_SC_S7_S7_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_def_cfa_offset 688
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebp
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%ebp, %ebp
	jne	.L2531
	testl	%eax, %eax
	jne	.L1957
.L2531:
	movl	%ebp, %ebx
	testl	%ebp, %ebp
	jne	.L1957
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
.L1957:
	andl	$1, 16(%r14)
	andl	$1, 16(%r13)
.L1391:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L1962
	testl	%eax, %eax
	jne	.L1301
	testl	%ebx, %ebx
	je	.L1300
.L1962:
	movl	%ebx, %eax
.L1301:
	movl	%eax, %ebx
.L1300:
	movq	616(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1961
	call	__stack_chk_fail@PLT
.L1961:
	addq	$632, %rsp
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12787:
	.size	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	.section	.rodata._ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st.str1.1,"aMS",@progbits,1
.LC104:
	.string	"cub::DeviceSegmentedRadixSort"
	.section	.text._ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st:
.LFB12477:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12477
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$72, %rsp
	movq	%rsi, -88(%rbp)
	movq	16(%rbp), %r13
	movq	%rdx, -96(%rbp)
	movq	24(%rbp), %r14
	movq	%rcx, -104(%rbp)
	movq	32(%rbp), %r15
	movl	%r8d, -108(%rbp)
	movl	%r9d, -112(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movw	$0, -74(%rbp)
	movb	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %al
	testb	%al, %al
	jne	.L3783
	leaq	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %r12
	movq	%r12, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L3783
	leaq	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	leaq	.LC104(%rip), %rsi
	call	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc
	movq	%r12, %rdi
	call	__cxa_guard_release@PLT
.L3783:
	movb	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %al
	testb	%al, %al
	jne	.L3786
	leaq	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %r12
	movq	%r12, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L3786
	movq	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %rax
	leaq	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	leaq	-72(%rbp), %rsi
	movl	$3, -72(%rbp)
	movq	%rax, -64(%rbp)
	call	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_
	movq	%r12, %rdi
	call	__cxa_guard_release@PLT
.L3786:
	testq	%rbx, %rbx
	leaq	-74(%rbp), %r12
	je	.L3788
	leaq	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rsi
	movq	%r12, %rdi
	call	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0
.L3788:
	pushq	%rax
	movl	-112(%rbp), %r9d
	movq	%rbx, %rdi
	movl	-108(%rbp), %r8d
	movq	-104(%rbp), %rcx
	pushq	%r15
	movq	-96(%rbp), %rdx
	movq	-88(%rbp), %rsi
	pushq	%r14
	pushq	%r13
.LEHB5:
	.cfi_escape 0x2e,0x20
	call	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort15SortPairsNoNVTXIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
.LEHE5:
	addq	$32, %rsp
	movq	%r12, %rdi
	movl	%eax, %ebx
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L3791
	jmp	.L3802
.L3792:
	endbr64
	movq	%rax, %rbx
.L3789:
	movq	%r12, %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L3802
	movq	%rbx, %rdi
.LEHB6:
	call	_Unwind_Resume@PLT
.LEHE6:
.L3802:
	call	__stack_chk_fail@PLT
.L3791:
	leaq	-40(%rbp), %rsp
	movl	%ebx, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12477:
	.section	.gcc_except_table
.LLSDA12477:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12477-.LLSDACSB12477
.LLSDACSB12477:
	.uleb128 .LEHB5-.LFB12477
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L3792-.LFB12477
	.uleb128 0
	.uleb128 .LEHB6-.LFB12477
	.uleb128 .LEHE6-.LEHB6
	.uleb128 0
	.uleb128 0
.LLSDACSE12477:
	.section	.text._ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st,comdat
	.size	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st, .-_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii:
.LFB13525:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3807
	testl	%eax, %eax
	jne	.L3804
.L3807:
	movl	%ebx, %eax
.L3804:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13525:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii:
.LFB13526:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjiEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3815
	testl	%eax, %eax
	jne	.L3812
.L3815:
	movl	%ebx, %eax
.L3812:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13526:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii:
.LFB13527:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjS1_S2_S2_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3823
	testl	%eax, %eax
	jne	.L3820
.L3823:
	movl	%ebx, %eax
.L3820:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13527:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.section	.rodata._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st.str1.1,"aMS",@progbits,1
.LC105:
	.string	"cub::DeviceRadixSort"
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st:
.LFB12410:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12410
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	.cfi_offset 15, -24
	movq	%rdx, %r15
	pushq	%r14
	.cfi_offset 14, -32
	movq	%rcx, %r14
	pushq	%r13
	pushq	%r12
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	movq	%rsi, %r12
	pushq	%rbx
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$2648, %rsp
	movq	24(%rbp), %rax
	movl	%r8d, -2616(%rbp)
	movl	%r9d, -2620(%rbp)
	movq	%rax, -2608(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movw	$0, -2582(%rbp)
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %al
	testb	%al, %al
	jne	.L3830
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L3830
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	leaq	.LC105(%rip), %rsi
	call	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_release@PLT
.L3830:
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %al
	testb	%al, %al
	jne	.L3833
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L3833
	movq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rax
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	leaq	-304(%rbp), %rsi
	movl	$3, -304(%rbp)
	movq	%rax, -296(%rbp)
	call	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_release@PLT
.L3833:
	testq	%rbx, %rbx
	je	.L3835
	leaq	-2582(%rbp), %rdi
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rsi
	call	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0
.L3835:
	xorl	%eax, %eax
	leaq	-2580(%rbp), %rdi
	movl	%eax, -2580(%rbp)
.LEHB7:
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L4095
	testl	%eax, %eax
	jne	.L3836
	cmpl	$0, -2600(%rbp)
	jne	.L4095
	movl	-2616(%rbp), %eax
	movl	-2580(%rbp), %edx
	movq	%rbx, -496(%rbp)
	movq	%r12, -488(%rbp)
	movl	%eax, -464(%rbp)
	movl	-2620(%rbp), %eax
	movq	%r15, -480(%rbp)
	movl	%eax, -460(%rbp)
	movl	16(%rbp), %eax
	movq	%r14, -472(%rbp)
	movl	%eax, -456(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -440(%rbp)
	movq	%rax, -448(%rbp)
	movl	-2620(%rbp), %eax
	cmpl	16(%rbp), %eax
	movb	$1, -436(%rbp)
	sete	%al
	cmpl	$0, -2616(%rbp)
	sete	%cl
	orl	%ecx, %eax
	cmpl	$899, %edx
	jg	.L3838
	cmpl	$799, %edx
	jg	.L3839
	cmpl	$699, %edx
	jg	.L3840
	cmpl	$619, %edx
	jg	.L3841
	cmpl	$609, %edx
	jg	.L3842
	cmpl	$599, %edx
	jg	.L3843
	cmpl	$499, %edx
	jg	.L3844
	testb	%al, %al
	je	.L3845
.L3885:
	testq	%rbx, %rbx
	jne	.L3847
.L3846:
	movq	$1, (%r12)
	jmp	.L3847
.L3845:
	cmpl	$1152, -2616(%rbp)
	ja	.L3849
	testq	%rbx, %rbx
	je	.L3846
	leaq	-2280(%rbp), %rcx
	leaq	-1456(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$549755813889, %rsi
	movq	%rax, -1456(%rbp)
	leaq	-2264(%rbp), %r9
	leaq	-2272(%rbp), %r8
	movq	%rax, -1440(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1432(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -1448(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1424(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2272(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2264(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2288(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2280(%rbp)
	leaq	-2288(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4206
	testl	%eax, %eax
	jne	.L3847
.L4206:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L3849:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4207
	testl	%eax, %eax
	jne	.L3853
.L4207:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3853
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4208
	testl	%eax, %eax
	jne	.L3853
.L4208:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3853
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$128, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -360(%rbp)
	movl	$301989889, %eax
	movl	$1152, -416(%rbp)
	salq	$7, %rax
	movq	%rax, -424(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4209
	testl	%eax, %eax
	jne	.L3853
.L4209:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3853
	movl	$16777217, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4210
	testl	%eax, %eax
	jne	.L3853
.L4210:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3853
	movl	$301989889, %eax
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$1152, -368(%rbp)
	movq	%rax, -376(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4101
	testl	%eax, %eax
	jne	.L3853
	testl	%r13d, %r13d
	jne	.L4101
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$1920, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$137438953477, %rax
	movq	%rax, -232(%rbp)
	movl	$503316481, %eax
	movl	%edx, -332(%rbp)
	salq	$7, %rax
	movl	$128, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4212
	testl	%eax, %eax
	jne	.L3853
.L4212:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L3853
	movl	$16777217, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4213
	testl	%eax, %eax
	jne	.L3853
.L4213:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L3853
	movl	$503316481, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$1920, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4106
	testl	%eax, %eax
	jne	.L3853
	cmpl	$0, -2624(%rbp)
	jne	.L4106
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	cltq
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
	movq	%rax, -168(%rbp)
	movq	%rax, -160(%rbp)
	xorl	%eax, %eax
.L3862:
	movq	-176(%rbp,%rdx), %rsi
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	leaq	255(%rsi), %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L3862
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L3863
	xorl	%r13d, %r13d
	movq	%rax, (%r12)
	movq	%r13, -2616(%rbp)
	jmp	.L3864
.L3863:
	cmpq	%rax, (%r12)
	jnb	.L3865
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%r12d, %r12d
	movq	%r12, -2616(%rbp)
	jmp	.L3864
.L3865:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L3864:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L4215
	testl	%eax, %eax
	jne	.L3853
.L4215:
	cmpl	$0, -2624(%rbp)
	jne	.L4106
	testq	%rbx, %rbx
	je	.L3847
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L3868
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L3868:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1336(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rsi, -576(%rbp)
	movq	-2600(%rbp), %rsi
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rsi), %edx
	movl	72(%rax), %eax
	movq	%rcx, -616(%rbp)
	leaq	-696(%rbp), %rcx
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	xorl	%ebx, %ebx
	movq	%rbx, -1312(%rbp)
	movl	%eax, -2640(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1336(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1332(%rbp)
	movq	%rax, -1320(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rsi), %edx
	movq	%rax, -1304(%rbp)
	leaq	-776(%rbp), %rax
	movq	(%rsi), %rsi
	movl	%edx, -1324(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L4216
	testl	%eax, %eax
	jne	.L3873
.L4216:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L3873
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3873
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1368(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-1376(%rbp), %rdi
	movq	%r9, -1352(%rbp)
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1376(%rbp)
	movq	%rax, -1360(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1364(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -1344(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L4217
	testl	%eax, %eax
	jne	.L3873
.L4217:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L3873
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3873
	movq	-2600(%rbp), %rax
	xorl	%edi, %edi
	leaq	-576(%rbp), %rcx
	leaq	-656(%rbp), %r9
	movq	%rdi, -1392(%rbp)
	leaq	-1416(%rbp), %rdi
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -1416(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1412(%rbp)
	movq	%rax, -1400(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1404(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1384(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3873
	testl	%eax, %eax
	jne	.L4110
	testl	%ebx, %ebx
	jne	.L3873
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3873
	movl	-2620(%rbp), %r12d
	movl	-2640(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L3873
.L4110:
	movl	%eax, %ebx
.L3873:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4111
	testl	%eax, %eax
	jne	.L3853
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L4111
.L3875:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L4661
	leaq	-432(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L3876
	leaq	-304(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
.L3876:
	movl	%eax, %esi
	cltq
	movq	-2600(%rbp), %rdi
	movq	%r12, -1212(%rbp)
	xorl	$1, %esi
	movq	%r12, -1200(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	%rcx, -656(%rbp)
	leaq	-696(%rbp), %rcx
	movl	72(%rax), %eax
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rdi), %edx
	xorl	%esi, %esi
	movq	%rsi, -1192(%rbp)
	movl	%eax, -2640(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1216(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1184(%rbp)
	movq	%rdi, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rdi), %edx
	addq	$84, %rax
	leaq	-1216(%rbp), %rdi
	movq	%rax, -2648(%rbp)
	movl	%edx, -1204(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	-2600(%rbp), %rax
	movq	(%rax), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2652(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2652(%rbp)
	movl	%eax, %ebx
	jne	.L4220
	testl	%eax, %eax
	jne	.L3881
.L4220:
	movl	-2652(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L3881
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3881
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1248(%rbp)
	leaq	-696(%rbp), %rdx
	leaq	-1256(%rbp), %rdi
	movq	%r12, -1256(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1240(%rbp)
	movl	%eax, -1244(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1232(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1224(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2652(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2652(%rbp)
	movl	%eax, %ebx
	jne	.L4221
	testl	%eax, %eax
	jne	.L3881
.L4221:
	movl	-2652(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L3881
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3881
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rsi
	xorl	%ebx, %ebx
	movq	%r12, -1292(%rbp)
	movq	%r12, -1280(%rbp)
	leaq	-576(%rbp), %rcx
	leaq	-1296(%rbp), %rdi
	movl	56(%rax), %eax
	movl	108(%rsi), %edx
	movq	%rbx, -1272(%rbp)
	leaq	-656(%rbp), %r9
	movq	48(%rsi), %rsi
	leaq	-616(%rbp), %r8
	movl	%eax, -1284(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1296(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1264(%rbp)
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3881
	testl	%eax, %eax
	jne	.L4115
	testl	%ebx, %ebx
	jne	.L3881
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3881
	movl	-2640(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L3881
.L4115:
	movl	%eax, %ebx
.L3881:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4116
	testl	%eax, %eax
	jne	.L3882
	testl	%ebx, %ebx
	jne	.L4116
	movl	-2620(%rbp), %eax
	jmp	.L3875
.L4661:
	xorl	%r11d, %r11d
	movl	%r11d, -2600(%rbp)
	jmp	.L3882
.L4116:
	movl	%ebx, -2600(%rbp)
.L3882:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L3847
.L4101:
	movl	%r13d, %eax
	jmp	.L3853
.L4106:
	movl	-2624(%rbp), %eax
	jmp	.L3853
.L4111:
	movl	%ebx, %eax
.L3853:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L3844:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L3886
	testq	%rbx, %rbx
	je	.L3846
	movabsq	$4294967297, %rax
	xorl	%r9d, %r9d
	movabsq	$1099511627777, %rdi
	movq	%rax, -936(%rbp)
	leaq	-2240(%rbp), %rcx
	leaq	-2248(%rbp), %r8
	movq	%rax, -920(%rbp)
	movq	-2608(%rbp), %rax
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rdi, -928(%rbp)
	leaq	-936(%rbp), %rdi
	movq	%rax, -904(%rbp)
	movslq	16(%r14), %rax
	movq	%r9, -912(%rbp)
	leaq	-2256(%rbp), %r9
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2248(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2256(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2232(%rbp)
	leaq	-456(%rbp), %rax
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2240(%rbp)
	leaq	-2232(%rbp), %rdx
	pushq	%r10
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4224
	testl	%eax, %eax
	jne	.L3847
.L4224:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L3886:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4225
	testl	%eax, %eax
	jne	.L3890
.L4225:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3890
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4226
	testl	%eax, %eax
	jne	.L3890
.L4226:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3890
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjjjNS0_21DeviceRadixSortPolicyIjjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_S9_SA_SA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$160, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$549755813895, %rax
	movq	%rax, -360(%rbp)
	movabsq	$167503724704, %rax
	movq	%rax, -424(%rbp)
	movl	$6240, -416(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4227
	testl	%eax, %eax
	jne	.L3890
.L4227:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3890
	movl	$192937985, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4228
	testl	%eax, %eax
	jne	.L3890
.L4228:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L3890
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movabsq	$167503724704, %rax
	movl	$160, %edx
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movq	%rax, -376(%rbp)
	movl	$6240, -368(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4122
	testl	%eax, %eax
	jne	.L3890
	testl	%r13d, %r13d
	jne	.L4122
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$4096, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -232(%rbp)
	movl	$268435457, %eax
	movl	%edx, -332(%rbp)
	salq	$8, %rax
	movl	$256, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4230
	testl	%eax, %eax
	jne	.L3890
.L4230:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L3890
	movl	$192937985, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4231
	testl	%eax, %eax
	jne	.L3890
.L4231:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L3890
	movl	$268435457, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	salq	$8, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb1ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$4096, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjS3_S4_S4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4127
	testl	%eax, %eax
	jne	.L3890
	cmpl	$0, -2624(%rbp)
	jne	.L4127
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	movq	%r8, -168(%rbp)
	cltq
	movq	%r8, -160(%rbp)
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
.L3899:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L3899
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L3900
	xorl	%edi, %edi
	movq	%rax, (%r12)
	movq	%rdi, -2616(%rbp)
	jmp	.L3901
.L3900:
	cmpq	%rax, (%r12)
	jnb	.L3902
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%esi, %esi
	movq	%rsi, -2616(%rbp)
	jmp	.L3901
.L3902:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L3901:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L4233
	testl	%eax, %eax
	jne	.L3890
.L4233:
	cmpl	$0, -2624(%rbp)
	jne	.L4127
	testq	%rbx, %rbx
	je	.L3847
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L3905
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L3905:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1056(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rcx, -616(%rbp)
	movq	-2600(%rbp), %rcx
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rcx), %edx
	movl	72(%rax), %eax
	movq	%rsi, -576(%rbp)
	movq	%rcx, %rsi
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	movq	(%rsi), %rsi
	movl	%eax, -2640(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1056(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1052(%rbp)
	movq	%rax, -1040(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	xorl	%ecx, %ecx
	movq	%rax, -1024(%rbp)
	leaq	-776(%rbp), %rax
	movl	%edx, -1044(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rcx, -1032(%rbp)
	leaq	-696(%rbp), %rcx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L4234
	testl	%eax, %eax
	jne	.L3910
.L4234:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L3910
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3910
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1008(%rbp)
	leaq	-1016(%rbp), %rdi
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1016(%rbp)
	movq	%rax, -1000(%rbp)
	xorl	%eax, %eax
	movq	%rax, -992(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1004(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -984(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L4235
	testl	%eax, %eax
	jne	.L3910
.L4235:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L3910
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3910
	movq	-2600(%rbp), %rax
	xorl	%r13d, %r13d
	leaq	-576(%rbp), %rcx
	leaq	-976(%rbp), %rdi
	movq	%r13, -952(%rbp)
	leaq	-656(%rbp), %r9
	leaq	-616(%rbp), %r8
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -976(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -972(%rbp)
	movq	%rax, -960(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -964(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -944(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3910
	testl	%eax, %eax
	jne	.L4131
	testl	%ebx, %ebx
	jne	.L3910
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3910
	movl	-2620(%rbp), %r12d
	movl	-2640(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L3910
.L4131:
	movl	%eax, %ebx
.L3910:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4132
	testl	%eax, %eax
	jne	.L3890
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L4132
.L3912:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L4662
	leaq	-432(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L3913
	leaq	-304(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
.L3913:
	movl	%eax, %esi
	cltq
	movq	%r12, -1172(%rbp)
	leaq	-1176(%rbp), %rdi
	xorl	$1, %esi
	movq	%r12, -1160(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	%rcx, -656(%rbp)
	movq	-2600(%rbp), %rcx
	movl	72(%rax), %eax
	movq	%rcx, %rsi
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rcx), %edx
	xorl	%ebx, %ebx
	movq	%rbx, -1152(%rbp)
	movl	%eax, -2640(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1176(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1144(%rbp)
	movq	%rcx, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	addq	$84, %rax
	leaq	-696(%rbp), %rcx
	movq	%rax, -2648(%rbp)
	movl	%edx, -1164(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	(%rsi), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2652(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2652(%rbp)
	movl	%eax, %ebx
	jne	.L4238
	testl	%eax, %eax
	jne	.L3918
.L4238:
	movl	-2652(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L3918
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3918
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1128(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-696(%rbp), %rdx
	leaq	-1136(%rbp), %rdi
	movq	%r12, -1136(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1120(%rbp)
	movq	%r9, -1112(%rbp)
	movl	%eax, -1124(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1104(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2652(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2652(%rbp)
	movl	%eax, %ebx
	jne	.L4239
	testl	%eax, %eax
	jne	.L3918
.L4239:
	movl	-2652(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L3918
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3918
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rdi
	movq	%r12, -1092(%rbp)
	leaq	-576(%rbp), %rcx
	movq	%r12, -1080(%rbp)
	leaq	-656(%rbp), %r9
	movl	56(%rax), %eax
	movl	108(%rdi), %edx
	movq	48(%rdi), %rsi
	leaq	-1096(%rbp), %rdi
	movl	%eax, -1084(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1072(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1096(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1064(%rbp)
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_S7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_S6_S7_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L3918
	testl	%eax, %eax
	jne	.L4136
	testl	%ebx, %ebx
	jne	.L3918
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L3918
	movl	-2640(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L3918
.L4136:
	movl	%eax, %ebx
.L3918:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4137
	testl	%eax, %eax
	jne	.L3919
	testl	%ebx, %ebx
	jne	.L4137
	movl	-2620(%rbp), %eax
	jmp	.L3912
.L4662:
	xorl	%eax, %eax
	movl	%eax, -2600(%rbp)
	jmp	.L3919
.L4137:
	movl	%ebx, -2600(%rbp)
.L3919:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L3847
.L4122:
	movl	%r13d, %eax
	jmp	.L3890
.L4127:
	movl	-2624(%rbp), %eax
	jmp	.L3890
.L4132:
	movl	%ebx, %eax
.L3890:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L3843:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L3922
	testq	%rbx, %rbx
	je	.L3846
	leaq	-1616(%rbp), %rdi
	leaq	-2360(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -1616(%rbp)
	leaq	-2368(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -1608(%rbp)
	leaq	-2376(%rbp), %rcx
	movq	%rax, -1584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2368(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2360(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2384(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2376(%rbp)
	leaq	-2384(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4242
	testl	%eax, %eax
	jne	.L3847
.L4242:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L3922:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268431360, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$7680, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2640(%rbp)
	movl	-2640(%rbp), %esi
	movl	$268431360, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L3926:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L3926
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L3927
	movq	%rax, (%r12)
	jmp	.L3847
.L3927:
	cmpq	%rax, (%r12)
	jnb	.L3929
	call	cudaGetLastError@PLT
.L3932:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4663
.L3929:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L3931:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L3931
	jmp	.L3932
.L4663:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4243
	testl	%eax, %eax
	jne	.L3847
.L4243:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4244
	testl	%eax, %eax
	jne	.L3847
.L4244:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4245
	testl	%eax, %eax
	jne	.L3847
.L4245:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4246
	testl	%eax, %eax
	jne	.L3847
.L4246:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4247
	testl	%eax, %eax
	jne	.L3847
.L4247:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1572(%rbp)
	movq	%r9, -1552(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2352(%rbp), %rcx
	leaq	-1576(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1576(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1568(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1560(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1544(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2352(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4248
	testl	%eax, %eax
	jne	.L3847
.L4248:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1536(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1512(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1532(%rbp)
	movq	%rax, -1504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4249
	testl	%eax, %eax
	jne	.L3847
.L4249:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2676(%rbp)
.L3941:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2680(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L3942:
	cmpl	%r12d, -2640(%rbp)
	je	.L4664
	movl	-2616(%rbp), %eax
	movl	$268431360, %edx
	imull	$268431360, %r12d, %r13d
	movl	$7680, %esi
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%esi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4148
	testl	%eax, %eax
	jne	.L3943
	testl	%ebx, %ebx
	jne	.L4148
	movl	-2656(%rbp), %eax
	movslq	16(%r14), %rdx
	salq	$2, %r13
	movl	$1, -1492(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1496(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$1099511627777, %rax
	movq	%rax, -1488(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1480(%rbp)
	xorl	%eax, %eax
	addq	%r13, %rsi
	movq	%rax, -1472(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -2344(%rbp)
	movq	%rax, -1464(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2328(%rbp)
	movq	%rax, -2336(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2320(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2312(%rbp)
	movl	-2640(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L3945
	movl	-2676(%rbp), %eax
	movl	-2652(%rbp), %ecx
	addl	%ecx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L3945:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2304(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2312(%rbp), %r9
	movl	-2680(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2304(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1496(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2296(%rbp), %rcx
	movq	%rax, -2296(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2344(%rbp), %rax
	pushq	%rax
	leaq	-2336(%rbp), %rax
	pushq	%rax
	leaq	-2328(%rbp), %rax
	pushq	%rax
	leaq	-2320(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4148
	testl	%eax, %eax
	jne	.L3943
	testl	%ebx, %ebx
	jne	.L4148
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2676(%rbp), %ecx
	addl	%edi, -2680(%rbp)
	addl	%ecx, -2652(%rbp)
	testl	%eax, %eax
	jne	.L3943
	incl	%r12d
	jmp	.L3942
.L4148:
	movl	%ebx, %eax
.L3943:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4664:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L3941
.L3842:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L3950
	testq	%rbx, %rbx
	je	.L3846
	leaq	-2144(%rbp), %rcx
	leaq	-776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rsi
	movq	%rax, -776(%rbp)
	leaq	-2160(%rbp), %r9
	leaq	-2152(%rbp), %r8
	movq	%rax, -760(%rbp)
	xorl	%eax, %eax
	movq	%rax, -752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -768(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2152(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2160(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2136(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2144(%rbp)
	leaq	-2136(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4252
	testl	%eax, %eax
	jne	.L3847
.L4252:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L3950:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268431360, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$7680, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2640(%rbp)
	movl	-2640(%rbp), %esi
	movl	$268431360, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L3954:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L3954
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L3955
	movq	%rax, (%r12)
	jmp	.L3847
.L3955:
	cmpq	%rax, (%r12)
	jnb	.L3957
	call	cudaGetLastError@PLT
.L3960:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4665
.L3957:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L3959:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L3959
	jmp	.L3960
.L4665:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4253
	testl	%eax, %eax
	jne	.L3847
.L4253:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4254
	testl	%eax, %eax
	jne	.L3847
.L4254:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4255
	testl	%eax, %eax
	jne	.L3847
.L4255:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4256
	testl	%eax, %eax
	jne	.L3847
.L4256:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4257
	testl	%eax, %eax
	jne	.L3847
.L4257:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -812(%rbp)
	movq	%r9, -792(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2168(%rbp), %rcx
	leaq	-816(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -816(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -800(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -784(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2168(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4258
	testl	%eax, %eax
	jne	.L3847
.L4258:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -852(%rbp)
	movq	%rax, -824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4259
	testl	%eax, %eax
	jne	.L3847
.L4259:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2676(%rbp)
.L3969:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2680(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L3970:
	cmpl	%r12d, -2640(%rbp)
	je	.L4666
	movl	-2616(%rbp), %eax
	movl	$268431360, %edx
	imull	$268431360, %r12d, %r13d
	movl	$7680, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4159
	testl	%eax, %eax
	jne	.L3971
	testl	%ebx, %ebx
	jne	.L4159
	movl	-2656(%rbp), %eax
	movslq	16(%r14), %rdx
	salq	$2, %r13
	movl	$1, -892(%rbp)
	movl	%eax, -896(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$1099511627777, %rax
	movq	%rax, -888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -880(%rbp)
	xorl	%eax, %eax
	addq	%r13, %rsi
	movq	%rax, -872(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -2176(%rbp)
	movq	-2632(%rbp), %rsi
	movq	%rax, -864(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2192(%rbp)
	movq	%rax, -2184(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2200(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rsi,%rax,4), %rax
	movq	%rax, -2208(%rbp)
	movl	-2640(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L3973
	movl	-2676(%rbp), %eax
	movl	-2652(%rbp), %edi
	addl	%edi, %eax
	movl	%eax, %eax
	leaq	(%rsi,%rax,4), %rax
.L3973:
	movq	%rax, -2216(%rbp)
	movq	-2648(%rbp), %rbx
	leaq	-2224(%rbp), %rcx
	leaq	-304(%rbp), %rdx
	movl	-2680(%rbp), %eax
	movq	-2672(%rbp), %rsi
	leaq	-896(%rbp), %rdi
	leaq	-2208(%rbp), %r9
	leaq	-2216(%rbp), %r8
	addq	%rbx, %rax
	leaq	(%rsi,%rax,4), %rax
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	movq	%rax, -2224(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2176(%rbp), %rax
	pushq	%rax
	leaq	-2184(%rbp), %rax
	pushq	%rax
	leaq	-2192(%rbp), %rax
	pushq	%rax
	leaq	-2200(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4159
	testl	%eax, %eax
	jne	.L3971
	testl	%ebx, %ebx
	jne	.L4159
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2676(%rbp), %ecx
	addl	%edi, -2680(%rbp)
	addl	%ecx, -2652(%rbp)
	testl	%eax, %eax
	jne	.L3971
	incl	%r12d
	jmp	.L3970
.L4159:
	movl	%ebx, %eax
.L3971:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4666:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L3969
.L3841:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L3978
	testq	%rbx, %rbx
	je	.L3846
	leaq	-2472(%rbp), %rcx
	leaq	-1776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rbx
	movq	%rax, -1776(%rbp)
	leaq	-2456(%rbp), %r9
	leaq	-2464(%rbp), %r8
	movq	%rax, -1760(%rbp)
	xorl	%eax, %eax
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rbx, -1768(%rbp)
	movq	%rax, -1744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2464(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2456(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2480(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2472(%rbp)
	leaq	-2480(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4262
	testl	%eax, %eax
	jne	.L3847
.L4262:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L3978:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268431360, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$7680, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2640(%rbp)
	movl	-2640(%rbp), %esi
	movl	$268431360, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L3982:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L3982
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L3983
	movq	%rax, (%r12)
	jmp	.L3847
.L3983:
	cmpq	%rax, (%r12)
	jnb	.L3985
	call	cudaGetLastError@PLT
.L3988:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4667
.L3985:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L3987:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L3987
	jmp	.L3988
.L4667:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4263
	testl	%eax, %eax
	jne	.L3847
.L4263:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4264
	testl	%eax, %eax
	jne	.L3847
.L4264:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4265
	testl	%eax, %eax
	jne	.L3847
.L4265:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4266
	testl	%eax, %eax
	jne	.L3847
.L4266:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4267
	testl	%eax, %eax
	jne	.L3847
.L4267:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1732(%rbp)
	movq	%r9, -1712(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2448(%rbp), %rcx
	leaq	-1736(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1736(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1720(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1704(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2448(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4268
	testl	%eax, %eax
	jne	.L3847
.L4268:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1692(%rbp)
	movq	%rax, -1664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4269
	testl	%eax, %eax
	jne	.L3847
.L4269:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2676(%rbp)
.L3997:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2680(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L3998:
	cmpl	%r12d, -2640(%rbp)
	je	.L4668
	movl	-2616(%rbp), %eax
	movl	$268431360, %edx
	imull	$268431360, %r12d, %r13d
	movl	$7680, %edi
	movq	-2608(%rbp), %rcx
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%edi
	movq	-2664(%rbp), %rdi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4170
	testl	%eax, %eax
	jne	.L3999
	testl	%ebx, %ebx
	jne	.L4170
	movl	-2656(%rbp), %eax
	movslq	16(%r14), %rdx
	salq	$2, %r13
	movl	$1, -1652(%rbp)
	movq	-2632(%rbp), %rbx
	movl	%eax, -1656(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$1099511627777, %rax
	movq	%rax, -1648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1640(%rbp)
	xorl	%eax, %eax
	addq	%r13, %rsi
	movq	%rax, -1632(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -2440(%rbp)
	movq	%rax, -1624(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2424(%rbp)
	movq	%rax, -2432(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2416(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2408(%rbp)
	movl	-2640(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4001
	movl	-2676(%rbp), %eax
	movl	-2652(%rbp), %esi
	addl	%esi, %eax
	movl	%eax, %eax
	leaq	(%rbx,%rax,4), %rax
.L4001:
	movq	-2648(%rbp), %rcx
	movq	%rax, -2400(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-1656(%rbp), %rdi
	movl	-2680(%rbp), %eax
	movq	-2672(%rbp), %rbx
	leaq	-2408(%rbp), %r9
	leaq	-2400(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rcx, %rax
	leaq	-2392(%rbp), %rcx
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2392(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2440(%rbp), %rax
	pushq	%rax
	leaq	-2432(%rbp), %rax
	pushq	%rax
	leaq	-2424(%rbp), %rax
	pushq	%rax
	leaq	-2416(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4170
	testl	%eax, %eax
	jne	.L3999
	testl	%ebx, %ebx
	jne	.L4170
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L3999
	movl	-2624(%rbp), %esi
	movl	-2676(%rbp), %edi
	incl	%r12d
	addl	%esi, -2680(%rbp)
	addl	%edi, -2652(%rbp)
	jmp	.L3998
.L4170:
	movl	%ebx, %eax
.L3999:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4668:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L3997
.L3840:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L4006
	testq	%rbx, %rbx
	je	.L3846
	leaq	-616(%rbp), %rdi
	leaq	-2064(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -616(%rbp)
	leaq	-2056(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -608(%rbp)
	leaq	-2048(%rbp), %rcx
	movq	%rax, -584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2056(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2064(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2040(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2048(%rbp)
	leaq	-2040(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	testl	%eax, %eax
	jne	.L4171
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L4006:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268433920, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$11776, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2640(%rbp)
	movl	-2640(%rbp), %esi
	movl	$268433920, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4010:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4010
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4011
	movq	%rax, (%r12)
	jmp	.L3847
.L4011:
	cmpq	%rax, (%r12)
	jnb	.L4013
	call	cudaGetLastError@PLT
.L4016:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4669
.L4013:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4015:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4015
	jmp	.L4016
.L4669:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4273
	testl	%eax, %eax
	jne	.L3847
.L4273:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4274
	testl	%eax, %eax
	jne	.L3847
.L4274:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%r11d, %r11d
	leaq	-856(%rbp), %rdi
	movl	$-1, -856(%rbp)
	movl	%r11d, -816(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4275
	testl	%eax, %eax
	jne	.L3847
.L4275:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-856(%rbp), %edx
	leaq	-816(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4276
	testl	%eax, %eax
	jne	.L3847
.L4276:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-776(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -776(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4277
	testl	%eax, %eax
	jne	.L3847
.L4277:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-776(%rbp), %eax
	imull	-816(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -652(%rbp)
	movq	%r9, -632(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2072(%rbp), %rcx
	leaq	-656(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -656(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -640(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -624(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2072(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4278
	testl	%eax, %eax
	jne	.L3847
.L4278:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -692(%rbp)
	movq	%rax, -664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4279
	testl	%eax, %eax
	jne	.L3847
.L4279:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2676(%rbp)
.L4025:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2680(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L4026:
	cmpl	%r12d, -2640(%rbp)
	je	.L4670
	movl	-2616(%rbp), %eax
	movl	$268433920, %edx
	imull	$268433920, %r12d, %r13d
	movl	$11776, %edi
	movq	-2608(%rbp), %rcx
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%edi
	movq	-2664(%rbp), %rdi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4181
	testl	%eax, %eax
	jne	.L4027
	testl	%ebx, %ebx
	jne	.L4181
	movl	-2656(%rbp), %eax
	movslq	16(%r14), %rdx
	salq	$2, %r13
	movl	$1, -732(%rbp)
	movq	-2632(%rbp), %rbx
	movl	%eax, -736(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$1099511627777, %rax
	movq	%rax, -728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -720(%rbp)
	xorl	%eax, %eax
	addq	%r13, %rsi
	movq	%rax, -712(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -2080(%rbp)
	movq	%rax, -704(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2096(%rbp)
	movq	%rax, -2088(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2104(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2112(%rbp)
	movl	-2640(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4029
	movl	-2676(%rbp), %eax
	movl	-2652(%rbp), %esi
	addl	%esi, %eax
	movl	%eax, %eax
	leaq	(%rbx,%rax,4), %rax
.L4029:
	movq	-2648(%rbp), %rcx
	movq	%rax, -2120(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-736(%rbp), %rdi
	movl	-2680(%rbp), %eax
	movq	-2672(%rbp), %rbx
	leaq	-2112(%rbp), %r9
	leaq	-2120(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rcx, %rax
	leaq	-2128(%rbp), %rcx
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2128(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2080(%rbp), %rax
	pushq	%rax
	leaq	-2088(%rbp), %rax
	pushq	%rax
	leaq	-2096(%rbp), %rax
	pushq	%rax
	leaq	-2104(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4181
	testl	%eax, %eax
	jne	.L4027
	testl	%ebx, %ebx
	jne	.L4181
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4027
	movl	-2624(%rbp), %esi
	movl	-2676(%rbp), %edi
	incl	%r12d
	addl	%esi, -2680(%rbp)
	addl	%edi, -2652(%rbp)
	jmp	.L4026
.L4181:
	movl	%ebx, %eax
.L4027:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4670:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4025
.L3839:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L4034
	testq	%rbx, %rbx
	je	.L3846
	leaq	-1936(%rbp), %rdi
	leaq	-2552(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -1936(%rbp)
	leaq	-2560(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1920(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1912(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -1928(%rbp)
	leaq	-2568(%rbp), %rcx
	movq	%rax, -1904(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2560(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2552(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2576(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2568(%rbp)
	leaq	-2576(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	testl	%eax, %eax
	jne	.L4182
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L4034:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268434432, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$8064, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2640(%rbp)
	movl	-2640(%rbp), %esi
	movl	$268434432, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4038:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4038
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4039
	movq	%rax, (%r12)
	jmp	.L3847
.L4039:
	cmpq	%rax, (%r12)
	jnb	.L4041
	call	cudaGetLastError@PLT
.L4044:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4671
.L4041:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4043:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4043
	jmp	.L4044
.L4671:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4283
	testl	%eax, %eax
	jne	.L3847
.L4283:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4284
	testl	%eax, %eax
	jne	.L3847
.L4284:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4285
	testl	%eax, %eax
	jne	.L3847
.L4285:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4286
	testl	%eax, %eax
	jne	.L3847
.L4286:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4287
	testl	%eax, %eax
	jne	.L3847
.L4287:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1892(%rbp)
	movq	%r9, -1872(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2544(%rbp), %rcx
	leaq	-1896(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1896(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1880(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1864(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2544(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4288
	testl	%eax, %eax
	jne	.L3847
.L4288:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1852(%rbp)
	movq	%rax, -1824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4289
	testl	%eax, %eax
	jne	.L3847
.L4289:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2680(%rbp)
.L4053:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2676(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L4054:
	cmpl	%r12d, -2640(%rbp)
	je	.L4672
	movl	-2616(%rbp), %eax
	movl	$268434432, %edx
	imull	$268434432, %r12d, %r13d
	movl	$8064, %edi
	movq	-2608(%rbp), %rcx
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%edi
	movq	-2664(%rbp), %rdi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4192
	testl	%eax, %eax
	jne	.L4055
	testl	%ebx, %ebx
	jne	.L4192
	movl	-2656(%rbp), %eax
	movslq	16(%r14), %rdx
	salq	$2, %r13
	movl	$1, -1812(%rbp)
	movq	-2632(%rbp), %rbx
	movl	%eax, -1816(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$1649267441665, %rax
	movq	%rax, -1808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1800(%rbp)
	xorl	%eax, %eax
	addq	%r13, %rsi
	movq	%rax, -1792(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -2536(%rbp)
	movq	%rax, -1784(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2520(%rbp)
	movq	%rax, -2528(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2512(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2504(%rbp)
	movl	-2640(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4057
	movl	-2680(%rbp), %eax
	movl	-2652(%rbp), %esi
	addl	%esi, %eax
	movl	%eax, %eax
	leaq	(%rbx,%rax,4), %rax
.L4057:
	movq	-2648(%rbp), %rcx
	movq	%rax, -2496(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-1816(%rbp), %rdi
	movl	-2676(%rbp), %eax
	movq	-2672(%rbp), %rbx
	leaq	-2504(%rbp), %r9
	leaq	-2496(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rcx, %rax
	leaq	-2488(%rbp), %rcx
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2488(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2536(%rbp), %rax
	pushq	%rax
	leaq	-2528(%rbp), %rax
	pushq	%rax
	leaq	-2520(%rbp), %rax
	pushq	%rax
	leaq	-2512(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4192
	testl	%eax, %eax
	jne	.L4055
	testl	%ebx, %ebx
	jne	.L4192
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4055
	movl	-2624(%rbp), %esi
	movl	-2680(%rbp), %edi
	incl	%r12d
	addl	%esi, -2676(%rbp)
	addl	%edi, -2652(%rbp)
	jmp	.L4054
.L4192:
	movl	%ebx, %eax
.L4055:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4672:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4053
.L3838:
	testb	%al, %al
	jne	.L3885
	cmpl	$4864, -2616(%rbp)
	ja	.L4062
	testq	%rbx, %rbx
	je	.L3846
	leaq	-304(%rbp), %rdi
	leaq	-1968(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -304(%rbp)
	leaq	-1960(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -288(%rbp)
	xorl	%eax, %eax
	movq	%rax, -280(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -296(%rbp)
	leaq	-1952(%rbp), %rcx
	movq	%rax, -272(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1960(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -1968(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1944(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -1952(%rbp)
	leaq	-1944(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjS6_S7_jiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_S7_S7_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	testl	%eax, %eax
	jne	.L4193
	cmpl	$0, -2600(%rbp)
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L3847
.L4062:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268430976, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$8832, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2648(%rbp)
	movl	-2648(%rbp), %esi
	movl	$268430976, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4066:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4066
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4067
	movq	%rax, (%r12)
	jmp	.L3847
.L4067:
	cmpq	%rax, (%r12)
	jnb	.L4069
	call	cudaGetLastError@PLT
.L4072:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -616(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L4673
.L4069:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4071:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4071
	jmp	.L4072
.L4673:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4293
	testl	%eax, %eax
	jne	.L3847
.L4293:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4294
	testl	%eax, %eax
	jne	.L3847
.L4294:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	xorl	%ebx, %ebx
	leaq	-776(%rbp), %rdi
	movl	$-1, -776(%rbp)
	movl	%ebx, -736(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4295
	testl	%eax, %eax
	jne	.L3847
.L4295:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-776(%rbp), %edx
	leaq	-736(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4296
	testl	%eax, %eax
	jne	.L3847
.L4296:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	leaq	-696(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -696(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4297
	testl	%eax, %eax
	jne	.L3847
.L4297:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	movl	-696(%rbp), %eax
	imull	-736(%rbp), %eax
	xorl	%r10d, %r10d
	movl	$1, -428(%rbp)
	movq	%r10, -408(%rbp)
	leaq	-616(%rbp), %r12
	leaq	-1976(%rbp), %rcx
	leaq	-432(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -432(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -424(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -416(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -400(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -1976(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r11
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r8
	popq	%r9
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4298
	testl	%eax, %eax
	jne	.L3847
.L4298:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%edi, %edi
	movq	%r12, %rdx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900EjEEvPT0_(%rip), %rsi
	movq	%rdi, -512(%rbp)
	leaq	-536(%rbp), %rdi
	movl	%eax, -536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -532(%rbp)
	movq	%rax, -504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4299
	testl	%eax, %eax
	jne	.L3847
.L4299:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L3847
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L3847
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	movq	%rsi, -2640(%rbp)
	sall	$8, %eax
	movl	%eax, -2676(%rbp)
.L4081:
	movl	-2620(%rbp), %eax
	movl	%eax, -656(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L3847
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%ecx, %ecx
	xorl	%r12d, %r12d
	movl	%ecx, -2680(%rbp)
	movl	%eax, -536(%rbp)
	movl	-2640(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2652(%rbp)
.L4082:
	cmpl	%r12d, -2648(%rbp)
	je	.L4674
	movl	-2616(%rbp), %eax
	movl	$268430976, %edx
	imull	$268430976, %r12d, %r13d
	movl	$8832, %edi
	movq	-2608(%rbp), %rcx
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -432(%rbp)
	idivl	%edi
	movq	-2664(%rbp), %rdi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2656(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4203
	testl	%eax, %eax
	jne	.L4083
	testl	%ebx, %ebx
	jne	.L4203
	movl	-2656(%rbp), %eax
	xorl	%edx, %edx
	movq	-2632(%rbp), %rbx
	salq	$2, %r13
	movq	%rdx, -552(%rbp)
	movslq	16(%r14), %rdx
	movl	%eax, -576(%rbp)
	movabsq	$1649267441665, %rax
	movq	%rax, -568(%rbp)
	movq	(%r14,%rdx,8), %rsi
	movabsq	$4294967297, %rax
	movq	%rax, -560(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -572(%rbp)
	addq	%r13, %rsi
	movq	%rax, -544(%rbp)
	movq	%rdx, %rax
	movslq	16(%r15), %rdx
	xorl	$1, %eax
	movq	%rsi, -1984(%rbp)
	cltq
	addq	(%r15,%rdx,8), %r13
	movq	(%r14,%rax,8), %rax
	movq	%r13, -2000(%rbp)
	movq	%rax, -1992(%rbp)
	movq	%rdx, %rax
	xorl	$1, %eax
	cltq
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2008(%rbp)
	movl	-2652(%rbp), %eax
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2016(%rbp)
	movl	-2648(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4085
	movl	-2676(%rbp), %eax
	movl	-2652(%rbp), %esi
	addl	%esi, %eax
	movl	%eax, %eax
	leaq	(%rbx,%rax,4), %rax
.L4085:
	movq	-2640(%rbp), %rcx
	movq	%rax, -2024(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-576(%rbp), %rdi
	movl	-2680(%rbp), %eax
	movq	-2672(%rbp), %rbx
	leaq	-2016(%rbp), %r9
	leaq	-2024(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjjjE9Policy900ELb0EjjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rcx, %rax
	leaq	-2032(%rbp), %rcx
	leaq	(%rbx,%rax,4), %rax
	movq	%rax, -2032(%rbp)
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-656(%rbp), %rax
	pushq	%rax
	leaq	-432(%rbp), %rax
	pushq	%rax
	leaq	-1984(%rbp), %rax
	pushq	%rax
	leaq	-1992(%rbp), %rax
	pushq	%rax
	leaq	-2000(%rbp), %rax
	pushq	%rax
	leaq	-2008(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_S6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S6_S6_iiiSC_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4203
	testl	%eax, %eax
	jne	.L4083
	testl	%ebx, %ebx
	jne	.L4203
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4083
	movl	-2624(%rbp), %esi
	movl	-2676(%rbp), %edi
	incl	%r12d
	addl	%esi, -2680(%rbp)
	addl	%edi, -2652(%rbp)
	jmp	.L4082
.L4203:
	movl	%ebx, %eax
.L4083:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4674:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2640(%rbp)
	jmp	.L4081
.L4171:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4182:
	movl	%eax, -2600(%rbp)
	jmp	.L3847
.L4193:
	movl	%eax, -2600(%rbp)
.L3847:
	call	cudaGetLastError@PLT
.LEHE7:
	cmpl	$0, -2600(%rbp)
	jne	.L4095
	testl	%eax, %eax
	jne	.L3836
	cmpl	$0, -2600(%rbp)
	je	.L4091
.L4095:
	movl	-2600(%rbp), %eax
.L3836:
	movl	%eax, -2600(%rbp)
.L4091:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L4094
	jmp	.L4659
.L4204:
	endbr64
	movq	%rax, %rbx
.L4092:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L4659
	movq	%rbx, %rdi
.LEHB8:
	call	_Unwind_Resume@PLT
.LEHE8:
.L4659:
	call	__stack_chk_fail@PLT
.L4094:
	movl	-2600(%rbp), %eax
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12410:
	.section	.gcc_except_table
.LLSDA12410:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12410-.LLSDACSB12410
.LLSDACSB12410:
	.uleb128 .LEHB7-.LFB12410
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L4204-.LFB12410
	.uleb128 0
	.uleb128 .LEHB8-.LFB12410
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
.LLSDACSE12410:
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.size	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, .-_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii:
.LFB13535:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKjPjPKmPmS2_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS7_6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4678
	testl	%eax, %eax
	jne	.L4675
.L4678:
	movl	%ebx, %eax
.L4675:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13535:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st:
.LFB12458:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12458
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	.cfi_offset 15, -24
	movq	%rdx, %r15
	pushq	%r14
	.cfi_offset 14, -32
	movq	%rcx, %r14
	pushq	%r13
	pushq	%r12
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	movq	%rsi, %r12
	pushq	%rbx
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$2648, %rsp
	movq	24(%rbp), %rax
	movl	%r8d, -2616(%rbp)
	movl	%r9d, -2620(%rbp)
	movq	%rax, -2608(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movw	$0, -2582(%rbp)
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %al
	testb	%al, %al
	jne	.L4685
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L4685
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	leaq	.LC105(%rip), %rsi
	call	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_release@PLT
.L4685:
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %al
	testb	%al, %al
	jne	.L4688
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L4688
	movq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rax
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	leaq	-304(%rbp), %rsi
	movl	$3, -304(%rbp)
	movq	%rax, -296(%rbp)
	call	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_release@PLT
.L4688:
	testq	%rbx, %rbx
	je	.L4690
	leaq	-2582(%rbp), %rdi
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rsi
	call	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0
.L4690:
	xorl	%eax, %eax
	leaq	-2580(%rbp), %rdi
	movl	%eax, -2580(%rbp)
.LEHB9:
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L4950
	testl	%eax, %eax
	jne	.L4691
	cmpl	$0, -2600(%rbp)
	jne	.L4950
	movl	-2616(%rbp), %eax
	cmpl	$0, -2616(%rbp)
	movq	%rbx, -496(%rbp)
	movl	-2580(%rbp), %edx
	movl	-2620(%rbp), %esi
	movq	%r12, -488(%rbp)
	movl	%eax, -464(%rbp)
	movl	-2620(%rbp), %eax
	movq	%r15, -480(%rbp)
	movl	%eax, -460(%rbp)
	movl	16(%rbp), %eax
	movq	%r14, -472(%rbp)
	movl	%eax, -456(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -440(%rbp)
	movq	%rax, -448(%rbp)
	sete	%al
	cmpl	16(%rbp), %esi
	sete	%cl
	movb	$1, -436(%rbp)
	orl	%ecx, %eax
	cmpl	$899, %edx
	jg	.L4693
	cmpl	$799, %edx
	jg	.L4694
	cmpl	$699, %edx
	jg	.L4695
	cmpl	$619, %edx
	jg	.L4696
	cmpl	$609, %edx
	jg	.L4697
	cmpl	$599, %edx
	jg	.L4698
	cmpl	$499, %edx
	jg	.L4699
	testb	%al, %al
	je	.L4700
.L4740:
	testq	%rbx, %rbx
	jne	.L4702
.L4701:
	movq	$1, (%r12)
	jmp	.L4702
.L4700:
	cmpl	$512, -2616(%rbp)
	ja	.L4704
	testq	%rbx, %rbx
	je	.L4701
	leaq	-2280(%rbp), %rcx
	leaq	-1456(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$549755813889, %rsi
	movq	%rax, -1456(%rbp)
	leaq	-2264(%rbp), %r9
	leaq	-2272(%rbp), %r8
	movq	%rax, -1440(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1432(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -1448(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1424(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2272(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2264(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2288(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2280(%rbp)
	leaq	-2288(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5061
	testl	%eax, %eax
	jne	.L4702
.L5061:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4704:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5062
	testl	%eax, %eax
	jne	.L4708
.L5062:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4708
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5063
	testl	%eax, %eax
	jne	.L4708
.L5063:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4708
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$128, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -360(%rbp)
	movl	$134217729, %eax
	movl	$512, -416(%rbp)
	salq	$7, %rax
	movq	%rax, -424(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5064
	testl	%eax, %eax
	jne	.L4708
.L5064:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4708
	movl	$16777217, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5065
	testl	%eax, %eax
	jne	.L4708
.L5065:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4708
	movl	$134217729, %eax
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$512, -368(%rbp)
	movq	%rax, -376(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4956
	testl	%eax, %eax
	jne	.L4708
	testl	%r13d, %r13d
	jne	.L4956
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$896, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$137438953477, %rax
	movq	%rax, -232(%rbp)
	movl	$234881025, %eax
	movl	%edx, -332(%rbp)
	salq	$7, %rax
	movl	$128, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5067
	testl	%eax, %eax
	jne	.L4708
.L5067:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L4708
	movl	$16777217, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5068
	testl	%eax, %eax
	jne	.L4708
.L5068:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L4708
	movl	$234881025, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$896, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4961
	testl	%eax, %eax
	jne	.L4708
	cmpl	$0, -2624(%rbp)
	jne	.L4961
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	cltq
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
	movq	%rax, -168(%rbp)
	movq	%rax, -160(%rbp)
	xorl	%eax, %eax
.L4717:
	movq	-176(%rbp,%rdx), %rsi
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	leaq	255(%rsi), %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L4717
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4718
	xorl	%r13d, %r13d
	movq	%rax, (%r12)
	movq	%r13, -2616(%rbp)
	jmp	.L4719
.L4718:
	cmpq	%rax, (%r12)
	jnb	.L4720
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%r12d, %r12d
	movq	%r12, -2616(%rbp)
	jmp	.L4719
.L4720:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L4719:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L5070
	testl	%eax, %eax
	jne	.L4708
.L5070:
	cmpl	$0, -2624(%rbp)
	jne	.L4961
	testq	%rbx, %rbx
	je	.L4702
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L4723
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L4723:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1336(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rsi, -576(%rbp)
	movq	-2600(%rbp), %rsi
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rsi), %edx
	movl	72(%rax), %eax
	movq	%rcx, -616(%rbp)
	leaq	-696(%rbp), %rcx
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	xorl	%ebx, %ebx
	movq	%rbx, -1312(%rbp)
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1336(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1332(%rbp)
	movq	%rax, -1320(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rsi), %edx
	movq	%rax, -1304(%rbp)
	leaq	-776(%rbp), %rax
	movq	(%rsi), %rsi
	movl	%edx, -1324(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5071
	testl	%eax, %eax
	jne	.L4728
.L5071:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L4728
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4728
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1368(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-1376(%rbp), %rdi
	movq	%r9, -1352(%rbp)
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1376(%rbp)
	movq	%rax, -1360(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1364(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -1344(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5072
	testl	%eax, %eax
	jne	.L4728
.L5072:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L4728
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4728
	movq	-2600(%rbp), %rax
	xorl	%esi, %esi
	leaq	-576(%rbp), %rcx
	leaq	-1416(%rbp), %rdi
	movq	%rsi, -1392(%rbp)
	leaq	-656(%rbp), %r9
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -1416(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1412(%rbp)
	movq	%rax, -1400(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1404(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1384(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4728
	testl	%eax, %eax
	jne	.L4965
	testl	%ebx, %ebx
	jne	.L4728
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4728
	movl	-2620(%rbp), %r12d
	movl	-2636(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L4728
.L4965:
	movl	%eax, %ebx
.L4728:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4966
	testl	%eax, %eax
	jne	.L4708
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L4966
.L4730:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L5516
	leaq	-432(%rbp), %rsi
	movq	%rsi, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L4731
	leaq	-304(%rbp), %rsi
	movq	%rsi, -2600(%rbp)
.L4731:
	movl	%eax, %esi
	cltq
	movq	%r12, -1212(%rbp)
	leaq	-1216(%rbp), %rdi
	xorl	$1, %esi
	movq	%r12, -1200(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	-2600(%rbp), %rsi
	movq	%rcx, -656(%rbp)
	movl	72(%rax), %eax
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rsi), %edx
	xorl	%ecx, %ecx
	movq	%rcx, -1192(%rbp)
	leaq	-696(%rbp), %rcx
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1216(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1184(%rbp)
	movq	%rsi, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rsi), %edx
	addq	$84, %rax
	movq	%rax, -2648(%rbp)
	movl	%edx, -1204(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	(%rsi), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5075
	testl	%eax, %eax
	jne	.L4736
.L5075:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L4736
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4736
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1248(%rbp)
	leaq	-696(%rbp), %rdx
	leaq	-1256(%rbp), %rdi
	movq	%r12, -1256(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1240(%rbp)
	movl	%eax, -1244(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1232(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1224(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5076
	testl	%eax, %eax
	jne	.L4736
.L5076:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L4736
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4736
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rsi
	xorl	%ebx, %ebx
	movq	%r12, -1292(%rbp)
	movq	%r12, -1280(%rbp)
	leaq	-576(%rbp), %rcx
	leaq	-1296(%rbp), %rdi
	movl	56(%rax), %eax
	movl	108(%rsi), %edx
	movq	%rbx, -1272(%rbp)
	leaq	-656(%rbp), %r9
	movq	48(%rsi), %rsi
	leaq	-616(%rbp), %r8
	movl	%eax, -1284(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1296(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1264(%rbp)
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4736
	testl	%eax, %eax
	jne	.L4970
	testl	%ebx, %ebx
	jne	.L4736
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4736
	movl	-2636(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L4736
.L4970:
	movl	%eax, %ebx
.L4736:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4971
	testl	%eax, %eax
	jne	.L4737
	testl	%ebx, %ebx
	jne	.L4971
	movl	-2620(%rbp), %eax
	jmp	.L4730
.L5516:
	xorl	%r11d, %r11d
	movl	%r11d, -2600(%rbp)
	jmp	.L4737
.L4971:
	movl	%ebx, -2600(%rbp)
.L4737:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L4702
.L4956:
	movl	%r13d, %eax
	jmp	.L4708
.L4961:
	movl	-2624(%rbp), %eax
	jmp	.L4708
.L4966:
	movl	%ebx, %eax
.L4708:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L4699:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4741
	testq	%rbx, %rbx
	je	.L4701
	movabsq	$4294967297, %rax
	xorl	%r9d, %r9d
	movabsq	$1099511627777, %rsi
	movq	%rax, -936(%rbp)
	leaq	-2240(%rbp), %rcx
	leaq	-936(%rbp), %rdi
	movq	%rax, -920(%rbp)
	movq	-2608(%rbp), %rax
	leaq	-2248(%rbp), %r8
	movq	%rsi, -928(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -904(%rbp)
	movslq	16(%r14), %rax
	movq	%r9, -912(%rbp)
	leaq	-2256(%rbp), %r9
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2248(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2256(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2232(%rbp)
	leaq	-456(%rbp), %rax
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2240(%rbp)
	leaq	-2232(%rbp), %rdx
	pushq	%r10
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5079
	testl	%eax, %eax
	jne	.L4702
.L5079:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4741:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5080
	testl	%eax, %eax
	jne	.L4745
.L5080:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4745
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5081
	testl	%eax, %eax
	jne	.L4745
.L5081:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4745
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EjmjNS0_21DeviceRadixSortPolicyIjmjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKjPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_SA_PKmPmSA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$160, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$549755813895, %rax
	movq	%rax, -360(%rbp)
	movl	$2550136837, %eax
	movl	$3040, -416(%rbp)
	salq	$5, %rax
	movq	%rax, -424(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5082
	testl	%eax, %eax
	jne	.L4745
.L5082:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4745
	movl	$192937985, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5083
	testl	%eax, %eax
	jne	.L4745
.L5083:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L4745
	movl	$2550136837, %eax
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$160, %edx
	salq	$5, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$3040, -368(%rbp)
	movq	%rax, -376(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L4977
	testl	%eax, %eax
	jne	.L4745
	testl	%r13d, %r13d
	jne	.L4977
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$2048, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -232(%rbp)
	movl	$134217729, %eax
	movl	%edx, -332(%rbp)
	salq	$8, %rax
	movl	$256, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5085
	testl	%eax, %eax
	jne	.L4745
.L5085:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L4745
	movl	$192937985, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5086
	testl	%eax, %eax
	jne	.L4745
.L5086:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L4745
	movl	$134217729, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	salq	$8, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb1ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$2048, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKjPjPKmPmS4_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L4982
	testl	%eax, %eax
	jne	.L4745
	cmpl	$0, -2624(%rbp)
	jne	.L4982
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	movq	%r8, -168(%rbp)
	cltq
	movq	%r8, -160(%rbp)
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
.L4754:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L4754
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4755
	xorl	%edi, %edi
	movq	%rax, (%r12)
	movq	%rdi, -2616(%rbp)
	jmp	.L4756
.L4755:
	cmpq	%rax, (%r12)
	jnb	.L4757
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%esi, %esi
	movq	%rsi, -2616(%rbp)
	jmp	.L4756
.L4757:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L4756:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L5088
	testl	%eax, %eax
	jne	.L4745
.L5088:
	cmpl	$0, -2624(%rbp)
	jne	.L4982
	testq	%rbx, %rbx
	je	.L4702
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L4760
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L4760:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1056(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rcx, -616(%rbp)
	movq	-2600(%rbp), %rcx
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rcx), %edx
	movl	72(%rax), %eax
	movq	%rsi, -576(%rbp)
	movq	%rcx, %rsi
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	movq	(%rsi), %rsi
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1056(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1052(%rbp)
	movq	%rax, -1040(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	xorl	%ecx, %ecx
	movq	%rax, -1024(%rbp)
	leaq	-776(%rbp), %rax
	movl	%edx, -1044(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rcx, -1032(%rbp)
	leaq	-696(%rbp), %rcx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5089
	testl	%eax, %eax
	jne	.L4765
.L5089:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L4765
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4765
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1008(%rbp)
	leaq	-1016(%rbp), %rdi
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1016(%rbp)
	movq	%rax, -1000(%rbp)
	xorl	%eax, %eax
	movq	%rax, -992(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1004(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -984(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5090
	testl	%eax, %eax
	jne	.L4765
.L5090:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L4765
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4765
	movq	-2600(%rbp), %rax
	xorl	%r13d, %r13d
	leaq	-576(%rbp), %rcx
	leaq	-976(%rbp), %rdi
	movq	%r13, -952(%rbp)
	leaq	-656(%rbp), %r9
	leaq	-616(%rbp), %r8
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -976(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -972(%rbp)
	movq	%rax, -960(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -964(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -944(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4765
	testl	%eax, %eax
	jne	.L4986
	testl	%ebx, %ebx
	jne	.L4765
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4765
	movl	-2620(%rbp), %r12d
	movl	-2636(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L4765
.L4986:
	movl	%eax, %ebx
.L4765:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4987
	testl	%eax, %eax
	jne	.L4745
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L4987
.L4767:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L5517
	leaq	-432(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L4768
	leaq	-304(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
.L4768:
	movl	%eax, %esi
	cltq
	movq	%r12, -1172(%rbp)
	leaq	-1176(%rbp), %rdi
	xorl	$1, %esi
	movq	%r12, -1160(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	%rcx, -656(%rbp)
	movq	-2600(%rbp), %rcx
	movl	72(%rax), %eax
	movq	%rcx, %rsi
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rcx), %edx
	xorl	%ebx, %ebx
	movq	%rbx, -1152(%rbp)
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1176(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1144(%rbp)
	movq	%rcx, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	addq	$84, %rax
	leaq	-696(%rbp), %rcx
	movq	%rax, -2648(%rbp)
	movl	%edx, -1164(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	(%rsi), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5093
	testl	%eax, %eax
	jne	.L4773
.L5093:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L4773
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4773
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1128(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-696(%rbp), %rdx
	leaq	-1136(%rbp), %rdi
	movq	%r12, -1136(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1120(%rbp)
	movq	%r9, -1112(%rbp)
	movl	%eax, -1124(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1104(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5094
	testl	%eax, %eax
	jne	.L4773
.L5094:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L4773
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4773
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rdi
	movq	%r12, -1092(%rbp)
	leaq	-576(%rbp), %rcx
	movq	%r12, -1080(%rbp)
	leaq	-656(%rbp), %r9
	movl	56(%rax), %eax
	movl	108(%rdi), %edx
	movq	48(%rdi), %rsi
	leaq	-1096(%rbp), %rdi
	movl	%eax, -1084(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1072(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1096(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1064(%rbp)
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmS7_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_S7_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L4773
	testl	%eax, %eax
	jne	.L4991
	testl	%ebx, %ebx
	jne	.L4773
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L4773
	movl	-2636(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L4773
.L4991:
	movl	%eax, %ebx
.L4773:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4992
	testl	%eax, %eax
	jne	.L4774
	testl	%ebx, %ebx
	jne	.L4992
	movl	-2620(%rbp), %eax
	jmp	.L4767
.L5517:
	xorl	%eax, %eax
	movl	%eax, -2600(%rbp)
	jmp	.L4774
.L4992:
	movl	%ebx, -2600(%rbp)
.L4774:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L4702
.L4977:
	movl	%r13d, %eax
	jmp	.L4745
.L4982:
	movl	-2624(%rbp), %eax
	jmp	.L4745
.L4987:
	movl	%ebx, %eax
.L4745:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L4698:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4777
	testq	%rbx, %rbx
	je	.L4701
	leaq	-1616(%rbp), %rdi
	leaq	-2360(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -1616(%rbp)
	leaq	-2368(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -1608(%rbp)
	leaq	-2376(%rbp), %rcx
	movq	%rax, -1584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2368(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2360(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2384(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2376(%rbp)
	leaq	-2384(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5097
	testl	%eax, %eax
	jne	.L4702
.L5097:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4777:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4781:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4781
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4782
	movq	%rax, (%r12)
	jmp	.L4702
.L4782:
	cmpq	%rax, (%r12)
	jnb	.L4784
	call	cudaGetLastError@PLT
.L4787:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5518
.L4784:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4786:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4786
	jmp	.L4787
.L5518:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5098
	testl	%eax, %eax
	jne	.L4702
.L5098:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5099
	testl	%eax, %eax
	jne	.L4702
.L5099:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5100
	testl	%eax, %eax
	jne	.L4702
.L5100:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5101
	testl	%eax, %eax
	jne	.L4702
.L5101:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5102
	testl	%eax, %eax
	jne	.L4702
.L5102:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1572(%rbp)
	movq	%r9, -1552(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2352(%rbp), %rcx
	leaq	-1576(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1576(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1568(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1560(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1544(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2352(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5103
	testl	%eax, %eax
	jne	.L4702
.L5103:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1536(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1512(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1532(%rbp)
	movq	%rax, -1504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5104
	testl	%eax, %eax
	jne	.L4702
.L5104:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L4796:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L4797:
	cmpl	%r12d, -2636(%rbp)
	je	.L5519
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %esi
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%esi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5003
	testl	%eax, %eax
	jne	.L4798
	testl	%ebx, %ebx
	jne	.L5003
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1492(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1496(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1488(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1480(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1472(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1464(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2344(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2336(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2328(%rbp)
	movq	%rax, -2320(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2312(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4800
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ecx
	addl	%ecx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4800:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2304(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2312(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2304(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1496(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2296(%rbp), %rcx
	movq	%rax, -2296(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2344(%rbp), %rax
	pushq	%rax
	leaq	-2336(%rbp), %rax
	pushq	%rax
	leaq	-2328(%rbp), %rax
	pushq	%rax
	leaq	-2320(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5003
	testl	%eax, %eax
	jne	.L4798
	testl	%ebx, %ebx
	jne	.L5003
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2640(%rbp), %ecx
	addl	%edi, -2684(%rbp)
	addl	%ecx, -2656(%rbp)
	testl	%eax, %eax
	jne	.L4798
	incl	%r12d
	jmp	.L4797
.L5003:
	movl	%ebx, %eax
.L4798:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5519:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4796
.L4697:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4805
	testq	%rbx, %rbx
	je	.L4701
	leaq	-2144(%rbp), %rcx
	leaq	-776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rsi
	movq	%rax, -776(%rbp)
	leaq	-2160(%rbp), %r9
	leaq	-2152(%rbp), %r8
	movq	%rax, -760(%rbp)
	xorl	%eax, %eax
	movq	%rax, -752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -768(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2152(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2160(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2136(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2144(%rbp)
	leaq	-2136(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5107
	testl	%eax, %eax
	jne	.L4702
.L5107:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4805:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4809:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4809
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4810
	movq	%rax, (%r12)
	jmp	.L4702
.L4810:
	cmpq	%rax, (%r12)
	jnb	.L4812
	call	cudaGetLastError@PLT
.L4815:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5520
.L4812:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4814:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4814
	jmp	.L4815
.L5520:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5108
	testl	%eax, %eax
	jne	.L4702
.L5108:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5109
	testl	%eax, %eax
	jne	.L4702
.L5109:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5110
	testl	%eax, %eax
	jne	.L4702
.L5110:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5111
	testl	%eax, %eax
	jne	.L4702
.L5111:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5112
	testl	%eax, %eax
	jne	.L4702
.L5112:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -812(%rbp)
	movq	%r9, -792(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2168(%rbp), %rcx
	leaq	-816(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -816(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -800(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -784(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2168(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5113
	testl	%eax, %eax
	jne	.L4702
.L5113:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -852(%rbp)
	movq	%rax, -824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5114
	testl	%eax, %eax
	jne	.L4702
.L5114:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L4824:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L4825:
	cmpl	%r12d, -2636(%rbp)
	je	.L5521
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %esi
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%esi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5014
	testl	%eax, %eax
	jne	.L4826
	testl	%ebx, %ebx
	jne	.L5014
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -892(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -896(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -880(%rbp)
	xorl	%eax, %eax
	movq	%rax, -872(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -864(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2176(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2184(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2192(%rbp)
	movq	%rax, -2200(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2208(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4828
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ecx
	addl	%ecx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4828:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2216(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2208(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2216(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-896(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2224(%rbp), %rcx
	movq	%rax, -2224(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2176(%rbp), %rax
	pushq	%rax
	leaq	-2184(%rbp), %rax
	pushq	%rax
	leaq	-2192(%rbp), %rax
	pushq	%rax
	leaq	-2200(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5014
	testl	%eax, %eax
	jne	.L4826
	testl	%ebx, %ebx
	jne	.L5014
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2640(%rbp), %ecx
	addl	%edi, -2684(%rbp)
	addl	%ecx, -2656(%rbp)
	testl	%eax, %eax
	jne	.L4826
	incl	%r12d
	jmp	.L4825
.L5014:
	movl	%ebx, %eax
.L4826:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5521:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4824
.L4696:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4833
	testq	%rbx, %rbx
	je	.L4701
	leaq	-2472(%rbp), %rcx
	leaq	-1776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rsi
	movq	%rax, -1776(%rbp)
	leaq	-2456(%rbp), %r9
	leaq	-2464(%rbp), %r8
	movq	%rax, -1760(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -1768(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2464(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2456(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2480(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2472(%rbp)
	leaq	-2480(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5117
	testl	%eax, %eax
	jne	.L4702
.L5117:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4833:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4837:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4837
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4838
	movq	%rax, (%r12)
	jmp	.L4702
.L4838:
	cmpq	%rax, (%r12)
	jnb	.L4840
	call	cudaGetLastError@PLT
.L4843:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5522
.L4840:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4842:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4842
	jmp	.L4843
.L5522:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5118
	testl	%eax, %eax
	jne	.L4702
.L5118:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5119
	testl	%eax, %eax
	jne	.L4702
.L5119:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5120
	testl	%eax, %eax
	jne	.L4702
.L5120:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5121
	testl	%eax, %eax
	jne	.L4702
.L5121:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5122
	testl	%eax, %eax
	jne	.L4702
.L5122:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1732(%rbp)
	movq	%r9, -1712(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2448(%rbp), %rcx
	leaq	-1736(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1736(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1720(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1704(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2448(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5123
	testl	%eax, %eax
	jne	.L4702
.L5123:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1692(%rbp)
	movq	%rax, -1664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5124
	testl	%eax, %eax
	jne	.L4702
.L5124:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L4852:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L4853:
	cmpl	%r12d, -2636(%rbp)
	je	.L5523
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5025
	testl	%eax, %eax
	jne	.L4854
	testl	%ebx, %ebx
	jne	.L5025
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1652(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1656(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1640(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1632(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1624(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2440(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2432(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2424(%rbp)
	movq	%rax, -2416(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2408(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4856
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4856:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2400(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2408(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2400(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1656(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2392(%rbp), %rcx
	movq	%rax, -2392(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2440(%rbp), %rax
	pushq	%rax
	leaq	-2432(%rbp), %rax
	pushq	%rax
	leaq	-2424(%rbp), %rax
	pushq	%rax
	leaq	-2416(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5025
	testl	%eax, %eax
	jne	.L4854
	testl	%ebx, %ebx
	jne	.L5025
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4854
	movl	-2624(%rbp), %ebx
	movl	-2640(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2684(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L4853
.L5025:
	movl	%ebx, %eax
.L4854:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5523:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4852
.L4695:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4861
	testq	%rbx, %rbx
	je	.L4701
	leaq	-2048(%rbp), %rcx
	leaq	-2064(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -616(%rbp)
	leaq	-2056(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -608(%rbp)
	leaq	-616(%rbp), %rdi
	movq	%rax, -584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2056(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2064(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2040(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2048(%rbp)
	leaq	-2040(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	testl	%eax, %eax
	jne	.L5026
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4861:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$2816, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2648(%rbp)
	movl	-2648(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4865:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4865
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4866
	movq	%rax, (%r12)
	jmp	.L4702
.L4866:
	cmpq	%rax, (%r12)
	jnb	.L4868
	call	cudaGetLastError@PLT
.L4871:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2672(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2680(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5524
.L4868:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4870:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4870
	jmp	.L4871
.L5524:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5128
	testl	%eax, %eax
	jne	.L4702
.L5128:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5129
	testl	%eax, %eax
	jne	.L4702
.L5129:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%r11d, %r11d
	leaq	-856(%rbp), %rdi
	movl	$-1, -856(%rbp)
	movl	%r11d, -816(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5130
	testl	%eax, %eax
	jne	.L4702
.L5130:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-856(%rbp), %edx
	leaq	-816(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5131
	testl	%eax, %eax
	jne	.L4702
.L5131:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-776(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -776(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5132
	testl	%eax, %eax
	jne	.L4702
.L5132:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-776(%rbp), %eax
	imull	-816(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -652(%rbp)
	movq	%r9, -632(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2072(%rbp), %rcx
	leaq	-656(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -656(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -640(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -624(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2072(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5133
	testl	%eax, %eax
	jne	.L4702
.L5133:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -692(%rbp)
	movq	%rax, -664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5134
	testl	%eax, %eax
	jne	.L4702
.L5134:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2656(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L4880:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2664(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2656(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2636(%rbp)
.L4881:
	cmpl	%r12d, -2648(%rbp)
	je	.L5525
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$2816, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2672(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2640(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5036
	testl	%eax, %eax
	jne	.L4882
	testl	%ebx, %ebx
	jne	.L5036
	movl	-2640(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -732(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -736(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -720(%rbp)
	xorl	%eax, %eax
	movq	%rax, -712(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -704(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2080(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2088(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2096(%rbp)
	movq	%rax, -2104(%rbp)
	movl	-2636(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2112(%rbp)
	movl	-2648(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4884
	movl	-2636(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4884:
	movq	-2656(%rbp), %rdi
	movq	%rax, -2120(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2112(%rbp), %r9
	movl	-2664(%rbp), %eax
	movq	-2680(%rbp), %rcx
	leaq	-2120(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-736(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2128(%rbp), %rcx
	movq	%rax, -2128(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2080(%rbp), %rax
	pushq	%rax
	leaq	-2088(%rbp), %rax
	pushq	%rax
	leaq	-2096(%rbp), %rax
	pushq	%rax
	leaq	-2104(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5036
	testl	%eax, %eax
	jne	.L4882
	testl	%ebx, %ebx
	jne	.L5036
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4882
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2664(%rbp)
	addl	%esi, -2636(%rbp)
	jmp	.L4881
.L5036:
	movl	%ebx, %eax
.L4882:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5525:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2656(%rbp)
	jmp	.L4880
.L4694:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4889
	testq	%rbx, %rbx
	je	.L4701
	leaq	-2568(%rbp), %rcx
	leaq	-2552(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -1936(%rbp)
	leaq	-2560(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1920(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1912(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -1928(%rbp)
	leaq	-1936(%rbp), %rdi
	movq	%rax, -1904(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2560(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2552(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2576(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2568(%rbp)
	leaq	-2576(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	testl	%eax, %eax
	jne	.L5037
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4889:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4893:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4893
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4894
	movq	%rax, (%r12)
	jmp	.L4702
.L4894:
	cmpq	%rax, (%r12)
	jnb	.L4896
	call	cudaGetLastError@PLT
.L4899:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5526
.L4896:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4898:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4898
	jmp	.L4899
.L5526:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5138
	testl	%eax, %eax
	jne	.L4702
.L5138:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5139
	testl	%eax, %eax
	jne	.L4702
.L5139:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5140
	testl	%eax, %eax
	jne	.L4702
.L5140:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5141
	testl	%eax, %eax
	jne	.L4702
.L5141:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5142
	testl	%eax, %eax
	jne	.L4702
.L5142:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1892(%rbp)
	movq	%r9, -1872(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2544(%rbp), %rcx
	leaq	-1896(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1896(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1880(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1864(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2544(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5143
	testl	%eax, %eax
	jne	.L4702
.L5143:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1852(%rbp)
	movq	%rax, -1824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5144
	testl	%eax, %eax
	jne	.L4702
.L5144:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L4908:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2640(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L4909:
	cmpl	%r12d, -2636(%rbp)
	je	.L5527
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5047
	testl	%eax, %eax
	jne	.L4910
	testl	%ebx, %ebx
	jne	.L5047
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1812(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1816(%rbp)
	movabsq	$1649267441665, %rax
	movq	%rax, -1808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1800(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1792(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1784(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2536(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2528(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2520(%rbp)
	movq	%rax, -2512(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2504(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4912
	movl	-2656(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4912:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2496(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2504(%rbp), %r9
	movl	-2640(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2496(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1816(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2488(%rbp), %rcx
	movq	%rax, -2488(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2536(%rbp), %rax
	pushq	%rax
	leaq	-2528(%rbp), %rax
	pushq	%rax
	leaq	-2520(%rbp), %rax
	pushq	%rax
	leaq	-2512(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5047
	testl	%eax, %eax
	jne	.L4910
	testl	%ebx, %ebx
	jne	.L5047
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4910
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2640(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L4909
.L5047:
	movl	%ebx, %eax
.L4910:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5527:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4908
.L4693:
	testb	%al, %al
	jne	.L4740
	cmpl	$2304, -2616(%rbp)
	ja	.L4917
	testq	%rbx, %rbx
	je	.L4701
	leaq	-1952(%rbp), %rcx
	leaq	-1968(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -304(%rbp)
	leaq	-1960(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -288(%rbp)
	xorl	%eax, %eax
	movq	%rax, -280(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -296(%rbp)
	leaq	-304(%rbp), %rdi
	movq	%rax, -272(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1960(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -1968(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1944(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -1952(%rbp)
	leaq	-1944(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKjPjPKmPmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	testl	%eax, %eax
	jne	.L5048
	cmpl	$0, -2600(%rbp)
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L4702
.L4917:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268433280, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$5760, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268433280, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L4921:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L4921
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L4922
	movq	%rax, (%r12)
	jmp	.L4702
.L4922:
	cmpq	%rax, (%r12)
	jnb	.L4924
	call	cudaGetLastError@PLT
.L4927:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -616(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L5528
.L4924:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L4926:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L4926
	jmp	.L4927
.L5528:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5148
	testl	%eax, %eax
	jne	.L4702
.L5148:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5149
	testl	%eax, %eax
	jne	.L4702
.L5149:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	xorl	%ebx, %ebx
	leaq	-776(%rbp), %rdi
	movl	$-1, -776(%rbp)
	movl	%ebx, -736(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5150
	testl	%eax, %eax
	jne	.L4702
.L5150:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-776(%rbp), %edx
	leaq	-736(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5151
	testl	%eax, %eax
	jne	.L4702
.L5151:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	leaq	-696(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -696(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5152
	testl	%eax, %eax
	jne	.L4702
.L5152:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	movl	-696(%rbp), %eax
	imull	-736(%rbp), %eax
	xorl	%r10d, %r10d
	movl	$1, -428(%rbp)
	movq	%r10, -408(%rbp)
	leaq	-616(%rbp), %r12
	leaq	-1976(%rbp), %rcx
	leaq	-432(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -432(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -424(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -416(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -400(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -1976(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r11
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_jiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r8
	popq	%r9
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5153
	testl	%eax, %eax
	jne	.L4702
.L5153:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%edi, %edi
	movq	%r12, %rdx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900EjEEvPT0_(%rip), %rsi
	movq	%rdi, -512(%rbp)
	leaq	-536(%rbp), %rdi
	movl	%eax, -536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -532(%rbp)
	movq	%rax, -504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5154
	testl	%eax, %eax
	jne	.L4702
.L5154:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L4702
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L4702
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	movq	%rsi, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L4936:
	movl	-2620(%rbp), %eax
	movl	%eax, -656(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L4702
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%ecx, %ecx
	xorl	%r12d, %r12d
	movl	%ecx, -2640(%rbp)
	movl	%eax, -536(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L4937:
	cmpl	%r12d, -2636(%rbp)
	je	.L5529
	movl	-2616(%rbp), %eax
	movl	$268433280, %edx
	imull	$268433280, %r12d, %r13d
	movl	$5760, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -432(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5058
	testl	%eax, %eax
	jne	.L4938
	testl	%ebx, %ebx
	jne	.L5058
	movl	-2680(%rbp), %eax
	xorl	%edx, %edx
	movq	-2632(%rbp), %rdi
	movl	$1, -572(%rbp)
	movq	%rdx, -552(%rbp)
	movslq	16(%r14), %rdx
	movl	%eax, -576(%rbp)
	movabsq	$1649267441665, %rax
	movq	%rax, -568(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -560(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -544(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,8), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -1984(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -1992(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,4), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2000(%rbp)
	movq	%rax, -2008(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2016(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L4940
	movl	-2656(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L4940:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2024(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2016(%rbp), %r9
	movl	-2640(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2024(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyIjmjE9Policy900ELb0EjmjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-576(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2032(%rbp), %rcx
	movq	%rax, -2032(%rbp)
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-656(%rbp), %rax
	pushq	%rax
	leaq	-432(%rbp), %rax
	pushq	%rax
	leaq	-1984(%rbp), %rax
	pushq	%rax
	leaq	-1992(%rbp), %rax
	pushq	%rax
	leaq	-2000(%rbp), %rax
	pushq	%rax
	leaq	-2008(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjS6_S8_PmPKmiiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S6_S6_S9_S9_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5058
	testl	%eax, %eax
	jne	.L4938
	testl	%ebx, %ebx
	jne	.L5058
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L4938
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2640(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L4937
.L5058:
	movl	%ebx, %eax
.L4938:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5529:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L4936
.L5026:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5037:
	movl	%eax, -2600(%rbp)
	jmp	.L4702
.L5048:
	movl	%eax, -2600(%rbp)
.L4702:
	call	cudaGetLastError@PLT
.LEHE9:
	cmpl	$0, -2600(%rbp)
	jne	.L4950
	testl	%eax, %eax
	jne	.L4691
	cmpl	$0, -2600(%rbp)
	je	.L4946
.L4950:
	movl	-2600(%rbp), %eax
.L4691:
	movl	%eax, -2600(%rbp)
.L4946:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L4949
	jmp	.L5514
.L5059:
	endbr64
	movq	%rax, %rbx
.L4947:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L5514
	movq	%rbx, %rdi
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L5514:
	call	__stack_chk_fail@PLT
.L4949:
	movl	-2600(%rbp), %eax
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12458:
	.section	.gcc_except_table
.LLSDA12458:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12458-.LLSDACSB12458
.LLSDACSB12458:
	.uleb128 .LEHB9-.LFB12458
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L5059-.LFB12458
	.uleb128 0
	.uleb128 .LEHB10-.LFB12458
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE12458:
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.size	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, .-_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii:
.LFB13541:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS4_6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5533
	testl	%eax, %eax
	jne	.L5530
.L5533:
	movl	%ebx, %eax
.L5530:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13541:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii:
.LFB13542:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movslq	%ecx, %rcx
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPKmPmPKjPjS5_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS7_6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5541
	testl	%eax, %eax
	jne	.L5538
.L5541:
	movl	%ebx, %eax
.L5538:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13542:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.weak	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.type	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, @function
_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st:
.LFB12466:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12466
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	.cfi_offset 15, -24
	movq	%rdx, %r15
	pushq	%r14
	.cfi_offset 14, -32
	movq	%rcx, %r14
	pushq	%r13
	pushq	%r12
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	movq	%rsi, %r12
	pushq	%rbx
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$2648, %rsp
	movq	24(%rbp), %rax
	movl	%r8d, -2616(%rbp)
	movl	%r9d, -2620(%rbp)
	movq	%rax, -2608(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movw	$0, -2582(%rbp)
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %al
	testb	%al, %al
	jne	.L5548
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L5548
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	leaq	.LC105(%rip), %rsi
	call	_ZN5nvtx32v120registered_string_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEC1EPKc
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rdi
	call	__cxa_guard_release@PLT
.L5548:
	movb	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %al
	testb	%al, %al
	jne	.L5551
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L5551
	movq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name(%rip), %rax
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	leaq	-304(%rbp), %rsi
	movl	$3, -304(%rbp)
	movq	%rax, -296(%rbp)
	call	_ZN5nvtx32v116event_attributesC1IJEEERKNS0_7messageEDpRKT_
	leaq	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	call	__cxa_guard_release@PLT
.L5551:
	testq	%rbx, %rbx
	je	.L5553
	leaq	-2582(%rbp), %rdi
	leaq	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rsi
	call	_ZN4cuda3std3__48optionalIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEEE7emplaceIJRKNS4_16event_attributesEELi0EEERSA_DpOT_.isra.0
.L5553:
	xorl	%eax, %eax
	leaq	-2580(%rbp), %rdi
	movl	%eax, -2580(%rbp)
.LEHB11:
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L5813
	testl	%eax, %eax
	jne	.L5554
	cmpl	$0, -2600(%rbp)
	jne	.L5813
	movl	-2616(%rbp), %eax
	cmpl	$0, -2616(%rbp)
	movq	%rbx, -496(%rbp)
	movl	-2580(%rbp), %edx
	movl	-2620(%rbp), %esi
	movq	%r12, -488(%rbp)
	movl	%eax, -464(%rbp)
	movl	-2620(%rbp), %eax
	movq	%r15, -480(%rbp)
	movl	%eax, -460(%rbp)
	movl	16(%rbp), %eax
	movq	%r14, -472(%rbp)
	movl	%eax, -456(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -440(%rbp)
	movq	%rax, -448(%rbp)
	sete	%al
	cmpl	16(%rbp), %esi
	sete	%cl
	movb	$1, -436(%rbp)
	orl	%ecx, %eax
	cmpl	$899, %edx
	jg	.L5556
	cmpl	$799, %edx
	jg	.L5557
	cmpl	$699, %edx
	jg	.L5558
	cmpl	$619, %edx
	jg	.L5559
	cmpl	$609, %edx
	jg	.L5560
	cmpl	$599, %edx
	jg	.L5561
	cmpl	$499, %edx
	jg	.L5562
	testb	%al, %al
	je	.L5563
.L5603:
	testq	%rbx, %rbx
	jne	.L5565
.L5564:
	movq	$1, (%r12)
	jmp	.L5565
.L5563:
	cmpl	$512, -2616(%rbp)
	ja	.L5567
	testq	%rbx, %rbx
	je	.L5564
	leaq	-2280(%rbp), %rcx
	leaq	-1456(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$549755813889, %rsi
	movq	%rax, -1456(%rbp)
	leaq	-2264(%rbp), %r9
	leaq	-2272(%rbp), %r8
	movq	%rax, -1440(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1432(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -1448(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1424(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2272(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2264(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2288(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2280(%rbp)
	leaq	-2288(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5924
	testl	%eax, %eax
	jne	.L5565
.L5924:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5567:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5925
	testl	%eax, %eax
	jne	.L5571
.L5925:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5571
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5926
	testl	%eax, %eax
	jne	.L5571
.L5926:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5571
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$128, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -360(%rbp)
	movl	$134217729, %eax
	movl	$512, -416(%rbp)
	salq	$7, %rax
	movq	%rax, -424(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5927
	testl	%eax, %eax
	jne	.L5571
.L5927:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5571
	movl	$16777217, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5928
	testl	%eax, %eax
	jne	.L5571
.L5928:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5571
	movl	$134217729, %eax
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$512, -368(%rbp)
	movq	%rax, -376(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5819
	testl	%eax, %eax
	jne	.L5571
	testl	%r13d, %r13d
	jne	.L5819
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$896, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$137438953477, %rax
	movq	%rax, -232(%rbp)
	movl	$234881025, %eax
	movl	%edx, -332(%rbp)
	salq	$7, %rax
	movl	$128, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5930
	testl	%eax, %eax
	jne	.L5571
.L5930:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L5571
	movl	$16777217, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$1024, %edx
	salq	$10, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$4096, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5931
	testl	%eax, %eax
	jne	.L5571
.L5931:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L5571
	movl	$234881025, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	salq	$7, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$896, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5824
	testl	%eax, %eax
	jne	.L5571
	cmpl	$0, -2624(%rbp)
	jne	.L5824
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	cltq
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
	movq	%rax, -168(%rbp)
	movq	%rax, -160(%rbp)
	xorl	%eax, %eax
.L5580:
	movq	-176(%rbp,%rdx), %rsi
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	leaq	255(%rsi), %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L5580
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5581
	xorl	%r13d, %r13d
	movq	%rax, (%r12)
	movq	%r13, -2616(%rbp)
	jmp	.L5582
.L5581:
	cmpq	%rax, (%r12)
	jnb	.L5583
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%r12d, %r12d
	movq	%r12, -2616(%rbp)
	jmp	.L5582
.L5583:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L5582:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L5933
	testl	%eax, %eax
	jne	.L5571
.L5933:
	cmpl	$0, -2624(%rbp)
	jne	.L5824
	testq	%rbx, %rbx
	je	.L5565
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L5586
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L5586:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1336(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rsi, -576(%rbp)
	movq	-2600(%rbp), %rsi
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rsi), %edx
	movl	72(%rax), %eax
	movq	%rcx, -616(%rbp)
	leaq	-696(%rbp), %rcx
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	xorl	%ebx, %ebx
	movq	%rbx, -1312(%rbp)
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1336(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1332(%rbp)
	movq	%rax, -1320(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rsi), %edx
	movq	%rax, -1304(%rbp)
	leaq	-776(%rbp), %rax
	movq	(%rsi), %rsi
	movl	%edx, -1324(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5934
	testl	%eax, %eax
	jne	.L5591
.L5934:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L5591
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5591
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1368(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-1376(%rbp), %rdi
	movq	%r9, -1352(%rbp)
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1376(%rbp)
	movq	%rax, -1360(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1364(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -1344(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5935
	testl	%eax, %eax
	jne	.L5591
.L5935:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L5591
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5591
	movq	-2600(%rbp), %rax
	xorl	%esi, %esi
	leaq	-576(%rbp), %rcx
	leaq	-1416(%rbp), %rdi
	movq	%rsi, -1392(%rbp)
	leaq	-656(%rbp), %r9
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -1416(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1412(%rbp)
	movq	%rax, -1400(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1404(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1384(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5591
	testl	%eax, %eax
	jne	.L5828
	testl	%ebx, %ebx
	jne	.L5591
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5591
	movl	-2620(%rbp), %r12d
	movl	-2636(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L5591
.L5828:
	movl	%eax, %ebx
.L5591:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5829
	testl	%eax, %eax
	jne	.L5571
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L5829
.L5593:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L6379
	leaq	-432(%rbp), %rsi
	movq	%rsi, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L5594
	leaq	-304(%rbp), %rsi
	movq	%rsi, -2600(%rbp)
.L5594:
	movl	%eax, %esi
	cltq
	movq	%r12, -1212(%rbp)
	leaq	-1216(%rbp), %rdi
	xorl	$1, %esi
	movq	%r12, -1200(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	-2600(%rbp), %rsi
	movq	%rcx, -656(%rbp)
	movl	72(%rax), %eax
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rsi), %edx
	xorl	%ecx, %ecx
	movq	%rcx, -1192(%rbp)
	leaq	-696(%rbp), %rcx
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1216(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1184(%rbp)
	movq	%rsi, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rsi), %edx
	addq	$84, %rax
	movq	%rax, -2648(%rbp)
	movl	%edx, -1204(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	(%rsi), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5938
	testl	%eax, %eax
	jne	.L5599
.L5938:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L5599
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5599
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1248(%rbp)
	leaq	-696(%rbp), %rdx
	leaq	-1256(%rbp), %rdi
	movq	%r12, -1256(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1240(%rbp)
	movl	%eax, -1244(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1232(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1224(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5939
	testl	%eax, %eax
	jne	.L5599
.L5939:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L5599
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5599
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rsi
	xorl	%ebx, %ebx
	movq	%r12, -1292(%rbp)
	movq	%r12, -1280(%rbp)
	leaq	-576(%rbp), %rcx
	leaq	-1296(%rbp), %rdi
	movl	56(%rax), %eax
	movl	108(%rsi), %edx
	movq	%rbx, -1272(%rbp)
	leaq	-656(%rbp), %r9
	movq	48(%rsi), %rsi
	leaq	-616(%rbp), %r8
	movl	%eax, -1284(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1296(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1264(%rbp)
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5599
	testl	%eax, %eax
	jne	.L5833
	testl	%ebx, %ebx
	jne	.L5599
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5599
	movl	-2636(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L5599
.L5833:
	movl	%eax, %ebx
.L5599:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5834
	testl	%eax, %eax
	jne	.L5600
	testl	%ebx, %ebx
	jne	.L5834
	movl	-2620(%rbp), %eax
	jmp	.L5593
.L6379:
	xorl	%r11d, %r11d
	movl	%r11d, -2600(%rbp)
	jmp	.L5600
.L5834:
	movl	%ebx, -2600(%rbp)
.L5600:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L5565
.L5819:
	movl	%r13d, %eax
	jmp	.L5571
.L5824:
	movl	-2624(%rbp), %eax
	jmp	.L5571
.L5829:
	movl	%ebx, %eax
.L5571:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L5562:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5604
	testq	%rbx, %rbx
	je	.L5564
	movabsq	$4294967297, %rax
	xorl	%r9d, %r9d
	movabsq	$1099511627777, %rsi
	movq	%rax, -936(%rbp)
	leaq	-2240(%rbp), %rcx
	leaq	-936(%rbp), %rdi
	movq	%rax, -920(%rbp)
	movq	-2608(%rbp), %rax
	leaq	-2248(%rbp), %r8
	movq	%rsi, -928(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -904(%rbp)
	movslq	16(%r14), %rax
	movq	%r9, -912(%rbp)
	leaq	-2256(%rbp), %r9
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2248(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2256(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2232(%rbp)
	leaq	-456(%rbp), %rax
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2240(%rbp)
	leaq	-2232(%rbp), %rdx
	pushq	%r10
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5942
	testl	%eax, %eax
	jne	.L5565
.L5942:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5604:
	leaq	-896(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5943
	testl	%eax, %eax
	jne	.L5608
.L5943:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5608
	movl	-896(%rbp), %edx
	leaq	-856(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5944
	testl	%eax, %eax
	jne	.L5608
.L5944:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5608
	leaq	-432(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev
	leaq	-304(%rbp), %rdi
	call	_ZN3cub17CUB_200700_890_NS17DispatchRadixSortILb0EmjjNS0_21DeviceRadixSortPolicyImjjEENS0_6detail21identity_decomposer_tEE10PassConfigIPFvPKmPjjiiNS0_13GridEvenShareIjEES5_EPFvSA_iEPFvS9_PmPKjSA_SA_jiiSC_S5_EEC1Ev
	movl	-856(%rbp), %eax
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	xorl	%ecx, %ecx
	leaq	-412(%rbp), %rdi
	movl	$160, %edx
	movq	%rsi, -432(%rbp)
	movl	%eax, -2624(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -408(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -384(%rbp)
	movabsq	$549755813895, %rax
	movq	%rax, -360(%rbp)
	movl	$2550136837, %eax
	movl	$3040, -416(%rbp)
	salq	$5, %rax
	movq	%rax, -424(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5945
	testl	%eax, %eax
	jne	.L5608
.L5945:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5608
	movl	$192937985, %eax
	leaq	-388(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -392(%rbp)
	movq	%rax, -400(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5946
	testl	%eax, %eax
	jne	.L5608
.L5946:
	movl	%r13d, %eax
	testl	%r13d, %r13d
	jne	.L5608
	movl	$2550136837, %eax
	leaq	-364(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$160, %edx
	salq	$5, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$3040, -368(%rbp)
	movq	%rax, -376(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L5840
	testl	%eax, %eax
	jne	.L5608
	testl	%r13d, %r13d
	jne	.L5840
	movl	-368(%rbp), %eax
	movl	-416(%rbp), %ecx
	leaq	_ZN3cub17CUB_200700_890_NS28DeviceRadixSortUpsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjNS0_6detail21identity_decomposer_tEEEvPKT2_PT3_SA_iiNS0_13GridEvenShareISA_EET4_(%rip), %rsi
	leaq	-284(%rbp), %rdi
	movl	-2624(%rbp), %r13d
	imull	-364(%rbp), %r13d
	movq	%rsi, -304(%rbp)
	movl	$2048, -288(%rbp)
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -320(%rbp)
	movl	%eax, -316(%rbp)
	movl	%eax, -328(%rbp)
	divl	%ecx
	movl	%r13d, -352(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, -348(%rbp)
	cmovg	%eax, %r13d
	cltd
	idivl	%r13d
	movl	%r13d, -324(%rbp)
	movl	-856(%rbp), %r13d
	imull	%ecx, %eax
	movl	%edx, -344(%rbp)
	imull	%ecx, %edx
	movl	%eax, -336(%rbp)
	addl	%eax, %ecx
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rax
	movq	%rax, -280(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rax
	movq	%rax, -256(%rbp)
	movabsq	$274877906950, %rax
	movq	%rax, -232(%rbp)
	movl	$134217729, %eax
	movl	%edx, -332(%rbp)
	salq	$8, %rax
	movl	$256, %edx
	movl	%ecx, -340(%rbp)
	xorl	%ecx, %ecx
	movq	%rax, -296(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPjjiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5948
	testl	%eax, %eax
	jne	.L5608
.L5948:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L5608
	movl	$192937985, %eax
	leaq	-260(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$512, %edx
	salq	$9, %rax
	leaq	_ZN3cub17CUB_200700_890_NS23RadixSortScanBinsKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_i(%rip), %rsi
	movl	$11776, -264(%rbp)
	movq	%rax, -272(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPjiEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5949
	testl	%eax, %eax
	jne	.L5608
.L5949:
	movl	-2624(%rbp), %eax
	testl	%eax, %eax
	jne	.L5608
	movl	$134217729, %eax
	leaq	-236(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	salq	$8, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortDownsweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb1ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT2_PS7_PKT3_PSB_PT4_SF_iiNS0_13GridEvenShareISF_EET5_(%rip), %rsi
	movl	$2048, -240(%rbp)
	movq	%rax, -248(%rbp)
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPKmPmPKjPjS7_jiiNS0_13GridEvenShareIjEENS0_6detail21identity_decomposer_tEEEE9cudaErrorRiT_ii
	movl	%eax, -2624(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2624(%rbp)
	jne	.L5845
	testl	%eax, %eax
	jne	.L5608
	cmpl	$0, -2624(%rbp)
	jne	.L5845
	movl	-240(%rbp), %eax
	movl	-288(%rbp), %ecx
	imull	-236(%rbp), %r13d
	cmpl	%eax, %ecx
	cmovl	%eax, %ecx
	movl	-2616(%rbp), %eax
	xorl	%edx, %edx
	leal	0(%r13,%r13,4), %r13d
	movl	%eax, -192(%rbp)
	movl	%eax, -188(%rbp)
	movl	%eax, -200(%rbp)
	divl	%ecx
	movl	%r13d, -224(%rbp)
	cmpl	$1, %edx
	sbbl	$-1, %eax
	cmpl	%eax, %r13d
	movl	%eax, %esi
	movl	%eax, -220(%rbp)
	cmovle	%r13d, %esi
	cltd
	idivl	%esi
	movl	%esi, -196(%rbp)
	imull	%ecx, %eax
	movl	%edx, -216(%rbp)
	imull	%ecx, %edx
	movl	%eax, -208(%rbp)
	addl	%eax, %ecx
	movl	-352(%rbp), %eax
	movl	%ecx, -212(%rbp)
	cmpl	%eax, %r13d
	movl	%edx, -204(%rbp)
	cmovge	%r13d, %eax
	imull	-356(%rbp), %eax
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	addl	-392(%rbp), %eax
	movq	%r8, -168(%rbp)
	cltq
	movq	%r8, -160(%rbp)
	salq	$2, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
.L5617:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, -96(%rbp,%rdx)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$24, %rdx
	jne	.L5617
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5618
	xorl	%edi, %edi
	movq	%rax, (%r12)
	movq	%rdi, -2616(%rbp)
	jmp	.L5619
.L5618:
	cmpq	%rax, (%r12)
	jnb	.L5620
	call	cudaGetLastError@PLT
	movl	$1, -2624(%rbp)
	xorl	%esi, %esi
	movq	%rsi, -2616(%rbp)
	jmp	.L5619
.L5620:
	leaq	255(%rbx), %rax
	xorb	%al, %al
	addq	-96(%rbp), %rax
	movq	%rax, -2616(%rbp)
.L5619:
	call	cudaGetLastError@PLT
	testb	$1, -2624(%rbp)
	jne	.L5951
	testl	%eax, %eax
	jne	.L5608
.L5951:
	cmpl	$0, -2624(%rbp)
	jne	.L5845
	testq	%rbx, %rbx
	je	.L5565
	movl	-2620(%rbp), %eax
	movl	16(%rbp), %r12d
	movl	-360(%rbp), %ecx
	movl	-2620(%rbp), %edi
	subl	%eax, %r12d
	movl	%r12d, %eax
	movl	%edi, -816(%rbp)
	leaq	-432(%rbp), %rdi
	cltd
	movq	%rdi, -2600(%rbp)
	idivl	%ecx
	cmpl	$1, %edx
	movslq	16(%r15), %rdx
	sbbl	$-1, %eax
	imull	%eax, %ecx
	movl	%eax, -2624(%rbp)
	movl	-2620(%rbp), %eax
	subl	%r12d, %ecx
	imull	-232(%rbp), %ecx
	addl	%eax, %ecx
	cmpl	16(%rbp), %ecx
	cmovg	16(%rbp), %ecx
	movq	%rdx, %rax
	xorl	$1, %eax
	movq	(%r15,%rdx,8), %rdx
	movl	%ecx, -2632(%rbp)
	movslq	16(%r14), %rcx
	cltq
	movq	(%r15,%rax,8), %rsi
	movl	-2632(%rbp), %ebx
	movq	%rdx, -128(%rbp)
	movq	%rcx, %rax
	movq	(%r14,%rcx,8), %rcx
	xorl	$1, %eax
	movq	%rsi, -136(%rbp)
	cltq
	movq	%rcx, -88(%rbp)
	movq	(%r14,%rax,8), %rax
	movq	%rax, -96(%rbp)
	cmpl	%ebx, -2620(%rbp)
	jge	.L5623
	leaq	-304(%rbp), %rdi
	movq	%rdi, -2600(%rbp)
.L5623:
	movq	%rax, -656(%rbp)
	movq	-2616(%rbp), %rax
	leaq	-1056(%rbp), %rdi
	leaq	-816(%rbp), %r9
	movq	%rcx, -616(%rbp)
	movq	-2600(%rbp), %rcx
	leaq	-464(%rbp), %r8
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	movq	%rdx, -536(%rbp)
	movl	76(%rcx), %edx
	movl	72(%rax), %eax
	movq	%rsi, -576(%rbp)
	movq	%rcx, %rsi
	cmpl	%eax, %r12d
	cmovle	%r12d, %eax
	leaq	84(%rsi), %r12
	movq	(%rsi), %rsi
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1056(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1052(%rbp)
	movq	%rax, -1040(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	xorl	%ecx, %ecx
	movq	%rax, -1024(%rbp)
	leaq	-776(%rbp), %rax
	movl	%edx, -1044(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rcx, -1032(%rbp)
	leaq	-696(%rbp), %rcx
	pushq	%r12
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5952
	testl	%eax, %eax
	jne	.L5628
.L5952:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L5628
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5628
	movq	-2600(%rbp), %rax
	leaq	-736(%rbp), %rcx
	movq	$1, -1008(%rbp)
	leaq	-1016(%rbp), %rdi
	movl	32(%rax), %edx
	movabsq	$4294967297, %rax
	movq	%rax, -1016(%rbp)
	movq	%rax, -1000(%rbp)
	xorl	%eax, %eax
	movq	%rax, -992(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1004(%rbp)
	leaq	-696(%rbp), %rdx
	movq	%rax, -984(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%r13d, %r13d
	jne	.L5953
	testl	%eax, %eax
	jne	.L5628
.L5953:
	movl	%r13d, %ebx
	testl	%r13d, %r13d
	jne	.L5628
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5628
	movq	-2600(%rbp), %rax
	xorl	%r13d, %r13d
	leaq	-576(%rbp), %rcx
	leaq	-976(%rbp), %rdi
	movq	%r13, -952(%rbp)
	leaq	-656(%rbp), %r9
	leaq	-616(%rbp), %r8
	movl	56(%rax), %edx
	movl	108(%rax), %eax
	movl	%eax, -976(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -972(%rbp)
	movq	%rax, -960(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -964(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -944(%rbp)
	movq	-2600(%rbp), %rax
	movq	48(%rax), %rsi
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%r12
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5628
	testl	%eax, %eax
	jne	.L5849
	testl	%ebx, %ebx
	jne	.L5628
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5628
	movl	-2620(%rbp), %r12d
	movl	-2636(%rbp), %eax
	addl	%eax, %r12d
	movl	%r12d, -816(%rbp)
	jmp	.L5628
.L5849:
	movl	%eax, %ebx
.L5628:
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5850
	testl	%eax, %eax
	jne	.L5608
	movabsq	$4294967297, %r12
	testl	%ebx, %ebx
	jne	.L5850
.L5630:
	movl	-816(%rbp), %r13d
	cmpl	%r13d, 16(%rbp)
	jle	.L6380
	leaq	-432(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
	cmpl	%r13d, -2632(%rbp)
	jle	.L5631
	leaq	-304(%rbp), %rcx
	movq	%rcx, -2600(%rbp)
.L5631:
	movl	%eax, %esi
	cltq
	movq	%r12, -1172(%rbp)
	leaq	-1176(%rbp), %rdi
	xorl	$1, %esi
	movq	%r12, -1160(%rbp)
	leaq	-816(%rbp), %r9
	leaq	-464(%rbp), %r8
	movl	%esi, -2620(%rbp)
	movslq	%esi, %rdx
	movq	-96(%rbp,%rax,8), %rsi
	movq	-136(%rbp,%rax,8), %rax
	movq	-96(%rbp,%rdx,8), %rcx
	movq	-136(%rbp,%rdx,8), %rdx
	movq	%rsi, -616(%rbp)
	movq	%rax, -536(%rbp)
	movq	-2616(%rbp), %rax
	movq	%rdx, -576(%rbp)
	movl	16(%rbp), %edx
	movq	%rax, -696(%rbp)
	movq	-2600(%rbp), %rax
	subl	%r13d, %edx
	movq	%rcx, -656(%rbp)
	movq	-2600(%rbp), %rcx
	movl	72(%rax), %eax
	movq	%rcx, %rsi
	cmpl	%eax, %edx
	cmovle	%edx, %eax
	movl	76(%rcx), %edx
	xorl	%ebx, %ebx
	movq	%rbx, -1152(%rbp)
	movl	%eax, -2636(%rbp)
	movl	%eax, -776(%rbp)
	movq	-2600(%rbp), %rax
	movl	108(%rax), %eax
	imull	%eax, %edx
	movl	%eax, -1176(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1144(%rbp)
	movq	%rcx, %rax
	movl	%edx, -736(%rbp)
	movl	8(%rcx), %edx
	addq	$84, %rax
	leaq	-696(%rbp), %rcx
	movq	%rax, -2648(%rbp)
	movl	%edx, -1164(%rbp)
	leaq	-536(%rbp), %rdx
	pushq	%rax
	leaq	-776(%rbp), %rax
	pushq	%rax
	movq	(%rsi), %rsi
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPjjiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENS9_6detail21identity_decomposer_tEEJS6_S7_jiiSB_SD_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r10
	popq	%r11
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5956
	testl	%eax, %eax
	jne	.L5636
.L5956:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L5636
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5636
	movq	-2600(%rbp), %rax
	xorl	%r9d, %r9d
	movq	$1, -1128(%rbp)
	leaq	-736(%rbp), %rcx
	leaq	-696(%rbp), %rdx
	leaq	-1136(%rbp), %rdi
	movq	%r12, -1136(%rbp)
	movl	32(%rax), %eax
	movq	%r12, -1120(%rbp)
	movq	%r9, -1112(%rbp)
	movl	%eax, -1124(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1104(%rbp)
	movq	-2600(%rbp), %rax
	movq	24(%rax), %rsi
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjiEJS5_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2656(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2656(%rbp)
	movl	%eax, %ebx
	jne	.L5957
	testl	%eax, %eax
	jne	.L5636
.L5957:
	movl	-2656(%rbp), %ebx
	testl	%ebx, %ebx
	jne	.L5636
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5636
	movq	-2600(%rbp), %rax
	movq	-2600(%rbp), %rdi
	movq	%r12, -1092(%rbp)
	leaq	-576(%rbp), %rcx
	movq	%r12, -1080(%rbp)
	leaq	-656(%rbp), %r9
	movl	56(%rax), %eax
	movl	108(%rdi), %edx
	movq	48(%rdi), %rsi
	leaq	-1096(%rbp), %rdi
	movl	%eax, -1084(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1072(%rbp)
	movq	-2608(%rbp), %rax
	movl	%edx, -1096(%rbp)
	leaq	-536(%rbp), %rdx
	movq	%rax, -1064(%rbp)
	leaq	-776(%rbp), %rax
	pushq	%r8
	leaq	-616(%rbp), %r8
	pushq	-2648(%rbp)
	pushq	%rax
	leaq	-816(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	leaq	-696(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x30
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjSA_jiiN3cub17CUB_200700_890_NS13GridEvenShareIjEENSC_6detail21identity_decomposer_tEEJS6_S7_S9_SA_SA_jiiSE_SG_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$48, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5636
	testl	%eax, %eax
	jne	.L5854
	testl	%ebx, %ebx
	jne	.L5636
	call	cudaGetLastError@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L5636
	movl	-2636(%rbp), %eax
	addl	%r13d, %eax
	movl	%eax, -816(%rbp)
	jmp	.L5636
.L5854:
	movl	%eax, %ebx
.L5636:
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5855
	testl	%eax, %eax
	jne	.L5637
	testl	%ebx, %ebx
	jne	.L5855
	movl	-2620(%rbp), %eax
	jmp	.L5630
.L6380:
	xorl	%eax, %eax
	movl	%eax, -2600(%rbp)
	jmp	.L5637
.L5855:
	movl	%ebx, -2600(%rbp)
.L5637:
	movl	-2624(%rbp), %eax
	addl	16(%r15), %eax
	andl	$1, %eax
	movl	%eax, 16(%r15)
	movl	-2624(%rbp), %eax
	addl	16(%r14), %eax
	andl	$1, %eax
	movl	%eax, 16(%r14)
	jmp	.L5565
.L5840:
	movl	%r13d, %eax
	jmp	.L5608
.L5845:
	movl	-2624(%rbp), %eax
	jmp	.L5608
.L5850:
	movl	%ebx, %eax
.L5608:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L5561:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5640
	testq	%rbx, %rbx
	je	.L5564
	leaq	-1616(%rbp), %rdi
	leaq	-2360(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rcx
	movq	%rax, -1616(%rbp)
	leaq	-2368(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rcx, -1608(%rbp)
	leaq	-2376(%rbp), %rcx
	movq	%rax, -1584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2368(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2360(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2384(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2376(%rbp)
	leaq	-2384(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5960
	testl	%eax, %eax
	jne	.L5565
.L5960:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5640:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5644:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5644
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5645
	movq	%rax, (%r12)
	jmp	.L5565
.L5645:
	cmpq	%rax, (%r12)
	jnb	.L5647
	call	cudaGetLastError@PLT
.L5650:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6381
.L5647:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5649:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5649
	jmp	.L5650
.L6381:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5961
	testl	%eax, %eax
	jne	.L5565
.L5961:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5962
	testl	%eax, %eax
	jne	.L5565
.L5962:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5963
	testl	%eax, %eax
	jne	.L5565
.L5963:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5964
	testl	%eax, %eax
	jne	.L5565
.L5964:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5965
	testl	%eax, %eax
	jne	.L5565
.L5965:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1572(%rbp)
	movq	%r9, -1552(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2352(%rbp), %rcx
	leaq	-1576(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1576(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1568(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1560(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1544(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2352(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5966
	testl	%eax, %eax
	jne	.L5565
.L5966:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1536(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1512(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1532(%rbp)
	movq	%rax, -1504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5967
	testl	%eax, %eax
	jne	.L5565
.L5967:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L5659:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L5660:
	cmpl	%r12d, -2636(%rbp)
	je	.L6382
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %esi
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%esi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5866
	testl	%eax, %eax
	jne	.L5661
	testl	%ebx, %ebx
	jne	.L5866
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1492(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1496(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1488(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1480(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1472(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1464(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2344(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2336(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2328(%rbp)
	movq	%rax, -2320(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2312(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5663
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ecx
	addl	%ecx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5663:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2304(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2312(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2304(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1496(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2296(%rbp), %rcx
	movq	%rax, -2296(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2344(%rbp), %rax
	pushq	%rax
	leaq	-2336(%rbp), %rax
	pushq	%rax
	leaq	-2328(%rbp), %rax
	pushq	%rax
	leaq	-2320(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5866
	testl	%eax, %eax
	jne	.L5661
	testl	%ebx, %ebx
	jne	.L5866
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2640(%rbp), %ecx
	addl	%edi, -2684(%rbp)
	addl	%ecx, -2656(%rbp)
	testl	%eax, %eax
	jne	.L5661
	incl	%r12d
	jmp	.L5660
.L5866:
	movl	%ebx, %eax
.L5661:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6382:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L5659
.L5560:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5668
	testq	%rbx, %rbx
	je	.L5564
	leaq	-2144(%rbp), %rcx
	leaq	-776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rsi
	movq	%rax, -776(%rbp)
	leaq	-2160(%rbp), %r9
	leaq	-2152(%rbp), %r8
	movq	%rax, -760(%rbp)
	xorl	%eax, %eax
	movq	%rax, -752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -768(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2152(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2160(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2136(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2144(%rbp)
	leaq	-2136(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5970
	testl	%eax, %eax
	jne	.L5565
.L5970:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5668:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5672:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5672
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5673
	movq	%rax, (%r12)
	jmp	.L5565
.L5673:
	cmpq	%rax, (%r12)
	jnb	.L5675
	call	cudaGetLastError@PLT
.L5678:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6383
.L5675:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5677:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5677
	jmp	.L5678
.L6383:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5971
	testl	%eax, %eax
	jne	.L5565
.L5971:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5972
	testl	%eax, %eax
	jne	.L5565
.L5972:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5973
	testl	%eax, %eax
	jne	.L5565
.L5973:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5974
	testl	%eax, %eax
	jne	.L5565
.L5974:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5975
	testl	%eax, %eax
	jne	.L5565
.L5975:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -812(%rbp)
	movq	%r9, -792(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2168(%rbp), %rcx
	leaq	-816(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -816(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -800(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -784(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2168(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5976
	testl	%eax, %eax
	jne	.L5565
.L5976:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -852(%rbp)
	movq	%rax, -824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5977
	testl	%eax, %eax
	jne	.L5565
.L5977:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L5687:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %edi
	movl	$8, %edx
	subl	%edi, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L5688:
	cmpl	%r12d, -2636(%rbp)
	je	.L6384
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %esi
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%esi
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5877
	testl	%eax, %eax
	jne	.L5689
	testl	%ebx, %ebx
	jne	.L5877
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -892(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -896(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -880(%rbp)
	xorl	%eax, %eax
	movq	%rax, -872(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -864(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2176(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2184(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2192(%rbp)
	movq	%rax, -2200(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2208(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5691
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ecx
	addl	%ecx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5691:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2216(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2208(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2216(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-896(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2224(%rbp), %rcx
	movq	%rax, -2224(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2176(%rbp), %rax
	pushq	%rax
	leaq	-2184(%rbp), %rax
	pushq	%rax
	leaq	-2192(%rbp), %rax
	pushq	%rax
	leaq	-2200(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5877
	testl	%eax, %eax
	jne	.L5689
	testl	%ebx, %ebx
	jne	.L5877
	call	cudaGetLastError@PLT
	movl	-2624(%rbp), %edi
	movl	-2640(%rbp), %ecx
	addl	%edi, -2684(%rbp)
	addl	%ecx, -2656(%rbp)
	testl	%eax, %eax
	jne	.L5689
	incl	%r12d
	jmp	.L5688
.L5877:
	movl	%ebx, %eax
.L5689:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6384:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L5687
.L5559:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5696
	testq	%rbx, %rbx
	je	.L5564
	leaq	-2472(%rbp), %rcx
	leaq	-1776(%rbp), %rdi
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rsi
	movq	%rax, -1776(%rbp)
	leaq	-2456(%rbp), %r9
	leaq	-2464(%rbp), %r8
	movq	%rax, -1760(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1752(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rsi, -1768(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1744(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2464(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2456(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2480(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2472(%rbp)
	leaq	-2480(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5980
	testl	%eax, %eax
	jne	.L5565
.L5980:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5696:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5700:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5700
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5701
	movq	%rax, (%r12)
	jmp	.L5565
.L5701:
	cmpq	%rax, (%r12)
	jnb	.L5703
	call	cudaGetLastError@PLT
.L5706:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6385
.L5703:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5705:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5705
	jmp	.L5706
.L6385:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5981
	testl	%eax, %eax
	jne	.L5565
.L5981:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5982
	testl	%eax, %eax
	jne	.L5565
.L5982:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5983
	testl	%eax, %eax
	jne	.L5565
.L5983:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5984
	testl	%eax, %eax
	jne	.L5565
.L5984:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5985
	testl	%eax, %eax
	jne	.L5565
.L5985:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1732(%rbp)
	movq	%r9, -1712(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2448(%rbp), %rcx
	leaq	-1736(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1736(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1720(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1704(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2448(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5986
	testl	%eax, %eax
	jne	.L5565
.L5986:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1692(%rbp)
	movq	%rax, -1664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5987
	testl	%eax, %eax
	jne	.L5565
.L5987:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2640(%rbp)
.L5715:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2684(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L5716:
	cmpl	%r12d, -2636(%rbp)
	je	.L6386
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5888
	testl	%eax, %eax
	jne	.L5717
	testl	%ebx, %ebx
	jne	.L5888
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1652(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1656(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1640(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1632(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1624(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2440(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2432(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2424(%rbp)
	movq	%rax, -2416(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2408(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5719
	movl	-2640(%rbp), %eax
	movl	-2656(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5719:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2400(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2408(%rbp), %r9
	movl	-2684(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2400(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1656(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2392(%rbp), %rcx
	movq	%rax, -2392(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2440(%rbp), %rax
	pushq	%rax
	leaq	-2432(%rbp), %rax
	pushq	%rax
	leaq	-2424(%rbp), %rax
	pushq	%rax
	leaq	-2416(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5888
	testl	%eax, %eax
	jne	.L5717
	testl	%ebx, %ebx
	jne	.L5888
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L5717
	movl	-2624(%rbp), %ebx
	movl	-2640(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2684(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L5716
.L5888:
	movl	%ebx, %eax
.L5717:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6386:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L5715
.L5558:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5724
	testq	%rbx, %rbx
	je	.L5564
	leaq	-2048(%rbp), %rcx
	leaq	-2064(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -616(%rbp)
	leaq	-2056(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -600(%rbp)
	xorl	%eax, %eax
	movq	%rax, -592(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -608(%rbp)
	leaq	-616(%rbp), %rdi
	movq	%rax, -584(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2056(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2064(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2040(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2048(%rbp)
	leaq	-2040(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	testl	%eax, %eax
	jne	.L5889
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5724:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$2816, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2648(%rbp)
	movl	-2648(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5728:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5728
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5729
	movq	%rax, (%r12)
	jmp	.L5565
.L5729:
	cmpq	%rax, (%r12)
	jnb	.L5731
	call	cudaGetLastError@PLT
.L5734:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2672(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2680(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6387
.L5731:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5733:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5733
	jmp	.L5734
.L6387:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5991
	testl	%eax, %eax
	jne	.L5565
.L5991:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5992
	testl	%eax, %eax
	jne	.L5565
.L5992:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%r11d, %r11d
	leaq	-856(%rbp), %rdi
	movl	$-1, -856(%rbp)
	movl	%r11d, -816(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5993
	testl	%eax, %eax
	jne	.L5565
.L5993:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-856(%rbp), %edx
	leaq	-816(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5994
	testl	%eax, %eax
	jne	.L5565
.L5994:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-776(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$256, %edx
	movl	$1, -776(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5995
	testl	%eax, %eax
	jne	.L5565
.L5995:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-776(%rbp), %eax
	imull	-816(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -652(%rbp)
	movq	%r9, -632(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2072(%rbp), %rcx
	leaq	-656(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -656(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$1099511627777, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -648(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -640(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -624(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2072(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5996
	testl	%eax, %eax
	jne	.L5565
.L5996:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-696(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -672(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -696(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -688(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -680(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -692(%rbp)
	movq	%rax, -664(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5997
	testl	%eax, %eax
	jne	.L5565
.L5997:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2656(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L5743:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2664(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2656(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2636(%rbp)
.L5744:
	cmpl	%r12d, -2648(%rbp)
	je	.L6388
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$2816, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2672(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2640(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5899
	testl	%eax, %eax
	jne	.L5745
	testl	%ebx, %ebx
	jne	.L5899
	movl	-2640(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -732(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -736(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -728(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -720(%rbp)
	xorl	%eax, %eax
	movq	%rax, -712(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -704(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2080(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2088(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2096(%rbp)
	movq	%rax, -2104(%rbp)
	movl	-2636(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2112(%rbp)
	movl	-2648(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5747
	movl	-2636(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5747:
	movq	-2656(%rbp), %rdi
	movq	%rax, -2120(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2112(%rbp), %r9
	movl	-2664(%rbp), %eax
	movq	-2680(%rbp), %rcx
	leaq	-2120(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-736(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2128(%rbp), %rcx
	movq	%rax, -2128(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2080(%rbp), %rax
	pushq	%rax
	leaq	-2088(%rbp), %rax
	pushq	%rax
	leaq	-2096(%rbp), %rax
	pushq	%rax
	leaq	-2104(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5899
	testl	%eax, %eax
	jne	.L5745
	testl	%ebx, %ebx
	jne	.L5899
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L5745
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2664(%rbp)
	addl	%esi, -2636(%rbp)
	jmp	.L5744
.L5899:
	movl	%ebx, %eax
.L5745:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6388:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2656(%rbp)
	jmp	.L5743
.L5557:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5752
	testq	%rbx, %rbx
	je	.L5564
	leaq	-2568(%rbp), %rcx
	leaq	-2552(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -1936(%rbp)
	leaq	-2560(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -1920(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1912(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -1928(%rbp)
	leaq	-1936(%rbp), %rdi
	movq	%rax, -1904(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2560(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -2552(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -2576(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -2568(%rbp)
	leaq	-2576(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	testl	%eax, %eax
	jne	.L5900
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5752:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268435200, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$3840, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268435200, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5756:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5756
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5757
	movq	%rax, (%r12)
	jmp	.L5565
.L5757:
	cmpq	%rax, (%r12)
	jnb	.L5759
	call	cudaGetLastError@PLT
.L5762:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -432(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6389
.L5759:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5761:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5761
	jmp	.L5762
.L6389:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6001
	testl	%eax, %eax
	jne	.L5565
.L6001:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6002
	testl	%eax, %eax
	jne	.L5565
.L6002:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%r11d, %r11d
	leaq	-736(%rbp), %rdi
	movl	$-1, -736(%rbp)
	movl	%r11d, -696(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6003
	testl	%eax, %eax
	jne	.L5565
.L6003:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-736(%rbp), %edx
	leaq	-696(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6004
	testl	%eax, %eax
	jne	.L5565
.L6004:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-656(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -656(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6005
	testl	%eax, %eax
	jne	.L5565
.L6005:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-656(%rbp), %eax
	imull	-696(%rbp), %eax
	xorl	%r9d, %r9d
	movl	$1, -1892(%rbp)
	movq	%r9, -1872(%rbp)
	leaq	-432(%rbp), %r12
	leaq	-2544(%rbp), %rcx
	leaq	-1896(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -1896(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -1888(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1880(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1864(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -2544(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r10
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rdi
	popq	%r8
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6006
	testl	%eax, %eax
	jne	.L5565
.L6006:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	leaq	-1856(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rsi, -1832(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movl	%eax, -1856(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -1848(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1840(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -1852(%rbp)
	movq	%rax, -1824(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6007
	testl	%eax, %eax
	jne	.L5565
.L6007:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%ecx, %ecx
	movq	%rcx, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L5771:
	movl	-2620(%rbp), %eax
	movl	%eax, -616(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	movl	%edx, -2640(%rbp)
	movl	%eax, -576(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L5772:
	cmpl	%r12d, -2636(%rbp)
	je	.L6390
	movl	-2616(%rbp), %eax
	movl	$268435200, %edx
	imull	$268435200, %r12d, %r13d
	movl	$3840, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -536(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5910
	testl	%eax, %eax
	jne	.L5773
	testl	%ebx, %ebx
	jne	.L5910
	movl	-2680(%rbp), %eax
	movslq	16(%r14), %rdx
	movl	$1, -1812(%rbp)
	movq	-2632(%rbp), %rdi
	movl	%eax, -1816(%rbp)
	movabsq	$1649267441665, %rax
	movq	%rax, -1808(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -1800(%rbp)
	xorl	%eax, %eax
	movq	%rax, -1792(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -1784(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -2536(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -2528(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2520(%rbp)
	movq	%rax, -2512(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2504(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5775
	movl	-2656(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5775:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2496(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2504(%rbp), %r9
	movl	-2640(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2496(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-1816(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2488(%rbp), %rcx
	movq	%rax, -2488(%rbp)
	pushq	%rax
	leaq	-576(%rbp), %rax
	pushq	%rax
	leaq	-616(%rbp), %rax
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-2536(%rbp), %rax
	pushq	%rax
	leaq	-2528(%rbp), %rax
	pushq	%rax
	leaq	-2520(%rbp), %rax
	pushq	%rax
	leaq	-2512(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5910
	testl	%eax, %eax
	jne	.L5773
	testl	%ebx, %ebx
	jne	.L5910
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L5773
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2640(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L5772
.L5910:
	movl	%ebx, %eax
.L5773:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6390:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L5771
.L5556:
	testb	%al, %al
	jne	.L5603
	cmpl	$2304, -2616(%rbp)
	ja	.L5780
	testq	%rbx, %rbx
	je	.L5564
	leaq	-1952(%rbp), %rcx
	leaq	-1968(%rbp), %r9
	movabsq	$4294967297, %rax
	movabsq	$1099511627777, %rdi
	movq	%rax, -304(%rbp)
	leaq	-1960(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS31DeviceRadixSortSingleTileKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjNS0_6detail21identity_decomposer_tEEEvPKT1_PS7_PKT2_PSB_T3_iiT4_(%rip), %rsi
	movq	%rax, -288(%rbp)
	xorl	%eax, %eax
	movq	%rax, -280(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rdi, -296(%rbp)
	leaq	-304(%rbp), %rdi
	movq	%rax, -272(%rbp)
	movslq	16(%r14), %rax
	movl	%eax, %edx
	movq	(%r14,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1960(%rbp)
	movslq	16(%r15), %rax
	movq	(%r14,%rdx,8), %rdx
	movq	%rdx, -1968(%rbp)
	movl	%eax, %edx
	movq	(%r15,%rax,8), %rax
	xorl	$1, %edx
	movslq	%edx, %rdx
	movq	%rax, -1944(%rbp)
	movq	(%r15,%rdx,8), %rdx
	movq	%rdx, -1952(%rbp)
	leaq	-1944(%rbp), %rdx
	pushq	%rax
	leaq	-456(%rbp), %rax
	pushq	%rax
	leaq	-460(%rbp), %rax
	pushq	%rax
	leaq	-464(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x20
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPKmPmPKjPjjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS7_S7_SA_SA_jiiSE_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$32, %rsp
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, -2600(%rbp)
	call	cudaGetLastError@PLT
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	testl	%eax, %eax
	jne	.L5911
	cmpl	$0, -2600(%rbp)
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	xorl	$1, 16(%r15)
	xorl	$1, 16(%r14)
	jmp	.L5565
.L5780:
	movl	-2620(%rbp), %esi
	movl	16(%rbp), %eax
	movl	$8, %ecx
	leaq	-136(%rbp), %rdi
	subl	%esi, %eax
	xorl	%esi, %esi
	testb	$7, %al
	setne	%sil
	cltd
	idivl	%ecx
	movl	$268433280, %ecx
	xorl	%edx, %edx
	addl	%esi, %eax
	movl	%eax, -2624(%rbp)
	movl	-2616(%rbp), %eax
	movl	-2624(%rbp), %r13d
	divl	%ecx
	movl	$5760, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -2636(%rbp)
	movl	-2636(%rbp), %esi
	movl	$268433280, %eax
	cmpl	%eax, -2616(%rbp)
	cmovbe	-2616(%rbp), %eax
	imull	%esi, %r13d
	leaq	-96(%rbp), %rsi
	movl	%r13d, %edx
	sall	$8, %edx
	salq	$2, %rdx
	movq	%rdx, -176(%rbp)
	cltd
	idivl	%ecx
	movl	$10, %ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	salq	$2, %r13
	xorl	%edx, %edx
	sall	$8, %eax
	movq	%r13, -144(%rbp)
	cltq
	salq	$2, %rax
	movq	%rax, -168(%rbp)
	xorl	%eax, %eax
	movq	%rax, -160(%rbp)
	movq	%rax, -152(%rbp)
	movl	-2600(%rbp), %eax
	rep stosl
	xorl	%eax, %eax
	leaq	-136(%rbp), %rdi
.L5784:
	movq	-176(%rbp,%rdx), %rcx
	movq	%rax, (%rdx,%rsi)
	addq	$8, %rdx
	addq	$255, %rcx
	xorb	%cl, %cl
	addq	%rcx, %rax
	cmpq	$40, %rdx
	jne	.L5784
	addq	$255, %rax
	testq	%rbx, %rbx
	jne	.L5785
	movq	%rax, (%r12)
	jmp	.L5565
.L5785:
	cmpq	%rax, (%r12)
	jnb	.L5787
	call	cudaGetLastError@PLT
.L5790:
	movq	-136(%rbp), %rax
	movq	-2608(%rbp), %rcx
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rax, -2632(%rbp)
	movq	%rax, -616(%rbp)
	movq	-128(%rbp), %rax
	movq	%rax, -2664(%rbp)
	movq	%rax, -304(%rbp)
	movq	-104(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -2672(%rbp)
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	jmp	.L6391
.L5787:
	addq	$255, %rbx
	xorl	%eax, %eax
	xorb	%bl, %bl
.L5789:
	movq	(%rsi,%rax), %rdx
	addq	%rbx, %rdx
	movq	%rdx, (%rdi,%rax)
	addq	$8, %rax
	cmpq	$40, %rax
	jne	.L5789
	jmp	.L5790
.L6391:
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6011
	testl	%eax, %eax
	jne	.L5565
.L6011:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-2624(%rbp), %edx
	movq	-2608(%rbp), %rcx
	xorl	%esi, %esi
	movq	-2632(%rbp), %rdi
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6012
	testl	%eax, %eax
	jne	.L5565
.L6012:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	xorl	%ebx, %ebx
	leaq	-776(%rbp), %rdi
	movl	$-1, -776(%rbp)
	movl	%ebx, -736(%rbp)
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6013
	testl	%eax, %eax
	jne	.L5565
.L6013:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-776(%rbp), %edx
	leaq	-736(%rbp), %rdi
	movl	$16, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6014
	testl	%eax, %eax
	jne	.L5565
.L6014:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	leaq	-696(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	movl	$1, -696(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	call	_Z45cudaOccupancyMaxActiveBlocksPerMultiprocessorIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEE9cudaErrorPiT_im
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6015
	testl	%eax, %eax
	jne	.L5565
.L6015:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	movl	-696(%rbp), %eax
	imull	-736(%rbp), %eax
	xorl	%r10d, %r10d
	movl	$1, -428(%rbp)
	movq	%r10, -408(%rbp)
	leaq	-616(%rbp), %r12
	leaq	-1976(%rbp), %rcx
	leaq	-432(%rbp), %rdi
	leaq	-460(%rbp), %r9
	movq	%r12, %rdx
	movl	%eax, -432(%rbp)
	leaq	-464(%rbp), %r8
	movabsq	$549755813889, %rax
	leaq	_ZN3cub17CUB_200700_890_NS30DeviceRadixSortHistogramKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjNS0_6detail21identity_decomposer_tEEEvPT2_PKT1_S7_iiT3_(%rip), %rsi
	movq	%rax, -424(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -416(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -400(%rbp)
	movslq	16(%r15), %rax
	movq	(%r15,%rax,8), %rax
	movq	%rax, -1976(%rbp)
	leaq	-456(%rbp), %rax
	pushq	%r11
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjPKmjiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_PmjiiSB_EEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r8
	popq	%r9
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6016
	testl	%eax, %eax
	jne	.L5565
.L6016:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%edi, %edi
	movq	%r12, %rdx
	leaq	_ZN3cub17CUB_200700_890_NS33DeviceRadixSortExclusiveSumKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900EjEEvPT0_(%rip), %rsi
	movq	%rdi, -512(%rbp)
	leaq	-536(%rbp), %rdi
	movl	%eax, -536(%rbp)
	movabsq	$1099511627777, %rax
	movq	%rax, -528(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -520(%rbp)
	movq	-2608(%rbp), %rax
	movl	$1, -532(%rbp)
	movq	%rax, -504(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPjEJS5_EEE9cudaErrorT_DpRKT0_
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L6017
	testl	%eax, %eax
	jne	.L5565
.L6017:
	movl	%ebx, -2600(%rbp)
	testl	%ebx, %ebx
	jne	.L5565
	call	cudaGetLastError@PLT
	movl	%eax, -2600(%rbp)
	testl	%eax, %eax
	jne	.L5565
	movl	-2624(%rbp), %eax
	xorl	%esi, %esi
	movq	%rsi, -2648(%rbp)
	sall	$8, %eax
	movl	%eax, -2684(%rbp)
.L5799:
	movl	-2620(%rbp), %eax
	movl	%eax, -656(%rbp)
	cmpl	%eax, 16(%rbp)
	jle	.L5565
	movl	16(%rbp), %eax
	movl	-2620(%rbp), %ebx
	movl	$8, %edx
	subl	%ebx, %eax
	cmpl	%edx, %eax
	cmovg	%edx, %eax
	xorl	%ecx, %ecx
	xorl	%r12d, %r12d
	movl	%ecx, -2640(%rbp)
	movl	%eax, -536(%rbp)
	movl	-2648(%rbp), %eax
	sall	$8, %eax
	movl	%eax, -2656(%rbp)
.L5800:
	cmpl	%r12d, -2636(%rbp)
	je	.L6392
	movl	-2616(%rbp), %eax
	movl	$268433280, %edx
	imull	$268433280, %r12d, %r13d
	movl	$5760, %ebx
	movq	-2608(%rbp), %rcx
	movq	-2664(%rbp), %rdi
	subl	%r13d, %eax
	cmpl	%edx, %eax
	cmova	%edx, %eax
	cltd
	movl	%eax, -432(%rbp)
	idivl	%ebx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	xorl	%esi, %esi
	movl	%eax, %edx
	movl	%eax, -2680(%rbp)
	sall	$8, %edx
	movslq	%edx, %rdx
	salq	$2, %rdx
	call	cudaMemsetAsync@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5921
	testl	%eax, %eax
	jne	.L5801
	testl	%ebx, %ebx
	jne	.L5921
	movl	-2680(%rbp), %eax
	xorl	%edx, %edx
	movq	-2632(%rbp), %rdi
	movl	$1, -572(%rbp)
	movq	%rdx, -552(%rbp)
	movslq	16(%r14), %rdx
	movl	%eax, -576(%rbp)
	movabsq	$1649267441665, %rax
	movq	%rax, -568(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -560(%rbp)
	movq	-2608(%rbp), %rax
	movq	%rax, -544(%rbp)
	movq	%rdx, %rax
	movq	(%r14,%rdx,8), %rdx
	xorl	$1, %eax
	leaq	(%rdx,%r13,4), %rdx
	cltq
	movq	(%r14,%rax,8), %rax
	movq	%rdx, -1984(%rbp)
	movslq	16(%r15), %rdx
	movq	%rax, -1992(%rbp)
	movq	%rdx, %rax
	movq	(%r15,%rdx,8), %rdx
	xorl	$1, %eax
	cltq
	leaq	(%rdx,%r13,8), %rdx
	movq	(%r15,%rax,8), %rax
	movq	%rdx, -2000(%rbp)
	movq	%rax, -2008(%rbp)
	movl	-2656(%rbp), %eax
	leaq	(%rdi,%rax,4), %rax
	movq	%rax, -2016(%rbp)
	movl	-2636(%rbp), %eax
	leal	-1(%rax), %edx
	xorl	%eax, %eax
	cmpl	%edx, %r12d
	jnb	.L5803
	movl	-2656(%rbp), %eax
	movl	-2684(%rbp), %ebx
	addl	%ebx, %eax
	movl	%eax, %eax
	leaq	(%rdi,%rax,4), %rax
.L5803:
	movq	-2648(%rbp), %rdi
	movq	%rax, -2024(%rbp)
	leaq	-304(%rbp), %rdx
	leaq	-2016(%rbp), %r9
	movl	-2640(%rbp), %eax
	movq	-2672(%rbp), %rcx
	leaq	-2024(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS29DeviceRadixSortOnesweepKernelINS0_21DeviceRadixSortPolicyImjjE9Policy900ELb0EmjjiiNS0_6detail21identity_decomposer_tEEEvPT5_S8_PT3_PKS9_PT1_PKSD_PT2_PKSH_T4_iiT6_(%rip), %rsi
	addq	%rdi, %rax
	leaq	-576(%rbp), %rdi
	leaq	(%rcx,%rax,4), %rax
	leaq	-2032(%rbp), %rcx
	movq	%rax, -2032(%rbp)
	pushq	%rax
	leaq	-536(%rbp), %rax
	pushq	%rax
	leaq	-656(%rbp), %rax
	pushq	%rax
	leaq	-432(%rbp), %rax
	pushq	%rax
	leaq	-1984(%rbp), %rax
	pushq	%rax
	leaq	-1992(%rbp), %rax
	pushq	%rax
	leaq	-2000(%rbp), %rax
	pushq	%rax
	leaq	-2008(%rbp), %rax
	pushq	%rax
	.cfi_escape 0x2e,0x40
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPiS5_PjPKjPmPKmS6_S8_iiiN3cub17CUB_200700_890_NS6detail21identity_decomposer_tEEJS5_S5_S6_S6_S9_S9_S6_S6_iiiSF_EEE9cudaErrorT_DpRKT0_.isra.0
	addq	$64, %rsp
	movl	%eax, %ebx
	.cfi_escape 0x2e,0
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L5921
	testl	%eax, %eax
	jne	.L5801
	testl	%ebx, %ebx
	jne	.L5921
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L5801
	movl	-2624(%rbp), %ebx
	movl	-2684(%rbp), %esi
	incl	%r12d
	addl	%ebx, -2640(%rbp)
	addl	%esi, -2656(%rbp)
	jmp	.L5800
.L5921:
	movl	%ebx, %eax
.L5801:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L6392:
	xorl	$1, 16(%r15)
	addl	$8, -2620(%rbp)
	xorl	$1, 16(%r14)
	incq	-2648(%rbp)
	jmp	.L5799
.L5889:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L5900:
	movl	%eax, -2600(%rbp)
	jmp	.L5565
.L5911:
	movl	%eax, -2600(%rbp)
.L5565:
	call	cudaGetLastError@PLT
.LEHE11:
	cmpl	$0, -2600(%rbp)
	jne	.L5813
	testl	%eax, %eax
	jne	.L5554
	cmpl	$0, -2600(%rbp)
	je	.L5809
.L5813:
	movl	-2600(%rbp), %eax
.L5554:
	movl	%eax, -2600(%rbp)
.L5809:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L5812
	jmp	.L6377
.L5922:
	endbr64
	movq	%rax, %rbx
.L5810:
	leaq	-2582(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L6377
	movq	%rbx, %rdi
.LEHB12:
	call	_Unwind_Resume@PLT
.LEHE12:
.L6377:
	call	__stack_chk_fail@PLT
.L5812:
	movl	-2600(%rbp), %eax
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12466:
	.section	.gcc_except_table
.LLSDA12466:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12466-.LLSDACSB12466
.LLSDACSB12466:
	.uleb128 .LEHB11-.LFB12466
	.uleb128 .LEHE11-.LEHB11
	.uleb128 .L5922-.LFB12466
	.uleb128 0
	.uleb128 .LEHB12-.LFB12466
	.uleb128 .LEHE12-.LEHB12
	.uleb128 0
	.uleb128 0
.LLSDACSE12466:
	.section	.text._ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,"axG",@progbits,_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st,comdat
	.size	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st, .-_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	.text
	.globl	libcubwt_allocate_device_storage
	.type	libcubwt_allocate_device_storage, @function
libcubwt_allocate_device_storage:
.LFB11761:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$3, %ecx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movq	%rsi, 16(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsi, %rax
	cqto
	idivq	%rcx
	movl	$2, %ecx
	addq	%rax, %rax
	leaq	1025(%rax), %rbx
	andq	$-1024, %rbx
	movq	%rbx, %rax
	cqto
	idivq	%rcx
	leaq	(%rax,%rax,2), %r12
	addq	$1023, %r12
	andq	$-1024, %r12
	movq	%r12, 8(%rsp)
	testq	%rdi, %rdi
	je	.L6404
	cmpq	$2147483646, %r12
	jg	.L6404
	xorl	%esi, %esi
	movq	%rdi, %r14
	movq	%rsi, (%rdi)
	movl	$216, %edi
	call	malloc@PLT
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L6405
	xorl	%eax, %eax
	movl	$54, %ecx
	leaq	48(%rsp), %r13
	movq	%r12, %rdi
	rep stosl
	movq	%r13, %rdi
	call	cudaGetDevice@PLT
	leaq	56(%rsp), %rax
	movl	48(%rsp), %edx
	movl	$38, %esi
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
	call	cudaDeviceGetAttribute@PLT
	movl	48(%rsp), %esi
	leaq	64(%rsp), %rdi
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERii
	xorl	%ecx, %ecx
	movl	56(%rsp), %eax
	movl	%ecx, 160(%r12)
.L6395:
	sarl	%eax
	je	.L6417
	incl	160(%r12)
	jmp	.L6395
.L6417:
	movl	64(%rsp), %eax
	movl	$512, %ebp
	subl	$860, %eax
	cmpl	$30, %eax
	ja	.L6397
	movl	$1073742849, %edx
	btq	%rax, %rdx
	setc	%al
	cmpb	$1, %al
	sbbl	%ebp, %ebp
	xorb	%bpl, %bpl
	addl	$768, %ebp
.L6397:
	leaq	72(%rsp), %rdi
	xorl	%eax, %eax
	movl	$6, %ecx
	movl	%ebx, %r8d
	rep stosl
	leaq	96(%rsp), %rdi
	movl	$6, %ecx
	leaq	40(%rsp), %rsi
	rep stosl
	xorl	%eax, %eax
	movl	$2, %ecx
	xorl	%edi, %edi
	movq	%rax, 40(%rsp)
	movl	%ebx, %eax
	cltd
	movl	%ebp, 200(%r12)
	idivl	%ecx
	movl	%eax, %r9d
	leaq	72(%rsp), %rax
	movq	%rax, (%rsp)
	pushq	%rdx
	.cfi_def_cfa_offset 200
	pushq	$0
	.cfi_def_cfa_offset 208
	pushq	$0
	.cfi_def_cfa_offset 216
	pushq	$0
	.cfi_def_cfa_offset 224
	movq	32(%rsp), %rcx
	movq	%rcx, %rdx
	call	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	xorl	%ecx, %ecx
	xorl	%r9d, %r9d
	movq	%r13, %rsi
	movq	%rcx, 80(%rsp)
	addq	$32, %rsp
	.cfi_def_cfa_offset 192
	xorl	%edi, %edi
	movl	%ebx, %r8d
	pushq	$0
	.cfi_def_cfa_offset 200
	movl	%eax, %r15d
	pushq	$32
	.cfi_def_cfa_offset 208
	movq	16(%rsp), %rcx
	movq	%rcx, %rdx
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%rsi
	.cfi_def_cfa_offset 200
	popq	%rdi
	.cfi_def_cfa_offset 192
	testl	%eax, %eax
	leaq	96(%rsp), %rdx
	cmovne	%eax, %r15d
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movl	%ebx, %r8d
	movq	%rdx, %r13
	pushq	$0
	.cfi_def_cfa_offset 200
	pushq	$64
	.cfi_def_cfa_offset 208
	movq	16(%rsp), %rcx
	movq	40(%rsp), %rsi
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%r9
	.cfi_def_cfa_offset 200
	popq	%r10
	.cfi_def_cfa_offset 192
	movq	%r13, %rcx
	testl	%eax, %eax
	leaq	64(%rsp), %rsi
	movl	%ebx, %r8d
	cmovne	%eax, %r15d
	xorl	%r11d, %r11d
	xorl	%edi, %edi
	xorl	%r9d, %r9d
	movq	%r11, 64(%rsp)
	pushq	$0
	.cfi_def_cfa_offset 200
	pushq	$32
	.cfi_def_cfa_offset 208
	movq	16(%rsp), %rdx
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%r13
	.cfi_def_cfa_offset 200
	leaq	18432(%rbx), %r13
	popq	%rdx
	.cfi_def_cfa_offset 192
	testl	%eax, %eax
	movq	48(%rsp), %rcx
	movq	40(%rsp), %rdi
	cmovne	%eax, %r15d
	leaq	0(,%r13,4), %rax
	movq	%rax, (%rsp)
	movq	56(%rsp), %rax
	cmpq	%rax, %rcx
	cmovb	%rax, %rcx
	movq	64(%rsp), %rax
	cmpq	%rax, %rcx
	cmovb	%rax, %rcx
	cmpq	%rdi, (%rsp)
	cmovnb	(%rsp), %rdi
	addq	$1023, %rcx
	addq	$1023, %rdi
	andq	$-1024, %rdi
	andq	$-1024, %rcx
	movq	%rdi, 24(%r12)
	movq	%rcx, 8(%r12)
	testl	%r15d, %r15d
	jne	.L6401
	movq	%rbx, %rax
	leal	0(,%rbp,4), %esi
	cqto
	idivq	%rsi
	leaq	36864(%rcx,%rbx), %rsi
	addq	$1024, %rax
	andq	$-1024, %rax
	leaq	18432(%rax), %rbp
	imulq	$24, %r13, %rax
	addq	%rax, %rsi
	movq	8(%rsp), %rax
	addq	%rax, %rsi
	imulq	$40, %rbp, %rax
	addq	%rdi, %rsi
	leaq	152(%r12), %rdi
	addq	%rax, %rsi
	call	cudaMalloc@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6401
	leaq	168(%r12), %rdi
	movl	$1024, %esi
	movq	$1024, 176(%r12)
	call	cudaMallocHost@PLT
	leaq	208(%r12), %rdi
	movl	%eax, %r15d
	call	cudaStreamCreate@PLT
	testl	%eax, %eax
	jne	.L6408
	testl	%r15d, %r15d
	jne	.L6401
	movq	152(%r12), %rsi
	movq	24(%r12), %rdx
	salq	$4, %rbp
	leaq	0(,%r13,8), %rax
	movq	8(%rsp), %rbx
	movq	%r12, (%r14)
	addq	%rsi, %rdx
	movq	%rsi, 16(%r12)
	addq	$36864, %rsi
	movq	%rdx, (%r12)
	addq	8(%r12), %rdx
	leaq	9216(%rdx), %rcx
	leaq	18432(%rdx,%rbx), %rdx
	movq	%rsi, 88(%r12)
	movq	%rcx, 32(%r12)
	leaq	9216(%rdx), %rcx
	addq	%r13, %rdx
	movq	(%rsp), %r13
	leaq	(%rdx,%rax), %r11
	movq	%rcx, 40(%r12)
	leaq	73728(%rdx), %r9
	addq	$36864, %rdx
	leaq	(%r11,%rax), %rcx
	leaq	73728(%r11), %r8
	movq	%r9, 104(%r12)
	subq	$36864, %r13
	addq	%rcx, %rax
	movq	%r8, 112(%r12)
	addq	%r13, %r9
	addq	%r13, %r8
	leaq	147456(%rax), %rbx
	addq	%rbp, %rax
	movq	%rdx, 48(%r12)
	leaq	73728(%rcx), %rdi
	movq	%rbx, 128(%r12)
	leaq	147456(%rax), %rbx
	leaq	73728(%rax,%rbp), %rax
	addq	$36864, %r11
	movq	%rax, 144(%r12)
	movq	16(%rsp), %rax
	addq	$36864, %rcx
	movq	%rdi, 120(%r12)
	addq	%r13, %rdi
	movq	%rax, 184(%r12)
	xorl	%eax, %eax
	movq	%rbx, 136(%r12)
	movq	%r11, 64(%r12)
	movq	%rcx, 72(%r12)
	movq	%r9, 80(%r12)
	movq	%r8, 96(%r12)
	movq	%rdi, 56(%r12)
	jmp	.L6393
.L6408:
	movl	%eax, %r15d
.L6401:
	movq	%r12, %rdi
	call	libcubwt_free_device_storage
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6416
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %edi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZL23libcubwt_get_error_code9cudaError
.L6404:
	.cfi_restore_state
	orq	$-1, %rax
	jmp	.L6393
.L6405:
	movq	$-2, %rax
.L6393:
	movq	120(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L6403
.L6416:
	call	__stack_chk_fail@PLT
.L6403:
	addq	$136, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11761:
	.size	libcubwt_allocate_device_storage, .-libcubwt_allocate_device_storage
	.type	_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj, @function
_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj:
.LFB11759:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$264, %rsp
	.cfi_def_cfa_offset 320
	movq	32(%rdi), %rdi
	movq	%rcx, 64(%rsp)
	movl	$1, %ecx
	movq	%r8, 72(%rsp)
	movq	208(%rbx), %r8
	movq	%rdx, 16(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	xorl	%eax, %eax
	call	cudaMemcpyAsync@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movq	16(%rsp), %rax
	movl	$3, %ecx
	movl	200(%rbx), %esi
	movq	16(%rsp), %rdi
	movq	208(%rbx), %r9
	cqto
	idivq	%rcx
	imull	$12, %esi, %ecx
	movq	%rax, 120(%rsp)
	incq	%rax
	leaq	(%rax,%rax,2), %rbp
	movq	%rax, 80(%rsp)
	movq	%rbp, %rax
	cqto
	idivq	%rcx
	movq	%rbp, %rdx
	subq	%rdi, %rdx
	incq	%rax
	decq	%rdx
	jg	.L6420
	cmpb	$0, -1(%r12,%rdi)
	je	.L6420
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6421
	movq	112(%rbx), %rdx
	movq	48(%rbx), %rsi
	movq	32(%rbx), %rdi
	call	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb0EEvPKhPjPmPKhPjPm
	jmp	.L6421
.L6420:
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6423
	movq	112(%rbx), %rdx
	movq	48(%rbx), %rsi
	movq	32(%rbx), %rdi
	call	_ZL72__device_stub__Z40libcubwt_initialize_device_arrays_kernelILb1EEvPKhPjPmPKhPjPm
.L6423:
	movl	$1, %r13d
	jmp	.L6424
.L6421:
	xorl	%r13d, %r13d
.L6424:
	xorl	%r9d, %r9d
	leaq	-10(%rbp), %rax
	movq	%r9, 112(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6425
	movzbl	-11(%r12,%rbp), %eax
	movq	%rax, 112(%rsp)
.L6425:
	xorl	%r8d, %r8d
	leaq	-9(%rbp), %rax
	movq	%r8, 56(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6426
	movzbl	-10(%r12,%rbp), %eax
	movq	%rax, 56(%rsp)
.L6426:
	xorl	%edi, %edi
	leaq	-8(%rbp), %rax
	movq	%rdi, 88(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6427
	movzbl	-9(%r12,%rbp), %eax
	movq	%rax, 88(%rsp)
.L6427:
	xorl	%esi, %esi
	leaq	-7(%rbp), %rax
	movq	%rsi, 48(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6428
	movzbl	-8(%r12,%rbp), %eax
	movq	%rax, 48(%rsp)
.L6428:
	xorl	%ecx, %ecx
	leaq	-6(%rbp), %rax
	movq	%rcx, 32(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6429
	movzbl	-7(%r12,%rbp), %eax
	movq	%rax, 32(%rsp)
.L6429:
	xorl	%edx, %edx
	leaq	-5(%rbp), %rax
	movq	%rdx, 40(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6430
	movzbl	-6(%r12,%rbp), %eax
	movq	%rax, 40(%rsp)
.L6430:
	xorl	%r15d, %r15d
	leaq	-4(%rbp), %rax
	movq	%r15, 24(%rsp)
	cmpq	%rax, 16(%rsp)
	jl	.L6431
	movzbl	-5(%r12,%rbp), %eax
	movq	%rax, 24(%rsp)
.L6431:
	leaq	-3(%rbp), %rax
	xorl	%r15d, %r15d
	cmpq	%rax, 16(%rsp)
	jl	.L6432
	movzbl	-4(%r12,%rbp), %r15d
.L6432:
	leaq	-2(%rbp), %rax
	xorl	%r10d, %r10d
	cmpq	%rax, 16(%rsp)
	jl	.L6433
	movzbl	-3(%r12,%rbp), %r10d
.L6433:
	leaq	-1(%rbp), %rax
	xorl	%r14d, %r14d
	cmpq	%rax, 16(%rsp)
	jl	.L6434
	movzbl	-2(%r12,%rbp), %r14d
.L6434:
	xorl	%r11d, %r11d
	cmpq	%rbp, 16(%rsp)
	jl	.L6435
	movzbl	-1(%r12,%rbp), %r11d
.L6435:
	movq	%r13, %rax
	movl	$1, %ecx
	movabsq	$4294967297, %rdi
	movq	208(%rbx), %r9
	salq	$63, %rax
	movq	%rdi, %rdx
	movl	$1, %esi
	movq	%r11, 136(%rsp)
	movq	%rax, %r12
	movq	%rax, 104(%rsp)
	movq	%r13, %rax
	sarq	$63, %r12
	sarq	$63, 104(%rsp)
	andl	$7, %r12d
	andq	$6, 104(%rsp)
	cmpb	$1, %r13b
	sbbq	%rbp, %rbp
	salq	$63, %rax
	xorl	%r8d, %r8d
	movq	%r10, 128(%rsp)
	movq	%rax, 96(%rsp)
	movq	80(%rsp), %rax
	andq	$-6, %rbp
	sarq	$63, 96(%rsp)
	addq	$7, %rbp
	addq	%rax, %rax
	andq	$3, 96(%rsp)
	movq	%rax, 8(%rsp)
	movq	%rdi, 164(%rsp)
	movl	$1, 172(%rsp)
	movq	%rdi, 152(%rsp)
	movl	$1, 160(%rsp)
	call	__cudaPushCallConfiguration@PLT
	movq	128(%rsp), %r10
	movq	136(%rsp), %r11
	testl	%eax, %eax
	jne	.L6437
	movq	32(%rsp), %rax
	movq	40(%rsp), %rdx
	movq	%r11, %r9
	movq	48(%rsp), %r8
	movq	56(%rsp), %rcx
	salq	$48, %rdx
	salq	$56, %rax
	movq	8(%rsp), %rdi
	salq	$56, %r8
	orq	%rdx, %rax
	movq	24(%rsp), %rdx
	salq	$56, %rcx
	salq	$40, %rdx
	orq	%rdx, %rax
	movq	%r15, %rdx
	salq	$32, %rdx
	orq	%rdx, %rax
	movq	%r10, %rdx
	salq	$24, %rdx
	orq	%rdx, %rax
	movq	%r14, %rdx
	salq	$16, %rdx
	orq	%rdx, %rax
	movq	%r11, %rdx
	salq	$8, %rdx
	orq	%rdx, %rax
	movq	112(%rsp), %rdx
	movq	%rax, 128(%rsp)
	movq	32(%rsp), %rax
	salq	$48, %rax
	orq	%rax, %r8
	movq	40(%rsp), %rax
	salq	$40, %rax
	orq	%rax, %r8
	movq	24(%rsp), %rax
	salq	$32, %rax
	orq	%rax, %r8
	movq	%r15, %rax
	salq	$24, %rax
	orq	%rax, %r8
	movq	%r10, %rax
	salq	$16, %rax
	orq	%rax, %r8
	movq	%r14, %rax
	salq	$8, %rax
	orq	%rax, %r8
	movq	88(%rsp), %rax
	orq	%r11, %r8
	salq	$48, %rax
	orq	%rax, %rcx
	movq	48(%rsp), %rax
	salq	$40, %rax
	orq	%rax, %rcx
	movq	32(%rsp), %rax
	salq	$32, %rax
	salq	$56, %rdx
	orq	%rax, %rcx
	movq	40(%rsp), %rax
	salq	$48, %r9
	salq	$24, %rax
	orq	%rax, %rcx
	movq	24(%rsp), %rax
	salq	$16, %rax
	orq	%rax, %rcx
	movq	%r15, %rax
	salq	$8, %rax
	orq	%rax, %rcx
	movq	56(%rsp), %rax
	orq	%r10, %rcx
	salq	$48, %rax
	orq	%rbp, %rcx
	orq	%rax, %rdx
	movq	88(%rsp), %rax
	salq	$40, %rax
	orq	%rax, %rdx
	movq	48(%rsp), %rax
	salq	$32, %rax
	orq	%rax, %rdx
	movq	32(%rsp), %rax
	salq	$24, %rax
	orq	%rax, %rdx
	movq	40(%rsp), %rax
	salq	$16, %rax
	orq	%rax, %rdx
	movq	24(%rsp), %rax
	salq	$8, %rax
	orq	%rax, %rdx
	movq	112(%rbx), %rax
	orq	%r15, %rdx
	leaq	(%rax,%rdi,8), %rsi
	movq	%r11, %rax
	movq	16(%rsp), %rdi
	addq	32(%rbx), %rdi
	salq	$56, %rax
	orq	%rbp, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 328
	movq	%r14, %rax
	salq	$56, %rax
	orq	%r13, %rax
	orq	%r9, %rax
	movq	%r10, %r9
	pushq	%rax
	.cfi_def_cfa_offset 336
	movq	%r15, %rax
	salq	$56, %rax
	salq	$48, %r9
	orq	%r12, %r8
	salq	$2, %r13
	orq	%rax, %r9
	movq	%r14, %rax
	salq	$48, %r15
	salq	$40, %rax
	salq	$40, %r10
	orq	%r9, %rax
	movq	%r11, %r9
	salq	$32, %r14
	salq	$32, %r9
	salq	$24, %r11
	orq	%r9, %rax
	movq	112(%rsp), %r9
	orq	%r9, %rax
	pushq	%rax
	.cfi_def_cfa_offset 344
	movq	48(%rsp), %rax
	salq	$56, %rax
	orq	%rax, %r13
	orq	%r13, %r15
	orq	%r15, %r10
	orq	%r10, %r14
	orq	%r11, %r14
	pushq	%r14
	.cfi_def_cfa_offset 352
	movq	136(%rsp), %r9
	movq	160(%rsp), %rax
	orq	%rax, %r9
	call	_ZL65__device_stub__Z35libcubwt_set_sentinel_values_kernelPhPmmmmmmmmmPhPmmmmmmmmm
	addq	$32, %rsp
	.cfi_def_cfa_offset 320
.L6437:
	movl	8(%rsp), %eax
	movq	112(%rbx), %rdx
	xorl	%ebp, %ebp
	xorl	%r12d, %r12d
	movl	%ebp, 216(%rsp)
	xorl	%r9d, %r9d
	leaq	224(%rsp), %rcx
	movl	%eax, 56(%rsp)
	movl	%eax, 196(%rbx)
	movq	120(%rbx), %rax
	movq	%rdx, 200(%rsp)
	movq	48(%rbx), %rdx
	movq	%rax, 208(%rsp)
	movq	80(%rbx), %rax
	movq	%rdx, 224(%rsp)
	leaq	200(%rsp), %rdx
	movq	%rax, 232(%rsp)
	leaq	8(%rbx), %rax
	movq	%rax, 24(%rsp)
	movl	%r12d, 240(%rsp)
	movl	$1, 192(%rbx)
	pushq	208(%rbx)
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	$64
	.cfi_def_cfa_offset 336
	movl	24(%rsp), %r8d
	movq	40(%rsp), %rsi
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%r13
	.cfi_def_cfa_offset 328
	popq	%r14
	.cfi_def_cfa_offset 320
	cmpl	$0, 216(%rsp)
	movl	%eax, %r15d
	je	.L6438
	movq	112(%rbx), %rax
	movq	120(%rbx), %rdx
	movq	%rax, 120(%rbx)
	movq	64(%rbx), %rax
	movq	%rdx, 112(%rbx)
	movq	72(%rbx), %rdx
	movq	%rax, 72(%rbx)
	movq	96(%rbx), %rax
	movq	%rdx, 64(%rbx)
	movq	56(%rbx), %rdx
	movq	%rax, 56(%rbx)
	movq	%rdx, 96(%rbx)
.L6438:
	cmpl	$0, 240(%rsp)
	je	.L6439
	movq	48(%rbx), %rax
	movq	80(%rbx), %rdx
	movq	%rax, 80(%rbx)
	movq	%rdx, 48(%rbx)
.L6439:
	testl	%r15d, %r15d
	jne	.L6418
	movq	8(%rsp), %rax
	movl	$4, %ecx
	xorl	%r11d, %r11d
	movq	80(%rsp), %r14
	movabsq	$4294967297, %r13
	movq	%r11, 40(%rsp)
	movq	$4, 48(%rsp)
	cqto
	salq	$2, %r14
	idivq	%rcx
	movq	%rax, 104(%rsp)
.L6500:
	movq	8(%rsp), %rax
	movl	200(%rbx), %esi
	movl	$1, %r12d
	movq	208(%rbx), %r8
	leal	0(,%rsi,4), %ecx
	cqto
	idivq	%rcx
	leaq	1(%rax), %rbp
	movl	160(%rbx), %eax
	leal	-3(%rax), %ecx
	salq	%cl, %r12
	cmpq	$0, 40(%rsp)
	jne	.L6440
	movl	%esi, %ecx
	movl	%esi, 164(%rsp)
	movq	%r8, %r9
	xorl	%r8d, %r8d
	leaq	-1(%rbp,%rcx), %rax
	movq	%r13, 168(%rsp)
	cqto
	movq	%r13, 156(%rsp)
	movl	160(%rsp), %esi
	idivq	%rcx
	movl	172(%rsp), %ecx
	movq	164(%rsp), %rdx
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6441
	movq	128(%rbx), %rcx
	movq	40(%rbx), %rdx
	movq	112(%rbx), %rsi
	movq	48(%rbx), %rdi
	movl	56(%rsp), %r9d
	movq	144(%rbx), %r8
	call	_ZL95__device_stub__Z56libcubwt_rank_and_segment_suffixes_initialization_kernelPjPmPhP5uint4P5uint2jPjPmPhP5uint4P5uint2j
.L6441:
	movl	200(%rbx), %eax
	cmpq	%r12, 8(%rsp)
	movq	%r13, 168(%rsp)
	movl	$0, %r8d
	movq	%r13, 156(%rsp)
	movq	208(%rbx), %r9
	movl	%eax, 164(%rsp)
	movl	172(%rsp), %ecx
	movl	%ebp, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	movl	160(%rsp), %esi
	jg	.L6442
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6444
	movq	72(%rbx), %rax
	movq	56(%rbx), %rcx
	movq	40(%rbx), %rdx
	movq	112(%rbx), %rsi
	movq	48(%rbx), %rdi
	pushq	%r10
	.cfi_remember_state
	.cfi_def_cfa_offset 328
	leaq	-4(%rax,%r14), %r9
	leaq	-4(%rax), %r8
	pushq	128(%rbx)
	.cfi_def_cfa_offset 336
	call	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb1EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
	jmp	.L6575
.L6442:
	.cfi_restore_state
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6444
	movq	72(%rbx), %rax
	movq	88(%rbx), %rcx
	xorl	%edi, %edi
	movq	40(%rbx), %rdx
	movq	112(%rbx), %rsi
	pushq	%r9
	.cfi_def_cfa_offset 328
	pushq	128(%rbx)
	.cfi_def_cfa_offset 336
	leaq	-4(%rax,%r14), %r9
	leaq	-4(%rax), %r8
	call	_ZL100__device_stub__Z52libcubwt_rank_and_segment_suffixes_initiatory_kernelILb0EEvPKjPKmPhPjS5_S5_P5uint4PKjPKmPhPjS4_S4_P5uint4
.L6575:
	popq	%rdi
	.cfi_def_cfa_offset 328
	popq	%r8
	.cfi_def_cfa_offset 320
.L6444:
	movq	128(%rbx), %rax
	salq	$4, %rbp
	movq	168(%rbx), %rdi
	movl	$2, %ecx
	movq	208(%rbx), %r8
	movl	$16, %edx
	leaq	-16(%rax,%rbp), %rsi
	call	cudaMemcpyAsync@PLT
	movq	208(%rbx), %rdi
	movl	%eax, %r15d
	call	cudaStreamSynchronize@PLT
	testl	%eax, %eax
	jne	.L6551
	testl	%r15d, %r15d
	jne	.L6418
	movq	168(%rbx), %rax
	movl	12(%rax), %eax
	movl	%eax, 192(%rbx)
	cmpq	%r12, 8(%rsp)
	jle	.L6457
	movq	8(%rsp), %rax
	movq	48(%rbx), %rsi
	movl	$3, %ecx
	movq	80(%rbx), %rdi
	movq	208(%rbx), %r8
	leaq	0(,%rax,4), %rdx
	call	cudaMemcpyAsync@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movq	80(%rbx), %rsi
	movq	96(%rbx), %rax
	movq	64(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%rsi, 200(%rsp)
	xorl	%esi, %esi
	movq	56(%rbx), %rbp
	movq	%rax, 232(%rsp)
	movl	%esi, 240(%rsp)
	movq	%rcx, 208(%rsp)
	xorl	%ecx, %ecx
	movl	%ecx, 216(%rsp)
	xorl	%ecx, %ecx
	movq	%rdx, 224(%rsp)
	movl	$1, %edx
.L6448:
	movq	%rdx, %rax
	salq	%cl, %rax
	cmpq	%rax, 8(%rsp)
	jle	.L6581
	incl	%ecx
	jmp	.L6448
.L6581:
	movl	160(%rbx), %edx
	xorl	%eax, %eax
	leal	-1(%rdx), %esi
	cmpl	%esi, %ecx
	jl	.L6450
	movl	%ecx, %eax
	subl	%edx, %eax
	addl	$9, %eax
	andl	$-8, %eax
.L6450:
	movl	%ecx, %r12d
	movq	208(%rbx), %rsi
	subl	%eax, %r12d
	movl	$0, %eax
	cmovs	%eax, %r12d
	cmpl	%ecx, %r12d
	jl	.L6451
.L6455:
	movl	200(%rbx), %edx
	movl	$1, %eax
	movl	%r12d, %ecx
	movq	208(%rbx), %r9
	salq	%cl, %rax
	movl	%edx, %esi
	decq	%rax
	sall	$4, %esi
	testq	%rsi, %rax
	je	.L6452
	jmp	.L6582
.L6451:
	leaq	224(%rsp), %rax
	leaq	200(%rsp), %rdx
	pushq	%rsi
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	%rcx
	.cfi_def_cfa_offset 336
	movl	72(%rsp), %r8d
	movl	%r12d, %r9d
	movq	%rax, %rcx
	movq	40(%rsp), %rsi
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	movl	%eax, %r15d
	popq	%rax
	.cfi_def_cfa_offset 328
	popq	%rdx
	.cfi_def_cfa_offset 320
	testl	%r15d, %r15d
	jne	.L6418
	jmp	.L6455
.L6452:
	movq	8(%rsp), %rax
	movl	%edx, 164(%rsp)
	xorl	%r8d, %r8d
	movabsq	$4294967297, %rcx
	movq	%rcx, 156(%rsp)
	leaq	-1(%rsi,%rax), %rax
	movq	%rcx, 168(%rsp)
	movl	172(%rsp), %ecx
	cqto
	idivq	%rsi
	movq	164(%rsp), %rdx
	movl	160(%rsp), %esi
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6457
	movslq	240(%rsp), %rax
	movl	56(%rsp), %ecx
	movq	%rbp, %rdx
	movq	224(%rsp,%rax,8), %rsi
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rdi
	call	_ZL70__device_stub__Z43libcubwt_permute_block_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	jmp	.L6457
.L6582:
	movq	8(%rsp), %rax
	xorl	%r8d, %r8d
	leal	0(,%rdx,4), %ecx
	movl	%edx, 164(%rsp)
	movabsq	$4294967297, %rsi
	leaq	-1(%rcx,%rax), %rax
	movq	%rsi, 168(%rsp)
	cqto
	movq	%rsi, 156(%rsp)
	movl	160(%rsp), %esi
	idivq	%rcx
	movl	172(%rsp), %ecx
	movq	164(%rsp), %rdx
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6457
	movslq	240(%rsp), %rax
	movl	56(%rsp), %ecx
	movq	%rbp, %rdx
	movq	224(%rsp,%rax,8), %rsi
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rdi
	jmp	.L6577
.L6440:
	movq	%rbp, %rax
	movl	$3, %ecx
	salq	$4, %rax
	movq	%rax, 32(%rsp)
	movq	128(%rbx), %rax
	movq	32(%rsp), %rdx
	leaq	-16(%rax), %rsi
	movq	136(%rbx), %rax
	leaq	-16(%rax), %rdi
	call	cudaMemcpyAsync@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movl	200(%rbx), %eax
	movq	40(%rsp), %rdx
	movl	%ebp, 152(%rsp)
	movl	$0, %r8d
	movq	208(%rbx), %r9
	movl	%eax, 164(%rsp)
	andl	$1, %edx
	cmpq	%r12, 8(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	%rax, 156(%rsp)
	jg	.L6460
	testq	%rdx, %rdx
	movq	152(%rsp), %rdi
	movq	164(%rsp), %rdx
	movl	160(%rsp), %esi
	jne	.L6461
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6463
	movq	72(%rbx), %rax
	movq	40(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	48(%rbx), %rdi
	pushq	%rbp
	.cfi_remember_state
	.cfi_def_cfa_offset 328
	leaq	-4(%rax,%r14), %rcx
	pushq	136(%rbx)
	.cfi_def_cfa_offset 336
	leaq	-4(%rax), %r9
	pushq	128(%rbx)
	.cfi_def_cfa_offset 344
	pushq	%rcx
	.cfi_def_cfa_offset 352
	xorl	%ecx, %ecx
	movq	56(%rbx), %r8
	call	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	jmp	.L6576
.L6461:
	.cfi_restore_state
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6463
	movq	72(%rbx), %rax
	movq	40(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	48(%rbx), %rdi
	pushq	%r11
	.cfi_remember_state
	.cfi_def_cfa_offset 328
	leaq	-4(%rax,%r14), %rcx
	pushq	136(%rbx)
	.cfi_def_cfa_offset 336
	leaq	-4(%rax), %r9
	pushq	128(%rbx)
	.cfi_def_cfa_offset 344
	pushq	%rcx
	.cfi_def_cfa_offset 352
	xorl	%ecx, %ecx
	movq	56(%rbx), %r8
	call	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb1EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	jmp	.L6576
.L6460:
	.cfi_restore_state
	testq	%rdx, %rdx
	movq	152(%rsp), %rdi
	movq	164(%rsp), %rdx
	movl	160(%rsp), %esi
	jne	.L6465
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6463
	movq	72(%rbx), %rax
	movq	80(%rbx), %rdi
	movq	88(%rbx), %r8
	movq	40(%rbx), %rdx
	leaq	-4(%rax,%r14), %r9
	movq	64(%rbx), %rsi
	leaq	-4(%rdi), %rcx
	movq	48(%rbx), %rdi
	pushq	%r10
	.cfi_remember_state
	.cfi_def_cfa_offset 328
	subq	$4, %r8
	pushq	136(%rbx)
	.cfi_def_cfa_offset 336
	pushq	128(%rbx)
	.cfi_def_cfa_offset 344
	pushq	%r9
	.cfi_def_cfa_offset 352
	leaq	-4(%rax), %r9
	call	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb0ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
	jmp	.L6576
.L6465:
	.cfi_restore_state
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6463
	movq	72(%rbx), %rax
	movq	80(%rbx), %rsi
	movq	88(%rbx), %r8
	movq	40(%rbx), %rdx
	movq	48(%rbx), %rdi
	leaq	-4(%rsi), %rcx
	movq	64(%rbx), %rsi
	pushq	%r9
	.cfi_def_cfa_offset 328
	leaq	-4(%rax,%r14), %r9
	pushq	136(%rbx)
	.cfi_def_cfa_offset 336
	subq	$4, %r8
	pushq	128(%rbx)
	.cfi_def_cfa_offset 344
	pushq	%r9
	.cfi_def_cfa_offset 352
	leaq	-4(%rax), %r9
	call	_ZL113__device_stub__Z53libcubwt_rank_and_segment_suffixes_incremental_kernelILb1ELb0EEvPKjS1_PhPjS3_S3_S3_P5uint4PKS4_PKjS0_PhPjS2_S2_S2_P5uint4PKS3_
.L6576:
	addq	$32, %rsp
	.cfi_def_cfa_offset 320
.L6463:
	movq	32(%rsp), %rdi
	movl	$2, %ecx
	movl	$16, %edx
	movq	128(%rbx), %rax
	movq	208(%rbx), %r8
	leaq	-16(%rax,%rdi), %rsi
	movq	168(%rbx), %rdi
	call	cudaMemcpyAsync@PLT
	movq	208(%rbx), %rdi
	movl	%eax, %ebp
	call	cudaStreamSynchronize@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	testl	%ebp, %ebp
	jne	.L6555
	movq	168(%rbx), %rax
	movl	12(%rax), %edx
	movl	%edx, 192(%rbx)
	cmpq	%r12, 8(%rsp)
	jle	.L6457
	movl	4(%rax), %ebp
	testl	%ebp, %ebp
	je	.L6457
	movq	96(%rbx), %rax
	movq	56(%rbx), %rdi
	xorl	%r11d, %r11d
	xorl	%r15d, %r15d
	movq	80(%rbx), %rsi
	movq	64(%rbx), %rcx
	movl	%r11d, 216(%rsp)
	movl	%ebp, %r12d
	movq	88(%rbx), %rdx
	movq	%rdi, 32(%rsp)
	movq	%rsi, 200(%rsp)
	movq	%rax, 232(%rsp)
	movl	%r15d, 240(%rsp)
	movq	%rcx, 208(%rsp)
	xorl	%ecx, %ecx
	movq	%rdx, 224(%rsp)
	movl	$1, %edx
.L6468:
	movq	%rdx, %rax
	salq	%cl, %rax
	cmpq	%rax, 8(%rsp)
	jle	.L6583
	incl	%ecx
	jmp	.L6468
.L6583:
	movl	160(%rbx), %edx
	xorl	%eax, %eax
	leal	-1(%rdx), %esi
	cmpl	%esi, %ecx
	jl	.L6470
	movl	%ecx, %eax
	subl	%edx, %eax
	addl	$9, %eax
	andl	$-8, %eax
.L6470:
	movl	%ecx, %r9d
	movq	208(%rbx), %rsi
	subl	%eax, %r9d
	movl	$0, %eax
	cmovs	%eax, %r9d
	cmpl	%ecx, %r9d
	jl	.L6471
.L6475:
	movl	200(%rbx), %eax
	movq	208(%rbx), %r9
	xorl	%r8d, %r8d
	movabsq	$4294967297, %rsi
	movq	%rsi, 168(%rsp)
	leal	0(,%rax,4), %ecx
	movl	%eax, 164(%rsp)
	leaq	-1(%r12,%rcx), %rax
	movq	%rsi, 156(%rsp)
	movl	160(%rsp), %esi
	cqto
	idivq	%rcx
	movl	172(%rsp), %ecx
	movq	164(%rsp), %rdx
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6457
	movslq	240(%rsp), %rax
	movq	32(%rsp), %rdx
	movl	%ebp, %ecx
	movq	224(%rsp,%rax,8), %rsi
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rdi
	jmp	.L6577
.L6471:
	leaq	224(%rsp), %rax
	leaq	200(%rsp), %rdx
	pushq	%rsi
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	%rcx
	.cfi_def_cfa_offset 336
	movq	40(%rsp), %rsi
	movl	%ebp, %r8d
	movq	%rax, %rcx
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%r9
	.cfi_def_cfa_offset 328
	popq	%r10
	.cfi_def_cfa_offset 320
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	jmp	.L6475
.L6577:
	call	_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
.L6457:
	cmpl	$0, 192(%rbx)
	movq	208(%rbx), %r9
	je	.L6476
	movl	200(%rbx), %esi
	movq	8(%rsp), %rax
	leal	0(,%rsi,4), %ecx
	leaq	-1(%rcx,%rax), %rax
	cqto
	idivq	%rcx
	movl	160(%rbx), %edx
	leal	-2(%rdx), %ecx
	movq	%rax, %rbp
	movl	$1, %eax
	movq	%rax, %rdi
	salq	%cl, %rdi
	cmpq	%rdi, 8(%rsp)
	jle	.L6477
	leal	6(%rdx), %ecx
	salq	%cl, %rax
	cmpq	%rax, 8(%rsp)
	jg	.L6477
	movl	196(%rbx), %eax
	movq	104(%rsp), %rdi
	cmpq	%rdi, %rax
	jg	.L6478
.L6477:
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%r13, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	%r13, 156(%rsp)
	movq	164(%rsp), %rdx
	movl	%ebp, 152(%rsp)
	movl	160(%rsp), %esi
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6480
	movq	48(%rsp), %rsi
	movq	56(%rbx), %rax
	movq	64(%rbx), %rcx
	movq	40(%rbx), %rdi
	leaq	(%rax,%rsi,4), %rdx
	movq	48(%rbx), %rsi
	call	_ZL71__device_stub__Z42libcubwt_update_suffix_sorting_keys_kernelPKhPKjS2_PjPKhPKjS2_Pj
	jmp	.L6480
.L6478:
	movabsq	$4294967297, %rax
	testb	$1, 40(%rsp)
	movl	%esi, 164(%rsp)
	movl	$0, %r8d
	movq	%rax, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	%rax, 156(%rsp)
	movq	164(%rsp), %rdx
	movl	%ebp, 152(%rsp)
	movl	160(%rsp), %esi
	movq	152(%rsp), %rdi
	jne	.L6481
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6483
	movq	80(%rbx), %rax
	movq	48(%rbx), %rsi
	movq	40(%rbx), %rdi
	movq	144(%rbx), %r8
	leaq	-4(%rax), %rcx
	movq	96(%rbx), %rax
	leaq	-4(%rax), %rdx
	call	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb0EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
	jmp	.L6483
.L6481:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6483
	movq	80(%rbx), %rax
	movq	48(%rbx), %rsi
	movq	40(%rbx), %rdi
	movq	144(%rbx), %r8
	leaq	-4(%rax), %rcx
	movq	96(%rbx), %rax
	leaq	-4(%rax), %rdx
	call	_ZL83__device_stub__Z40libcubwt_gather_unsorted_suffixes_kernelILb1EEvPKhPKjPjS4_P5uint2PKhPKjPjS3_P5uint2
.L6483:
	movq	144(%rbx), %rax
	movl	$2, %ecx
	movl	$8, %edx
	movq	168(%rbx), %rdi
	movq	208(%rbx), %r8
	leaq	-8(%rax,%rbp,8), %rsi
	call	cudaMemcpyAsync@PLT
	movq	208(%rbx), %rdi
	movl	%eax, %ebp
	call	cudaStreamSynchronize@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	testl	%ebp, %ebp
	jne	.L6555
	movq	168(%rbx), %rax
	movq	80(%rbx), %rcx
	movl	4(%rax), %eax
	movl	%eax, 32(%rsp)
	cmpl	$0, 32(%rsp)
	movl	%eax, 196(%rbx)
	movq	64(%rbx), %rax
	movq	%rax, 80(%rsp)
	movq	96(%rbx), %rax
	je	.L6480
	movq	56(%rbx), %rdi
	movq	%rax, 224(%rsp)
	xorl	%r8d, %r8d
	movq	80(%rsp), %rax
	movq	88(%rbx), %rdx
	movq	%rcx, 200(%rsp)
	movq	%rdi, 96(%rsp)
	xorl	%edi, %edi
	movl	32(%rsp), %r10d
	movl	%edi, 216(%rsp)
	movq	%rax, 232(%rsp)
	movl	%r8d, 240(%rsp)
	movq	%rdx, 208(%rsp)
	movl	$1, %edx
.L6485:
	movq	%rdx, %rax
	movl	%ebp, %ecx
	salq	%cl, %rax
	cmpq	%rax, 8(%rsp)
	jle	.L6584
	incl	%ebp
	jmp	.L6485
.L6584:
	movl	160(%rbx), %edx
	xorl	%eax, %eax
	leal	-1(%rdx), %ecx
	cmpl	%ecx, %ebp
	jl	.L6487
	movl	%ebp, %eax
	subl	%edx, %eax
	addl	$9, %eax
	andl	$-8, %eax
.L6487:
	movl	%ebp, %r12d
	subl	%eax, %r12d
	movl	$0, %eax
	cmovs	%eax, %r12d
	movq	208(%rbx), %rax
	cmpl	%ebp, %r12d
	jl	.L6488
.L6492:
	movl	200(%rbx), %eax
	movq	208(%rbx), %r9
	xorl	%r8d, %r8d
	movabsq	$4294967297, %rsi
	movq	%rsi, 168(%rsp)
	leal	0(,%rax,4), %ecx
	movl	%eax, 164(%rsp)
	leaq	-1(%r10,%rcx), %rax
	movq	%rsi, 156(%rsp)
	movl	160(%rsp), %esi
	cqto
	idivq	%rcx
	movl	172(%rsp), %ecx
	movq	164(%rsp), %rdx
	movq	%rax, 88(%rsp)
	movl	88(%rsp), %eax
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6489
	movslq	216(%rsp), %rax
	movq	48(%rsp), %rsi
	movl	32(%rsp), %ecx
	movq	200(%rsp,%rax,8), %rdi
	movq	96(%rsp), %rax
	movq	%rdi, %rdx
	leaq	(%rax,%rsi,4), %rsi
	call	_ZL63__device_stub__Z36libcubwt_gather_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	jmp	.L6489
.L6488:
	movq	%r10, 88(%rsp)
	leaq	224(%rsp), %rcx
	leaq	200(%rsp), %rdx
	movl	%r12d, %r9d
	pushq	%rax
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 336
	movl	48(%rsp), %r8d
	movq	40(%rsp), %rsi
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%rcx
	.cfi_def_cfa_offset 328
	popq	%rsi
	.cfi_def_cfa_offset 320
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movq	88(%rsp), %r10
	jmp	.L6492
.L6489:
	movq	208(%rbx), %rax
	cmpl	%ebp, %r12d
	jl	.L6493
.L6497:
	movl	200(%rbx), %eax
	movl	88(%rsp), %edi
	xorl	%r8d, %r8d
	movq	208(%rbx), %r9
	movl	%eax, 164(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	%rax, 156(%rsp)
	movq	164(%rsp), %rdx
	movl	%edi, 152(%rsp)
	movl	160(%rsp), %esi
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6480
	movslq	216(%rsp), %rax
	movl	32(%rsp), %ecx
	movq	80(%rsp), %rdx
	movq	200(%rsp,%rax,8), %rsi
	movslq	240(%rsp), %rax
	movq	224(%rsp,%rax,8), %rdi
	call	_ZL64__device_stub__Z37libcubwt_scatter_values_uint32_kernelPKjS0_PjjPKjS0_Pjj
	jmp	.L6480
.L6493:
	leaq	200(%rsp), %rcx
	leaq	224(%rsp), %rdx
	pushq	%rax
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 336
	movl	48(%rsp), %r8d
	movl	%r12d, %r9d
	movq	40(%rsp), %rsi
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	movl	%eax, %r15d
	popq	%rax
	.cfi_def_cfa_offset 328
	popq	%rdx
	.cfi_def_cfa_offset 320
	testl	%r15d, %r15d
	jne	.L6418
	jmp	.L6497
.L6480:
	movq	96(%rbx), %rax
	movq	64(%rbx), %rdx
	xorl	%r11d, %r11d
	xorl	%ebp, %ebp
	movl	%r11d, 216(%rsp)
	leaq	224(%rsp), %rcx
	movq	16(%rbx), %rdi
	leaq	24(%rbx), %rsi
	movq	%rax, 208(%rsp)
	movq	80(%rbx), %rax
	movq	%rdx, 200(%rsp)
	movq	48(%rbx), %rdx
	movq	%rax, 232(%rsp)
	movq	72(%rbx), %rax
	movq	%rdx, 224(%rsp)
	leaq	200(%rsp), %rdx
	leaq	(%rax,%r14), %r8
	movl	%ebp, 240(%rsp)
	pushq	%r12
	.cfi_def_cfa_offset 328
	movl	192(%rbx), %r9d
	pushq	208(%rbx)
	.cfi_def_cfa_offset 336
	pushq	%r8
	.cfi_def_cfa_offset 344
	pushq	%rax
	.cfi_def_cfa_offset 352
	movl	196(%rbx), %r8d
	call	_ZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_st
	addq	$32, %rsp
	.cfi_def_cfa_offset 320
	cmpl	$0, 216(%rsp)
	movl	%eax, %r15d
	je	.L6498
	movq	64(%rbx), %rax
	movq	96(%rbx), %rdx
	movq	%rax, 96(%rbx)
	movq	%rdx, 64(%rbx)
.L6498:
	cmpl	$0, 240(%rsp)
	je	.L6499
	movq	48(%rbx), %rax
	movq	80(%rbx), %rdx
	movq	%rax, 80(%rbx)
	movq	%rdx, 48(%rbx)
.L6499:
	testl	%r15d, %r15d
	jne	.L6418
	movq	48(%rsp), %rdi
	incq	40(%rsp)
	addq	%rdi, 48(%rsp)
	jmp	.L6500
.L6476:
	movq	56(%rbx), %rsi
	movq	88(%rbx), %rdi
	movq	%r9, %r8
	movl	$3, %ecx
	movq	8(%rsp), %rax
	leaq	0(,%rax,4), %rdx
	call	cudaMemcpyAsync@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movq	64(%rsp), %rsi
	movq	16(%rsp), %rax
	movl	$3, %edi
	movq	208(%rbx), %r9
	leaq	-1(%rax,%rsi), %rax
	cqto
	idivq	%rsi
	movq	8(%rsp), %rsi
	movq	%rax, %r12
	movq	16(%rsp), %rax
	cqto
	idivq	%rdi
	xorl	%eax, %eax
	cmpq	$2, %rdx
	movq	%rdx, %rbp
	movq	112(%rbx), %rdx
	sete	%al
	xorl	%r10d, %r10d
	leaq	-2(%rsi,%rax), %r13
	movl	200(%rbx), %esi
	movq	104(%rbx), %rax
	movq	%rdx, 176(%rsp)
	movl	%r10d, 192(%rsp)
	leal	0(,%rsi,8), %ecx
	movq	%rax, 184(%rsp)
	leaq	-1(%rcx,%r13), %rax
	cqto
	idivq	%rcx
	cmpq	$1, %r12
	jle	.L6501
	movl	64(%rsp), %edi
	xorl	%r15d, %r15d
	leal	-1(%rdi), %r14d
	movl	$1, %edi
.L6502:
	movl	%edi, %edx
	movl	%r15d, %ecx
	sall	%cl, %edx
	cmpl	%edx, %r14d
	jb	.L6585
	incl	%r15d
	jmp	.L6502
.L6585:
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6505
	movq	56(%rbx), %rsi
	movq	32(%rbx), %rdi
	movl	%r15d, %r8d
	movl	%r14d, %ecx
	movslq	192(%rsp), %rax
	movq	176(%rsp,%rax,8), %rdx
	call	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb1EEvPKhPKjPKmjjPKhPKjPKmjj
	jmp	.L6505
.L6501:
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6505
	movq	56(%rbx), %rsi
	movq	32(%rbx), %rdi
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	movslq	192(%rsp), %rax
	movq	176(%rsp,%rax,8), %rdx
	call	_ZL74__device_stub__Z38libcubwt_prepare_mod12_suffixes_kernelILb0EEvPKhPKjPKmjjPKhPKjPKmjj
.L6505:
	movq	72(%rbx), %rax
	xorl	%r9d, %r9d
	movq	56(%rbx), %rdx
	xorl	%ecx, %ecx
	movl	%r9d, 240(%rsp)
	movq	%rax, 232(%rsp)
	movq	%rdx, 224(%rsp)
	movl	$1, %edx
.L6507:
	movq	%rdx, %rax
	salq	%cl, %rax
	cmpq	%rax, 8(%rsp)
	jle	.L6586
	incl	%ecx
	jmp	.L6507
.L6586:
	movl	160(%rbx), %edx
	xorl	%eax, %eax
	leal	-2(%rdx), %esi
	cmpl	%esi, %ecx
	jl	.L6509
	movl	%ecx, %eax
	subl	%edx, %eax
	addl	$10, %eax
	andl	$-8, %eax
.L6509:
	movl	%ecx, %r9d
	movq	208(%rbx), %rsi
	subl	%eax, %r9d
	movl	$0, %eax
	cmovs	%eax, %r9d
	cmpl	%r9d, %ecx
	jg	.L6510
.L6514:
	movl	200(%rbx), %eax
	movq	208(%rbx), %r9
	xorl	%r8d, %r8d
	movabsq	$4294967297, %rsi
	movq	%rsi, 156(%rsp)
	leal	(%rax,%rax), %ecx
	movl	%eax, 152(%rsp)
	leaq	-1(%r13,%rcx), %rax
	movq	%rsi, 168(%rsp)
	movl	172(%rsp), %esi
	cqto
	idivq	%rcx
	movl	160(%rsp), %ecx
	movq	152(%rsp), %rdx
	movl	%eax, 164(%rsp)
	movq	164(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6511
	movslq	192(%rsp), %rax
	movq	8(%rsp), %rdx
	movl	%eax, %ecx
	subq	%r13, %rdx
	movq	176(%rsp,%rax,8), %rax
	xorl	$1, %ecx
	salq	$3, %rdx
	movslq	%ecx, %rcx
	movq	176(%rsp,%rcx,8), %rsi
	movl	%r13d, %ecx
	subq	%rdx, %rsi
	movslq	240(%rsp), %rdx
	movq	224(%rsp,%rdx,8), %rdi
	movq	%rsi, %rdx
	movq	%rax, %rsi
	call	_ZL64__device_stub__Z37libcubwt_scatter_values_uint64_kernelPKjPKmPmjPKjPKmPmj
	jmp	.L6511
.L6510:
	leaq	176(%rsp), %rax
	leaq	224(%rsp), %rdx
	pushq	%rsi
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	pushq	%rcx
	.cfi_def_cfa_offset 336
	movq	40(%rsp), %rsi
	movl	%r13d, %r8d
	movq	%rax, %rcx
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%rdi
	.cfi_def_cfa_offset 328
	popq	%r8
	.cfi_def_cfa_offset 320
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6513
	jmp	.L6514
.L6511:
	xorl	$1, 192(%rsp)
	xorl	%r15d, %r15d
.L6513:
	movq	72(%rbx), %rax
	movq	56(%rbx), %rdx
	xorl	%esi, %esi
	movl	%esi, 216(%rsp)
	movq	%rax, 208(%rsp)
	movslq	192(%rsp), %rax
	movq	%rdx, 200(%rsp)
	movq	176(%rsp,%rax,8), %rax
	cmpq	%rax, 112(%rbx)
	jne	.L6515
	movq	80(%rbx), %rax
	movq	48(%rbx), %rdx
	jmp	.L6578
.L6515:
	movq	96(%rbx), %rax
	movq	64(%rbx), %rdx
.L6578:
	xorl	%ecx, %ecx
	movq	%rdx, 224(%rsp)
	movq	%rax, 232(%rsp)
	movl	%ecx, 240(%rsp)
	testl	%r15d, %r15d
	jne	.L6418
	cmpq	$1, %rbp
	movl	200(%rbx), %esi
	movq	120(%rsp), %rbp
	movq	208(%rbx), %r9
	sbbq	$-1, %rbp
	leal	(%rsi,%rsi), %ecx
	leaq	-1(%rcx,%rbp), %rax
	cqto
	idivq	%rcx
	cmpq	$1, %r12
	jle	.L6518
	movl	64(%rsp), %r14d
	movl	$1, %edi
	decl	%r14d
.L6519:
	movl	%edi, %edx
	movl	%r15d, %ecx
	sall	%cl, %edx
	cmpl	%edx, %r14d
	jb	.L6587
	incl	%r15d
	jmp	.L6519
.L6587:
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6522
	movq	88(%rbx), %rsi
	movq	32(%rbx), %rdi
	movl	%r15d, %r9d
	movl	%r14d, %r8d
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rcx
	movslq	240(%rsp), %rax
	movq	224(%rsp,%rax,8), %rdx
	call	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb1EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
	jmp	.L6522
.L6518:
	movabsq	$4294967297, %rdx
	movl	%esi, 164(%rsp)
	xorl	%r8d, %r8d
	movq	%rdx, 156(%rsp)
	movl	160(%rsp), %esi
	movq	%rdx, 168(%rsp)
	movl	172(%rsp), %ecx
	movl	%eax, 152(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6522
	movq	88(%rbx), %rsi
	movq	32(%rbx), %rdi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rcx
	movslq	240(%rsp), %rax
	movq	224(%rsp,%rax,8), %rdx
	call	_ZL76__device_stub__Z37libcubwt_prepare_mod0_suffixes_kernelILb0EEvPKhPKjPKmS3_jjPKhPKjPKmS2_jj
.L6522:
	cmpq	$16777216, 8(%rsp)
	movq	208(%rbx), %rax
	leaq	224(%rsp), %rdx
	leaq	200(%rsp), %rcx
	movq	(%rbx), %rdi
	jg	.L6524
	pushq	%rax
	.cfi_def_cfa_offset 328
	xorl	%r9d, %r9d
	movl	%ebp, %r8d
	pushq	$24
	.cfi_def_cfa_offset 336
	movq	40(%rsp), %rsi
	movq	%rcx, 48(%rsp)
	movq	%rdx, 24(%rsp)
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	movl	%eax, %r15d
	popq	%rax
	.cfi_def_cfa_offset 328
	popq	%rdx
	.cfi_def_cfa_offset 320
	testl	%r15d, %r15d
	jne	.L6418
	pushq	208(%rbx)
	.cfi_def_cfa_offset 328
	movq	(%rbx), %rdi
	movl	$32, %r9d
	movl	%ebp, %r8d
	pushq	$40
	.cfi_def_cfa_offset 336
	movq	48(%rsp), %rcx
	movq	24(%rsp), %rdx
	movq	40(%rsp), %rsi
.L6580:
	call	_ZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_st
	popq	%r11
	.cfi_def_cfa_offset 328
	popq	%r14
	.cfi_def_cfa_offset 320
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L6418
	movl	200(%rbx), %esi
	movq	16(%rsp), %rax
	movl	$2147483651, %edi
	xorl	%r8d, %r8d
	movq	208(%rbx), %r9
	addq	%rdi, %rdi
	movl	$1, 160(%rsp)
	imull	$5, %esi, %ecx
	movl	%esi, 164(%rsp)
	movl	$1, %esi
	movq	%rdi, 152(%rsp)
	leaq	-1(%rcx,%rax), %rax
	cqto
	idivq	%rcx
	movq	%rax, %r14
	movabsq	$4294967297, %rax
	movq	%rax, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	164(%rsp), %rdx
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6525
	movslq	192(%rsp), %rax
	movq	176(%rsp,%rax,8), %rax
	leaq	(%rax,%r13,8), %rdx
	movslq	216(%rsp), %rax
	movq	200(%rsp,%rax,8), %rax
	leaq	(%rax,%rbp,4), %rsi
	movslq	240(%rsp), %rax
	movq	224(%rsp,%rax,8), %rax
	leaq	(%rax,%rbp,8), %rdi
	call	_ZL61__device_stub__Z37libcubwt_set_sentinel_suffixes_kernelPmPjS_PmPjS_
	jmp	.L6525
.L6524:
	pushq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 328
	xorl	%r9d, %r9d
	movl	%ebp, %r8d
	pushq	$40
	.cfi_def_cfa_offset 336
	movq	40(%rsp), %rsi
	jmp	.L6580
.L6525:
	.cfi_restore_state
	movl	200(%rbx), %ecx
	movq	%r14, %rax
	xorl	%r8d, %r8d
	movabsq	$4294967297, %rsi
	cqto
	movq	%rsi, 168(%rsp)
	movq	208(%rbx), %r9
	idivq	%rcx
	movl	%ecx, 164(%rsp)
	movl	172(%rsp), %ecx
	movq	%rsi, 156(%rsp)
	movq	164(%rsp), %rdx
	movl	160(%rsp), %esi
	incq	%rax
	movl	%eax, 152(%rsp)
	movq	152(%rsp), %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6528
	movslq	192(%rsp), %rdx
	movslq	216(%rsp), %rsi
	movslq	240(%rsp), %rdi
	imull	$6, 200(%rbx), %eax
	movq	176(%rsp,%rdx,8), %rcx
	movq	200(%rsp,%rsi,8), %rsi
	movq	224(%rsp,%rdi,8), %rdi
	pushq	%r8
	.cfi_def_cfa_offset 328
	pushq	%r14
	.cfi_def_cfa_offset 336
	movq	128(%rbx), %r9
	leal	(%rax,%rbp), %edx
	leal	(%rax,%r13), %r8d
	call	_ZL77__device_stub__Z45libcubwt_suffixes_merge_initialization_kernelPKmPKjjS0_jPjjPKmPKjjS0_jPjj
	popq	%r9
	.cfi_def_cfa_offset 328
	popq	%r10
	.cfi_def_cfa_offset 320
.L6528:
	movl	200(%rbx), %eax
	movl	%r14d, 152(%rsp)
	xorl	%r8d, %r8d
	movq	208(%rbx), %r9
	movl	%eax, 164(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 168(%rsp)
	movl	172(%rsp), %ecx
	movq	%rax, 156(%rsp)
	movq	164(%rsp), %rdx
	movq	152(%rsp), %rdi
	movl	160(%rsp), %esi
	cmpq	$1, %r12
	jle	.L6529
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6531
	movslq	192(%rsp), %rdx
	movslq	216(%rsp), %rsi
	movslq	240(%rsp), %rdi
	movq	144(%rbx), %rax
	movq	128(%rbx), %rcx
	movq	176(%rsp,%rdx,8), %rdx
	movq	200(%rsp,%rsi,8), %rsi
	movq	224(%rsp,%rdi,8), %rdi
	leaq	-4(%rax), %r8
	movq	32(%rbx), %r9
	call	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb1EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
	jmp	.L6531
.L6529:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L6531
	movslq	192(%rsp), %rdx
	movslq	216(%rsp), %rsi
	movslq	240(%rsp), %rdi
	movq	144(%rbx), %rax
	movq	128(%rbx), %rcx
	movq	176(%rsp,%rdx,8), %rdx
	movq	200(%rsp,%rsi,8), %rsi
	movq	224(%rsp,%rdi,8), %rdi
	leaq	-4(%rax), %r8
	movq	32(%rbx), %r9
	call	_ZL71__device_stub__Z30libcubwt_merge_suffixes_kernelILb0EEvPKmPKjS1_S3_PjPhPKmPKjS0_S2_PjPh
.L6531:
	movq	72(%rsp), %r13
	leaq	0(,%r12,4), %rbp
	cmpq	%rbp, 176(%rbx)
	jb	.L6533
	movq	168(%rbx), %r13
.L6533:
	movq	144(%rbx), %rsi
	movq	%r13, %rdi
	movl	$2, %ecx
	movq	%rbp, %rdx
	movq	208(%rbx), %r8
	call	cudaMemcpyAsync@PLT
	movq	208(%rbx), %rdi
	movl	%eax, %r15d
	call	cudaStreamSynchronize@PLT
	testl	%eax, %eax
	jne	.L6551
	testl	%r15d, %r15d
	jne	.L6418
	movq	72(%rsp), %rax
	cmpq	%rax, %r13
	je	.L6534
	movq	%rax, %rdi
	movq	%r13, %rsi
	movq	%rbp, %rcx
	rep movsb
.L6534:
	xorl	%eax, %eax
.L6535:
	cmpq	%r12, %rax
	jge	.L6418
	movq	72(%rsp), %rdi
	incl	(%rdi,%rax,4)
	incq	%rax
	jmp	.L6535
.L6551:
	movl	%eax, %r15d
	jmp	.L6418
.L6555:
	movl	%ebp, %r15d
.L6418:
	movq	248(%rsp), %rax
	subq	%fs:40, %rax
	je	.L6538
	call	__stack_chk_fail@PLT
.L6538:
	addq	$264, %rsp
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11759:
	.size	_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj, .-_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj
	.globl	libcubwt_bwt
	.type	libcubwt_bwt, @function
libcubwt_bwt:
.LFB11773:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L6595
	testq	%rsi, %rsi
	je	.L6595
	movq	%rdx, %r13
	testq	%rdx, %rdx
	je	.L6595
	cmpq	$15, %rcx
	jle	.L6595
	movq	%rdi, %rbp
	cmpq	%rcx, 184(%rdi)
	jl	.L6595
	movq	%rcx, %rdx
	leaq	20(%rsp), %r8
	movq	%rcx, 8(%rsp)
	movq	%rsi, (%rsp)
	call	_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj
	movq	(%rsp), %rsi
	movq	8(%rsp), %rcx
	testl	%eax, %eax
	movl	%eax, %edi
	jne	.L6590
	movl	20(%rsp), %r8d
	movq	%rbp, %rdi
	movq	%r13, %rdx
	call	_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll
	movl	%eax, %edi
	testl	%eax, %eax
	jne	.L6590
	movl	20(%rsp), %eax
	jmp	.L6588
.L6590:
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6597
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	_ZL23libcubwt_get_error_code9cudaError
.L6595:
	.cfi_restore_state
	orq	$-1, %rax
.L6588:
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L6592
.L6597:
	call	__stack_chk_fail@PLT
.L6592:
	addq	$40, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11773:
	.size	libcubwt_bwt, .-libcubwt_bwt
	.globl	libcubwt_bwt_aux
	.type	libcubwt_bwt_aux, @function
libcubwt_bwt_aux:
.LFB11774:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	testq	%rdi, %rdi
	je	.L6605
	testq	%rsi, %rsi
	je	.L6605
	movq	%rdx, %r14
	testq	%rdx, %rdx
	je	.L6605
	movq	%rcx, %rbp
	cmpq	$15, %rcx
	jle	.L6605
	cmpq	%rcx, 184(%rdi)
	jl	.L6605
	movq	%r8, %rcx
	cmpq	$3, %r8
	jle	.L6605
	leaq	-1(%r8), %rbx
	andq	%r8, %rbx
	jne	.L6605
	leaq	-1(%rbp,%r8), %rax
	cqto
	idivq	%r8
	cmpq	$255, %rax
	jg	.L6605
	movq	%r9, %r15
	testq	%r9, %r9
	je	.L6605
	movq	%r9, %r8
	movq	%rbp, %rdx
	movq	%rsi, 8(%rsp)
	movq	%rdi, (%rsp)
	call	_ZL42libcubwt_compute_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhllPj
	movq	(%rsp), %rdi
	movq	8(%rsp), %rsi
	testl	%eax, %eax
	jne	.L6600
	movl	(%r15), %r8d
	movq	%rbp, %rcx
	movq	%r14, %rdx
	call	_ZL39libcubwt_copy_burrows_wheeler_transformP23LIBCUBWT_DEVICE_STORAGEPKhPhll
	testl	%eax, %eax
	je	.L6598
.L6600:
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%eax, %edi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZL23libcubwt_get_error_code9cudaError
.L6605:
	.cfi_restore_state
	orq	$-1, %rbx
.L6598:
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11774:
	.size	libcubwt_bwt_aux, .-libcubwt_bwt_aux
	.weak	_ZTSN4cuda3__410cuda_errorE
	.section	.rodata._ZTSN4cuda3__410cuda_errorE,"aG",@progbits,_ZTSN4cuda3__410cuda_errorE,comdat
	.align 16
	.type	_ZTSN4cuda3__410cuda_errorE, @object
	.size	_ZTSN4cuda3__410cuda_errorE, 24
_ZTSN4cuda3__410cuda_errorE:
	.string	"N4cuda3__410cuda_errorE"
	.weak	_ZTIN4cuda3__410cuda_errorE
	.section	.data.rel.ro._ZTIN4cuda3__410cuda_errorE,"awG",@progbits,_ZTIN4cuda3__410cuda_errorE,comdat
	.align 8
	.type	_ZTIN4cuda3__410cuda_errorE, @object
	.size	_ZTIN4cuda3__410cuda_errorE, 24
_ZTIN4cuda3__410cuda_errorE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN4cuda3__410cuda_errorE
	.quad	_ZTISt13runtime_error
	.weak	_ZTVN4cuda3__410cuda_errorE
	.section	.data.rel.ro._ZTVN4cuda3__410cuda_errorE,"awG",@progbits,_ZTVN4cuda3__410cuda_errorE,comdat
	.align 8
	.type	_ZTVN4cuda3__410cuda_errorE, @object
	.size	_ZTVN4cuda3__410cuda_errorE, 40
_ZTVN4cuda3__410cuda_errorE:
	.quad	0
	.quad	_ZTIN4cuda3__410cuda_errorE
	.quad	_ZN4cuda3__410cuda_errorD1Ev
	.quad	_ZN4cuda3__410cuda_errorD0Ev
	.quad	_ZNKSt13runtime_error4whatEv
	.weak	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d
	.section	.bss._ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,"awG",@nobits,_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,comdat
	.align 8
	.type	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, @gnu_unique_object
	.size	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, 8
_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d:
	.zero	8
	.weak	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d
	.section	.bss._ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,"awG",@nobits,_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,comdat
	.align 8
	.type	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, @gnu_unique_object
	.size	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, 8
_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr, 8
_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr, 48
_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	48
	.weak	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name, 8
_ZGVZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name, 8
_ZZN3cub17CUB_200700_890_NS19DeviceSegmentedSort9SortPairsIjjPjS3_EE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS7_IT0_EEiiT1_T2_P11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 48
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	48
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsImjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 48
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	48
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjmjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr, 48
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	48
	.weak	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZGVZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name, 8
_ZZN3cub17CUB_200700_890_NS15DeviceRadixSort9SortPairsIjjjEE9cudaErrorPvRmRNS0_12DoubleBufferIT_EERNS6_IT0_EET1_iiP11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, 8
_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache
	.section	.bss._ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, 1536
_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache:
	.zero	1536
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E:
	.zero	1
	.weak	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, 8
_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count
	.section	.bss._ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,comdat
	.align 4
	.type	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, 4
_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count:
	.zero	4
	.weak	_ZN4cuda3std3__47nulloptE
	.section	.rodata._ZN4cuda3std3__47nulloptE,"aG",@progbits,_ZN4cuda3std3__47nulloptE,comdat
	.type	_ZN4cuda3std3__47nulloptE, @gnu_unique_object
	.size	_ZN4cuda3std3__47nulloptE, 1
_ZN4cuda3std3__47nulloptE:
	.zero	1
	.hidden	InitializeInjectionNvtx2_fnptr
	.weak	InitializeInjectionNvtx2_fnptr
	.bss
	.align 8
	.type	InitializeInjectionNvtx2_fnptr, @object
	.size	InitializeInjectionNvtx2_fnptr, 8
InitializeInjectionNvtx2_fnptr:
	.zero	8
	.hidden	nvtxGlobals_v3
	.weak	nvtxGlobals_v3
	.section	.data.rel.local,"aw"
	.align 32
	.type	nvtxGlobals_v3, @object
	.size	nvtxGlobals_v3, 1168
nvtxGlobals_v3:
	.long	0
	.zero	4
	.quad	16
	.quad	nvtxEtiGetModuleFunctionTable_v3
	.quad	24
	.long	3
	.long	0
	.quad	nvtxEtiSetInjectionNvtxVersion_v3
	.quad	nvtxMarkEx_impl_init_v3
	.quad	nvtxMarkA_impl_init_v3
	.quad	nvtxMarkW_impl_init_v3
	.quad	nvtxRangeStartEx_impl_init_v3
	.quad	nvtxRangeStartA_impl_init_v3
	.quad	nvtxRangeStartW_impl_init_v3
	.quad	nvtxRangeEnd_impl_init_v3
	.quad	nvtxRangePushEx_impl_init_v3
	.quad	nvtxRangePushA_impl_init_v3
	.quad	nvtxRangePushW_impl_init_v3
	.quad	nvtxRangePop_impl_init_v3
	.quad	nvtxNameCategoryA_impl_init_v3
	.quad	nvtxNameCategoryW_impl_init_v3
	.quad	nvtxNameOsThreadA_impl_init_v3
	.quad	nvtxNameOsThreadW_impl_init_v3
	.quad	nvtxNameCuDeviceA_impl_init_v3
	.quad	nvtxNameCuDeviceW_impl_init_v3
	.quad	nvtxNameCuContextA_impl_init_v3
	.quad	nvtxNameCuContextW_impl_init_v3
	.quad	nvtxNameCuStreamA_impl_init_v3
	.quad	nvtxNameCuStreamW_impl_init_v3
	.quad	nvtxNameCuEventA_impl_init_v3
	.quad	nvtxNameCuEventW_impl_init_v3
	.quad	nvtxNameClDeviceA_impl_init_v3
	.quad	nvtxNameClDeviceW_impl_init_v3
	.quad	nvtxNameClContextA_impl_init_v3
	.quad	nvtxNameClContextW_impl_init_v3
	.quad	nvtxNameClCommandQueueA_impl_init_v3
	.quad	nvtxNameClCommandQueueW_impl_init_v3
	.quad	nvtxNameClMemObjectA_impl_init_v3
	.quad	nvtxNameClMemObjectW_impl_init_v3
	.quad	nvtxNameClSamplerA_impl_init_v3
	.quad	nvtxNameClSamplerW_impl_init_v3
	.quad	nvtxNameClProgramA_impl_init_v3
	.quad	nvtxNameClProgramW_impl_init_v3
	.quad	nvtxNameClEventA_impl_init_v3
	.quad	nvtxNameClEventW_impl_init_v3
	.quad	nvtxNameCudaDeviceA_impl_init_v3
	.quad	nvtxNameCudaDeviceW_impl_init_v3
	.quad	nvtxNameCudaStreamA_impl_init_v3
	.quad	nvtxNameCudaStreamW_impl_init_v3
	.quad	nvtxNameCudaEventA_impl_init_v3
	.quad	nvtxNameCudaEventW_impl_init_v3
	.quad	nvtxDomainMarkEx_impl_init_v3
	.quad	nvtxDomainRangeStartEx_impl_init_v3
	.quad	nvtxDomainRangeEnd_impl_init_v3
	.quad	nvtxDomainRangePushEx_impl_init_v3
	.quad	nvtxDomainRangePop_impl_init_v3
	.quad	nvtxDomainResourceCreate_impl_init_v3
	.quad	nvtxDomainResourceDestroy_impl_init_v3
	.quad	nvtxDomainNameCategoryA_impl_init_v3
	.quad	nvtxDomainNameCategoryW_impl_init_v3
	.quad	nvtxDomainRegisterStringA_impl_init_v3
	.quad	nvtxDomainRegisterStringW_impl_init_v3
	.quad	nvtxDomainCreateA_impl_init_v3
	.quad	nvtxDomainCreateW_impl_init_v3
	.quad	nvtxDomainDestroy_impl_init_v3
	.quad	nvtxInitialize_impl_init_v3
	.quad	nvtxDomainSyncUserCreate_impl_init_v3
	.quad	nvtxDomainSyncUserDestroy_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.quad	nvtxDomainSyncUserReleasing_impl_init_v3
	.quad	0
	.quad	nvtxGlobals_v3+48
	.quad	nvtxGlobals_v3+56
	.quad	nvtxGlobals_v3+64
	.quad	nvtxGlobals_v3+72
	.quad	nvtxGlobals_v3+80
	.quad	nvtxGlobals_v3+88
	.quad	nvtxGlobals_v3+96
	.quad	nvtxGlobals_v3+104
	.quad	nvtxGlobals_v3+112
	.quad	nvtxGlobals_v3+120
	.quad	nvtxGlobals_v3+128
	.quad	nvtxGlobals_v3+136
	.quad	nvtxGlobals_v3+144
	.quad	nvtxGlobals_v3+152
	.quad	nvtxGlobals_v3+160
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+168
	.quad	nvtxGlobals_v3+176
	.quad	nvtxGlobals_v3+184
	.quad	nvtxGlobals_v3+192
	.quad	nvtxGlobals_v3+200
	.quad	nvtxGlobals_v3+208
	.quad	nvtxGlobals_v3+216
	.quad	nvtxGlobals_v3+224
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+232
	.quad	nvtxGlobals_v3+240
	.quad	nvtxGlobals_v3+248
	.quad	nvtxGlobals_v3+256
	.quad	nvtxGlobals_v3+264
	.quad	nvtxGlobals_v3+272
	.quad	nvtxGlobals_v3+280
	.quad	nvtxGlobals_v3+288
	.quad	nvtxGlobals_v3+296
	.quad	nvtxGlobals_v3+304
	.quad	nvtxGlobals_v3+312
	.quad	nvtxGlobals_v3+320
	.quad	nvtxGlobals_v3+328
	.quad	nvtxGlobals_v3+336
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+344
	.quad	nvtxGlobals_v3+352
	.quad	nvtxGlobals_v3+360
	.quad	nvtxGlobals_v3+368
	.quad	nvtxGlobals_v3+376
	.quad	nvtxGlobals_v3+384
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+392
	.quad	nvtxGlobals_v3+400
	.quad	nvtxGlobals_v3+408
	.quad	nvtxGlobals_v3+416
	.quad	nvtxGlobals_v3+424
	.quad	nvtxGlobals_v3+432
	.quad	nvtxGlobals_v3+440
	.quad	nvtxGlobals_v3+448
	.quad	nvtxGlobals_v3+456
	.quad	nvtxGlobals_v3+464
	.quad	nvtxGlobals_v3+472
	.quad	nvtxGlobals_v3+480
	.quad	nvtxGlobals_v3+488
	.quad	nvtxGlobals_v3+496
	.quad	nvtxGlobals_v3+504
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+512
	.quad	nvtxGlobals_v3+520
	.quad	nvtxGlobals_v3+528
	.quad	nvtxGlobals_v3+536
	.quad	nvtxGlobals_v3+544
	.quad	nvtxGlobals_v3+552
	.quad	0
	.weak	_ZN4cuda3std3__420unreachable_sentinelE
	.section	.rodata._ZN4cuda3std3__420unreachable_sentinelE,"aG",@progbits,_ZN4cuda3std3__420unreachable_sentinelE,comdat
	.type	_ZN4cuda3std3__420unreachable_sentinelE, @gnu_unique_object
	.size	_ZN4cuda3std3__420unreachable_sentinelE, 1
_ZN4cuda3std3__420unreachable_sentinelE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5crendE
	.section	.rodata._ZN4cuda3std3__45__cpo5crendE,"aG",@progbits,_ZN4cuda3std3__45__cpo5crendE,comdat
	.type	_ZN4cuda3std3__45__cpo5crendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5crendE, 1
_ZN4cuda3std3__45__cpo5crendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo7crbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo7crbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo7crbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo7crbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo7crbeginE, 1
_ZN4cuda3std3__45__cpo7crbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4rendE
	.section	.rodata._ZN4cuda3std3__45__cpo4rendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4rendE,comdat
	.type	_ZN4cuda3std3__45__cpo4rendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4rendE, 1
_ZN4cuda3std3__45__cpo4rendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6rbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6rbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6rbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6rbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6rbeginE, 1
_ZN4cuda3std3__45__cpo6rbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo8distanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo8distanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo8distanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo8distanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo8distanceE, 1
_ZN4cuda3std6ranges3__45__cpo8distanceE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5ssizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5ssizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5ssizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5ssizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5ssizeE, 1
_ZN4cuda3std6ranges3__45__cpo5ssizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4sizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4sizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4sizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4sizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4sizeE, 1
_ZN4cuda3std6ranges3__45__cpo4sizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5cdataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5cdataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5cdataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5cdataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5cdataE, 1
_ZN4cuda3std6ranges3__45__cpo5cdataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4dataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4dataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4dataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4dataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4dataE, 1
_ZN4cuda3std6ranges3__45__cpo4dataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4prevE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4prevE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4prevE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4prevE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4prevE, 1
_ZN4cuda3std6ranges3__45__cpo4prevE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4nextE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4nextE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4nextE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4nextE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4nextE, 1
_ZN4cuda3std6ranges3__45__cpo4nextE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_swapE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4cendE, 1
_ZN4cuda3std6ranges3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo6cbeginE, 1
_ZN4cuda3std6ranges3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo3endE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo3endE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo3endE, 1
_ZN4cuda3std6ranges3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5beginE, 1
_ZN4cuda3std6ranges3__45__cpo5beginE:
	.zero	1
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, 1
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo7advanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo7advanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo7advanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo7advanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo7advanceE, 1
_ZN4cuda3std6ranges3__45__cpo7advanceE:
	.zero	1
	.hidden	_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE
	.weak	_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE
	.section	.rodata._ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE,"aG",@progbits,_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE,comdat
	.type	_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE, @gnu_unique_object
	.size	_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE, 1
_ZN4cuda3std3__444_GLOBAL__N__0549c4bf_11_libcubwt_cu_e3e3f9c36ignoreE:
	.zero	1
	.weak	_ZN4cuda3std3__48in_placeE
	.section	.rodata._ZN4cuda3std3__48in_placeE,"aG",@progbits,_ZN4cuda3std3__48in_placeE,comdat
	.type	_ZN4cuda3std3__48in_placeE, @gnu_unique_object
	.size	_ZN4cuda3std3__48in_placeE, 1
_ZN4cuda3std3__48in_placeE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4cendE, 1
_ZN4cuda3std3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6cbeginE, 1
_ZN4cuda3std3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo3endE
	.section	.rodata._ZN4cuda3std3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std3__45__cpo3endE,comdat
	.type	_ZN4cuda3std3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo3endE, 1
_ZN4cuda3std3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5beginE, 1
_ZN4cuda3std3__45__cpo5beginE:
	.zero	1
	.weak	_ZN4cuda3std3__419piecewise_constructE
	.section	.rodata._ZN4cuda3std3__419piecewise_constructE,"aG",@progbits,_ZN4cuda3std3__419piecewise_constructE,comdat
	.type	_ZN4cuda3std3__419piecewise_constructE, @gnu_unique_object
	.size	_ZN4cuda3std3__419piecewise_constructE, 1
_ZN4cuda3std3__419piecewise_constructE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_moveE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_moveE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_moveE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_moveE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4swapE, 1
_ZN4cuda3std6ranges3__45__cpo4swapE:
	.zero	1
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

/*--

This file is a part of libcubwt, a library for CUDA accelerated
burrows wheeler transform construction.

   Copyright (c) 2022-2023 Ilya Grebnov <ilya.grebnov@gmail.com>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Please see the file LICENSE for full copyright and license details.

--*/

#ifndef LIBCUBWT_CUH
#define LIBCUBWT_CUH 1

#define LIBCUBWT_VERSION_MAJOR          1
#define LIBCUBWT_VERSION_MINOR          5
#define LIBCUBWT_VERSION_PATCH          0
#define LIBCUBWT_VERSION_STRING	        "1.5.0"

#define LIBCUBWT_NO_ERROR               0
#define LIBCUBWT_BAD_PARAMETER          -1
#define LIBCUBWT_NOT_ENOUGH_MEMORY      -2

#define LIBCUBWT_GPU_ERROR              -7
#define LIBCUBWT_GPU_NOT_SUPPORTED      -8
#define LIBCUBWT_GPU_NOT_ENOUGH_MEMORY  -9

#ifdef __cplusplus
extern "C" {
#endif

    #include <stdint.h>

    /**
    * Allocates storage on the CUDA device that allows reusing allocated memory with each libcubwt operation.
    * @param max_length The maximum length of string to support.
    * @return LIBCUBWT_NO_ERROR if no error occurred, libcubwt error code otherwise.
    */
    int64_t libcubwt_allocate_device_storage(void ** device_storage, int64_t max_length);

    /**
    * Destroys the previously allocated storage on the CUDA device.
    * @param device_storage The previously allocated storage on the CUDA device.
    * @return LIBCUBWT_NO_ERROR if no error occurred, libcubwt error code otherwise.
    */
    int64_t libcubwt_free_device_storage(void * device_storage);

    /**
    * Constructs the Burrows-Wheeler Transform (BWT) of a given string.
    * @param device_storage The previously allocated storage on the CUDA device.
    * @param T [0..n-1] The input string.
    * @param L [0..n-1] The output string (can be T).
    * @param n The length of the input string.
    * @return The primary index if no error occurred, libcubwt error code otherwise.
    */
    int64_t libcubwt_bwt(void * device_storage, const uint8_t * T, uint8_t * L, int64_t n);

    /**
    * Constructs the Burrows-Wheeler Transform (BWT) of a given string with auxiliary indexes.
    * @param device_storage The previously allocated storage on the CUDA device.
    * @param T [0..n-1] The input string.
    * @param L [0..n-1] The output string (can be T).
    * @param n The length of the input string.
    * @param r The sampling rate for auxiliary indexes (must be power of 2).
    * @param I [0..(n-1)/r] The output auxiliary indexes.
    * @return LIBCUBWT_NO_ERROR if no error occurred, libcubwt error code otherwise.
    */
    int64_t libcubwt_bwt_aux(void * device_storage, const uint8_t * T, uint8_t * L, int64_t n, int64_t r, uint32_t * I);

#ifdef __cplusplus
}
#endif

#endif

	.text
	.file	"libcubwt.hip"
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
