// Standard C++ includes
#include <algorithm>
#include <chrono>
#include <iostream>
#include <numeric>
#include <random>
#include <stdexcept>
#include <string>
#include <sstream>
#include <tuple>
#include <vector>

// Standard C includes
#include <cassert>
#include <cmath>

// CUDA includes
#include <cooperative_groups.h>
#include <cuda_runtime.h>
#include <curand_kernel.h>
#include <device_launch_parameters.h>

//------------------------------------------------------------------------
// Macros
//------------------------------------------------------------------------
#define SEED 124

#define CHECK_CUDA_ERRORS(call) {                                                                   \
    cudaError_t error = call;                                                                       \
    if (error != cudaSuccess) {                                                                     \
            std::ostringstream errorMessageStream;                                                  \
            errorMessageStream << "cuda error:" __FILE__ << ": " << __LINE__ << " ";                \
            errorMessageStream << cudaGetErrorString(error) << "(" << error << ")" << std::endl;    \
            throw std::runtime_error(errorMessageStream.str());                                     \
        }                                                                                           \
    }


template<typename T>
using HostDeviceArray = std::pair < T*, T* > ;


enum class Model
{
    Continuous,
    eProp,
};

__global__ void continuousDense(unsigned int numPre, unsigned int numPost,
                                float *d_output, const float *d_ePre, const float *d_g)
{
    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);

    if(id < (numPre * numPost)) {
        atomicAdd(&d_output[id % numPost], d_g[id] * d_ePre[id / numPost]);
    }
}

__global__ void epropALIFDense(unsigned int numPre, unsigned int numPost,
                               const float *d_zFilterPre,  const float *d_psiPost,
                               const float *d_fAvgPost, const float *d_ePost,
                               float * d_eFiltered, float *d_epsilonA, float *d_deltaG)
{
    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);

    constexpr float alpha = 0.95; // exp(-1.0f/20.0f)
    constexpr float rho = 0.999f; // exp(-1.0f/2000.0f)
    constexpr float fTargetTimestep = 0.01f; // (10.0f * 1.0f) / 1000.0f

    constexpr float cReg = 1.0f / 500000.0f;
    constexpr float beta = 0.0174f;

    if(id < (numPre * numPost)) {
        const unsigned int idPre = id / numPost;
        const unsigned int idPost = id % numPost;

        // Calculate some common factors in e and epsilon update
        float epsilonA = d_epsilonA[id];
        const float psiZFilter = d_psiPost[idPost] * d_zFilterPre[idPre];
        const float psiBetaEpsilonA = d_psiPost[idPost] * beta * epsilonA;

        // Calculate e and episilonA
        const float e = psiZFilter - psiBetaEpsilonA;
        d_epsilonA[id] = psiZFilter + ((rho * epsilonA) - psiBetaEpsilonA);

        // Calculate filtered version of eligibility trace
        float eFiltered = d_eFiltered[id];
        eFiltered = (eFiltered * alpha) + e;

        // Apply weight update
        d_deltaG[id] += (eFiltered * d_ePost[idPost]) + ((d_fAvgPost[idPost] - fTargetTimestep) * cReg * e);
        d_eFiltered[id] = eFiltered;
    }
}

__global__ void continuousDenseBlock(unsigned int numPre, unsigned int numPost, unsigned int numPostPadded,
                                     float *d_output, const float *d_ePre, const float *d_g)
{
    extern __shared__ float s_ePre[];

    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);
    const unsigned int idPost = id % numPostPadded;

    // Get indices of first presynaptic neuron and synapse
    const unsigned int idPreStart = (id / numPostPadded) * blockDim.x;
    const unsigned int idPreEnd = min(idPreStart + blockDim.x, numPre);
    const unsigned int numPreInBlock = idPreEnd - idPreStart;
    unsigned int idSyn = (idPreStart * numPost) + idPost;

    // Use first threads in block to ePre into shared memory
    if(threadIdx.x < numPreInBlock) {
        s_ePre[threadIdx.x] = d_ePre[idPreStart + threadIdx.x];
    }

    __syncthreads();

    if(idPost < numPost) {
        float output = 0.0f;
        for(unsigned int i = idPreStart; i < idPreEnd; i++) {
            output += d_g[idSyn] * s_ePre[i - idPreStart];

            idSyn += numPost;
        }
        atomicAdd(&d_output[idPost], output);
    }
}


__global__ void epropALIFDenseBlock(unsigned int numPre, unsigned int numPost, unsigned int numPostPadded,
                                    const float *d_zFilterPre, const float *d_psiPost,
                                    const float *d_fAvgPost, const float *d_ePost,
                                    float *d_eFiltered, float *d_epsilonA, float *d_deltaG)
{
    extern __shared__ float s_zFilterPre[];

    constexpr float alpha = 0.95; // exp(-1.0f/20.0f)
    constexpr float rho = 0.999f; // exp(-1.0f/2000.0f)
    constexpr float fTargetTimestep = 0.01f; // (10.0f * 1.0f) / 1000.0f

    constexpr float cReg = 1.0f / 500000.0f;
    constexpr float beta = 0.0174f;

    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);
    const unsigned int idPost = id % numPostPadded;

    // Get indices of first presynaptic neuron and synapse
    const unsigned int idPreStart = (id / numPostPadded) * blockDim.x;
    const unsigned int idPreEnd = min(idPreStart + blockDim.x, numPre);
    const unsigned int numPreInBlock = idPreEnd - idPreStart;
    unsigned int idSyn = (idPreStart * numPost) + idPost;

    // Use first threads in block to ePre into shared memory
    if(threadIdx.x < numPreInBlock) {
        s_zFilterPre[threadIdx.x] = d_zFilterPre[idPreStart + threadIdx.x];
    }

    __syncthreads();

    if(idPost < numPost) {
        const float psiPost = d_psiPost[idPost];
        const float fAvgPost = d_fAvgPost[idPost];
        const float ePost = d_ePost[idPost];

        for(unsigned int i = idPreStart; i < idPreEnd; i++) {
            // Calculate some common factors in e and epsilon update
            float epsilonA = d_epsilonA[idSyn];
            const float psiZFilter = psiPost * s_zFilterPre[i - idPreStart];
            const float psiBetaEpsilonA = psiPost * beta * epsilonA;

            // Calculate e and episilonA
            const float e = psiZFilter - psiBetaEpsilonA;
            d_epsilonA[idSyn] = psiZFilter + ((rho * epsilonA) - psiBetaEpsilonA);

            // Calculate filtered version of eligibility trace
            float eFiltered = d_eFiltered[idSyn];
            eFiltered = (eFiltered * alpha) + e;

            // Apply weight update
            d_deltaG[idSyn] += (eFiltered * ePost) + ((fAvgPost - fTargetTimestep) * cReg * e);
            d_eFiltered[idSyn] = eFiltered;


            idSyn += numPost;
        }
    }
}

//-----------------------------------------------------------------------------
// Host functions
//-----------------------------------------------------------------------------
template<typename T>
HostDeviceArray<T> allocateHostDevice(size_t count)
{
    T *array = nullptr;
    T *d_array = nullptr;
    CHECK_CUDA_ERRORS(cudaMallocHost(&array, count * sizeof(T)));
    CHECK_CUDA_ERRORS(cudaMalloc(&d_array, count * sizeof(T)));

    return std::make_pair(array, d_array);
}
//-----------------------------------------------------------------------------
template<typename T>
void hostToDeviceCopy(HostDeviceArray<T> &array, size_t count, bool deleteHost=false)
{
    CHECK_CUDA_ERRORS(cudaMemcpy(array.second, array.first, sizeof(T) * count, cudaMemcpyHostToDevice));
    if (deleteHost) {
        CHECK_CUDA_ERRORS(cudaFreeHost(array.first));
        array.first = nullptr;
    }
}
//-----------------------------------------------------------------------------
template<typename T>
void deviceToHostCopy(HostDeviceArray<T> &array, size_t count)
{
    CHECK_CUDA_ERRORS(cudaMemcpy(array.first, array.second, count * sizeof(T), cudaMemcpyDeviceToHost));
}
//-----------------------------------------------------------------------------
int main(int argc, char *argv[])
{
    unsigned int blockSize = 32;
    unsigned int numNeurons = 10000;
    unsigned int numTimesteps = 5000;

    // Read mode from command line
    Model model;
    if(argc < 2) {
        std::cerr << "Expected parameters specifying:" << std::endl;
        std::cerr << "\t Model (0 = Continuous, 1 = eProp)" << std::endl;
        return EXIT_FAILURE;
    }
    else {
        model = static_cast<Model>(std::stoul(argv[1]));
    }

    // If additional parameters are specified, read N
    if(argc > 2) {
        numNeurons = std::stoul(argv[2]);
    }
    if(argc > 3) {
        blockSize = std::stoul(argv[3]);
    }
    if(argc > 4) {
        numTimesteps = std::stoul(argv[4]);
    }

    std::cout << "Model:" << static_cast<int>(model) << ", num neurons:" << numNeurons << ", block size:" << blockSize << std::endl;

    const unsigned int numSynapses = numNeurons * numNeurons;

    const unsigned int numNeuronBlocks = (numNeurons + blockSize - 1) / blockSize;

    CHECK_CUDA_ERRORS(cudaSetDevice(0));

    cudaEvent_t updateStart;
    cudaEvent_t updateEnd;
    CHECK_CUDA_ERRORS(cudaEventCreate(&updateStart));
    CHECK_CUDA_ERRORS(cudaEventCreate(&updateEnd));

    std::mt19937 rng;
    std::normal_distribution<float> dis(0.0f, 1.0f);

    if(model == Model::Continuous) {
        // Create array to hold postsynaptic output
        auto output = allocateHostDevice<float>(numNeurons);
        
        // Create arrays to hold presynaptic state and weight
        auto ePre = allocateHostDevice<float>(numNeurons);
        auto g = allocateHostDevice<float>(numSynapses);

        // Randomize
        std::generate_n(&ePre.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&g.first[0], numSynapses, [&rng, &dis]() { return dis(rng); });

        hostToDeviceCopy(ePre, numNeurons);
        hostToDeviceCopy(g, numSynapses);

        // Zero output
        std::fill_n(&output.first[0], numNeurons, 0.0f);
        hostToDeviceCopy(output, numNeurons);

        {
            const unsigned int numBlocks = (numSynapses + blockSize - 1) / blockSize;
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(cudaEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                continuousDense<<<grid, threads>>>(numNeurons, numNeurons, output.second, ePre.second, g.second);
            }
            CHECK_CUDA_ERRORS(cudaEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(cudaEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(cudaEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(output, numNeurons);
            const float sum = std::accumulate(&output.first[0], &output.first[numNeurons], 0.0f);
            std::cout << "Continous Dense: sum:" << sum << ", time:" << time << std::endl;
        }

        // Zero output
        std::fill_n(&output.first[0], numNeurons, 0.0f);
        hostToDeviceCopy(output, numNeurons);

        {
            const unsigned int numBlocks = numNeuronBlocks * numNeuronBlocks;
            const unsigned int sharedBytes = blockSize * sizeof(unsigned int);
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(cudaEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                continuousDenseBlock<<<grid, threads, sharedBytes>>>(numNeurons, numNeurons, numNeuronBlocks * blockSize,
                                                                        output.second, ePre.second, g.second);
            }
            CHECK_CUDA_ERRORS(cudaEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(cudaEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(cudaEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(output, numNeurons);
            const float sum = std::accumulate(&output.first[0], &output.first[numNeurons], 0.0f);
            std::cout << "Continous Dense Block: sum:" << sum << ", time:" << time << std::endl;
        }
    }
    else {
        // Create array to hold presynaptic variables
        auto zFilterPre = allocateHostDevice<float>(numNeurons);

        // Create arrays to hold postsynaptic variables
        auto psiPost = allocateHostDevice<float>(numNeurons);
        auto fAvgPost = allocateHostDevice<float>(numNeurons);
        auto ePost = allocateHostDevice<float>(numNeurons);
        
        // Create arrays to hold synaptic variables
        auto eFiltered = allocateHostDevice<float>(numSynapses);
        auto epsilonA = allocateHostDevice<float>(numSynapses);
        auto deltaG = allocateHostDevice<float>(numSynapses);
        
        // Randomize pre and postsynaptic state
        std::generate_n(&zFilterPre.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&psiPost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&fAvgPost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&ePost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        hostToDeviceCopy(zFilterPre, numNeurons);
        hostToDeviceCopy(psiPost, numNeurons);
        hostToDeviceCopy(fAvgPost, numNeurons);
        hostToDeviceCopy(ePost, numNeurons);

        // Zero synaptic state
        std::fill_n(&eFiltered.first[0], numSynapses, 0.0f);
        std::fill_n(&epsilonA.first[0], numSynapses, 0.0f);
        std::fill_n(&deltaG.first[0], numSynapses, 0.0f);
        hostToDeviceCopy(eFiltered, numSynapses);
        hostToDeviceCopy(epsilonA, numSynapses);
        hostToDeviceCopy(deltaG, numSynapses);

        {
            const unsigned int numBlocks = (numSynapses + blockSize - 1) / blockSize;
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(cudaEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                epropALIFDense<<<grid, threads>>>(numNeurons, numNeurons,
                                                    zFilterPre.second,  psiPost.second,
                                                    fAvgPost.second, ePost.second,
                                                    eFiltered.second, epsilonA.second, deltaG.second);
            }
            CHECK_CUDA_ERRORS(cudaEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(cudaEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(cudaEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(eFiltered, numSynapses);
            deviceToHostCopy(epsilonA, numSynapses);
            deviceToHostCopy(deltaG, numSynapses);
            const float eFilteredSum = std::accumulate(&eFiltered.first[0], &eFiltered.first[numSynapses], 0.0f);
            const float epsilonASum = std::accumulate(&epsilonA.first[0], &epsilonA.first[numSynapses], 0.0f);
            const float deltaGSum = std::accumulate(&deltaG.first[0], &deltaG.first[numSynapses], 0.0f);
            std::cout << "eProp ALIF Dense: eFiltered sum:" << eFilteredSum << ", epsilonA sum:" << epsilonASum << ", deltaG sum:" << deltaGSum << ", time: " << time << std::endl;
        }

         // Zero synaptic state
        std::fill_n(&eFiltered.first[0], numSynapses, 0.0f);
        std::fill_n(&epsilonA.first[0], numSynapses, 0.0f);
        std::fill_n(&deltaG.first[0], numSynapses, 0.0f);
        hostToDeviceCopy(eFiltered, numSynapses);
        hostToDeviceCopy(epsilonA, numSynapses);
        hostToDeviceCopy(deltaG, numSynapses);

        {
            const unsigned int numBlocks = numNeuronBlocks * numNeuronBlocks;
            const unsigned int sharedBytes = blockSize * sizeof(unsigned int);
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(cudaEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                epropALIFDenseBlock<<<grid, threads, sharedBytes>>>(numNeurons, numNeurons, numNeuronBlocks * blockSize,
                                                                    zFilterPre.second,  psiPost.second,
                                                                    fAvgPost.second, ePost.second,
                                                                    eFiltered.second, epsilonA.second, deltaG.second);
            }
            CHECK_CUDA_ERRORS(cudaEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(cudaEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(cudaEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(eFiltered, numSynapses);
            deviceToHostCopy(epsilonA, numSynapses);
            deviceToHostCopy(deltaG, numSynapses);
            const float eFilteredSum = std::accumulate(&eFiltered.first[0], &eFiltered.first[numSynapses], 0.0f);
            const float epsilonASum = std::accumulate(&epsilonA.first[0], &epsilonA.first[numSynapses], 0.0f);
            const float deltaGSum = std::accumulate(&deltaG.first[0], &deltaG.first[numSynapses], 0.0f);
            std::cout << "eProp ALIF Dense Block: eFiltered sum:" << eFilteredSum << ", epsilonA sum:" << epsilonASum << ", deltaG sum:" << deltaGSum << ", time: " << time << std::endl;
        }
    
    }
    return EXIT_SUCCESS;
}

	.file	"tmpxft_003b1dc3_00000000-6_kernel.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB8407:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE8407:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0, @function
_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0:
.LFB9467:
	.cfi_startproc
	testl	%esi, %esi
	je	.L2
	movl	%esi, %esi
	leaq	(%rdi,%rsi,4), %rax
.L4:
	cmpq	%rdi, %rax
	je	.L2
	movss	%xmm0, (%rdi)
	addq	$4, %rdi
	jmp	.L4
.L2:
	ret
	.cfi_endproc
.LFE9467:
	.size	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0, .-_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	.align 2
	.type	_ZNSolsEPFRSoS_E.isra.0, @function
_ZNSolsEPFRSoS_E.isra.0:
.LFB9471:
	.cfi_startproc
	jmp	*%rsi
	.cfi_endproc
.LFE9471:
	.size	_ZNSolsEPFRSoS_E.isra.0, .-_ZNSolsEPFRSoS_E.isra.0
	.globl	_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_
	.type	_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_, @function
_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_:
.LFB8429:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	%edi, 28(%rsp)
	leaq	48(%rsp), %rdi
	movl	%esi, 24(%rsp)
	leaq	60(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	32(%rsp), %rdx
	movq	%rcx, 8(%rsp)
	leaq	40(%rsp), %rcx
	movq	%r8, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	28(%rsp), %rax
	movl	$1, 56(%rsp)
	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)
	movabsq	$4294967297, %rax
	movq	%rax, 48(%rsp)
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L9
	pushq	40(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z15continuousDensejjPfPKfS1_(%rip), %rdi
	pushq	40(%rsp)
	.cfi_def_cfa_offset 176
	movq	76(%rsp), %rcx
	movl	84(%rsp), %r8d
	movq	64(%rsp), %rsi
	movl	72(%rsp), %edx
	leaq	112(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L9:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L11
	call	__stack_chk_fail@PLT
.L11:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8429:
	.size	_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_, .-_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_
	.globl	_Z15continuousDensejjPfPKfS1_
	.type	_Z15continuousDensejjPfPKfS1_, @function
_Z15continuousDensejjPfPKfS1_:
.LFB8430:
	.cfi_startproc
	endbr64
	jmp	_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_
	.cfi_endproc
.LFE8430:
	.size	_Z15continuousDensejjPfPKfS1_, .-_Z15continuousDensejjPfPKfS1_
	.globl	_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_
	.type	_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_, @function
_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_:
.LFB8431:
	.cfi_startproc
	endbr64
	subq	$216, %rsp
	.cfi_def_cfa_offset 224
	movq	224(%rsp), %rax
	movl	%edi, 60(%rsp)
	leaq	80(%rsp), %rdi
	movl	%esi, 56(%rsp)
	leaq	92(%rsp), %rsi
	movq	%rax, 16(%rsp)
	movq	232(%rsp), %rax
	movq	%rdx, 48(%rsp)
	leaq	64(%rsp), %rdx
	movq	%rax, 8(%rsp)
	movq	240(%rsp), %rax
	movq	%rcx, 40(%rsp)
	leaq	72(%rsp), %rcx
	movq	%r8, 32(%rsp)
	movq	%r9, 24(%rsp)
	movq	%rax, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	leaq	60(%rsp), %rax
	movl	$1, 88(%rsp)
	movq	%rax, 128(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 184(%rsp)
	movq	%rsp, %rax
	movq	%rax, 192(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 80(%rsp)
	movq	%rax, 92(%rsp)
	movl	$1, 100(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L14
	pushq	72(%rsp)
	.cfi_def_cfa_offset 232
	leaq	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_(%rip), %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 240
	movq	108(%rsp), %rcx
	movl	116(%rsp), %r8d
	movq	96(%rsp), %rsi
	movl	104(%rsp), %edx
	leaq	144(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 232
	popq	%rdx
	.cfi_def_cfa_offset 224
.L14:
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	je	.L16
	call	__stack_chk_fail@PLT
.L16:
	addq	$216, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8431:
	.size	_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_, .-_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.type	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, @function
_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_:
.LFB8432:
	.cfi_startproc
	endbr64
	jmp	_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_
	.cfi_endproc
.LFE8432:
	.size	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, .-_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_
	.type	_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_, @function
_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_:
.LFB8433:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movl	%edi, 44(%rsp)
	leaq	72(%rsp), %rdi
	movl	%esi, 40(%rsp)
	leaq	84(%rsp), %rsi
	movl	%edx, 36(%rsp)
	leaq	56(%rsp), %rdx
	movq	%rcx, 24(%rsp)
	leaq	64(%rsp), %rcx
	movq	%r8, 16(%rsp)
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	44(%rsp), %rax
	movl	$1, 80(%rsp)
	movq	%rax, 120(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 72(%rsp)
	movq	%rax, 84(%rsp)
	movl	$1, 92(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L19
	pushq	64(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_Z20continuousDenseBlockjjjPfPKfS1_(%rip), %rdi
	pushq	64(%rsp)
	.cfi_def_cfa_offset 208
	movq	100(%rsp), %rcx
	movl	108(%rsp), %r8d
	movq	88(%rsp), %rsi
	movl	96(%rsp), %edx
	leaq	136(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L19:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8433:
	.size	_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_, .-_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_
	.globl	_Z20continuousDenseBlockjjjPfPKfS1_
	.type	_Z20continuousDenseBlockjjjPfPKfS1_, @function
_Z20continuousDenseBlockjjjPfPKfS1_:
.LFB8434:
	.cfi_startproc
	endbr64
	jmp	_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_
	.cfi_endproc
.LFE8434:
	.size	_Z20continuousDenseBlockjjjPfPKfS1_, .-_Z20continuousDenseBlockjjjPfPKfS1_
	.globl	_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_
	.type	_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_, @function
_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_:
.LFB8435:
	.cfi_startproc
	endbr64
	subq	$248, %rsp
	.cfi_def_cfa_offset 256
	movq	256(%rsp), %rax
	movl	%edi, 76(%rsp)
	leaq	104(%rsp), %rdi
	movl	%esi, 72(%rsp)
	leaq	116(%rsp), %rsi
	movq	%rax, 32(%rsp)
	movq	264(%rsp), %rax
	movl	%edx, 68(%rsp)
	leaq	88(%rsp), %rdx
	movq	%rax, 24(%rsp)
	movq	272(%rsp), %rax
	movq	%rcx, 56(%rsp)
	leaq	96(%rsp), %rcx
	movq	%rax, 16(%rsp)
	movq	280(%rsp), %rax
	movq	%r8, 48(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	76(%rsp), %rax
	movl	$1, 112(%rsp)
	movq	%rax, 152(%rsp)
	leaq	72(%rsp), %rax
	movq	%rax, 160(%rsp)
	leaq	68(%rsp), %rax
	movq	%rax, 168(%rsp)
	leaq	56(%rsp), %rax
	movq	%rax, 176(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 192(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 200(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 208(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 216(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 224(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 104(%rsp)
	movq	%rax, 116(%rsp)
	movl	$1, 124(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L24
	pushq	96(%rsp)
	.cfi_def_cfa_offset 264
	leaq	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_(%rip), %rdi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 272
	movq	132(%rsp), %rcx
	movl	140(%rsp), %r8d
	movq	120(%rsp), %rsi
	movl	128(%rsp), %edx
	leaq	168(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 264
	popq	%rdx
	.cfi_def_cfa_offset 256
.L24:
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	addq	$248, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8435:
	.size	_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_, .-_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.type	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, @function
_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_:
.LFB8436:
	.cfi_startproc
	endbr64
	jmp	_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_
	.cfi_endproc
.LFE8436:
	.size	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, .-_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_"
.LC1:
	.string	"_Z20continuousDenseBlockjjjPfPKfS1_"
.LC2:
	.string	"_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_"
.LC3:
	.string	"_Z15continuousDensejjPfPKfS1_"
.LC4:
	.string	"precalc_xorwow_matrix"
.LC5:
	.string	"precalc_xorwow_offset_matrix"
.LC6:
	.string	"mrg32k3aM1"
.LC7:
	.string	"mrg32k3aM2"
.LC8:
	.string	"mrg32k3aM1SubSeq"
.LC9:
	.string	"mrg32k3aM2SubSeq"
.LC10:
	.string	"mrg32k3aM1Seq"
.LC11:
	.string	"mrg32k3aM2Seq"
.LC12:
	.string	"__cr_lgamma_table"
.LC13:
	.string	"_ZN39_INTERNAL_0d0037ba_9_kernel_cu_2f1f58534cuda3std3__419piecewise_constructE"
.LC14:
	.string	"_ZN39_INTERNAL_0d0037ba_9_kernel_cu_2f1f58534cuda3std6ranges3__45__cpo4swapE"
.LC15:
	.string	"_ZN39_INTERNAL_0d0037ba_9_kernel_cu_2f1f58534cuda3std6ranges3__45__cpo9iter_moveE"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB8438:
	.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	.LC0(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_(%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	.LC1(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z20continuousDenseBlockjjjPfPKfS1_(%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	.LC2(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_(%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	.LC3(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z15continuousDensejjPfPKfS1_(%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	.LC4(%rip), %rdx
	movl	$102400, %r9d
	leaq	_ZL21precalc_xorwow_matrix(%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	.LC5(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$102400, %r9d
	leaq	_ZL28precalc_xorwow_offset_matrix(%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	.LC6(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$2304, %r9d
	leaq	_ZL10mrg32k3aM1(%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	.LC7(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$2304, %r9d
	leaq	_ZL10mrg32k3aM2(%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	.LC8(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$2016, %r9d
	leaq	_ZL16mrg32k3aM1SubSeq(%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	.LC9(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$2016, %r9d
	leaq	_ZL16mrg32k3aM2SubSeq(%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	.LC10(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$2304, %r9d
	leaq	_ZL13mrg32k3aM1Seq(%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	.LC11(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$2304, %r9d
	leaq	_ZL13mrg32k3aM2Seq(%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	$1
	.cfi_def_cfa_offset 32
	leaq	.LC12(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$72, %r9d
	leaq	_ZL17__cr_lgamma_table(%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	.LC13(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	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	.LC14(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4swapE(%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	.LC15(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_moveE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.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
.LFE8438:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text._ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev,"axG",@progbits,_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD5Ev,comdat
	.align 2
	.weak	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev
	.type	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev, @function
_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev:
.LFB8563:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	call	__errno_location@PLT
	cmpl	$0, (%rax)
	jne	.L31
	movl	(%rbx), %edx
	movl	%edx, (%rax)
.L31:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8563:
	.size	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev, .-_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev
	.weak	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD1Ev
	.set	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD1Ev,_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev
	.section	.rodata.str1.1
.LC16:
	.string	"stoul"
	.text
	.type	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0, @function
_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0:
.LFB9473:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA9473
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$48, %rsp
	.cfi_def_cfa_offset 96
	movl	%edx, 12(%rsp)
	leaq	28(%rsp), %r13
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	call	__errno_location@PLT
	movl	12(%rsp), %edx
	leaq	32(%rsp), %rsi
	movq	%rbx, %rdi
	movq	%rax, %rbp
	movl	(%rax), %eax
	movl	%eax, 28(%rsp)
	xorl	%eax, %eax
	movl	%eax, 0(%rbp)
	call	__isoc23_strtoul@PLT
	movq	%rax, %r14
	movq	32(%rsp), %rax
	cmpq	%rax, %rbx
	jne	.L35
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L47
	leaq	.LC16(%rip), %rdi
.LEHB0:
	call	_ZSt24__throw_invalid_argumentPKc@PLT
.L35:
	cmpl	$34, 0(%rbp)
	jne	.L37
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L47
	leaq	.LC16(%rip), %rdi
	call	_ZSt20__throw_out_of_rangePKc@PLT
.LEHE0:
.L37:
	testq	%r12, %r12
	je	.L39
	subq	%rbx, %rax
	movq	%rax, (%r12)
.L39:
	movq	%r13, %rdi
	call	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD1Ev
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L42
	jmp	.L47
.L43:
	endbr64
	movq	%rax, %rbx
.L40:
	movq	%r13, %rdi
	call	_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD1Ev
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L47
	movq	%rbx, %rdi
.LEHB1:
	call	_Unwind_Resume@PLT
.LEHE1:
.L47:
	call	__stack_chk_fail@PLT
.L42:
	addq	$48, %rsp
	.cfi_def_cfa_offset 48
	movq	%r14, %rax
	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
.LFE9473:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
.LLSDA9473:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE9473-.LLSDACSB9473
.LLSDACSB9473:
	.uleb128 .LEHB0-.LFB9473
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L43-.LFB9473
	.uleb128 0
	.uleb128 .LEHB1-.LFB9473
	.uleb128 .LEHE1-.LEHB1
	.uleb128 0
	.uleb128 0
.LLSDACSE9473:
	.text
	.size	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0, .-_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0
	.section	.rodata._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.str1.1,"aMS",@progbits,1
.LC17:
	.string	"basic_string: construction from null is not valid"
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC5IS3_EEPKcRKS3_,comdat
	.align 2
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, @function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_:
.LFB8767:
	.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	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	16(%rdi), %rax
	movq	%rax, (%rdi)
	testq	%rsi, %rsi
	jne	.L51
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L56
	leaq	.LC17(%rip), %rdi
	call	_ZSt19__throw_logic_errorPKc@PLT
.L51:
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	%rsi, %rbp
	call	strlen@PLT
	movq	%rax, (%rsp)
	leaq	0(%rbp,%rax), %r12
	cmpq	$15, %rax
	jbe	.L53
	movq	%rsp, %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm@PLT
	movq	%rax, (%rbx)
	movq	(%rsp), %rax
	movq	%rax, 16(%rbx)
.L53:
	movq	(%rbx), %rdi
	movq	%r12, %rdx
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@PLT
	movq	(%rsp), %rax
	movq	(%rbx), %rdx
	movq	%rax, 8(%rbx)
	movb	$0, (%rdx,%rax)
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L54
.L56:
	call	__stack_chk_fail@PLT
.L54:
	addq	$16, %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
.LFE8767:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, .-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
	.set	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.section	.rodata._Z18allocateHostDeviceIfESt4pairIPT_S2_Em.str1.1,"aMS",@progbits,1
.LC18:
	.string	"cuda error:/home/ubuntu/Datasets/stackv2/train-structured/neworderofjamie/synapse_dynamics/master/kernel.cu"
.LC19:
	.string	": "
.LC20:
	.string	" "
.LC21:
	.string	"("
.LC22:
	.string	")"
	.section	.text._Z18allocateHostDeviceIfESt4pairIPT_S2_Em,"axG",@progbits,_Z18allocateHostDeviceIfESt4pairIPT_S2_Em,comdat
	.weak	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	.type	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em, @function
_Z18allocateHostDeviceIfESt4pairIPT_S2_Em:
.LFB8915:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8915
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	xorl	%edx, %edx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	0(,%rdi,4), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rbp, %rsi
	subq	$440, %rsp
	.cfi_def_cfa_offset 480
	movq	%fs:40, %rax
	movq	%rax, 424(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rdi
	xorl	%eax, %eax
	movq	%rax, (%rsp)
	movq	%rax, 8(%rsp)
.LEHB2:
	call	cudaHostAlloc@PLT
	testl	%eax, %eax
	je	.L58
	leaq	48(%rsp), %rbp
	movl	%eax, %ebx
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE2:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB3:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$196, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE3:
	movl	$16, %edi
	leaq	16(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	56(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB4:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE4:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB5:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE5:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	424(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L77
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB6:
	call	__cxa_throw@PLT
.LEHE6:
.L58:
	leaq	8(%rsp), %rdi
	movq	%rbp, %rsi
.LEHB7:
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L60
	leaq	48(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE7:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB8:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$197, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE8:
	movl	$16, %edi
	leaq	16(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	56(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB9:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE9:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB10:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE10:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	424(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L77
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB11:
	call	__cxa_throw@PLT
.LEHE11:
.L60:
	movq	8(%rsp), %rdx
	movq	(%rsp), %rax
	movq	424(%rsp), %rcx
	subq	%fs:40, %rcx
	je	.L70
	jmp	.L77
.L73:
	endbr64
	jmp	.L82
.L72:
	endbr64
	jmp	.L81
.L71:
	endbr64
	jmp	.L80
.L76:
	endbr64
.L82:
	movq	%rax, %rbx
.L66:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L67
.L75:
	endbr64
.L81:
	movq	%rax, %rbx
.L67:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L68
.L74:
	endbr64
.L80:
	movq	%rax, %rbx
.L68:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	movq	424(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L77
	movq	%rbx, %rdi
.LEHB12:
	call	_Unwind_Resume@PLT
.LEHE12:
.L77:
	call	__stack_chk_fail@PLT
.L70:
	addq	$440, %rsp
	.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
	ret
	.cfi_endproc
.LFE8915:
	.section	.gcc_except_table
.LLSDA8915:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8915-.LLSDACSB8915
.LLSDACSB8915:
	.uleb128 .LEHB2-.LFB8915
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB3-.LFB8915
	.uleb128 .LEHE3-.LEHB3
	.uleb128 .L71-.LFB8915
	.uleb128 0
	.uleb128 .LEHB4-.LFB8915
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L72-.LFB8915
	.uleb128 0
	.uleb128 .LEHB5-.LFB8915
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L73-.LFB8915
	.uleb128 0
	.uleb128 .LEHB6-.LFB8915
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L71-.LFB8915
	.uleb128 0
	.uleb128 .LEHB7-.LFB8915
	.uleb128 .LEHE7-.LEHB7
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB8-.LFB8915
	.uleb128 .LEHE8-.LEHB8
	.uleb128 .L74-.LFB8915
	.uleb128 0
	.uleb128 .LEHB9-.LFB8915
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L75-.LFB8915
	.uleb128 0
	.uleb128 .LEHB10-.LFB8915
	.uleb128 .LEHE10-.LEHB10
	.uleb128 .L76-.LFB8915
	.uleb128 0
	.uleb128 .LEHB11-.LFB8915
	.uleb128 .LEHE11-.LEHB11
	.uleb128 .L74-.LFB8915
	.uleb128 0
	.uleb128 .LEHB12-.LFB8915
	.uleb128 .LEHE12-.LEHB12
	.uleb128 0
	.uleb128 0
.LLSDACSE8915:
	.section	.text._Z18allocateHostDeviceIfESt4pairIPT_S2_Em,"axG",@progbits,_Z18allocateHostDeviceIfESt4pairIPT_S2_Em,comdat
	.size	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em, .-_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	.section	.text._Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,"axG",@progbits,_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,comdat
	.weak	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.type	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb, @function
_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb:
.LFB8928:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8928
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$1, %ecx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movl	%edx, %ebp
	leaq	0(,%rsi,4), %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	8(%rdi), %rdi
	movq	(%rbx), %rsi
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
.LEHB13:
	call	cudaMemcpy@PLT
	testl	%eax, %eax
	je	.L84
	leaq	32(%rsp), %rbp
	movl	%eax, %r12d
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE13:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB14:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$205, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r12d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r12d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE14:
	movl	$16, %edi
	movq	%rsp, %r13
	call	__cxa_allocate_exception@PLT
	leaq	40(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB15:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE15:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB16:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE16:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L106
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB17:
	call	__cxa_throw@PLT
.LEHE17:
.L84:
	testb	%bpl, %bpl
	je	.L83
	movq	(%rbx), %rdi
.LEHB18:
	call	cudaFreeHost@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L87
	leaq	32(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE18:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB19:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$207, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r12d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r12d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE19:
	movl	$16, %edi
	movq	%rsp, %r13
	call	__cxa_allocate_exception@PLT
	leaq	40(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB20:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE20:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB21:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE21:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L106
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB22:
	call	__cxa_throw@PLT
.LEHE22:
.L87:
	xorl	%eax, %eax
	movq	%rax, (%rbx)
	jmp	.L83
.L100:
	endbr64
	jmp	.L109
.L99:
	endbr64
	jmp	.L108
.L98:
	endbr64
	jmp	.L107
.L103:
	endbr64
.L109:
	movq	%rax, %rbx
.L93:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L94
.L102:
	endbr64
.L108:
	movq	%rax, %rbx
.L94:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L95
.L101:
	endbr64
.L107:
	movq	%rax, %rbx
.L95:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L106
	movq	%rbx, %rdi
.LEHB23:
	call	_Unwind_Resume@PLT
.LEHE23:
.L83:
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	je	.L97
.L106:
	call	__stack_chk_fail@PLT
.L97:
	addq	$424, %rsp
	.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
	ret
	.cfi_endproc
.LFE8928:
	.section	.gcc_except_table
.LLSDA8928:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8928-.LLSDACSB8928
.LLSDACSB8928:
	.uleb128 .LEHB13-.LFB8928
	.uleb128 .LEHE13-.LEHB13
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB14-.LFB8928
	.uleb128 .LEHE14-.LEHB14
	.uleb128 .L98-.LFB8928
	.uleb128 0
	.uleb128 .LEHB15-.LFB8928
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L99-.LFB8928
	.uleb128 0
	.uleb128 .LEHB16-.LFB8928
	.uleb128 .LEHE16-.LEHB16
	.uleb128 .L100-.LFB8928
	.uleb128 0
	.uleb128 .LEHB17-.LFB8928
	.uleb128 .LEHE17-.LEHB17
	.uleb128 .L98-.LFB8928
	.uleb128 0
	.uleb128 .LEHB18-.LFB8928
	.uleb128 .LEHE18-.LEHB18
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB19-.LFB8928
	.uleb128 .LEHE19-.LEHB19
	.uleb128 .L101-.LFB8928
	.uleb128 0
	.uleb128 .LEHB20-.LFB8928
	.uleb128 .LEHE20-.LEHB20
	.uleb128 .L102-.LFB8928
	.uleb128 0
	.uleb128 .LEHB21-.LFB8928
	.uleb128 .LEHE21-.LEHB21
	.uleb128 .L103-.LFB8928
	.uleb128 0
	.uleb128 .LEHB22-.LFB8928
	.uleb128 .LEHE22-.LEHB22
	.uleb128 .L101-.LFB8928
	.uleb128 0
	.uleb128 .LEHB23-.LFB8928
	.uleb128 .LEHE23-.LEHB23
	.uleb128 0
	.uleb128 0
.LLSDACSE8928:
	.section	.text._Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,"axG",@progbits,_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,comdat
	.size	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb, .-_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.section	.text._Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,"axG",@progbits,_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,comdat
	.weak	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.type	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em, @function
_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em:
.LFB8931:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8931
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	0(,%rsi,4), %rdx
	movl	$2, %ecx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	8(%rdi), %rsi
	movq	(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
.LEHB24:
	call	cudaMemcpy@PLT
	testl	%eax, %eax
	je	.L110
	leaq	32(%rsp), %rbp
	movl	%eax, %ebx
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE24:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB25:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$215, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE25:
	movl	$16, %edi
	movq	%rsp, %r13
	call	__cxa_allocate_exception@PLT
	leaq	40(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB26:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE26:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB27:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE27:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L123
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB28:
	call	__cxa_throw@PLT
.LEHE28:
.L120:
	endbr64
	movq	%rax, %rbx
.L113:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L114
.L119:
	endbr64
	movq	%rax, %rbx
.L114:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L115
.L118:
	endbr64
	movq	%rax, %rbx
.L115:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L123
	movq	%rbx, %rdi
.LEHB29:
	call	_Unwind_Resume@PLT
.LEHE29:
.L110:
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	je	.L117
.L123:
	call	__stack_chk_fail@PLT
.L117:
	addq	$424, %rsp
	.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
	ret
	.cfi_endproc
.LFE8931:
	.section	.gcc_except_table
.LLSDA8931:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8931-.LLSDACSB8931
.LLSDACSB8931:
	.uleb128 .LEHB24-.LFB8931
	.uleb128 .LEHE24-.LEHB24
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB25-.LFB8931
	.uleb128 .LEHE25-.LEHB25
	.uleb128 .L118-.LFB8931
	.uleb128 0
	.uleb128 .LEHB26-.LFB8931
	.uleb128 .LEHE26-.LEHB26
	.uleb128 .L119-.LFB8931
	.uleb128 0
	.uleb128 .LEHB27-.LFB8931
	.uleb128 .LEHE27-.LEHB27
	.uleb128 .L120-.LFB8931
	.uleb128 0
	.uleb128 .LEHB28-.LFB8931
	.uleb128 .LEHE28-.LEHB28
	.uleb128 .L118-.LFB8931
	.uleb128 0
	.uleb128 .LEHB29-.LFB8931
	.uleb128 .LEHE29-.LEHB29
	.uleb128 0
	.uleb128 0
.LLSDACSE8931:
	.section	.text._Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,"axG",@progbits,_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,comdat
	.size	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em, .-_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.section	.text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv,comdat
	.align 2
	.weak	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	.type	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv, @function
_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv:
.LFB9451:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	xorl	%edx, %edx
	movl	$2567483615, %edi
.L126:
	movq	(%rax,%rdx,8), %rsi
	incq	%rdx
	movq	(%rax,%rdx,8), %rcx
	andq	$-2147483648, %rsi
	andl	$2147483647, %ecx
	orq	%rsi, %rcx
	movq	%rcx, %rsi
	shrq	%rsi
	xorq	3168(%rax,%rdx,8), %rsi
	andl	$1, %ecx
	je	.L125
	movq	%rdi, %rcx
.L125:
	xorq	%rsi, %rcx
	movq	%rcx, -8(%rax,%rdx,8)
	cmpq	$227, %rdx
	jne	.L126
	movl	$2567483615, %edi
.L128:
	movq	(%rax,%rdx,8), %rsi
	incq	%rdx
	movq	(%rax,%rdx,8), %rcx
	andq	$-2147483648, %rsi
	andl	$2147483647, %ecx
	orq	%rsi, %rcx
	movq	%rcx, %rsi
	shrq	%rsi
	xorq	-1824(%rax,%rdx,8), %rsi
	andl	$1, %ecx
	je	.L127
	movq	%rdi, %rcx
.L127:
	xorq	%rsi, %rcx
	movq	%rcx, -8(%rax,%rdx,8)
	cmpq	$623, %rdx
	jne	.L128
	movq	4984(%rax), %rdx
	movq	(%rax), %rcx
	andq	$-2147483648, %rdx
	andl	$2147483647, %ecx
	orq	%rcx, %rdx
	movq	%rdx, %rcx
	shrq	%rcx
	xorq	3168(%rax), %rcx
	andl	$1, %edx
	je	.L129
	movl	$2567483615, %edx
.L129:
	xorq	%rcx, %rdx
	movq	%rdx, 4984(%rax)
	xorl	%edx, %edx
	movq	%rdx, 4992(%rax)
	ret
	.cfi_endproc
.LFE9451:
	.size	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv, .-_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	.section	.text._ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_,"axG",@progbits,_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_,comdat
	.weak	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.type	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_, @function
_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_:
.LFB9392:
	.cfi_startproc
	endbr64
	cmpq	$623, 4992(%rdi)
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	jbe	.L142
	call	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
.L142:
	movq	4992(%rbx), %rax
	leaq	1(%rax), %rdx
	movq	(%rbx,%rax,8), %rax
	movq	%rdx, 4992(%rbx)
	movq	%rax, %rdx
	shrq	$11, %rdx
	movl	%edx, %edx
	xorq	%rdx, %rax
	movq	%rax, %rdx
	salq	$7, %rdx
	andl	$2636928640, %edx
	xorq	%rdx, %rax
	movq	%rax, %rdx
	salq	$15, %rdx
	andl	$4022730752, %edx
	xorq	%rdx, %rax
	movq	%rax, %rdx
	shrq	$18, %rdx
	xorq	%rdx, %rax
	js	.L143
	cvtsi2ssq	%rax, %xmm0
	jmp	.L144
.L143:
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	orq	%rax, %rdx
	cvtsi2ssq	%rdx, %xmm0
	addss	%xmm0, %xmm0
.L144:
	xorps	%xmm1, %xmm1
	addss	%xmm1, %xmm0
	mulss	.LC25(%rip), %xmm0
	comiss	.LC26(%rip), %xmm0
	jb	.L141
	movss	.LC23(%rip), %xmm0
.L141:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE9392:
	.size	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_, .-_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.section	.text._ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_,"axG",@progbits,_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_,comdat
	.align 2
	.weak	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	.type	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_, @function
_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_:
.LFB8925:
	.cfi_startproc
	endbr64
	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
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movss	(%rdi), %xmm3
	movss	4(%rdi), %xmm4
	cmpb	$0, 12(%rdi)
	movss	%xmm3, 16(%rsp)
	movss	%xmm4, 20(%rsp)
	je	.L153
	movb	$0, 12(%rdi)
	movss	8(%rdi), %xmm1
	jmp	.L150
.L157:
	xorps	%xmm0, %xmm0
	ucomiss	%xmm0, %xmm2
	jp	.L152
	jne	.L152
.L153:
	movq	%rbp, %rdi
	call	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	movq	%rbp, %rdi
	addss	%xmm0, %xmm0
	subss	.LC26(%rip), %xmm0
	movss	%xmm0, 12(%rsp)
	call	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	movss	12(%rsp), %xmm2
	addss	%xmm0, %xmm0
	mulss	%xmm2, %xmm2
	movaps	%xmm0, %xmm1
	subss	.LC26(%rip), %xmm1
	movaps	%xmm1, %xmm0
	mulss	%xmm1, %xmm0
	addss	%xmm0, %xmm2
	comiss	.LC26(%rip), %xmm2
	ja	.L153
	jmp	.L157
.L152:
	movaps	%xmm2, %xmm0
	movss	%xmm1, 28(%rsp)
	movss	%xmm2, 24(%rsp)
	call	logf@PLT
	mulss	.LC27(%rip), %xmm0
	movss	24(%rsp), %xmm2
	divss	%xmm2, %xmm0
	call	sqrtf@PLT
	movss	12(%rsp), %xmm2
	movss	28(%rsp), %xmm1
	movb	$1, 12(%rbx)
	mulss	%xmm0, %xmm2
	mulss	%xmm0, %xmm1
	movss	%xmm2, 8(%rbx)
.L150:
	movss	20(%rsp), %xmm0
	mulss	%xmm1, %xmm0
	addss	16(%rsp), %xmm0
	addq	$40, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8925:
	.size	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_, .-_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	.section	.rodata.str1.1
.LC28:
	.string	"Expected parameters specifying:"
.LC29:
	.string	"\t Model (0 = Continuous, 1 = eProp)"
.LC30:
	.string	"Model:"
.LC31:
	.string	", num neurons:"
.LC32:
	.string	", block size:"
.LC33:
	.string	"Continous Dense: sum:"
.LC34:
	.string	", time:"
.LC35:
	.string	"Continous Dense Block: sum:"
.LC36:
	.string	"eProp ALIF Dense: eFiltered sum:"
.LC37:
	.string	", epsilonA sum:"
.LC38:
	.string	", deltaG sum:"
.LC39:
	.string	", time: "
.LC40:
	.string	"eProp ALIF Dense Block: eFiltered sum:"
	.section	.text.startup
	.globl	main
	.type	main, @function
main:
.LFB8397:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8397
	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
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$1560, %rsp
	.cfi_def_cfa_offset 5712
	movq	%fs:40, %rax
	movq	%rax, 5640(%rsp)
	xorl	%eax, %eax
	cmpl	$1, %edi
	jg	.L159
	leaq	_ZSt4cerr(%rip), %rbx
	leaq	.LC28(%rip), %rsi
	movq	%rbx, %rdi
.LEHB30:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	leaq	.LC29(%rip), %rsi
	movq	%rbx, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	$1, %eax
	jmp	.L158
.L159:
	leaq	216(%rsp), %rax
	movq	%rsi, %r12
	movq	8(%rsi), %rsi
	movl	%edi, %r13d
	leaq	640(%rsp), %rbx
	movq	%rax, %rdx
	movq	%rax, 16(%rsp)
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE30:
	movq	640(%rsp), %rdi
	movl	$10, %edx
	xorl	%esi, %esi
.LEHB31:
	call	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0
.LEHE31:
	movq	%rbx, %rdi
	movq	%rax, %r14
	movl	%eax, %r15d
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	cmpl	$2, %r13d
	je	.L326
	movq	16(%r12), %rsi
	movq	16(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB32:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE32:
	movq	640(%rsp), %rdi
	movl	$10, %edx
	xorl	%esi, %esi
.LEHB33:
	call	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0
.LEHE33:
	movq	%rbx, %rdi
	movl	%eax, 24(%rsp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	cmpl	$3, %r13d
	je	.L327
	movq	24(%r12), %rsi
	movq	16(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB34:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE34:
	movq	640(%rsp), %rdi
	movl	$10, %edx
	xorl	%esi, %esi
.LEHB35:
	call	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0
.LEHE35:
	movq	%rbx, %rdi
	movl	%eax, %ebp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	cmpl	$4, %r13d
	je	.L328
	movq	32(%r12), %rsi
	movq	16(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB36:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE36:
	movq	640(%rsp), %rdi
	movl	$10, %edx
	xorl	%esi, %esi
.LEHB37:
	call	_ZNSt7__cxx115stoulERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi.isra.0
.LEHE37:
	movq	%rbx, %rdi
	movl	%eax, 40(%rsp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L161
.L326:
	movl	$10000, 24(%rsp)
.L327:
	movl	$32, %ebp
.L328:
	movl	$5000, 40(%rsp)
.L161:
	leaq	.LC30(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
.LEHB38:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r15d, %esi
	movq	%rax, %rdi
	call	_ZNSolsEi@PLT
	leaq	.LC31(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	24(%rsp), %r12d
	movq	%rax, %rdi
	movq	%r12, %rsi
	call	_ZNSo9_M_insertImEERSoT_@PLT
	leaq	.LC32(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %esi
	movq	%rax, %rdi
	call	_ZNSo9_M_insertImEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	xorl	%edi, %edi
	call	cudaSetDevice@PLT
	movl	%eax, %r13d
	testl	%eax, %eax
	je	.L162
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE38:
	leaq	.LC18(%rip), %rsi
	movq	%rbx, %rdi
.LEHB39:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$252, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r13d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r13d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE39:
	movl	$16, %edi
	leaq	264(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	648(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB40:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE40:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB41:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE41:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB42:
	call	__cxa_throw@PLT
.LEHE42:
.L162:
	leaq	64(%rsp), %rdi
.LEHB43:
	call	cudaEventCreate@PLT
	movl	%eax, %r13d
	testl	%eax, %eax
	je	.L164
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE43:
	leaq	.LC18(%rip), %rsi
	movq	%rbx, %rdi
.LEHB44:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$256, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r13d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r13d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE44:
	movl	$16, %edi
	leaq	264(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	648(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB45:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE45:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB46:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE46:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB47:
	call	__cxa_throw@PLT
.LEHE47:
.L164:
	leaq	72(%rsp), %rdi
.LEHB48:
	call	cudaEventCreate@PLT
	movl	%eax, %r13d
	testl	%eax, %eax
	je	.L166
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE48:
	leaq	.LC18(%rip), %rsi
	movq	%rbx, %rdi
.LEHB49:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$257, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r13d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r13d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE49:
	movl	$16, %edi
	leaq	264(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	648(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB50:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE50:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB51:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE51:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB52:
	call	__cxa_throw@PLT
.LEHE52:
.L166:
	movq	$5489, 640(%rsp)
	movl	$1, %edx
.L168:
	movq	-8(%rbx,%rdx,8), %rax
	movq	%rax, %rcx
	shrq	$30, %rcx
	xorq	%rcx, %rax
	imulq	$1812433253, %rax, %rax
	addl	%edx, %eax
	movq	%rax, (%rbx,%rdx,8)
	incq	%rdx
	cmpq	$624, %rdx
	jne	.L168
	movl	24(%rsp), %eax
	xorl	%edx, %edx
	movq	%r12, %rdi
	movq	$624, 5632(%rsp)
	movl	$0x00000000, 224(%rsp)
	movl	%eax, %ecx
	imull	%eax, %eax
	movb	$0, 228(%rsp)
	movl	%eax, 28(%rsp)
	leal	-1(%rbp,%rcx), %eax
	divl	%ebp
	movl	%eax, %r13d
	movl	$127, %eax
	salq	$55, %rax
	testl	%r14d, %r14d
	leaq	0(,%r12,4), %r14
	movq	%rax, 216(%rsp)
	movl	28(%rsp), %eax
	movq	%rax, 8(%rsp)
	jne	.L169
.LEHB53:
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%r12, %rdi
	movq	%rax, 168(%rsp)
	movq	%rdx, 176(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	8(%rsp), %rdi
	movq	%rax, 184(%rsp)
	movq	%rdx, 192(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	184(%rsp), %r15
	movq	%rax, 200(%rsp)
	leaq	(%r15,%r14), %rax
	movq	%rdx, 208(%rsp)
	movq	%rax, 32(%rsp)
.L170:
	cmpq	%r15, 32(%rsp)
	je	.L414
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movss	%xmm0, -4(%r15)
	jmp	.L170
.L414:
	movq	200(%rsp), %r15
	movq	8(%rsp), %rax
	leaq	(%r15,%rax,4), %rax
.L172:
	cmpq	%rax, %r15
	je	.L415
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	movq	%rax, 32(%rsp)
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movq	32(%rsp), %rax
	movss	%xmm0, -4(%r15)
	jmp	.L172
.L415:
	leaq	184(%rsp), %rdi
	xorl	%edx, %edx
	movq	%r12, %rsi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	8(%rsp), %rsi
	xorl	%edx, %edx
	leaq	200(%rsp), %rdi
	leaq	168(%rsp), %r15
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	24(%rsp), %esi
	xorps	%xmm0, %xmm0
	xorl	%edx, %edx
	movq	168(%rsp), %rdi
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movq	%r12, %rsi
	movq	%r15, %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	28(%rsp), %eax
	xorl	%edx, %edx
	movq	64(%rsp), %rdi
	movabsq	$4294967297, %rcx
	xorl	%esi, %esi
	movl	%ebp, 136(%rsp)
	leal	-1(%rax,%rbp), %eax
	movq	%rcx, 140(%rsp)
	divl	%ebp
	movq	%rcx, 156(%rsp)
	movl	%eax, 152(%rsp)
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L174
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE53:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB54:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$286, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE54:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB55:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE55:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB56:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE56:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB57:
	call	__cxa_throw@PLT
.LEHE57:
.L177:
	movl	144(%rsp), %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	136(%rsp), %rdx
	movq	152(%rsp), %rdi
	movl	160(%rsp), %esi
.LEHB58:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L176
	movl	24(%rsp), %esi
	movq	208(%rsp), %r8
	movq	192(%rsp), %rcx
	movq	176(%rsp), %rdx
	movl	%esi, %edi
	call	_Z43__device_stub__Z15continuousDensejjPfPKfS1_jjPfPKfS1_
.L176:
	incl	%ebx
.L174:
	cmpl	%ebx, 40(%rsp)
	jne	.L177
	movq	72(%rsp), %rdi
	xorl	%esi, %esi
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L178
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE58:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB59:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$290, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE59:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB60:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE60:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB61:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE61:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB62:
	call	__cxa_throw@PLT
.LEHE62:
.L178:
	movq	72(%rsp), %rdi
.LEHB63:
	call	cudaEventSynchronize@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L180
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE63:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB64:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$291, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE64:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB65:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE65:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB66:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE66:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB67:
	call	__cxa_throw@PLT
.LEHE67:
.L180:
	movq	72(%rsp), %rdx
	movq	64(%rsp), %rsi
	leaq	120(%rsp), %rdi
.LEHB68:
	call	cudaEventElapsedTime@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L182
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE68:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB69:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$293, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE69:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB70:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE70:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB71:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE71:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB72:
	call	__cxa_throw@PLT
.LEHE72:
.L182:
	leaq	168(%rsp), %rdi
	movq	%r12, %rsi
.LEHB73:
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	168(%rsp), %rbx
	xorps	%xmm0, %xmm0
	leaq	(%rbx,%r14), %rdx
	movq	%rbx, %rax
.L184:
	cmpq	%rax, %rdx
	je	.L416
	addss	(%rax), %xmm0
	addq	$4, %rax
	jmp	.L184
.L416:
	leaq	.LC33(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	movss	%xmm0, 8(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	8(%rsp), %xmm0
	movq	%rax, %rdi
	cvtss2sd	%xmm0, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC34(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	cvtss2sd	120(%rsp), %xmm0
	movq	%rax, %rdi
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	24(%rsp), %esi
	xorps	%xmm0, %xmm0
	movq	%rbx, %rdi
	xorl	%edx, %edx
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movq	%r12, %rsi
	movq	%r15, %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	%r13d, %edx
	movq	64(%rsp), %rdi
	xorl	%esi, %esi
	imull	%r13d, %edx
	movl	%ebp, 136(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 140(%rsp)
	movq	%rax, 156(%rsp)
	movl	%edx, 152(%rsp)
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L186
	imull	%ebp, %r13d
	leal	0(,%rbp,4), %ebp
	jmp	.L187
.L186:
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE73:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB74:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$310, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE74:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB75:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE75:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB76:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE76:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB77:
	call	__cxa_throw@PLT
.LEHE77:
.L190:
	movl	144(%rsp), %ecx
	xorl	%r9d, %r9d
	movq	%rbp, %r8
	movq	136(%rsp), %rdx
	movq	152(%rsp), %rdi
	movl	160(%rsp), %esi
.LEHB78:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L189
	movl	24(%rsp), %esi
	movq	208(%rsp), %r9
	movl	%r13d, %edx
	movq	192(%rsp), %r8
	movq	176(%rsp), %rcx
	movl	%esi, %edi
	call	_Z49__device_stub__Z20continuousDenseBlockjjjPfPKfS1_jjjPfPKfS1_
.L189:
	incl	%ebx
.L187:
	cmpl	%ebx, 40(%rsp)
	jne	.L190
	movq	72(%rsp), %rdi
	xorl	%esi, %esi
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L191
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE78:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB79:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$315, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE79:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB80:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE80:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB81:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE81:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB82:
	call	__cxa_throw@PLT
.LEHE82:
.L191:
	movq	72(%rsp), %rdi
.LEHB83:
	call	cudaEventSynchronize@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L193
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE83:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB84:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$316, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE84:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB85:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE85:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB86:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE86:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB87:
	call	__cxa_throw@PLT
.LEHE87:
.L193:
	movq	72(%rsp), %rdx
	movq	64(%rsp), %rsi
	leaq	120(%rsp), %rdi
.LEHB88:
	call	cudaEventElapsedTime@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L195
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE88:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB89:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$318, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE89:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB90:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE90:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB91:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE91:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB92:
	call	__cxa_throw@PLT
.LEHE92:
.L195:
	leaq	168(%rsp), %rdi
	movq	%r12, %rsi
.LEHB93:
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	168(%rsp), %rax
	xorps	%xmm0, %xmm0
	addq	%rax, %r14
.L197:
	cmpq	%rax, %r14
	je	.L417
	addss	(%rax), %xmm0
	addq	$4, %rax
	jmp	.L197
.L417:
	leaq	.LC35(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	movss	%xmm0, 8(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	8(%rsp), %xmm0
	movq	%rax, %rdi
	cvtss2sd	%xmm0, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC34(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	cvtss2sd	120(%rsp), %xmm0
	movq	%rax, %rdi
.L398:
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	xorl	%eax, %eax
	jmp	.L158
.L169:
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%r12, %rdi
	movq	%rax, 104(%rsp)
	movq	%rdx, 112(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%r12, %rdi
	movq	%rax, 120(%rsp)
	movq	%rdx, 128(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%r12, %rdi
	movq	%rax, 136(%rsp)
	movq	%rdx, 144(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	8(%rsp), %rdi
	movq	%rax, 152(%rsp)
	movq	%rdx, 160(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	8(%rsp), %rdi
	movq	%rax, 168(%rsp)
	movq	%rdx, 176(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	8(%rsp), %rdi
	movq	%rax, 184(%rsp)
	movq	%rdx, 192(%rsp)
	call	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	104(%rsp), %r15
	movq	%rax, 200(%rsp)
	leaq	(%r15,%r14), %rax
	movq	%rdx, 208(%rsp)
	movq	%rax, 32(%rsp)
.L199:
	cmpq	%r15, 32(%rsp)
	je	.L418
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movss	%xmm0, -4(%r15)
	jmp	.L199
.L418:
	movq	120(%rsp), %r15
	leaq	(%r15,%r14), %rax
	movq	%rax, 32(%rsp)
.L201:
	cmpq	%r15, 32(%rsp)
	je	.L419
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movss	%xmm0, -4(%r15)
	jmp	.L201
.L419:
	movq	136(%rsp), %r15
	leaq	(%r15,%r14), %rax
	movq	%rax, 32(%rsp)
.L203:
	cmpq	%r15, 32(%rsp)
	je	.L420
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movss	%xmm0, -4(%r15)
	jmp	.L203
.L420:
	movq	152(%rsp), %r15
	addq	%r15, %r14
.L205:
	cmpq	%r15, %r14
	je	.L421
	movq	16(%rsp), %rdi
	movq	%rbx, %rsi
	addq	$4, %r15
	call	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_
	movss	%xmm0, -4(%r15)
	jmp	.L205
.L421:
	movq	%r12, %rsi
	leaq	104(%rsp), %rdi
	xorl	%edx, %edx
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	%r12, %rsi
	leaq	120(%rsp), %rdi
	xorl	%edx, %edx
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	%r12, %rsi
	xorl	%edx, %edx
	leaq	136(%rsp), %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	%r12, %rsi
	xorl	%edx, %edx
	leaq	152(%rsp), %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	28(%rsp), %esi
	movq	168(%rsp), %rdi
	xorps	%xmm0, %xmm0
	leaq	168(%rsp), %r14
	xorl	%edx, %edx
	leaq	184(%rsp), %r12
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movl	28(%rsp), %esi
	movq	184(%rsp), %rdi
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movl	28(%rsp), %esi
	movq	200(%rsp), %rdi
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	8(%rsp), %rsi
	xorl	%edx, %edx
	movq	%r12, %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	8(%rsp), %rsi
	leaq	200(%rsp), %rdi
	xorl	%edx, %edx
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	28(%rsp), %eax
	xorl	%edx, %edx
	movq	64(%rsp), %rdi
	movabsq	$4294967297, %rcx
	xorl	%esi, %esi
	movl	%ebp, 80(%rsp)
	leal	-1(%rax,%rbp), %eax
	movq	%rcx, 84(%rsp)
	divl	%ebp
	movq	%rcx, 96(%rsp)
	movl	%eax, 92(%rsp)
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L207
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE93:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB94:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$362, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE94:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB95:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE95:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB96:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE96:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB97:
	call	__cxa_throw@PLT
.LEHE97:
.L210:
	movl	88(%rsp), %ecx
	movq	80(%rsp), %rdx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	92(%rsp), %rdi
	movl	100(%rsp), %esi
.LEHB98:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L209
	pushq	%rax
	.cfi_def_cfa_offset 5720
	pushq	216(%rsp)
	.cfi_def_cfa_offset 5728
	pushq	208(%rsp)
	.cfi_def_cfa_offset 5736
	pushq	200(%rsp)
	.cfi_def_cfa_offset 5744
	movl	56(%rsp), %esi
	movq	192(%rsp), %r9
	movq	176(%rsp), %r8
	movq	160(%rsp), %rcx
	movq	144(%rsp), %rdx
	movl	%esi, %edi
	call	_Z54__device_stub__Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_jjPKfS0_S0_S0_PfS1_S1_
	addq	$32, %rsp
	.cfi_def_cfa_offset 5712
.L209:
	incl	%ebx
.L207:
	cmpl	%ebx, 40(%rsp)
	jne	.L210
	movq	72(%rsp), %rdi
	xorl	%esi, %esi
	call	cudaEventRecord@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L211
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE98:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB99:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$369, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE99:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB100:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE100:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB101:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE101:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB102:
	call	__cxa_throw@PLT
.LEHE102:
.L211:
	movq	72(%rsp), %rdi
.LEHB103:
	call	cudaEventSynchronize@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L213
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE103:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB104:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$370, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE104:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB105:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE105:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB106:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE106:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB107:
	call	__cxa_throw@PLT
.LEHE107:
.L213:
	movq	72(%rsp), %rdx
	movq	64(%rsp), %rsi
	leaq	60(%rsp), %rdi
.LEHB108:
	call	cudaEventElapsedTime@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L215
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE108:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB109:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$372, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebx, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebx, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE109:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB110:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE110:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB111:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE111:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB112:
	call	__cxa_throw@PLT
.LEHE112:
.L215:
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
.LEHB113:
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	8(%rsp), %rsi
	movq	%r12, %rdi
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	8(%rsp), %rsi
	leaq	200(%rsp), %rdi
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	8(%rsp), %rax
	movq	168(%rsp), %r15
	xorps	%xmm0, %xmm0
	leaq	0(,%rax,4), %rbx
	movq	%r15, %rax
	leaq	(%r15,%rbx), %rcx
.L217:
	cmpq	%rax, %rcx
	je	.L422
	addss	(%rax), %xmm0
	addq	$4, %rax
	jmp	.L217
.L422:
	movq	184(%rsp), %r14
	xorps	%xmm2, %xmm2
	leaq	(%r14,%rbx), %rcx
	movq	%r14, %rax
.L219:
	cmpq	%rax, %rcx
	je	.L423
	addss	(%rax), %xmm2
	addq	$4, %rax
	jmp	.L219
.L423:
	movq	200(%rsp), %r12
	xorps	%xmm1, %xmm1
	leaq	(%r12,%rbx), %rcx
	movq	%r12, %rax
.L221:
	cmpq	%rax, %rcx
	je	.L424
	addss	(%rax), %xmm1
	addq	$4, %rax
	jmp	.L221
.L424:
	leaq	.LC36(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	movss	%xmm1, 16(%rsp)
	movss	%xmm2, 32(%rsp)
	movss	%xmm0, 44(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	44(%rsp), %xmm0
	movq	%rax, %rdi
	cvtss2sd	%xmm0, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC37(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	32(%rsp), %xmm2
	movq	%rax, %rdi
	cvtss2sd	%xmm2, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC38(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	16(%rsp), %xmm1
	movq	%rax, %rdi
	cvtss2sd	%xmm1, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC39(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	cvtss2sd	60(%rsp), %xmm0
	movq	%rax, %rdi
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movl	28(%rsp), %esi
	xorps	%xmm0, %xmm0
	movq	%r15, %rdi
	xorl	%edx, %edx
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movl	28(%rsp), %esi
	movq	%r14, %rdi
	leaq	168(%rsp), %r14
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movl	28(%rsp), %esi
	movq	%r12, %rdi
	call	_ZSt6fill_nIPfjfET_S1_T0_RKT1_.isra.0
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	8(%rsp), %rsi
	leaq	184(%rsp), %rdi
	xorl	%edx, %edx
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	8(%rsp), %rsi
	leaq	200(%rsp), %rdi
	xorl	%edx, %edx
	call	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movl	%r13d, %edx
	movq	64(%rsp), %rdi
	xorl	%esi, %esi
	imull	%r13d, %edx
	movl	%ebp, 80(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 84(%rsp)
	movq	%rax, 96(%rsp)
	movl	%edx, 92(%rsp)
	call	cudaEventRecord@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	jne	.L223
	imull	%ebp, %r13d
	leal	0(,%rbp,4), %ebp
	jmp	.L224
.L223:
	leaq	264(%rsp), %rbp
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE113:
	leaq	.LC18(%rip), %rsi
	movq	%rbp, %rdi
.LEHB114:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$397, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%r12d, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%r12d, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE114:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %r12
.LEHB115:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE115:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB116:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE116:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB117:
	call	__cxa_throw@PLT
.LEHE117:
.L227:
	movl	88(%rsp), %ecx
	movq	80(%rsp), %rdx
	xorl	%r9d, %r9d
	movq	%rbp, %r8
	movq	92(%rsp), %rdi
	movl	100(%rsp), %esi
.LEHB118:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L226
	pushq	208(%rsp)
	.cfi_def_cfa_offset 5720
	movl	%r13d, %edx
	pushq	200(%rsp)
	.cfi_def_cfa_offset 5728
	pushq	192(%rsp)
	.cfi_def_cfa_offset 5736
	pushq	184(%rsp)
	.cfi_def_cfa_offset 5744
	movl	56(%rsp), %esi
	movq	176(%rsp), %r9
	movq	160(%rsp), %r8
	movq	144(%rsp), %rcx
	movl	%esi, %edi
	call	_Z60__device_stub__Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_jjjPKfS0_S0_S0_PfS1_S1_
	addq	$32, %rsp
	.cfi_def_cfa_offset 5712
.L226:
	incl	%r12d
.L224:
	cmpl	%r12d, 40(%rsp)
	jne	.L227
	movq	72(%rsp), %rdi
	xorl	%esi, %esi
	call	cudaEventRecord@PLT
	movl	%eax, %ebp
	testl	%eax, %eax
	je	.L228
	leaq	264(%rsp), %r12
	movq	%r12, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE118:
	leaq	.LC18(%rip), %rsi
	movq	%r12, %rdi
.LEHB119:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$404, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebp, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE119:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %rbp
.LEHB120:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE120:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB121:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE121:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%rbp, %rdi
.LEHB122:
	call	__cxa_throw@PLT
.LEHE122:
.L228:
	movq	72(%rsp), %rdi
.LEHB123:
	call	cudaEventSynchronize@PLT
	movl	%eax, %ebp
	testl	%eax, %eax
	je	.L230
	leaq	264(%rsp), %r12
	movq	%r12, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE123:
	leaq	.LC18(%rip), %rsi
	movq	%r12, %rdi
.LEHB124:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$405, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebp, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE124:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %rbp
.LEHB125:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE125:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB126:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE126:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%rbp, %rdi
.LEHB127:
	call	__cxa_throw@PLT
.LEHE127:
.L230:
	movq	72(%rsp), %rdx
	movq	64(%rsp), %rsi
	leaq	60(%rsp), %rdi
.LEHB128:
	call	cudaEventElapsedTime@PLT
	movl	%eax, %ebp
	testl	%eax, %eax
	je	.L232
	leaq	264(%rsp), %r12
	movq	%r12, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev@PLT
.LEHE128:
	leaq	.LC18(%rip), %rsi
	movq	%r12, %rdi
.LEHB129:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC19(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$407, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC20(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	%ebp, %edi
	call	cudaGetErrorString@PLT
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	leaq	.LC21(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	%ebp, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC22(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE129:
	movl	$16, %edi
	leaq	232(%rsp), %r13
	call	__cxa_allocate_exception@PLT
	leaq	272(%rsp), %rsi
	movq	%r13, %rdi
	movq	%rax, %rbp
.LEHB130:
	call	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@PLT
.LEHE130:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB131:
	call	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE131:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
	movq	_ZNSt13runtime_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt13runtime_error(%rip), %rsi
	movq	%rbp, %rdi
.LEHB132:
	call	__cxa_throw@PLT
.LEHE132:
.L232:
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
.LEHB133:
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	8(%rsp), %rsi
	leaq	184(%rsp), %rdi
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	8(%rsp), %rsi
	leaq	200(%rsp), %rdi
	call	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	movq	168(%rsp), %rax
	xorps	%xmm0, %xmm0
	leaq	(%rax,%rbx), %rdx
.L234:
	cmpq	%rax, %rdx
	je	.L425
	addss	(%rax), %xmm0
	addq	$4, %rax
	jmp	.L234
.L425:
	movq	184(%rsp), %rax
	xorps	%xmm2, %xmm2
	leaq	(%rax,%rbx), %rdx
.L236:
	cmpq	%rax, %rdx
	je	.L426
	addss	(%rax), %xmm2
	addq	$4, %rax
	jmp	.L236
.L426:
	movq	200(%rsp), %rax
	xorps	%xmm1, %xmm1
	addq	%rax, %rbx
.L238:
	cmpq	%rax, %rbx
	je	.L427
	addss	(%rax), %xmm1
	addq	$4, %rax
	jmp	.L238
.L427:
	leaq	.LC40(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
	movss	%xmm1, 8(%rsp)
	movss	%xmm2, 24(%rsp)
	movss	%xmm0, 16(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	16(%rsp), %xmm0
	movq	%rax, %rdi
	cvtss2sd	%xmm0, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC37(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	24(%rsp), %xmm2
	movq	%rax, %rdi
	cvtss2sd	%xmm2, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC38(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movss	8(%rsp), %xmm1
	movq	%rax, %rdi
	cvtss2sd	%xmm1, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	leaq	.LC39(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	cvtss2sd	60(%rsp), %xmm0
	movq	%rax, %rdi
	jmp	.L398
.L329:
	endbr64
	jmp	.L408
.L330:
	endbr64
	jmp	.L408
.L331:
	endbr64
	jmp	.L408
.L332:
	endbr64
.L408:
	movq	%rax, %rbp
.L247:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L403
.L335:
	endbr64
	jmp	.L412
.L334:
	endbr64
	jmp	.L409
.L333:
	endbr64
	jmp	.L405
.L338:
	endbr64
	jmp	.L412
.L337:
	endbr64
	jmp	.L409
.L336:
	endbr64
	jmp	.L405
.L341:
	endbr64
.L412:
	movq	%rax, %rbp
.L257:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L258
.L340:
	endbr64
.L409:
	movq	%rax, %rbp
.L258:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L259
.L339:
	endbr64
.L405:
	movq	%rax, %rbp
.L259:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
.L403:
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	movq	%rbp, %rdi
	je	.L401
	jmp	.L400
.L344:
	endbr64
	jmp	.L413
.L343:
	endbr64
	jmp	.L410
.L342:
	endbr64
	jmp	.L406
.L347:
	endbr64
	jmp	.L413
.L346:
	endbr64
	jmp	.L410
.L345:
	endbr64
	jmp	.L406
.L350:
	endbr64
	jmp	.L413
.L349:
	endbr64
	jmp	.L410
.L348:
	endbr64
	jmp	.L406
.L353:
	endbr64
	jmp	.L413
.L352:
	endbr64
	jmp	.L410
.L351:
	endbr64
	jmp	.L406
.L356:
	endbr64
	jmp	.L413
.L355:
	endbr64
	jmp	.L410
.L354:
	endbr64
	jmp	.L406
.L359:
	endbr64
	jmp	.L413
.L358:
	endbr64
	jmp	.L410
.L357:
	endbr64
	jmp	.L406
.L362:
	endbr64
	jmp	.L413
.L361:
	endbr64
	jmp	.L410
.L360:
	endbr64
	jmp	.L406
.L365:
	endbr64
	jmp	.L413
.L364:
	endbr64
	jmp	.L410
.L363:
	endbr64
	jmp	.L406
.L368:
	endbr64
	jmp	.L413
.L367:
	endbr64
	jmp	.L410
.L366:
	endbr64
	jmp	.L406
.L371:
	endbr64
	jmp	.L413
.L370:
	endbr64
	jmp	.L410
.L369:
	endbr64
	jmp	.L406
.L374:
	endbr64
	jmp	.L413
.L373:
	endbr64
	jmp	.L410
.L372:
	endbr64
	jmp	.L406
.L377:
	endbr64
	jmp	.L413
.L376:
	endbr64
	jmp	.L410
.L375:
	endbr64
	jmp	.L406
.L380:
	endbr64
.L413:
	movq	%rax, %rbx
.L309:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L310
.L379:
	endbr64
.L410:
	movq	%rax, %rbx
.L310:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L311
.L378:
	endbr64
.L406:
	movq	%rax, %rbx
.L311:
	movq	%rbp, %rdi
	jmp	.L402
.L383:
	endbr64
	jmp	.L411
.L382:
	endbr64
	jmp	.L407
.L381:
	endbr64
	jmp	.L404
.L386:
	endbr64
	jmp	.L411
.L385:
	endbr64
	jmp	.L407
.L384:
	endbr64
	jmp	.L404
.L389:
	endbr64
.L411:
	movq	%rax, %rbx
.L321:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L322
.L388:
	endbr64
.L407:
	movq	%rax, %rbx
.L322:
	movq	%rbp, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L323
.L387:
	endbr64
.L404:
	movq	%rax, %rbx
.L323:
	movq	%r12, %rdi
.L402:
	call	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	movq	%rbx, %rdi
	movq	5640(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L400
.L401:
	call	_Unwind_Resume@PLT
.LEHE133:
.L158:
	movq	5640(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L325
.L400:
	call	__stack_chk_fail@PLT
.L325:
	addq	$5656, %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
.LFE8397:
	.section	.gcc_except_table
.LLSDA8397:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8397-.LLSDACSB8397
.LLSDACSB8397:
	.uleb128 .LEHB30-.LFB8397
	.uleb128 .LEHE30-.LEHB30
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB31-.LFB8397
	.uleb128 .LEHE31-.LEHB31
	.uleb128 .L329-.LFB8397
	.uleb128 0
	.uleb128 .LEHB32-.LFB8397
	.uleb128 .LEHE32-.LEHB32
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB33-.LFB8397
	.uleb128 .LEHE33-.LEHB33
	.uleb128 .L330-.LFB8397
	.uleb128 0
	.uleb128 .LEHB34-.LFB8397
	.uleb128 .LEHE34-.LEHB34
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB35-.LFB8397
	.uleb128 .LEHE35-.LEHB35
	.uleb128 .L331-.LFB8397
	.uleb128 0
	.uleb128 .LEHB36-.LFB8397
	.uleb128 .LEHE36-.LEHB36
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB37-.LFB8397
	.uleb128 .LEHE37-.LEHB37
	.uleb128 .L332-.LFB8397
	.uleb128 0
	.uleb128 .LEHB38-.LFB8397
	.uleb128 .LEHE38-.LEHB38
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB39-.LFB8397
	.uleb128 .LEHE39-.LEHB39
	.uleb128 .L333-.LFB8397
	.uleb128 0
	.uleb128 .LEHB40-.LFB8397
	.uleb128 .LEHE40-.LEHB40
	.uleb128 .L334-.LFB8397
	.uleb128 0
	.uleb128 .LEHB41-.LFB8397
	.uleb128 .LEHE41-.LEHB41
	.uleb128 .L335-.LFB8397
	.uleb128 0
	.uleb128 .LEHB42-.LFB8397
	.uleb128 .LEHE42-.LEHB42
	.uleb128 .L333-.LFB8397
	.uleb128 0
	.uleb128 .LEHB43-.LFB8397
	.uleb128 .LEHE43-.LEHB43
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB44-.LFB8397
	.uleb128 .LEHE44-.LEHB44
	.uleb128 .L336-.LFB8397
	.uleb128 0
	.uleb128 .LEHB45-.LFB8397
	.uleb128 .LEHE45-.LEHB45
	.uleb128 .L337-.LFB8397
	.uleb128 0
	.uleb128 .LEHB46-.LFB8397
	.uleb128 .LEHE46-.LEHB46
	.uleb128 .L338-.LFB8397
	.uleb128 0
	.uleb128 .LEHB47-.LFB8397
	.uleb128 .LEHE47-.LEHB47
	.uleb128 .L336-.LFB8397
	.uleb128 0
	.uleb128 .LEHB48-.LFB8397
	.uleb128 .LEHE48-.LEHB48
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB49-.LFB8397
	.uleb128 .LEHE49-.LEHB49
	.uleb128 .L339-.LFB8397
	.uleb128 0
	.uleb128 .LEHB50-.LFB8397
	.uleb128 .LEHE50-.LEHB50
	.uleb128 .L340-.LFB8397
	.uleb128 0
	.uleb128 .LEHB51-.LFB8397
	.uleb128 .LEHE51-.LEHB51
	.uleb128 .L341-.LFB8397
	.uleb128 0
	.uleb128 .LEHB52-.LFB8397
	.uleb128 .LEHE52-.LEHB52
	.uleb128 .L339-.LFB8397
	.uleb128 0
	.uleb128 .LEHB53-.LFB8397
	.uleb128 .LEHE53-.LEHB53
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB54-.LFB8397
	.uleb128 .LEHE54-.LEHB54
	.uleb128 .L342-.LFB8397
	.uleb128 0
	.uleb128 .LEHB55-.LFB8397
	.uleb128 .LEHE55-.LEHB55
	.uleb128 .L343-.LFB8397
	.uleb128 0
	.uleb128 .LEHB56-.LFB8397
	.uleb128 .LEHE56-.LEHB56
	.uleb128 .L344-.LFB8397
	.uleb128 0
	.uleb128 .LEHB57-.LFB8397
	.uleb128 .LEHE57-.LEHB57
	.uleb128 .L342-.LFB8397
	.uleb128 0
	.uleb128 .LEHB58-.LFB8397
	.uleb128 .LEHE58-.LEHB58
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB59-.LFB8397
	.uleb128 .LEHE59-.LEHB59
	.uleb128 .L345-.LFB8397
	.uleb128 0
	.uleb128 .LEHB60-.LFB8397
	.uleb128 .LEHE60-.LEHB60
	.uleb128 .L346-.LFB8397
	.uleb128 0
	.uleb128 .LEHB61-.LFB8397
	.uleb128 .LEHE61-.LEHB61
	.uleb128 .L347-.LFB8397
	.uleb128 0
	.uleb128 .LEHB62-.LFB8397
	.uleb128 .LEHE62-.LEHB62
	.uleb128 .L345-.LFB8397
	.uleb128 0
	.uleb128 .LEHB63-.LFB8397
	.uleb128 .LEHE63-.LEHB63
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB64-.LFB8397
	.uleb128 .LEHE64-.LEHB64
	.uleb128 .L348-.LFB8397
	.uleb128 0
	.uleb128 .LEHB65-.LFB8397
	.uleb128 .LEHE65-.LEHB65
	.uleb128 .L349-.LFB8397
	.uleb128 0
	.uleb128 .LEHB66-.LFB8397
	.uleb128 .LEHE66-.LEHB66
	.uleb128 .L350-.LFB8397
	.uleb128 0
	.uleb128 .LEHB67-.LFB8397
	.uleb128 .LEHE67-.LEHB67
	.uleb128 .L348-.LFB8397
	.uleb128 0
	.uleb128 .LEHB68-.LFB8397
	.uleb128 .LEHE68-.LEHB68
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB69-.LFB8397
	.uleb128 .LEHE69-.LEHB69
	.uleb128 .L351-.LFB8397
	.uleb128 0
	.uleb128 .LEHB70-.LFB8397
	.uleb128 .LEHE70-.LEHB70
	.uleb128 .L352-.LFB8397
	.uleb128 0
	.uleb128 .LEHB71-.LFB8397
	.uleb128 .LEHE71-.LEHB71
	.uleb128 .L353-.LFB8397
	.uleb128 0
	.uleb128 .LEHB72-.LFB8397
	.uleb128 .LEHE72-.LEHB72
	.uleb128 .L351-.LFB8397
	.uleb128 0
	.uleb128 .LEHB73-.LFB8397
	.uleb128 .LEHE73-.LEHB73
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB74-.LFB8397
	.uleb128 .LEHE74-.LEHB74
	.uleb128 .L354-.LFB8397
	.uleb128 0
	.uleb128 .LEHB75-.LFB8397
	.uleb128 .LEHE75-.LEHB75
	.uleb128 .L355-.LFB8397
	.uleb128 0
	.uleb128 .LEHB76-.LFB8397
	.uleb128 .LEHE76-.LEHB76
	.uleb128 .L356-.LFB8397
	.uleb128 0
	.uleb128 .LEHB77-.LFB8397
	.uleb128 .LEHE77-.LEHB77
	.uleb128 .L354-.LFB8397
	.uleb128 0
	.uleb128 .LEHB78-.LFB8397
	.uleb128 .LEHE78-.LEHB78
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB79-.LFB8397
	.uleb128 .LEHE79-.LEHB79
	.uleb128 .L357-.LFB8397
	.uleb128 0
	.uleb128 .LEHB80-.LFB8397
	.uleb128 .LEHE80-.LEHB80
	.uleb128 .L358-.LFB8397
	.uleb128 0
	.uleb128 .LEHB81-.LFB8397
	.uleb128 .LEHE81-.LEHB81
	.uleb128 .L359-.LFB8397
	.uleb128 0
	.uleb128 .LEHB82-.LFB8397
	.uleb128 .LEHE82-.LEHB82
	.uleb128 .L357-.LFB8397
	.uleb128 0
	.uleb128 .LEHB83-.LFB8397
	.uleb128 .LEHE83-.LEHB83
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB84-.LFB8397
	.uleb128 .LEHE84-.LEHB84
	.uleb128 .L360-.LFB8397
	.uleb128 0
	.uleb128 .LEHB85-.LFB8397
	.uleb128 .LEHE85-.LEHB85
	.uleb128 .L361-.LFB8397
	.uleb128 0
	.uleb128 .LEHB86-.LFB8397
	.uleb128 .LEHE86-.LEHB86
	.uleb128 .L362-.LFB8397
	.uleb128 0
	.uleb128 .LEHB87-.LFB8397
	.uleb128 .LEHE87-.LEHB87
	.uleb128 .L360-.LFB8397
	.uleb128 0
	.uleb128 .LEHB88-.LFB8397
	.uleb128 .LEHE88-.LEHB88
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB89-.LFB8397
	.uleb128 .LEHE89-.LEHB89
	.uleb128 .L363-.LFB8397
	.uleb128 0
	.uleb128 .LEHB90-.LFB8397
	.uleb128 .LEHE90-.LEHB90
	.uleb128 .L364-.LFB8397
	.uleb128 0
	.uleb128 .LEHB91-.LFB8397
	.uleb128 .LEHE91-.LEHB91
	.uleb128 .L365-.LFB8397
	.uleb128 0
	.uleb128 .LEHB92-.LFB8397
	.uleb128 .LEHE92-.LEHB92
	.uleb128 .L363-.LFB8397
	.uleb128 0
	.uleb128 .LEHB93-.LFB8397
	.uleb128 .LEHE93-.LEHB93
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB94-.LFB8397
	.uleb128 .LEHE94-.LEHB94
	.uleb128 .L366-.LFB8397
	.uleb128 0
	.uleb128 .LEHB95-.LFB8397
	.uleb128 .LEHE95-.LEHB95
	.uleb128 .L367-.LFB8397
	.uleb128 0
	.uleb128 .LEHB96-.LFB8397
	.uleb128 .LEHE96-.LEHB96
	.uleb128 .L368-.LFB8397
	.uleb128 0
	.uleb128 .LEHB97-.LFB8397
	.uleb128 .LEHE97-.LEHB97
	.uleb128 .L366-.LFB8397
	.uleb128 0
	.uleb128 .LEHB98-.LFB8397
	.uleb128 .LEHE98-.LEHB98
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB99-.LFB8397
	.uleb128 .LEHE99-.LEHB99
	.uleb128 .L369-.LFB8397
	.uleb128 0
	.uleb128 .LEHB100-.LFB8397
	.uleb128 .LEHE100-.LEHB100
	.uleb128 .L370-.LFB8397
	.uleb128 0
	.uleb128 .LEHB101-.LFB8397
	.uleb128 .LEHE101-.LEHB101
	.uleb128 .L371-.LFB8397
	.uleb128 0
	.uleb128 .LEHB102-.LFB8397
	.uleb128 .LEHE102-.LEHB102
	.uleb128 .L369-.LFB8397
	.uleb128 0
	.uleb128 .LEHB103-.LFB8397
	.uleb128 .LEHE103-.LEHB103
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB104-.LFB8397
	.uleb128 .LEHE104-.LEHB104
	.uleb128 .L372-.LFB8397
	.uleb128 0
	.uleb128 .LEHB105-.LFB8397
	.uleb128 .LEHE105-.LEHB105
	.uleb128 .L373-.LFB8397
	.uleb128 0
	.uleb128 .LEHB106-.LFB8397
	.uleb128 .LEHE106-.LEHB106
	.uleb128 .L374-.LFB8397
	.uleb128 0
	.uleb128 .LEHB107-.LFB8397
	.uleb128 .LEHE107-.LEHB107
	.uleb128 .L372-.LFB8397
	.uleb128 0
	.uleb128 .LEHB108-.LFB8397
	.uleb128 .LEHE108-.LEHB108
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB109-.LFB8397
	.uleb128 .LEHE109-.LEHB109
	.uleb128 .L375-.LFB8397
	.uleb128 0
	.uleb128 .LEHB110-.LFB8397
	.uleb128 .LEHE110-.LEHB110
	.uleb128 .L376-.LFB8397
	.uleb128 0
	.uleb128 .LEHB111-.LFB8397
	.uleb128 .LEHE111-.LEHB111
	.uleb128 .L377-.LFB8397
	.uleb128 0
	.uleb128 .LEHB112-.LFB8397
	.uleb128 .LEHE112-.LEHB112
	.uleb128 .L375-.LFB8397
	.uleb128 0
	.uleb128 .LEHB113-.LFB8397
	.uleb128 .LEHE113-.LEHB113
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB114-.LFB8397
	.uleb128 .LEHE114-.LEHB114
	.uleb128 .L378-.LFB8397
	.uleb128 0
	.uleb128 .LEHB115-.LFB8397
	.uleb128 .LEHE115-.LEHB115
	.uleb128 .L379-.LFB8397
	.uleb128 0
	.uleb128 .LEHB116-.LFB8397
	.uleb128 .LEHE116-.LEHB116
	.uleb128 .L380-.LFB8397
	.uleb128 0
	.uleb128 .LEHB117-.LFB8397
	.uleb128 .LEHE117-.LEHB117
	.uleb128 .L378-.LFB8397
	.uleb128 0
	.uleb128 .LEHB118-.LFB8397
	.uleb128 .LEHE118-.LEHB118
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB119-.LFB8397
	.uleb128 .LEHE119-.LEHB119
	.uleb128 .L381-.LFB8397
	.uleb128 0
	.uleb128 .LEHB120-.LFB8397
	.uleb128 .LEHE120-.LEHB120
	.uleb128 .L382-.LFB8397
	.uleb128 0
	.uleb128 .LEHB121-.LFB8397
	.uleb128 .LEHE121-.LEHB121
	.uleb128 .L383-.LFB8397
	.uleb128 0
	.uleb128 .LEHB122-.LFB8397
	.uleb128 .LEHE122-.LEHB122
	.uleb128 .L381-.LFB8397
	.uleb128 0
	.uleb128 .LEHB123-.LFB8397
	.uleb128 .LEHE123-.LEHB123
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB124-.LFB8397
	.uleb128 .LEHE124-.LEHB124
	.uleb128 .L384-.LFB8397
	.uleb128 0
	.uleb128 .LEHB125-.LFB8397
	.uleb128 .LEHE125-.LEHB125
	.uleb128 .L385-.LFB8397
	.uleb128 0
	.uleb128 .LEHB126-.LFB8397
	.uleb128 .LEHE126-.LEHB126
	.uleb128 .L386-.LFB8397
	.uleb128 0
	.uleb128 .LEHB127-.LFB8397
	.uleb128 .LEHE127-.LEHB127
	.uleb128 .L384-.LFB8397
	.uleb128 0
	.uleb128 .LEHB128-.LFB8397
	.uleb128 .LEHE128-.LEHB128
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB129-.LFB8397
	.uleb128 .LEHE129-.LEHB129
	.uleb128 .L387-.LFB8397
	.uleb128 0
	.uleb128 .LEHB130-.LFB8397
	.uleb128 .LEHE130-.LEHB130
	.uleb128 .L388-.LFB8397
	.uleb128 0
	.uleb128 .LEHB131-.LFB8397
	.uleb128 .LEHE131-.LEHB131
	.uleb128 .L389-.LFB8397
	.uleb128 0
	.uleb128 .LEHB132-.LFB8397
	.uleb128 .LEHE132-.LEHB132
	.uleb128 .L387-.LFB8397
	.uleb128 0
	.uleb128 .LEHB133-.LFB8397
	.uleb128 .LEHE133-.LEHB133
	.uleb128 0
	.uleb128 0
.LLSDACSE8397:
	.section	.text.startup
	.size	main, .-main
	.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
	.local	_ZL17__cr_lgamma_table
	.comm	_ZL17__cr_lgamma_table,72,32
	.local	_ZL13mrg32k3aM2Seq
	.comm	_ZL13mrg32k3aM2Seq,2304,32
	.local	_ZL13mrg32k3aM1Seq
	.comm	_ZL13mrg32k3aM1Seq,2304,32
	.local	_ZL16mrg32k3aM2SubSeq
	.comm	_ZL16mrg32k3aM2SubSeq,2016,32
	.local	_ZL16mrg32k3aM1SubSeq
	.comm	_ZL16mrg32k3aM1SubSeq,2016,32
	.local	_ZL10mrg32k3aM2
	.comm	_ZL10mrg32k3aM2,2304,32
	.local	_ZL10mrg32k3aM1
	.comm	_ZL10mrg32k3aM1,2304,32
	.local	_ZL28precalc_xorwow_offset_matrix
	.comm	_ZL28precalc_xorwow_offset_matrix,102400,32
	.local	_ZL21precalc_xorwow_matrix
	.comm	_ZL21precalc_xorwow_matrix,102400,32
	.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
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC23:
	.long	1065353215
	.align 4
.LC25:
	.long	796917760
	.align 4
.LC26:
	.long	1065353216
	.align 4
.LC27:
	.long	-1073741824
	.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:

// Standard C++ includes
#include <algorithm>
#include <chrono>
#include <iostream>
#include <numeric>
#include <random>
#include <stdexcept>
#include <string>
#include <sstream>
#include <tuple>
#include <vector>

// Standard C includes
#include <cassert>
#include <cmath>

// CUDA includes
#include <hip/hip_cooperative_groups.h>
#include <hip/hip_runtime.h>
#include <hiprand/hiprand_kernel.h>


//------------------------------------------------------------------------
// Macros
//------------------------------------------------------------------------
#define SEED 124

#define CHECK_CUDA_ERRORS(call) {                                                                   \
    hipError_t error = call;                                                                       \
    if (error != hipSuccess) {                                                                     \
            std::ostringstream errorMessageStream;                                                  \
            errorMessageStream << "cuda error:" __FILE__ << ": " << __LINE__ << " ";                \
            errorMessageStream << hipGetErrorString(error) << "(" << error << ")" << std::endl;    \
            throw std::runtime_error(errorMessageStream.str());                                     \
        }                                                                                           \
    }


template<typename T>
using HostDeviceArray = std::pair < T*, T* > ;


enum class Model
{
    Continuous,
    eProp,
};

__global__ void continuousDense(unsigned int numPre, unsigned int numPost,
                                float *d_output, const float *d_ePre, const float *d_g)
{
    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);

    if(id < (numPre * numPost)) {
        atomicAdd(&d_output[id % numPost], d_g[id] * d_ePre[id / numPost]);
    }
}

__global__ void epropALIFDense(unsigned int numPre, unsigned int numPost,
                               const float *d_zFilterPre,  const float *d_psiPost,
                               const float *d_fAvgPost, const float *d_ePost,
                               float * d_eFiltered, float *d_epsilonA, float *d_deltaG)
{
    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);

    constexpr float alpha = 0.95; // exp(-1.0f/20.0f)
    constexpr float rho = 0.999f; // exp(-1.0f/2000.0f)
    constexpr float fTargetTimestep = 0.01f; // (10.0f * 1.0f) / 1000.0f

    constexpr float cReg = 1.0f / 500000.0f;
    constexpr float beta = 0.0174f;

    if(id < (numPre * numPost)) {
        const unsigned int idPre = id / numPost;
        const unsigned int idPost = id % numPost;

        // Calculate some common factors in e and epsilon update
        float epsilonA = d_epsilonA[id];
        const float psiZFilter = d_psiPost[idPost] * d_zFilterPre[idPre];
        const float psiBetaEpsilonA = d_psiPost[idPost] * beta * epsilonA;

        // Calculate e and episilonA
        const float e = psiZFilter - psiBetaEpsilonA;
        d_epsilonA[id] = psiZFilter + ((rho * epsilonA) - psiBetaEpsilonA);

        // Calculate filtered version of eligibility trace
        float eFiltered = d_eFiltered[id];
        eFiltered = (eFiltered * alpha) + e;

        // Apply weight update
        d_deltaG[id] += (eFiltered * d_ePost[idPost]) + ((d_fAvgPost[idPost] - fTargetTimestep) * cReg * e);
        d_eFiltered[id] = eFiltered;
    }
}

__global__ void continuousDenseBlock(unsigned int numPre, unsigned int numPost, unsigned int numPostPadded,
                                     float *d_output, const float *d_ePre, const float *d_g)
{
    extern __shared__ float s_ePre[];

    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);
    const unsigned int idPost = id % numPostPadded;

    // Get indices of first presynaptic neuron and synapse
    const unsigned int idPreStart = (id / numPostPadded) * blockDim.x;
    const unsigned int idPreEnd = min(idPreStart + blockDim.x, numPre);
    const unsigned int numPreInBlock = idPreEnd - idPreStart;
    unsigned int idSyn = (idPreStart * numPost) + idPost;

    // Use first threads in block to ePre into shared memory
    if(threadIdx.x < numPreInBlock) {
        s_ePre[threadIdx.x] = d_ePre[idPreStart + threadIdx.x];
    }

    __syncthreads();

    if(idPost < numPost) {
        float output = 0.0f;
        for(unsigned int i = idPreStart; i < idPreEnd; i++) {
            output += d_g[idSyn] * s_ePre[i - idPreStart];

            idSyn += numPost;
        }
        atomicAdd(&d_output[idPost], output);
    }
}


__global__ void epropALIFDenseBlock(unsigned int numPre, unsigned int numPost, unsigned int numPostPadded,
                                    const float *d_zFilterPre, const float *d_psiPost,
                                    const float *d_fAvgPost, const float *d_ePost,
                                    float *d_eFiltered, float *d_epsilonA, float *d_deltaG)
{
    extern __shared__ float s_zFilterPre[];

    constexpr float alpha = 0.95; // exp(-1.0f/20.0f)
    constexpr float rho = 0.999f; // exp(-1.0f/2000.0f)
    constexpr float fTargetTimestep = 0.01f; // (10.0f * 1.0f) / 1000.0f

    constexpr float cReg = 1.0f / 500000.0f;
    constexpr float beta = 0.0174f;

    const unsigned int id = threadIdx.x + (blockIdx.x * blockDim.x);
    const unsigned int idPost = id % numPostPadded;

    // Get indices of first presynaptic neuron and synapse
    const unsigned int idPreStart = (id / numPostPadded) * blockDim.x;
    const unsigned int idPreEnd = min(idPreStart + blockDim.x, numPre);
    const unsigned int numPreInBlock = idPreEnd - idPreStart;
    unsigned int idSyn = (idPreStart * numPost) + idPost;

    // Use first threads in block to ePre into shared memory
    if(threadIdx.x < numPreInBlock) {
        s_zFilterPre[threadIdx.x] = d_zFilterPre[idPreStart + threadIdx.x];
    }

    __syncthreads();

    if(idPost < numPost) {
        const float psiPost = d_psiPost[idPost];
        const float fAvgPost = d_fAvgPost[idPost];
        const float ePost = d_ePost[idPost];

        for(unsigned int i = idPreStart; i < idPreEnd; i++) {
            // Calculate some common factors in e and epsilon update
            float epsilonA = d_epsilonA[idSyn];
            const float psiZFilter = psiPost * s_zFilterPre[i - idPreStart];
            const float psiBetaEpsilonA = psiPost * beta * epsilonA;

            // Calculate e and episilonA
            const float e = psiZFilter - psiBetaEpsilonA;
            d_epsilonA[idSyn] = psiZFilter + ((rho * epsilonA) - psiBetaEpsilonA);

            // Calculate filtered version of eligibility trace
            float eFiltered = d_eFiltered[idSyn];
            eFiltered = (eFiltered * alpha) + e;

            // Apply weight update
            d_deltaG[idSyn] += (eFiltered * ePost) + ((fAvgPost - fTargetTimestep) * cReg * e);
            d_eFiltered[idSyn] = eFiltered;


            idSyn += numPost;
        }
    }
}

//-----------------------------------------------------------------------------
// Host functions
//-----------------------------------------------------------------------------
template<typename T>
HostDeviceArray<T> allocateHostDevice(size_t count)
{
    T *array = nullptr;
    T *d_array = nullptr;
    CHECK_CUDA_ERRORS(hipHostMalloc(&array, count * sizeof(T), hipHostMallocDefault));
    CHECK_CUDA_ERRORS(hipMalloc(&d_array, count * sizeof(T)));

    return std::make_pair(array, d_array);
}
//-----------------------------------------------------------------------------
template<typename T>
void hostToDeviceCopy(HostDeviceArray<T> &array, size_t count, bool deleteHost=false)
{
    CHECK_CUDA_ERRORS(hipMemcpy(array.second, array.first, sizeof(T) * count, hipMemcpyHostToDevice));
    if (deleteHost) {
        CHECK_CUDA_ERRORS(hipHostFree(array.first));
        array.first = nullptr;
    }
}
//-----------------------------------------------------------------------------
template<typename T>
void deviceToHostCopy(HostDeviceArray<T> &array, size_t count)
{
    CHECK_CUDA_ERRORS(hipMemcpy(array.first, array.second, count * sizeof(T), hipMemcpyDeviceToHost));
}
//-----------------------------------------------------------------------------
int main(int argc, char *argv[])
{
    unsigned int blockSize = 32;
    unsigned int numNeurons = 10000;
    unsigned int numTimesteps = 5000;

    // Read mode from command line
    Model model;
    if(argc < 2) {
        std::cerr << "Expected parameters specifying:" << std::endl;
        std::cerr << "\t Model (0 = Continuous, 1 = eProp)" << std::endl;
        return EXIT_FAILURE;
    }
    else {
        model = static_cast<Model>(std::stoul(argv[1]));
    }

    // If additional parameters are specified, read N
    if(argc > 2) {
        numNeurons = std::stoul(argv[2]);
    }
    if(argc > 3) {
        blockSize = std::stoul(argv[3]);
    }
    if(argc > 4) {
        numTimesteps = std::stoul(argv[4]);
    }

    std::cout << "Model:" << static_cast<int>(model) << ", num neurons:" << numNeurons << ", block size:" << blockSize << std::endl;

    const unsigned int numSynapses = numNeurons * numNeurons;

    const unsigned int numNeuronBlocks = (numNeurons + blockSize - 1) / blockSize;

    CHECK_CUDA_ERRORS(hipSetDevice(0));

    hipEvent_t updateStart;
    hipEvent_t updateEnd;
    CHECK_CUDA_ERRORS(hipEventCreate(&updateStart));
    CHECK_CUDA_ERRORS(hipEventCreate(&updateEnd));

    std::mt19937 rng;
    std::normal_distribution<float> dis(0.0f, 1.0f);

    if(model == Model::Continuous) {
        // Create array to hold postsynaptic output
        auto output = allocateHostDevice<float>(numNeurons);
        
        // Create arrays to hold presynaptic state and weight
        auto ePre = allocateHostDevice<float>(numNeurons);
        auto g = allocateHostDevice<float>(numSynapses);

        // Randomize
        std::generate_n(&ePre.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&g.first[0], numSynapses, [&rng, &dis]() { return dis(rng); });

        hostToDeviceCopy(ePre, numNeurons);
        hostToDeviceCopy(g, numSynapses);

        // Zero output
        std::fill_n(&output.first[0], numNeurons, 0.0f);
        hostToDeviceCopy(output, numNeurons);

        {
            const unsigned int numBlocks = (numSynapses + blockSize - 1) / blockSize;
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(hipEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                continuousDense<<<grid, threads>>>(numNeurons, numNeurons, output.second, ePre.second, g.second);
            }
            CHECK_CUDA_ERRORS(hipEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(hipEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(hipEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(output, numNeurons);
            const float sum = std::accumulate(&output.first[0], &output.first[numNeurons], 0.0f);
            std::cout << "Continous Dense: sum:" << sum << ", time:" << time << std::endl;
        }

        // Zero output
        std::fill_n(&output.first[0], numNeurons, 0.0f);
        hostToDeviceCopy(output, numNeurons);

        {
            const unsigned int numBlocks = numNeuronBlocks * numNeuronBlocks;
            const unsigned int sharedBytes = blockSize * sizeof(unsigned int);
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(hipEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                continuousDenseBlock<<<grid, threads, sharedBytes>>>(numNeurons, numNeurons, numNeuronBlocks * blockSize,
                                                                        output.second, ePre.second, g.second);
            }
            CHECK_CUDA_ERRORS(hipEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(hipEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(hipEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(output, numNeurons);
            const float sum = std::accumulate(&output.first[0], &output.first[numNeurons], 0.0f);
            std::cout << "Continous Dense Block: sum:" << sum << ", time:" << time << std::endl;
        }
    }
    else {
        // Create array to hold presynaptic variables
        auto zFilterPre = allocateHostDevice<float>(numNeurons);

        // Create arrays to hold postsynaptic variables
        auto psiPost = allocateHostDevice<float>(numNeurons);
        auto fAvgPost = allocateHostDevice<float>(numNeurons);
        auto ePost = allocateHostDevice<float>(numNeurons);
        
        // Create arrays to hold synaptic variables
        auto eFiltered = allocateHostDevice<float>(numSynapses);
        auto epsilonA = allocateHostDevice<float>(numSynapses);
        auto deltaG = allocateHostDevice<float>(numSynapses);
        
        // Randomize pre and postsynaptic state
        std::generate_n(&zFilterPre.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&psiPost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&fAvgPost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        std::generate_n(&ePost.first[0], numNeurons, [&rng, &dis]() { return dis(rng); });
        hostToDeviceCopy(zFilterPre, numNeurons);
        hostToDeviceCopy(psiPost, numNeurons);
        hostToDeviceCopy(fAvgPost, numNeurons);
        hostToDeviceCopy(ePost, numNeurons);

        // Zero synaptic state
        std::fill_n(&eFiltered.first[0], numSynapses, 0.0f);
        std::fill_n(&epsilonA.first[0], numSynapses, 0.0f);
        std::fill_n(&deltaG.first[0], numSynapses, 0.0f);
        hostToDeviceCopy(eFiltered, numSynapses);
        hostToDeviceCopy(epsilonA, numSynapses);
        hostToDeviceCopy(deltaG, numSynapses);

        {
            const unsigned int numBlocks = (numSynapses + blockSize - 1) / blockSize;
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(hipEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                epropALIFDense<<<grid, threads>>>(numNeurons, numNeurons,
                                                    zFilterPre.second,  psiPost.second,
                                                    fAvgPost.second, ePost.second,
                                                    eFiltered.second, epsilonA.second, deltaG.second);
            }
            CHECK_CUDA_ERRORS(hipEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(hipEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(hipEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(eFiltered, numSynapses);
            deviceToHostCopy(epsilonA, numSynapses);
            deviceToHostCopy(deltaG, numSynapses);
            const float eFilteredSum = std::accumulate(&eFiltered.first[0], &eFiltered.first[numSynapses], 0.0f);
            const float epsilonASum = std::accumulate(&epsilonA.first[0], &epsilonA.first[numSynapses], 0.0f);
            const float deltaGSum = std::accumulate(&deltaG.first[0], &deltaG.first[numSynapses], 0.0f);
            std::cout << "eProp ALIF Dense: eFiltered sum:" << eFilteredSum << ", epsilonA sum:" << epsilonASum << ", deltaG sum:" << deltaGSum << ", time: " << time << std::endl;
        }

         // Zero synaptic state
        std::fill_n(&eFiltered.first[0], numSynapses, 0.0f);
        std::fill_n(&epsilonA.first[0], numSynapses, 0.0f);
        std::fill_n(&deltaG.first[0], numSynapses, 0.0f);
        hostToDeviceCopy(eFiltered, numSynapses);
        hostToDeviceCopy(epsilonA, numSynapses);
        hostToDeviceCopy(deltaG, numSynapses);

        {
            const unsigned int numBlocks = numNeuronBlocks * numNeuronBlocks;
            const unsigned int sharedBytes = blockSize * sizeof(unsigned int);
            dim3 threads(blockSize, 1);
            dim3 grid(numBlocks, 1);

            CHECK_CUDA_ERRORS(hipEventRecord(updateStart));
            for(unsigned int i = 0; i < numTimesteps; i++) {
                epropALIFDenseBlock<<<grid, threads, sharedBytes>>>(numNeurons, numNeurons, numNeuronBlocks * blockSize,
                                                                    zFilterPre.second,  psiPost.second,
                                                                    fAvgPost.second, ePost.second,
                                                                    eFiltered.second, epsilonA.second, deltaG.second);
            }
            CHECK_CUDA_ERRORS(hipEventRecord(updateEnd));
            CHECK_CUDA_ERRORS(hipEventSynchronize(updateEnd));
            float time;
            CHECK_CUDA_ERRORS(hipEventElapsedTime(&time, updateStart, updateEnd));

            deviceToHostCopy(eFiltered, numSynapses);
            deviceToHostCopy(epsilonA, numSynapses);
            deviceToHostCopy(deltaG, numSynapses);
            const float eFilteredSum = std::accumulate(&eFiltered.first[0], &eFiltered.first[numSynapses], 0.0f);
            const float epsilonASum = std::accumulate(&epsilonA.first[0], &epsilonA.first[numSynapses], 0.0f);
            const float deltaGSum = std::accumulate(&deltaG.first[0], &deltaG.first[numSynapses], 0.0f);
            std::cout << "eProp ALIF Dense Block: eFiltered sum:" << eFilteredSum << ", epsilonA sum:" << epsilonASum << ", deltaG sum:" << deltaGSum << ", time: " << time << std::endl;
        }
    
    }
    return EXIT_SUCCESS;
}

	.text
	.file	"kernel.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.globl	_Z30__device_stub__continuousDensejjPfPKfS1_ # -- Begin function _Z30__device_stub__continuousDensejjPfPKfS1_
	.type	_Z30__device_stub__continuousDensejjPfPKfS1_,@function
_Z30__device_stub__continuousDensejjPfPKfS1_: # @_Z30__device_stub__continuousDensejjPfPKfS1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$128, %rsp
	.cfi_def_cfa_offset 176
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	4(%rsp), %rax
	movl	%edi, (%rax)
	movq	%rsp, %rdi
	movl	%esi, (%rdi)
	leaq	40(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	32(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	24(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	80(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	leaq	64(%rsp), %r14
	leaq	48(%rsp), %r15
	leaq	16(%rsp), %r12
	leaq	8(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z15continuousDensejjPfPKfS1_, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$144, %rsp
	.cfi_adjust_cfa_offset -144
	popq	%rbx
	.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
	retq
.Lfunc_end0:
	.size	_Z30__device_stub__continuousDensejjPfPKfS1_, .Lfunc_end0-_Z30__device_stub__continuousDensejjPfPKfS1_
	.cfi_endproc
                                        # -- End function
	.globl	_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_ # -- Begin function _Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.type	_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_,@function
_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_: # @_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$176, %rsp
	.cfi_def_cfa_offset 224
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	12(%rsp), %rax
	movl	%edi, (%rax)
	leaq	8(%rsp), %rdi
	movl	%esi, (%rdi)
	leaq	56(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	48(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	40(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	32(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	224(%rsp), %rax
	movq	%rax, 48(%rbx)
	leaq	232(%rsp), %rax
	movq	%rax, 56(%rbx)
	leaq	240(%rsp), %rax
	movq	%rax, 64(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	24(%rsp), %r12
	leaq	16(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$192, %rsp
	.cfi_adjust_cfa_offset -192
	popq	%rbx
	.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
	retq
.Lfunc_end1:
	.size	_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, .Lfunc_end1-_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.cfi_endproc
                                        # -- End function
	.globl	_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_ # -- Begin function _Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
	.type	_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_,@function
_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_: # @_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$144, %rsp
	.cfi_def_cfa_offset 192
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	20(%rsp), %rax
	movl	%edi, (%rax)
	leaq	16(%rsp), %rdi
	movl	%esi, (%rdi)
	leaq	12(%rsp), %rsi
	movl	%edx, (%rsi)
	leaq	56(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	48(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	40(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	32(%rsp), %r12
	leaq	24(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z20continuousDenseBlockjjjPfPKfS1_, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$160, %rsp
	.cfi_adjust_cfa_offset -160
	popq	%rbx
	.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
	retq
.Lfunc_end2:
	.size	_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_, .Lfunc_end2-_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
	.cfi_endproc
                                        # -- End function
	.globl	_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_ # -- Begin function _Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.type	_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_,@function
_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_: # @_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$176, %rsp
	.cfi_def_cfa_offset 224
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	20(%rsp), %rax
	movl	%edi, (%rax)
	leaq	16(%rsp), %rdi
	movl	%esi, (%rdi)
	leaq	12(%rsp), %rsi
	movl	%edx, (%rsi)
	leaq	56(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	48(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	40(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	224(%rsp), %rax
	movq	%rax, 48(%rbx)
	leaq	232(%rsp), %rax
	movq	%rax, 56(%rbx)
	leaq	240(%rsp), %rax
	movq	%rax, 64(%rbx)
	leaq	248(%rsp), %rax
	movq	%rax, 72(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	32(%rsp), %r12
	leaq	24(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$192, %rsp
	.cfi_adjust_cfa_offset -192
	popq	%rbx
	.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
	retq
.Lfunc_end3:
	.size	_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, .Lfunc_end3-_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.cfi_endproc
                                        # -- End function
	.globl	main                            # -- Begin function main
	.type	main,@function
main:                                   # @main
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$5608, %rsp                     # imm = 0x15E8
	.cfi_def_cfa_offset 5664
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	cmpl	$1, %edi
	jg	.LBB4_2
# %bb.1:
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cerr, %ebx
	movl	$_ZSt4cerr, %edi
	movl	$.L.str, %esi
	movl	$31, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	_ZSt4cerr(%rip), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cerr, %edi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cerr, %edi
	movl	$.L.str.1, %esi
	movl	$35, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	_ZSt4cerr(%rip), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cerr, %edi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	movl	$1, %eax
	jmp	.LBB4_150
.LBB4_2:
	movq	%rsi, %r13
	movl	%edi, %ebp
	movq	8(%rsi), %rsi
.Ltmp0:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	leaq	24(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp1:
# %bb.3:
	movq	608(%rsp), %rbx
	.cfi_escape 0x2e, 0x00
	callq	__errno_location
	movq	%rax, %r14
	movl	(%rax), %r12d
	movl	$0, (%rax)
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r15
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movl	$10, %edx
	callq	__isoc23_strtoul
	movq	%rax, 64(%rsp)                  # 8-byte Spill
	cmpq	%rbx, (%r15)
	je	.LBB4_151
# %bb.4:
	movl	(%r14), %eax
	testl	%eax, %eax
	je	.LBB4_8
# %bb.5:
	cmpl	$34, %eax
	jne	.LBB4_9
# %bb.6:                                # %.critedge.i.i
.Ltmp3:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt20__throw_out_of_rangePKc
.Ltmp4:
# %bb.7:
.LBB4_8:
	movl	%r12d, (%r14)
.LBB4_9:
	leaq	624(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_11
# %bb.10:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_11:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movl	$5000, %ebx                     # imm = 0x1388
	cmpl	$2, %ebp
	jne	.LBB4_14
# %bb.12:
	movl	$10000, %r12d                   # imm = 0x2710
	jmp	.LBB4_13
.LBB4_14:
	movq	16(%r13), %rsi
.Ltmp5:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	leaq	24(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp6:
# %bb.15:
	movq	608(%rsp), %r15
	movl	(%r14), %eax
	movl	%eax, 16(%rsp)                  # 4-byte Spill
	movl	$0, (%r14)
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r12
	movq	%r15, %rdi
	movq	%r12, %rsi
	movl	$10, %edx
	callq	__isoc23_strtoul
	movq	%rax, 8(%rsp)                   # 8-byte Spill
	cmpq	%r15, (%r12)
	je	.LBB4_296
# %bb.16:
	movl	(%r14), %eax
	testl	%eax, %eax
	leaq	624(%rsp), %rcx
	je	.LBB4_20
# %bb.17:
	cmpl	$34, %eax
	jne	.LBB4_21
# %bb.18:                               # %.critedge.i.i463
.Ltmp8:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt20__throw_out_of_rangePKc
.Ltmp9:
# %bb.19:
.LBB4_20:
	movl	16(%rsp), %eax                  # 4-byte Reload
	movl	%eax, (%r14)
.LBB4_21:
	movq	608(%rsp), %rdi
	cmpq	%rcx, %rdi
	je	.LBB4_23
# %bb.22:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i468
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_23:
	cmpl	$4, %ebp
	jb	.LBB4_30
# %bb.24:
	movq	24(%r13), %rsi
.Ltmp10:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	leaq	24(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp11:
# %bb.25:
	movq	608(%rsp), %r15
	movl	(%r14), %eax
	movl	%eax, 136(%rsp)                 # 4-byte Spill
	movl	$0, (%r14)
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r12
	movq	%r15, %rdi
	movq	%r12, %rsi
	movl	$10, %edx
	callq	__isoc23_strtoul
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	cmpq	%r15, (%r12)
	je	.LBB4_403
# %bb.26:
	movl	(%r14), %eax
	testl	%eax, %eax
	leaq	624(%rsp), %rcx
	je	.LBB4_31
# %bb.27:
	cmpl	$34, %eax
	jne	.LBB4_32
# %bb.28:                               # %.critedge.i.i474
.Ltmp13:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt20__throw_out_of_rangePKc
.Ltmp14:
# %bb.29:
.LBB4_30:
	movq	8(%rsp), %r12                   # 8-byte Reload
.LBB4_13:                               # %.thread822
	movl	$32, %ebp
	jmp	.LBB4_46
.LBB4_31:
	movl	136(%rsp), %eax                 # 4-byte Reload
	movl	%eax, (%r14)
.LBB4_32:
	movq	608(%rsp), %rdi
	cmpq	%rcx, %rdi
	je	.LBB4_34
# %bb.33:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i479
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_34:
	cmpl	$4, %ebp
	jne	.LBB4_36
# %bb.35:
	movq	8(%rsp), %r12                   # 8-byte Reload
	jmp	.LBB4_45
.LBB4_36:
	movq	32(%r13), %rsi
.Ltmp15:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	leaq	24(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp16:
# %bb.37:
	movq	608(%rsp), %r15
	movl	(%r14), %ebp
	movl	$0, (%r14)
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r12
	movq	%r15, %rdi
	movq	%r12, %rsi
	movl	$10, %edx
	callq	__isoc23_strtoul
	cmpq	%r15, (%r12)
	je	.LBB4_405
# %bb.38:
	movq	%rax, %rbx
	movl	(%r14), %eax
	testl	%eax, %eax
	movq	8(%rsp), %r12                   # 8-byte Reload
	je	.LBB4_42
# %bb.39:
	cmpl	$34, %eax
	jne	.LBB4_43
# %bb.40:                               # %.critedge.i.i485
.Ltmp18:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt20__throw_out_of_rangePKc
.Ltmp19:
# %bb.41:
.LBB4_42:
	movl	%ebp, (%r14)
.LBB4_43:
	movq	608(%rsp), %rdi
	leaq	624(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB4_45
# %bb.44:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i490
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_45:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit492
	movq	16(%rsp), %rbp                  # 8-byte Reload
.LBB4_46:                               # %.thread822
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movl	$.L.str.2, %esi
	movl	$6, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movq	64(%rsp), %rsi                  # 8-byte Reload
                                        # kill: def $esi killed $esi killed $rsi
	callq	_ZNSolsEi
	movq	%rax, %r15
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.3, %esi
	movl	$14, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movl	%r12d, %r14d
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movq	%r14, %rsi
	callq	_ZNSo9_M_insertImEERSoT_
	movq	%rax, %r15
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.4, %esi
	movl	$13, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movl	%ebp, %esi
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movq	%rsi, 136(%rsp)                 # 8-byte Spill
	callq	_ZNSo9_M_insertImEERSoT_
	movq	%rax, %r15
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%r15, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	movq	%r12, %r15
	leal	(%r12,%rbp), %eax
	decl	%eax
	xorl	%edx, %edx
	divl	%ebp
	movl	%eax, 196(%rsp)                 # 4-byte Spill
	.cfi_escape 0x2e, 0x00
	xorl	%edi, %edi
	callq	hipSetDevice
	testl	%eax, %eax
	jne	.LBB4_153
# %bb.47:
	.cfi_escape 0x2e, 0x00
	leaq	88(%rsp), %rdi
	callq	hipEventCreate
	testl	%eax, %eax
	jne	.LBB4_166
# %bb.48:
	.cfi_escape 0x2e, 0x00
	leaq	56(%rsp), %rdi
	callq	hipEventCreate
	testl	%eax, %eax
	jne	.LBB4_179
# %bb.49:
	imull	%r15d, %r15d
	decl	%ebp
	movq	$5489, 608(%rsp)                # imm = 0x1571
	movl	$1, %eax
	movl	$5489, %ecx                     # imm = 0x1571
.LBB4_50:                               # =>This Inner Loop Header: Depth=1
	movq	%rcx, %rdx
	shrq	$30, %rdx
	xorl	%ecx, %edx
	imull	$1812433253, %edx, %ecx         # imm = 0x6C078965
	addl	%eax, %ecx
	movq	%rcx, 608(%rsp,%rax,8)
	incq	%rax
	cmpq	$624, %rax                      # imm = 0x270
	jne	.LBB4_50
# %bb.51:                               # %_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEC2Ev.exit
	movq	$624, 5600(%rsp)                # imm = 0x270
	movabsq	$4575657221408423936, %rax      # imm = 0x3F80000000000000
	movq	%rax, 216(%rsp)
	movl	$0, 224(%rsp)
	movb	$0, 228(%rsp)
	movl	%r15d, %r12d
	cmpl	$0, 64(%rsp)                    # 4-byte Folded Reload
	movq	%r12, 64(%rsp)                  # 8-byte Spill
	je	.LBB4_81
# %bb.52:
	movq	%rbp, 16(%rsp)                  # 8-byte Spill
	movq	%r15, 8(%rsp)                   # 8-byte Spill
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 72(%rsp)
	movq	%rdx, 80(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 120(%rsp)
	movq	%rdx, 128(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 104(%rsp)
	movq	%rdx, 112(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 200(%rsp)
	movq	%rdx, 208(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 176(%rsp)
	movq	%rdx, 184(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 160(%rsp)
	movq	%rdx, 168(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 144(%rsp)
	movq	%rdx, 152(%rsp)
	testq	%r14, %r14
	je	.LBB4_61
# %bb.53:                               # %.lr.ph.i624.preheader
	movq	72(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	608(%rsp), %r15
	leaq	216(%rsp), %rbp
.LBB4_54:                               # %.lr.ph.i624
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	movq	%r15, %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r14d
	jne	.LBB4_54
# %bb.55:                               # %_ZSt10generate_nIPfjZ4mainEUlvE1_ET_S2_T0_T1_.exit
	movq	120(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	608(%rsp), %r15
	leaq	216(%rsp), %rbp
.LBB4_56:                               # %.lr.ph.i630
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	movq	%r15, %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r14d
	jne	.LBB4_56
# %bb.57:                               # %_ZSt10generate_nIPfjZ4mainEUlvE2_ET_S2_T0_T1_.exit
	movq	104(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	608(%rsp), %r15
	leaq	216(%rsp), %rbp
.LBB4_58:                               # %.lr.ph.i636
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	movq	%r15, %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r14d
	jne	.LBB4_58
# %bb.59:                               # %_ZSt10generate_nIPfjZ4mainEUlvE3_ET_S2_T0_T1_.exit
	movq	200(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	608(%rsp), %r15
	leaq	216(%rsp), %rbp
.LBB4_60:                               # %.lr.ph.i642
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	movq	%r15, %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r14d
	jne	.LBB4_60
.LBB4_61:                               # %_ZSt10generate_nIPfjZ4mainEUlvE4_ET_S2_T0_T1_.exit
	.cfi_escape 0x2e, 0x00
	leaq	72(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	120(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	104(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	200(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movq	64(%rsp), %r12                  # 8-byte Reload
	je	.LBB4_63
# %bb.62:                               # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit651
	movq	176(%rsp), %rdi
	leaq	(,%r12,4), %r15
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
	movq	160(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
	movq	144(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
.LBB4_63:                               # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit661
	.cfi_escape 0x2e, 0x00
	leaq	176(%rsp), %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	160(%rsp), %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	144(%rsp), %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	16(%rsp), %rax                  # 8-byte Reload
	addl	8(%rsp), %eax                   # 4-byte Folded Reload
                                        # kill: def $eax killed $eax killed $rax
	xorl	%edx, %edx
	movq	136(%rsp), %r13                 # 8-byte Reload
	divl	%r13d
	movl	%eax, %r15d
	movq	88(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_192
# %bb.64:                               # %.preheader888
	movq	%r13, %r12
	movabsq	$4294967296, %rax               # imm = 0x100000000
	orq	%rax, %r12
	testl	%ebx, %ebx
	je	.LBB4_69
# %bb.65:
	orq	%rax, %r15
	movl	%ebx, %ebp
.LBB4_66:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movl	$1, %esi
	movq	%r12, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
	testl	%eax, %eax
	jne	.LBB4_68
# %bb.67:                               #   in Loop: Header=BB4_66 Depth=1
	movq	80(%rsp), %rdx
	movq	128(%rsp), %rcx
	movq	112(%rsp), %r8
	movq	208(%rsp), %r9
	.cfi_escape 0x2e, 0x20
	subq	$8, %rsp
	.cfi_adjust_cfa_offset 8
	movl	%r14d, %edi
	movl	%r14d, %esi
	pushq	160(%rsp)
	.cfi_adjust_cfa_offset 8
	pushq	184(%rsp)
	.cfi_adjust_cfa_offset 8
	pushq	208(%rsp)
	.cfi_adjust_cfa_offset 8
	callq	_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	addq	$32, %rsp
	.cfi_adjust_cfa_offset -32
.LBB4_68:                               #   in Loop: Header=BB4_66 Depth=1
	decl	%ebp
	jne	.LBB4_66
.LBB4_69:                               # %._crit_edge
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_205
# %bb.70:
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	hipEventSynchronize
	testl	%eax, %eax
	jne	.LBB4_218
# %bb.71:
	movq	88(%rsp), %rsi
	movq	56(%rsp), %rdx
	.cfi_escape 0x2e, 0x00
	leaq	100(%rsp), %rdi
	callq	hipEventElapsedTime
	testl	%eax, %eax
	jne	.LBB4_231
# %bb.72:
	.cfi_escape 0x2e, 0x00
	leaq	176(%rsp), %rdi
	movq	64(%rsp), %rbp                  # 8-byte Reload
	movq	%rbp, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.cfi_escape 0x2e, 0x00
	leaq	160(%rsp), %rdi
	movq	%rbp, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.cfi_escape 0x2e, 0x00
	leaq	144(%rsp), %rdi
	movq	%rbp, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	je	.LBB4_88
# %bb.73:                               # %.lr.ph.i703.preheader
	movq	176(%rsp), %rcx
	leaq	(,%rbp,4), %rax
	xorps	%xmm0, %xmm0
	xorl	%edx, %edx
.LBB4_74:                               # %.lr.ph.i703
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rcx,%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rax
	jne	.LBB4_74
# %bb.75:                               # %_ZSt10accumulateIPffET0_T_S2_S1_.exit708
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movss	%xmm0, 192(%rsp)                # 4-byte Spill
	je	.LBB4_89
# %bb.76:                               # %.lr.ph.i710.preheader
	movq	160(%rsp), %rcx
	xorps	%xmm1, %xmm1
	xorl	%edx, %edx
.LBB4_77:                               # %.lr.ph.i710
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rcx,%rdx), %xmm1
	addq	$4, %rdx
	cmpq	%rdx, %rax
	jne	.LBB4_77
# %bb.78:                               # %_ZSt10accumulateIPffET0_T_S2_S1_.exit715
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movss	%xmm1, 96(%rsp)                 # 4-byte Spill
	je	.LBB4_121
# %bb.79:                               # %.lr.ph.i717.preheader
	movq	144(%rsp), %rcx
	xorps	%xmm2, %xmm2
	xorl	%edx, %edx
.LBB4_80:                               # %.lr.ph.i717
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rcx,%rdx), %xmm2
	addq	$4, %rdx
	cmpq	%rdx, %rax
	jne	.LBB4_80
	jmp	.LBB4_122
.LBB4_81:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 72(%rsp)
	movq	%rdx, 80(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 120(%rsp)
	movq	%rdx, 128(%rsp)
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	movq	%rax, 104(%rsp)
	movq	%rdx, 112(%rsp)
	testq	%r14, %r14
	je	.LBB4_90
# %bb.82:                               # %.lr.ph.i.preheader
	movq	%rbp, 16(%rsp)                  # 8-byte Spill
	movq	%r15, 8(%rsp)                   # 8-byte Spill
	movq	120(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	608(%rsp), %r15
	leaq	216(%rsp), %rbp
.LBB4_83:                               # %.lr.ph.i
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	movq	%r15, %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r14d
	jne	.LBB4_83
# %bb.84:                               # %_ZSt10generate_nIPfjZ4mainEUlvE_ET_S2_T0_T1_.exit
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB4_87
# %bb.85:                               # %.lr.ph.i524.preheader
	movq	104(%rsp), %r12
	xorl	%r13d, %r13d
	leaq	216(%rsp), %rbp
.LBB4_86:                               # %.lr.ph.i524
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%rbp, %rdi
	leaq	608(%rsp), %rsi
	movq	%rbp, %rdx
	callq	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	movss	%xmm0, (%r12,%r13,4)
	incq	%r13
	cmpl	%r13d, %r15d
	jne	.LBB4_86
.LBB4_87:                               # %_ZSt10generate_nIPfjZ4mainEUlvE0_ET_S2_T0_T1_.exit
	.cfi_escape 0x2e, 0x00
	leaq	120(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	104(%rsp), %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	72(%rsp), %rdi
	leaq	(,%r14,4), %rdx
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	memset@PLT
	movq	8(%rsp), %r15                   # 8-byte Reload
	movq	16(%rsp), %rbp                  # 8-byte Reload
	jmp	.LBB4_91
.LBB4_88:
	xorps	%xmm0, %xmm0
	movss	%xmm0, 96(%rsp)                 # 4-byte Spill
	movss	%xmm0, 192(%rsp)                # 4-byte Spill
	movss	%xmm0, 16(%rsp)                 # 4-byte Spill
	jmp	.LBB4_123
.LBB4_89:
	xorps	%xmm1, %xmm1
	movss	%xmm1, 96(%rsp)                 # 4-byte Spill
	movss	%xmm1, 16(%rsp)                 # 4-byte Spill
	jmp	.LBB4_123
.LBB4_90:                               # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit.critedge
	.cfi_escape 0x2e, 0x00
	leaq	120(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	104(%rsp), %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
.LBB4_91:                               # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit
	.cfi_escape 0x2e, 0x00
	leaq	72(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	addl	%r15d, %ebp
	movl	%ebp, %eax
	xorl	%edx, %edx
	movq	136(%rsp), %r13                 # 8-byte Reload
	divl	%r13d
	movl	%eax, %r12d
	movq	88(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_298
# %bb.92:                               # %.preheader886
	movq	%r13, %r15
	movabsq	$4294967296, %rax               # imm = 0x100000000
	orq	%rax, %r15
	testl	%ebx, %ebx
	je	.LBB4_97
# %bb.93:
	orq	%rax, %r12
	movl	%ebx, %ebp
.LBB4_94:                               # %.lr.ph901
                                        # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	movl	$1, %esi
	movq	%r15, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
	testl	%eax, %eax
	jne	.LBB4_96
# %bb.95:                               #   in Loop: Header=BB4_94 Depth=1
	movq	80(%rsp), %rdx
	movq	128(%rsp), %rcx
	movq	112(%rsp), %r8
	.cfi_escape 0x2e, 0x00
	movl	%r14d, %edi
	movl	%r14d, %esi
	callq	_Z30__device_stub__continuousDensejjPfPKfS1_
.LBB4_96:                               #   in Loop: Header=BB4_94 Depth=1
	decl	%ebp
	jne	.LBB4_94
.LBB4_97:                               # %._crit_edge902
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_311
# %bb.98:
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	hipEventSynchronize
	testl	%eax, %eax
	jne	.LBB4_324
# %bb.99:
	movq	88(%rsp), %rsi
	movq	56(%rsp), %rdx
	.cfi_escape 0x2e, 0x00
	leaq	200(%rsp), %rdi
	callq	hipEventElapsedTime
	testl	%eax, %eax
	jne	.LBB4_337
# %bb.100:
	.cfi_escape 0x2e, 0x00
	leaq	72(%rsp), %rdi
	movq	%r14, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	testq	%r14, %r14
	je	.LBB4_103
# %bb.101:                              # %.lr.ph.i569.preheader
	movq	72(%rsp), %rax
	leaq	(,%r14,4), %rcx
	xorps	%xmm0, %xmm0
	xorl	%edx, %edx
.LBB4_102:                              # %.lr.ph.i569
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rax,%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rcx
	jne	.LBB4_102
	jmp	.LBB4_104
.LBB4_103:
	xorps	%xmm0, %xmm0
.LBB4_104:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit
	movss	%xmm0, 8(%rsp)                  # 4-byte Spill
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movl	$.L.str.10, %esi
	movl	$21, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	8(%rsp), %xmm0                  # 4-byte Folded Reload
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r12
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.11, %esi
	movl	$7, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	200(%rsp), %xmm0
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r12
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%r12, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	testq	%r14, %r14
	je	.LBB4_106
# %bb.105:                              # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit575.loopexit
	movq	72(%rsp), %rdi
	leaq	(,%r14,4), %rdx
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	memset@PLT
.LBB4_106:                              # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit575
	.cfi_escape 0x2e, 0x00
	leaq	72(%rsp), %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	88(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_350
# %bb.107:                              # %.preheader
	testl	%ebx, %ebx
	je	.LBB4_112
# %bb.108:                              # %.lr.ph904
	movl	196(%rsp), %ebp                 # 4-byte Reload
	movl	%ebp, %r12d
	imull	%r12d, %r12d
	leal	(,%r13,4), %eax
	movabsq	$4294967296, %rcx               # imm = 0x100000000
	orq	%rcx, %r12
	movq	%r13, %rcx
	movl	%eax, %r13d
	imull	%ecx, %ebp
.LBB4_109:                              # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%r12, %rdi
	movl	$1, %esi
	movq	%r15, %rdx
	movl	$1, %ecx
	movq	%r13, %r8
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
	testl	%eax, %eax
	jne	.LBB4_111
# %bb.110:                              #   in Loop: Header=BB4_109 Depth=1
	movq	80(%rsp), %rcx
	movq	128(%rsp), %r8
	movq	112(%rsp), %r9
	.cfi_escape 0x2e, 0x00
	movl	%r14d, %edi
	movl	%r14d, %esi
	movl	%ebp, %edx
	callq	_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
.LBB4_111:                              #   in Loop: Header=BB4_109 Depth=1
	decl	%ebx
	jne	.LBB4_109
.LBB4_112:                              # %._crit_edge905
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_363
# %bb.113:
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	hipEventSynchronize
	testl	%eax, %eax
	jne	.LBB4_376
# %bb.114:
	movq	88(%rsp), %rsi
	movq	56(%rsp), %rdx
	.cfi_escape 0x2e, 0x00
	leaq	200(%rsp), %rdi
	callq	hipEventElapsedTime
	testl	%eax, %eax
	jne	.LBB4_389
# %bb.115:
	.cfi_escape 0x2e, 0x00
	leaq	72(%rsp), %rdi
	movq	%r14, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	testq	%r14, %r14
	je	.LBB4_119
# %bb.116:                              # %.lr.ph.i617.preheader
	movq	72(%rsp), %rax
	shlq	$2, %r14
	xorps	%xmm0, %xmm0
	xorl	%ecx, %ecx
.LBB4_117:                              # %.lr.ph.i617
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rax,%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %r14
	jne	.LBB4_117
# %bb.118:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit622.loopexit
	cvtss2sd	%xmm0, %xmm0
	jmp	.LBB4_120
.LBB4_119:
	xorps	%xmm0, %xmm0
.LBB4_120:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit622
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movl	$.L.str.12, %esi
	movl	$27, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movsd	8(%rsp), %xmm0                  # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.11, %esi
	movl	$7, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	200(%rsp), %xmm0
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_149
.LBB4_121:
	xorps	%xmm2, %xmm2
.LBB4_122:
	movss	%xmm2, 16(%rsp)                 # 4-byte Spill
.LBB4_123:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit722
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movl	$.L.str.13, %esi
	movl	$32, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	192(%rsp), %xmm0                # 4-byte Folded Reload
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r15
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.14, %esi
	movl	$15, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	96(%rsp), %xmm0                 # 4-byte Folded Reload
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r15
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.15, %esi
	movl	$13, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	16(%rsp), %xmm0                 # 4-byte Folded Reload
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r15
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.16, %esi
	movl	$8, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	100(%rsp), %xmm0
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %r15
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%r15, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	je	.LBB4_125
# %bb.124:                              # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit727
	movq	176(%rsp), %rdi
	leaq	(,%rbp,4), %r15
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
	movq	160(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
	movq	144(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	movq	%r15, %rdx
	callq	memset@PLT
.LBB4_125:                              # %_ZSt6fill_nIPfjfET_S1_T0_RKT1_.exit737
	.cfi_escape 0x2e, 0x00
	leaq	176(%rsp), %rdi
	movq	%rbp, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	160(%rsp), %rdi
	movq	%rbp, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_escape 0x2e, 0x00
	leaq	144(%rsp), %rdi
	movq	%rbp, %rsi
	xorl	%edx, %edx
	callq	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	movq	88(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_244
# %bb.126:                              # %.preheader887
	testl	%ebx, %ebx
	je	.LBB4_131
# %bb.127:                              # %.lr.ph898
	movq	%r13, %rcx
	movl	196(%rsp), %r13d                # 4-byte Reload
	movl	%r13d, %r15d
	imull	%r15d, %r15d
	leal	(,%rcx,4), %eax
	movabsq	$4294967296, %rdx               # imm = 0x100000000
	orq	%rdx, %r15
	movl	%eax, %ebp
	imull	%ecx, %r13d
.LBB4_128:                              # =>This Inner Loop Header: Depth=1
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movl	$1, %esi
	movq	%r12, %rdx
	movl	$1, %ecx
	movq	%rbp, %r8
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
	testl	%eax, %eax
	jne	.LBB4_130
# %bb.129:                              #   in Loop: Header=BB4_128 Depth=1
	movq	80(%rsp), %rcx
	movq	128(%rsp), %r8
	movq	112(%rsp), %r9
	.cfi_escape 0x2e, 0x20
	movl	%r14d, %edi
	movl	%r14d, %esi
	movl	%r13d, %edx
	pushq	152(%rsp)
	.cfi_adjust_cfa_offset 8
	pushq	176(%rsp)
	.cfi_adjust_cfa_offset 8
	pushq	200(%rsp)
	.cfi_adjust_cfa_offset 8
	pushq	232(%rsp)
	.cfi_adjust_cfa_offset 8
	callq	_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	addq	$32, %rsp
	.cfi_adjust_cfa_offset -32
.LBB4_130:                              #   in Loop: Header=BB4_128 Depth=1
	decl	%ebx
	jne	.LBB4_128
.LBB4_131:                              # %._crit_edge899
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	xorl	%esi, %esi
	callq	hipEventRecord
	testl	%eax, %eax
	jne	.LBB4_257
# %bb.132:
	movq	56(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	hipEventSynchronize
	testl	%eax, %eax
	movq	64(%rsp), %r14                  # 8-byte Reload
	jne	.LBB4_270
# %bb.133:
	movq	88(%rsp), %rsi
	movq	56(%rsp), %rdx
	.cfi_escape 0x2e, 0x00
	leaq	100(%rsp), %rdi
	callq	hipEventElapsedTime
	testl	%eax, %eax
	jne	.LBB4_283
# %bb.134:
	.cfi_escape 0x2e, 0x00
	leaq	176(%rsp), %rdi
	movq	%r14, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.cfi_escape 0x2e, 0x00
	leaq	160(%rsp), %rdi
	movq	%r14, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.cfi_escape 0x2e, 0x00
	leaq	144(%rsp), %rdi
	movq	%r14, %rsi
	callq	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	je	.LBB4_144
# %bb.135:                              # %.lr.ph.i779.preheader
	movq	176(%rsp), %rax
	shlq	$2, %r14
	xorps	%xmm0, %xmm0
	xorl	%ecx, %ecx
.LBB4_136:                              # %.lr.ph.i779
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rax,%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %r14
	jne	.LBB4_136
# %bb.137:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit784
	cvtss2sd	%xmm0, %xmm1
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movsd	%xmm1, 16(%rsp)                 # 8-byte Spill
	je	.LBB4_145
# %bb.138:                              # %.lr.ph.i786.preheader
	movq	160(%rsp), %rax
	xorps	%xmm0, %xmm0
	xorl	%ecx, %ecx
.LBB4_139:                              # %.lr.ph.i786
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rax,%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %r14
	jne	.LBB4_139
# %bb.140:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit791
	cvtss2sd	%xmm0, %xmm2
	cmpl	$0, 8(%rsp)                     # 4-byte Folded Reload
	movsd	%xmm2, 64(%rsp)                 # 8-byte Spill
	je	.LBB4_146
# %bb.141:                              # %.lr.ph.i793.preheader
	movq	144(%rsp), %rax
	xorps	%xmm0, %xmm0
	xorl	%ecx, %ecx
.LBB4_142:                              # %.lr.ph.i793
                                        # =>This Inner Loop Header: Depth=1
	addss	(%rax,%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %r14
	jne	.LBB4_142
# %bb.143:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit798.loopexit
	cvtss2sd	%xmm0, %xmm0
	jmp	.LBB4_147
.LBB4_144:
	xorps	%xmm0, %xmm0
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
	movsd	%xmm0, 64(%rsp)                 # 8-byte Spill
	movsd	%xmm0, 16(%rsp)                 # 8-byte Spill
	jmp	.LBB4_148
.LBB4_145:
	xorps	%xmm0, %xmm0
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
	movsd	%xmm0, 64(%rsp)                 # 8-byte Spill
	jmp	.LBB4_148
.LBB4_146:
	xorps	%xmm0, %xmm0
.LBB4_147:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit798
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
.LBB4_148:                              # %_ZSt10accumulateIPffET0_T_S2_S1_.exit798
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movl	$.L.str.17, %esi
	movl	$38, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	.cfi_escape 0x2e, 0x00
	movl	$_ZSt4cout, %edi
	movsd	16(%rsp), %xmm0                 # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.14, %esi
	movl	$15, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movsd	64(%rsp), %xmm0                 # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.15, %esi
	movl	$13, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movsd	8(%rsp), %xmm0                  # 8-byte Reload
                                        # xmm0 = mem[0],zero
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.16, %esi
	movl	$8, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	xorps	%xmm0, %xmm0
	cvtss2sd	100(%rsp), %xmm0
	.cfi_escape 0x2e, 0x00
.LBB4_149:
	movq	%rbx, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
	movq	%rax, %rbx
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
	.cfi_escape 0x2e, 0x00
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
	.cfi_escape 0x2e, 0x00
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	xorl	%eax, %eax
.LBB4_150:
	addq	$5608, %rsp                     # imm = 0x15E8
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB4_151:
	.cfi_def_cfa_offset 5664
.Ltmp580:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt24__throw_invalid_argumentPKc
.Ltmp581:
# %bb.152:
.LBB4_153:
	movl	%eax, %r13d
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp29:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp30:
# %bb.154:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
.Ltmp31:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp32:
# %bb.155:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit496
.Ltmp33:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$252, %esi
	callq	_ZNSolsEi
.Ltmp34:
# %bb.156:
.Ltmp35:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp36:
# %bb.157:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit497
.Ltmp37:
	.cfi_escape 0x2e, 0x00
	movl	%r13d, %edi
	callq	hipGetErrorString
.Ltmp38:
# %bb.158:
.Ltmp39:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp40:
# %bb.159:
.Ltmp41:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp42:
# %bb.160:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit498
.Ltmp43:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%r13d, %esi
	callq	_ZNSolsEi
.Ltmp44:
# %bb.161:
.Ltmp45:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp46:
# %bb.162:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit499
.Ltmp47:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp48:
# %bb.163:                              # %_ZNSolsEPFRSoS_E.exit
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	616(%rsp), %rsi
.Ltmp50:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp51:
# %bb.164:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit
	movb	$1, %bpl
.Ltmp53:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp54:
# %bb.165:
	xorl	%ebp, %ebp
.Ltmp55:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp56:
	jmp	.LBB4_402
.LBB4_166:
	movl	%eax, %r13d
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp58:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp59:
# %bb.167:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit503
.Ltmp60:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp61:
# %bb.168:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit504
.Ltmp62:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$256, %esi                      # imm = 0x100
	callq	_ZNSolsEi
.Ltmp63:
# %bb.169:
.Ltmp64:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp65:
# %bb.170:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit505
.Ltmp66:
	.cfi_escape 0x2e, 0x00
	movl	%r13d, %edi
	callq	hipGetErrorString
.Ltmp67:
# %bb.171:
.Ltmp68:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp69:
# %bb.172:
.Ltmp70:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp71:
# %bb.173:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit506
.Ltmp72:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%r13d, %esi
	callq	_ZNSolsEi
.Ltmp73:
# %bb.174:
.Ltmp74:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp75:
# %bb.175:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit507
.Ltmp76:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp77:
# %bb.176:                              # %_ZNSolsEPFRSoS_E.exit508
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	616(%rsp), %rsi
.Ltmp79:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp80:
# %bb.177:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit509
	movb	$1, %bpl
.Ltmp82:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp83:
# %bb.178:
	xorl	%ebp, %ebp
.Ltmp84:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp85:
	jmp	.LBB4_402
.LBB4_179:
	movl	%eax, %r13d
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp87:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp88:
# %bb.180:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit513
.Ltmp89:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp90:
# %bb.181:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit514
.Ltmp91:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movl	$257, %esi                      # imm = 0x101
	callq	_ZNSolsEi
.Ltmp92:
# %bb.182:
.Ltmp93:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp94:
# %bb.183:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit515
.Ltmp95:
	.cfi_escape 0x2e, 0x00
	movl	%r13d, %edi
	callq	hipGetErrorString
.Ltmp96:
# %bb.184:
.Ltmp97:
	.cfi_escape 0x2e, 0x00
	leaq	608(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp98:
# %bb.185:
.Ltmp99:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp100:
# %bb.186:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit516
.Ltmp101:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%r13d, %esi
	callq	_ZNSolsEi
.Ltmp102:
# %bb.187:
.Ltmp103:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp104:
# %bb.188:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit517
.Ltmp105:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp106:
# %bb.189:                              # %_ZNSolsEPFRSoS_E.exit518
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	616(%rsp), %rsi
.Ltmp108:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp109:
# %bb.190:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit519
	movb	$1, %bpl
.Ltmp111:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp112:
# %bb.191:
	xorl	%ebp, %ebp
.Ltmp113:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp114:
	jmp	.LBB4_402
.LBB4_192:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp116:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp117:
# %bb.193:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit662
.Ltmp118:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp119:
# %bb.194:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit663
.Ltmp120:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$362, %esi                      # imm = 0x16A
	callq	_ZNSolsEi
.Ltmp121:
# %bb.195:
.Ltmp122:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp123:
# %bb.196:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit664
.Ltmp124:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp125:
# %bb.197:
.Ltmp126:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp127:
# %bb.198:
.Ltmp128:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp129:
# %bb.199:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit665
.Ltmp130:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp131:
# %bb.200:
.Ltmp132:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp133:
# %bb.201:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit666
.Ltmp134:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp135:
# %bb.202:                              # %_ZNSolsEPFRSoS_E.exit667
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp137:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp138:
# %bb.203:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit668
	movb	$1, %bpl
.Ltmp140:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp141:
# %bb.204:
	xorl	%ebp, %ebp
.Ltmp142:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp143:
	jmp	.LBB4_402
.LBB4_205:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp145:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp146:
# %bb.206:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit672
.Ltmp147:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp148:
# %bb.207:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit673
.Ltmp149:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$369, %esi                      # imm = 0x171
	callq	_ZNSolsEi
.Ltmp150:
# %bb.208:
.Ltmp151:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp152:
# %bb.209:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit674
.Ltmp153:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp154:
# %bb.210:
.Ltmp155:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp156:
# %bb.211:
.Ltmp157:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp158:
# %bb.212:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit675
.Ltmp159:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp160:
# %bb.213:
.Ltmp161:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp162:
# %bb.214:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit676
.Ltmp163:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp164:
# %bb.215:                              # %_ZNSolsEPFRSoS_E.exit677
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp166:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp167:
# %bb.216:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit678
	movb	$1, %bpl
.Ltmp169:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp170:
# %bb.217:
	xorl	%ebp, %ebp
.Ltmp171:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp172:
	jmp	.LBB4_402
.LBB4_218:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp174:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp175:
# %bb.219:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit682
.Ltmp176:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp177:
# %bb.220:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit683
.Ltmp178:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$370, %esi                      # imm = 0x172
	callq	_ZNSolsEi
.Ltmp179:
# %bb.221:
.Ltmp180:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp181:
# %bb.222:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit684
.Ltmp182:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp183:
# %bb.223:
.Ltmp184:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp185:
# %bb.224:
.Ltmp186:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp187:
# %bb.225:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit685
.Ltmp188:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp189:
# %bb.226:
.Ltmp190:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp191:
# %bb.227:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit686
.Ltmp192:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp193:
# %bb.228:                              # %_ZNSolsEPFRSoS_E.exit687
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp195:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp196:
# %bb.229:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit688
	movb	$1, %bpl
.Ltmp198:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp199:
# %bb.230:
	xorl	%ebp, %ebp
.Ltmp200:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp201:
	jmp	.LBB4_402
.LBB4_231:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp203:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp204:
# %bb.232:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit692
.Ltmp205:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp206:
# %bb.233:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit693
.Ltmp207:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$372, %esi                      # imm = 0x174
	callq	_ZNSolsEi
.Ltmp208:
# %bb.234:
.Ltmp209:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp210:
# %bb.235:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit694
.Ltmp211:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp212:
# %bb.236:
.Ltmp213:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp214:
# %bb.237:
.Ltmp215:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp216:
# %bb.238:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit695
.Ltmp217:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp218:
# %bb.239:
.Ltmp219:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp220:
# %bb.240:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit696
.Ltmp221:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp222:
# %bb.241:                              # %_ZNSolsEPFRSoS_E.exit697
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp224:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp225:
# %bb.242:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit698
	movb	$1, %bpl
.Ltmp227:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp228:
# %bb.243:
	xorl	%ebp, %ebp
.Ltmp229:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp230:
	jmp	.LBB4_402
.LBB4_244:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp232:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp233:
# %bb.245:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit738
.Ltmp234:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp235:
# %bb.246:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit739
.Ltmp236:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$397, %esi                      # imm = 0x18D
	callq	_ZNSolsEi
.Ltmp237:
# %bb.247:
.Ltmp238:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp239:
# %bb.248:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit740
.Ltmp240:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp241:
# %bb.249:
.Ltmp242:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp243:
# %bb.250:
.Ltmp244:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp245:
# %bb.251:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit741
.Ltmp246:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp247:
# %bb.252:
.Ltmp248:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp249:
# %bb.253:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit742
.Ltmp250:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp251:
# %bb.254:                              # %_ZNSolsEPFRSoS_E.exit743
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp253:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp254:
# %bb.255:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit744
	movb	$1, %bpl
.Ltmp256:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp257:
# %bb.256:
	xorl	%ebp, %ebp
.Ltmp258:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp259:
	jmp	.LBB4_402
.LBB4_257:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp261:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp262:
# %bb.258:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit748
.Ltmp263:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp264:
# %bb.259:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit749
.Ltmp265:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$404, %esi                      # imm = 0x194
	callq	_ZNSolsEi
.Ltmp266:
# %bb.260:
.Ltmp267:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp268:
# %bb.261:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit750
.Ltmp269:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp270:
# %bb.262:
.Ltmp271:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp272:
# %bb.263:
.Ltmp273:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp274:
# %bb.264:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit751
.Ltmp275:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp276:
# %bb.265:
.Ltmp277:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp278:
# %bb.266:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit752
.Ltmp279:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp280:
# %bb.267:                              # %_ZNSolsEPFRSoS_E.exit753
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp282:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp283:
# %bb.268:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit754
	movb	$1, %bpl
.Ltmp285:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp286:
# %bb.269:
	xorl	%ebp, %ebp
.Ltmp287:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp288:
	jmp	.LBB4_402
.LBB4_270:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp290:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp291:
# %bb.271:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit758
.Ltmp292:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp293:
# %bb.272:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit759
.Ltmp294:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$405, %esi                      # imm = 0x195
	callq	_ZNSolsEi
.Ltmp295:
# %bb.273:
.Ltmp296:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp297:
# %bb.274:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit760
.Ltmp298:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp299:
# %bb.275:
.Ltmp300:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp301:
# %bb.276:
.Ltmp302:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp303:
# %bb.277:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit761
.Ltmp304:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp305:
# %bb.278:
.Ltmp306:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp307:
# %bb.279:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit762
.Ltmp308:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp309:
# %bb.280:                              # %_ZNSolsEPFRSoS_E.exit763
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp311:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp312:
# %bb.281:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit764
	movb	$1, %bpl
.Ltmp314:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp315:
# %bb.282:
	xorl	%ebp, %ebp
.Ltmp316:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp317:
	jmp	.LBB4_402
.LBB4_283:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp319:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp320:
# %bb.284:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit768
.Ltmp321:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp322:
# %bb.285:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit769
.Ltmp323:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$407, %esi                      # imm = 0x197
	callq	_ZNSolsEi
.Ltmp324:
# %bb.286:
.Ltmp325:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp326:
# %bb.287:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit770
.Ltmp327:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp328:
# %bb.288:
.Ltmp329:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp330:
# %bb.289:
.Ltmp331:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp332:
# %bb.290:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit771
.Ltmp333:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp334:
# %bb.291:
.Ltmp335:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp336:
# %bb.292:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit772
.Ltmp337:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp338:
# %bb.293:                              # %_ZNSolsEPFRSoS_E.exit773
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp340:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp341:
# %bb.294:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit774
	movb	$1, %bpl
.Ltmp343:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp344:
# %bb.295:
	xorl	%ebp, %ebp
.Ltmp345:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp346:
	jmp	.LBB4_402
.LBB4_296:
.Ltmp26:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt24__throw_invalid_argumentPKc
.Ltmp27:
# %bb.297:
.LBB4_298:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp348:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp349:
# %bb.299:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit529
.Ltmp350:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp351:
# %bb.300:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit530
.Ltmp352:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$286, %esi                      # imm = 0x11E
	callq	_ZNSolsEi
.Ltmp353:
# %bb.301:
.Ltmp354:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp355:
# %bb.302:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit531
.Ltmp356:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp357:
# %bb.303:
.Ltmp358:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp359:
# %bb.304:
.Ltmp360:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp361:
# %bb.305:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit532
.Ltmp362:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp363:
# %bb.306:
.Ltmp364:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp365:
# %bb.307:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit533
.Ltmp366:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp367:
# %bb.308:                              # %_ZNSolsEPFRSoS_E.exit534
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp369:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp370:
# %bb.309:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit535
	movb	$1, %bpl
.Ltmp372:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp373:
# %bb.310:
	xorl	%ebp, %ebp
.Ltmp374:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp375:
	jmp	.LBB4_402
.LBB4_311:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp377:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp378:
# %bb.312:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit539
.Ltmp379:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp380:
# %bb.313:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit540
.Ltmp381:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$290, %esi                      # imm = 0x122
	callq	_ZNSolsEi
.Ltmp382:
# %bb.314:
.Ltmp383:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp384:
# %bb.315:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit541
.Ltmp385:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp386:
# %bb.316:
.Ltmp387:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp388:
# %bb.317:
.Ltmp389:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp390:
# %bb.318:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit542
.Ltmp391:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp392:
# %bb.319:
.Ltmp393:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp394:
# %bb.320:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit543
.Ltmp395:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp396:
# %bb.321:                              # %_ZNSolsEPFRSoS_E.exit544
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp398:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp399:
# %bb.322:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit545
	movb	$1, %bpl
.Ltmp401:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp402:
# %bb.323:
	xorl	%ebp, %ebp
.Ltmp403:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp404:
	jmp	.LBB4_402
.LBB4_324:
	movl	%eax, %r12d
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp406:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp407:
# %bb.325:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit549
.Ltmp408:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp409:
# %bb.326:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit550
.Ltmp410:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$291, %esi                      # imm = 0x123
	callq	_ZNSolsEi
.Ltmp411:
# %bb.327:
.Ltmp412:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp413:
# %bb.328:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit551
.Ltmp414:
	.cfi_escape 0x2e, 0x00
	movl	%r12d, %edi
	callq	hipGetErrorString
.Ltmp415:
# %bb.329:
.Ltmp416:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp417:
# %bb.330:
.Ltmp418:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp419:
# %bb.331:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit552
.Ltmp420:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_ZNSolsEi
.Ltmp421:
# %bb.332:
.Ltmp422:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp423:
# %bb.333:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit553
.Ltmp424:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp425:
# %bb.334:                              # %_ZNSolsEPFRSoS_E.exit554
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp427:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp428:
# %bb.335:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit555
	movb	$1, %bpl
.Ltmp430:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp431:
# %bb.336:
	xorl	%ebp, %ebp
.Ltmp432:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp433:
	jmp	.LBB4_402
.LBB4_337:
	movl	%eax, %r12d
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp435:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp436:
# %bb.338:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit559
.Ltmp437:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp438:
# %bb.339:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit560
.Ltmp439:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$293, %esi                      # imm = 0x125
	callq	_ZNSolsEi
.Ltmp440:
# %bb.340:
.Ltmp441:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp442:
# %bb.341:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit561
.Ltmp443:
	.cfi_escape 0x2e, 0x00
	movl	%r12d, %edi
	callq	hipGetErrorString
.Ltmp444:
# %bb.342:
.Ltmp445:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp446:
# %bb.343:
.Ltmp447:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp448:
# %bb.344:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit562
.Ltmp449:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%r12d, %esi
	callq	_ZNSolsEi
.Ltmp450:
# %bb.345:
.Ltmp451:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp452:
# %bb.346:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit563
.Ltmp453:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp454:
# %bb.347:                              # %_ZNSolsEPFRSoS_E.exit564
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp456:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp457:
# %bb.348:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit565
	movb	$1, %bpl
.Ltmp459:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp460:
# %bb.349:
	xorl	%ebp, %ebp
.Ltmp461:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp462:
	jmp	.LBB4_402
.LBB4_350:
	movl	%eax, %ebp
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp464:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp465:
# %bb.351:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit576
.Ltmp466:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp467:
# %bb.352:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit577
.Ltmp468:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$310, %esi                      # imm = 0x136
	callq	_ZNSolsEi
.Ltmp469:
# %bb.353:
.Ltmp470:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp471:
# %bb.354:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit578
.Ltmp472:
	.cfi_escape 0x2e, 0x00
	movl	%ebp, %edi
	callq	hipGetErrorString
.Ltmp473:
# %bb.355:
.Ltmp474:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp475:
# %bb.356:
.Ltmp476:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp477:
# %bb.357:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit579
.Ltmp478:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	movl	%ebp, %esi
	callq	_ZNSolsEi
.Ltmp479:
# %bb.358:
.Ltmp480:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp481:
# %bb.359:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit580
.Ltmp482:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp483:
# %bb.360:                              # %_ZNSolsEPFRSoS_E.exit581
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp485:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp486:
# %bb.361:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit582
	movb	$1, %bpl
.Ltmp488:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp489:
# %bb.362:
	xorl	%ebp, %ebp
.Ltmp490:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp491:
	jmp	.LBB4_402
.LBB4_363:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp493:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp494:
# %bb.364:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit586
.Ltmp495:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp496:
# %bb.365:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit587
.Ltmp497:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$315, %esi                      # imm = 0x13B
	callq	_ZNSolsEi
.Ltmp498:
# %bb.366:
.Ltmp499:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp500:
# %bb.367:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit588
.Ltmp501:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp502:
# %bb.368:
.Ltmp503:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp504:
# %bb.369:
.Ltmp505:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp506:
# %bb.370:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit589
.Ltmp507:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp508:
# %bb.371:
.Ltmp509:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp510:
# %bb.372:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit590
.Ltmp511:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp512:
# %bb.373:                              # %_ZNSolsEPFRSoS_E.exit591
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp514:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp515:
# %bb.374:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit592
	movb	$1, %bpl
.Ltmp517:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp518:
# %bb.375:
	xorl	%ebp, %ebp
.Ltmp519:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp520:
	jmp	.LBB4_402
.LBB4_376:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp522:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp523:
# %bb.377:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit596
.Ltmp524:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp525:
# %bb.378:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit597
.Ltmp526:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$316, %esi                      # imm = 0x13C
	callq	_ZNSolsEi
.Ltmp527:
# %bb.379:
.Ltmp528:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp529:
# %bb.380:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit598
.Ltmp530:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp531:
# %bb.381:
.Ltmp532:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp533:
# %bb.382:
.Ltmp534:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp535:
# %bb.383:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit599
.Ltmp536:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp537:
# %bb.384:
.Ltmp538:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp539:
# %bb.385:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit600
.Ltmp540:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp541:
# %bb.386:                              # %_ZNSolsEPFRSoS_E.exit601
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp543:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp544:
# %bb.387:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit602
	movb	$1, %bpl
.Ltmp546:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp547:
# %bb.388:
	xorl	%ebp, %ebp
.Ltmp548:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp549:
	jmp	.LBB4_402
.LBB4_389:
	movl	%eax, %ebx
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp551:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp552:
# %bb.390:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit606
.Ltmp553:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp554:
# %bb.391:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit607
.Ltmp555:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movl	$318, %esi                      # imm = 0x13E
	callq	_ZNSolsEi
.Ltmp556:
# %bb.392:
.Ltmp557:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp558:
# %bb.393:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit608
.Ltmp559:
	.cfi_escape 0x2e, 0x00
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp560:
# %bb.394:
.Ltmp561:
	.cfi_escape 0x2e, 0x00
	leaq	232(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp562:
# %bb.395:
.Ltmp563:
	movq	%rax, %r14
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp564:
# %bb.396:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit609
.Ltmp565:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp566:
# %bb.397:
.Ltmp567:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp568:
# %bb.398:                              # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit610
.Ltmp569:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp570:
# %bb.399:                              # %_ZNSolsEPFRSoS_E.exit611
	.cfi_escape 0x2e, 0x00
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	240(%rsp), %rsi
.Ltmp572:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp573:
# %bb.400:                              # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit612
	movb	$1, %bpl
.Ltmp575:
	.cfi_escape 0x2e, 0x00
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp576:
# %bb.401:
	xorl	%ebp, %ebp
.Ltmp577:
	.cfi_escape 0x2e, 0x00
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp578:
.LBB4_402:
.LBB4_403:
.Ltmp23:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt24__throw_invalid_argumentPKc
.Ltmp24:
# %bb.404:
.LBB4_405:
.Ltmp20:
	.cfi_escape 0x2e, 0x00
	movl	$.L.str.18, %edi
	callq	_ZSt24__throw_invalid_argumentPKc
.Ltmp21:
# %bb.406:
.LBB4_407:
.Ltmp579:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_409
# %bb.408:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit615
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_409:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit615
	testb	%bpl, %bpl
	jne	.LBB4_411
	jmp	.LBB4_412
.LBB4_410:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit615.thread
.Ltmp574:
	movq	%rax, %rbx
.LBB4_411:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_412:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_413:
.Ltmp550:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_415
# %bb.414:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_415:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
	testb	%bpl, %bpl
	jne	.LBB4_417
	jmp	.LBB4_418
.LBB4_416:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605.thread
.Ltmp545:
	movq	%rax, %rbx
.LBB4_417:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_418:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_419:
.Ltmp521:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_421
# %bb.420:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit595
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_421:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit595
	testb	%bpl, %bpl
	jne	.LBB4_423
	jmp	.LBB4_424
.LBB4_422:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit595.thread
.Ltmp516:
	movq	%rax, %rbx
.LBB4_423:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_424:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_425:
.Ltmp492:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_427
# %bb.426:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit585
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_427:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit585
	testb	%bpl, %bpl
	jne	.LBB4_429
	jmp	.LBB4_430
.LBB4_428:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit585.thread
.Ltmp487:
	movq	%rax, %rbx
.LBB4_429:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_430:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_431:
.Ltmp463:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_433
# %bb.432:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit568
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_433:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit568
	testb	%bpl, %bpl
	jne	.LBB4_435
	jmp	.LBB4_436
.LBB4_434:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit568.thread
.Ltmp458:
	movq	%rax, %rbx
.LBB4_435:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_436:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_437:
.Ltmp434:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_439
# %bb.438:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_439:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
	testb	%bpl, %bpl
	jne	.LBB4_441
	jmp	.LBB4_442
.LBB4_440:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558.thread
.Ltmp429:
	movq	%rax, %rbx
.LBB4_441:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_442:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_443:
.Ltmp405:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_445
# %bb.444:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit548
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_445:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit548
	testb	%bpl, %bpl
	jne	.LBB4_447
	jmp	.LBB4_448
.LBB4_446:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit548.thread
.Ltmp400:
	movq	%rax, %rbx
.LBB4_447:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_448:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_449:
.Ltmp376:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_451
# %bb.450:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit538
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_451:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit538
	testb	%bpl, %bpl
	jne	.LBB4_453
	jmp	.LBB4_533
.LBB4_452:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit538.thread
.Ltmp371:
	movq	%rax, %rbx
.LBB4_453:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
	jmp	.LBB4_533
.LBB4_454:
.Ltmp347:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_456
# %bb.455:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit777
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_456:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit777
	testb	%bpl, %bpl
	jne	.LBB4_458
	jmp	.LBB4_459
.LBB4_457:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit777.thread
.Ltmp342:
	movq	%rax, %rbx
.LBB4_458:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_459:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_460:
.Ltmp318:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_462
# %bb.461:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit767
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_462:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit767
	testb	%bpl, %bpl
	jne	.LBB4_464
	jmp	.LBB4_465
.LBB4_463:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit767.thread
.Ltmp313:
	movq	%rax, %rbx
.LBB4_464:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_465:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_466:
.Ltmp289:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_468
# %bb.467:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_468:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
	testb	%bpl, %bpl
	jne	.LBB4_470
	jmp	.LBB4_471
.LBB4_469:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757.thread
.Ltmp284:
	movq	%rax, %rbx
.LBB4_470:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_471:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_472:
.Ltmp260:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_474
# %bb.473:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit747
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_474:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit747
	testb	%bpl, %bpl
	jne	.LBB4_476
	jmp	.LBB4_477
.LBB4_475:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit747.thread
.Ltmp255:
	movq	%rax, %rbx
.LBB4_476:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_477:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_478:
.Ltmp231:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_480
# %bb.479:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit701
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_480:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit701
	testb	%bpl, %bpl
	jne	.LBB4_482
	jmp	.LBB4_483
.LBB4_481:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit701.thread
.Ltmp226:
	movq	%rax, %rbx
.LBB4_482:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_483:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_484:
.Ltmp202:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_486
# %bb.485:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit691
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_486:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit691
	testb	%bpl, %bpl
	jne	.LBB4_488
	jmp	.LBB4_489
.LBB4_487:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit691.thread
.Ltmp197:
	movq	%rax, %rbx
.LBB4_488:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_489:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_490:
.Ltmp173:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_492
# %bb.491:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit681
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_492:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit681
	testb	%bpl, %bpl
	jne	.LBB4_494
	jmp	.LBB4_495
.LBB4_493:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit681.thread
.Ltmp168:
	movq	%rax, %rbx
.LBB4_494:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_495:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_496:
.Ltmp144:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_498
# %bb.497:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit671
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_498:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit671
	testb	%bpl, %bpl
	jne	.LBB4_500
	jmp	.LBB4_501
.LBB4_499:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit671.thread
.Ltmp139:
	movq	%rax, %rbx
.LBB4_500:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_501:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_502:
.Ltmp115:
	movq	%rax, %rbx
	leaq	248(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_504
# %bb.503:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_504:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
	testb	%bpl, %bpl
	jne	.LBB4_506
	jmp	.LBB4_507
.LBB4_505:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522.thread
.Ltmp110:
	movq	%rax, %rbx
.LBB4_506:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_507:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_558
.LBB4_508:
.Ltmp86:
	movq	%rax, %rbx
	leaq	248(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_510
# %bb.509:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit512
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_510:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit512
	testb	%bpl, %bpl
	jne	.LBB4_512
	jmp	.LBB4_513
.LBB4_511:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit512.thread
.Ltmp81:
	movq	%rax, %rbx
.LBB4_512:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
.LBB4_513:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_558
.LBB4_514:
.Ltmp57:
	movq	%rax, %rbx
	leaq	248(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_516
# %bb.515:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit502
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB4_516:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit502
	testb	%bpl, %bpl
	jne	.LBB4_518
	jmp	.LBB4_557
.LBB4_517:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit502.thread
.Ltmp52:
	movq	%rax, %rbx
.LBB4_518:
	.cfi_escape 0x2e, 0x00
	movq	%r14, %rdi
	callq	__cxa_free_exception
	jmp	.LBB4_557
.LBB4_519:
.Ltmp17:
	jmp	.LBB4_562
.LBB4_520:
.Ltmp22:
	movq	%rax, %rbx
	cmpl	$0, (%r14)
	jne	.LBB4_522
# %bb.521:
	movl	%ebp, (%r14)
.LBB4_522:                              # %_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev.exit.i.i486
	movq	608(%rsp), %rdi
	leaq	624(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB4_560
# %bb.523:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i493
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_567
.LBB4_524:
.Ltmp12:
	jmp	.LBB4_562
.LBB4_525:
.Ltmp571:
	jmp	.LBB4_547
.LBB4_526:
.Ltmp542:
	jmp	.LBB4_547
.LBB4_527:
.Ltmp513:
	jmp	.LBB4_547
.LBB4_528:
.Ltmp484:
	jmp	.LBB4_547
.LBB4_529:
.Ltmp455:
	jmp	.LBB4_547
.LBB4_530:
.Ltmp426:
	jmp	.LBB4_547
.LBB4_531:
.Ltmp397:
	jmp	.LBB4_547
.LBB4_532:
.Ltmp368:
	movq	%rax, %rbx
.LBB4_533:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_548
.LBB4_534:
.Ltmp25:
	movq	%rax, %rbx
	cmpl	$0, (%r14)
	jne	.LBB4_536
# %bb.535:
	movl	136(%rsp), %eax                 # 4-byte Reload
	movl	%eax, (%r14)
.LBB4_536:                              # %_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev.exit.i.i475
	movq	608(%rsp), %rdi
	leaq	624(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB4_560
# %bb.537:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i482
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_567
.LBB4_538:
.Ltmp7:
	jmp	.LBB4_562
.LBB4_539:
.Ltmp339:
	jmp	.LBB4_547
.LBB4_540:
.Ltmp310:
	jmp	.LBB4_547
.LBB4_541:
.Ltmp281:
	jmp	.LBB4_547
.LBB4_542:
.Ltmp252:
	jmp	.LBB4_547
.LBB4_543:
.Ltmp223:
	jmp	.LBB4_547
.LBB4_544:
.Ltmp194:
	jmp	.LBB4_547
.LBB4_545:
.Ltmp165:
	jmp	.LBB4_547
.LBB4_546:
.Ltmp136:
.LBB4_547:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
.LBB4_548:
	leaq	232(%rsp), %rdi
	movl	$_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, %esi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
	leaq	344(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_559
.LBB4_549:
.Ltmp28:
	movq	%rax, %rbx
	cmpl	$0, (%r14)
	jne	.LBB4_551
# %bb.550:
	movl	16(%rsp), %eax                  # 4-byte Reload
	movl	%eax, (%r14)
.LBB4_551:                              # %_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev.exit.i.i464
	movq	608(%rsp), %rdi
	leaq	624(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB4_560
# %bb.552:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i471
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_567
.LBB4_553:
.Ltmp107:
	jmp	.LBB4_555
.LBB4_554:
.Ltmp78:
.LBB4_555:
	movq	%rax, %rbx
	.cfi_escape 0x2e, 0x00
	jmp	.LBB4_558
.LBB4_556:
.Ltmp49:
	movq	%rax, %rbx
.LBB4_557:
	.cfi_escape 0x2e, 0x00
.LBB4_558:
	leaq	608(%rsp), %rdi
	movl	$_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, %esi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
	leaq	720(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
.LBB4_559:
	callq	_ZNSt8ios_baseD2Ev
.LBB4_560:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB4_561:
.Ltmp2:
.LBB4_562:
	movq	%rax, %rbx
	jmp	.LBB4_560
.LBB4_563:
.Ltmp582:
	movq	%rax, %rbx
	cmpl	$0, (%r14)
	jne	.LBB4_565
# %bb.564:
	movl	%r12d, (%r14)
.LBB4_565:                              # %_ZZN9__gnu_cxx6__stoaImmcJiEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2Ev.exit.i.i
	leaq	624(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB4_560
# %bb.566:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i460
	.cfi_escape 0x2e, 0x00
.LBB4_567:
	callq	_ZdlPv
	jmp	.LBB4_560
.Lfunc_end4:
	.size	main, .Lfunc_end4-main
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table4:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Lfunc_begin0-.Lfunc_begin0    # >> Call Site 1 <<
	.uleb128 .Ltmp0-.Lfunc_begin0           #   Call between .Lfunc_begin0 and .Ltmp0
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp1-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp1
	.uleb128 .Ltmp2-.Lfunc_begin0           #     jumps to .Ltmp2
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp3-.Lfunc_begin0           # >> Call Site 3 <<
	.uleb128 .Ltmp4-.Ltmp3                  #   Call between .Ltmp3 and .Ltmp4
	.uleb128 .Ltmp582-.Lfunc_begin0         #     jumps to .Ltmp582
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp5-.Lfunc_begin0           # >> Call Site 4 <<
	.uleb128 .Ltmp6-.Ltmp5                  #   Call between .Ltmp5 and .Ltmp6
	.uleb128 .Ltmp7-.Lfunc_begin0           #     jumps to .Ltmp7
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp8-.Lfunc_begin0           # >> Call Site 5 <<
	.uleb128 .Ltmp9-.Ltmp8                  #   Call between .Ltmp8 and .Ltmp9
	.uleb128 .Ltmp28-.Lfunc_begin0          #     jumps to .Ltmp28
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp10-.Lfunc_begin0          # >> Call Site 6 <<
	.uleb128 .Ltmp11-.Ltmp10                #   Call between .Ltmp10 and .Ltmp11
	.uleb128 .Ltmp12-.Lfunc_begin0          #     jumps to .Ltmp12
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp13-.Lfunc_begin0          # >> Call Site 7 <<
	.uleb128 .Ltmp14-.Ltmp13                #   Call between .Ltmp13 and .Ltmp14
	.uleb128 .Ltmp25-.Lfunc_begin0          #     jumps to .Ltmp25
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp15-.Lfunc_begin0          # >> Call Site 8 <<
	.uleb128 .Ltmp16-.Ltmp15                #   Call between .Ltmp15 and .Ltmp16
	.uleb128 .Ltmp17-.Lfunc_begin0          #     jumps to .Ltmp17
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp18-.Lfunc_begin0          # >> Call Site 9 <<
	.uleb128 .Ltmp19-.Ltmp18                #   Call between .Ltmp18 and .Ltmp19
	.uleb128 .Ltmp22-.Lfunc_begin0          #     jumps to .Ltmp22
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp19-.Lfunc_begin0          # >> Call Site 10 <<
	.uleb128 .Ltmp580-.Ltmp19               #   Call between .Ltmp19 and .Ltmp580
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp580-.Lfunc_begin0         # >> Call Site 11 <<
	.uleb128 .Ltmp581-.Ltmp580              #   Call between .Ltmp580 and .Ltmp581
	.uleb128 .Ltmp582-.Lfunc_begin0         #     jumps to .Ltmp582
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp581-.Lfunc_begin0         # >> Call Site 12 <<
	.uleb128 .Ltmp29-.Ltmp581               #   Call between .Ltmp581 and .Ltmp29
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp29-.Lfunc_begin0          # >> Call Site 13 <<
	.uleb128 .Ltmp48-.Ltmp29                #   Call between .Ltmp29 and .Ltmp48
	.uleb128 .Ltmp49-.Lfunc_begin0          #     jumps to .Ltmp49
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp48-.Lfunc_begin0          # >> Call Site 14 <<
	.uleb128 .Ltmp50-.Ltmp48                #   Call between .Ltmp48 and .Ltmp50
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp50-.Lfunc_begin0          # >> Call Site 15 <<
	.uleb128 .Ltmp51-.Ltmp50                #   Call between .Ltmp50 and .Ltmp51
	.uleb128 .Ltmp52-.Lfunc_begin0          #     jumps to .Ltmp52
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp53-.Lfunc_begin0          # >> Call Site 16 <<
	.uleb128 .Ltmp56-.Ltmp53                #   Call between .Ltmp53 and .Ltmp56
	.uleb128 .Ltmp57-.Lfunc_begin0          #     jumps to .Ltmp57
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp56-.Lfunc_begin0          # >> Call Site 17 <<
	.uleb128 .Ltmp58-.Ltmp56                #   Call between .Ltmp56 and .Ltmp58
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp58-.Lfunc_begin0          # >> Call Site 18 <<
	.uleb128 .Ltmp77-.Ltmp58                #   Call between .Ltmp58 and .Ltmp77
	.uleb128 .Ltmp78-.Lfunc_begin0          #     jumps to .Ltmp78
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp77-.Lfunc_begin0          # >> Call Site 19 <<
	.uleb128 .Ltmp79-.Ltmp77                #   Call between .Ltmp77 and .Ltmp79
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp79-.Lfunc_begin0          # >> Call Site 20 <<
	.uleb128 .Ltmp80-.Ltmp79                #   Call between .Ltmp79 and .Ltmp80
	.uleb128 .Ltmp81-.Lfunc_begin0          #     jumps to .Ltmp81
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp82-.Lfunc_begin0          # >> Call Site 21 <<
	.uleb128 .Ltmp85-.Ltmp82                #   Call between .Ltmp82 and .Ltmp85
	.uleb128 .Ltmp86-.Lfunc_begin0          #     jumps to .Ltmp86
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp85-.Lfunc_begin0          # >> Call Site 22 <<
	.uleb128 .Ltmp87-.Ltmp85                #   Call between .Ltmp85 and .Ltmp87
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp87-.Lfunc_begin0          # >> Call Site 23 <<
	.uleb128 .Ltmp106-.Ltmp87               #   Call between .Ltmp87 and .Ltmp106
	.uleb128 .Ltmp107-.Lfunc_begin0         #     jumps to .Ltmp107
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp106-.Lfunc_begin0         # >> Call Site 24 <<
	.uleb128 .Ltmp108-.Ltmp106              #   Call between .Ltmp106 and .Ltmp108
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp108-.Lfunc_begin0         # >> Call Site 25 <<
	.uleb128 .Ltmp109-.Ltmp108              #   Call between .Ltmp108 and .Ltmp109
	.uleb128 .Ltmp110-.Lfunc_begin0         #     jumps to .Ltmp110
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp111-.Lfunc_begin0         # >> Call Site 26 <<
	.uleb128 .Ltmp114-.Ltmp111              #   Call between .Ltmp111 and .Ltmp114
	.uleb128 .Ltmp115-.Lfunc_begin0         #     jumps to .Ltmp115
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp114-.Lfunc_begin0         # >> Call Site 27 <<
	.uleb128 .Ltmp116-.Ltmp114              #   Call between .Ltmp114 and .Ltmp116
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp116-.Lfunc_begin0         # >> Call Site 28 <<
	.uleb128 .Ltmp135-.Ltmp116              #   Call between .Ltmp116 and .Ltmp135
	.uleb128 .Ltmp136-.Lfunc_begin0         #     jumps to .Ltmp136
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp135-.Lfunc_begin0         # >> Call Site 29 <<
	.uleb128 .Ltmp137-.Ltmp135              #   Call between .Ltmp135 and .Ltmp137
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp137-.Lfunc_begin0         # >> Call Site 30 <<
	.uleb128 .Ltmp138-.Ltmp137              #   Call between .Ltmp137 and .Ltmp138
	.uleb128 .Ltmp139-.Lfunc_begin0         #     jumps to .Ltmp139
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp140-.Lfunc_begin0         # >> Call Site 31 <<
	.uleb128 .Ltmp143-.Ltmp140              #   Call between .Ltmp140 and .Ltmp143
	.uleb128 .Ltmp144-.Lfunc_begin0         #     jumps to .Ltmp144
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp143-.Lfunc_begin0         # >> Call Site 32 <<
	.uleb128 .Ltmp145-.Ltmp143              #   Call between .Ltmp143 and .Ltmp145
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp145-.Lfunc_begin0         # >> Call Site 33 <<
	.uleb128 .Ltmp164-.Ltmp145              #   Call between .Ltmp145 and .Ltmp164
	.uleb128 .Ltmp165-.Lfunc_begin0         #     jumps to .Ltmp165
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp164-.Lfunc_begin0         # >> Call Site 34 <<
	.uleb128 .Ltmp166-.Ltmp164              #   Call between .Ltmp164 and .Ltmp166
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp166-.Lfunc_begin0         # >> Call Site 35 <<
	.uleb128 .Ltmp167-.Ltmp166              #   Call between .Ltmp166 and .Ltmp167
	.uleb128 .Ltmp168-.Lfunc_begin0         #     jumps to .Ltmp168
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp169-.Lfunc_begin0         # >> Call Site 36 <<
	.uleb128 .Ltmp172-.Ltmp169              #   Call between .Ltmp169 and .Ltmp172
	.uleb128 .Ltmp173-.Lfunc_begin0         #     jumps to .Ltmp173
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp172-.Lfunc_begin0         # >> Call Site 37 <<
	.uleb128 .Ltmp174-.Ltmp172              #   Call between .Ltmp172 and .Ltmp174
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp174-.Lfunc_begin0         # >> Call Site 38 <<
	.uleb128 .Ltmp193-.Ltmp174              #   Call between .Ltmp174 and .Ltmp193
	.uleb128 .Ltmp194-.Lfunc_begin0         #     jumps to .Ltmp194
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp193-.Lfunc_begin0         # >> Call Site 39 <<
	.uleb128 .Ltmp195-.Ltmp193              #   Call between .Ltmp193 and .Ltmp195
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp195-.Lfunc_begin0         # >> Call Site 40 <<
	.uleb128 .Ltmp196-.Ltmp195              #   Call between .Ltmp195 and .Ltmp196
	.uleb128 .Ltmp197-.Lfunc_begin0         #     jumps to .Ltmp197
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp198-.Lfunc_begin0         # >> Call Site 41 <<
	.uleb128 .Ltmp201-.Ltmp198              #   Call between .Ltmp198 and .Ltmp201
	.uleb128 .Ltmp202-.Lfunc_begin0         #     jumps to .Ltmp202
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp201-.Lfunc_begin0         # >> Call Site 42 <<
	.uleb128 .Ltmp203-.Ltmp201              #   Call between .Ltmp201 and .Ltmp203
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp203-.Lfunc_begin0         # >> Call Site 43 <<
	.uleb128 .Ltmp222-.Ltmp203              #   Call between .Ltmp203 and .Ltmp222
	.uleb128 .Ltmp223-.Lfunc_begin0         #     jumps to .Ltmp223
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp222-.Lfunc_begin0         # >> Call Site 44 <<
	.uleb128 .Ltmp224-.Ltmp222              #   Call between .Ltmp222 and .Ltmp224
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp224-.Lfunc_begin0         # >> Call Site 45 <<
	.uleb128 .Ltmp225-.Ltmp224              #   Call between .Ltmp224 and .Ltmp225
	.uleb128 .Ltmp226-.Lfunc_begin0         #     jumps to .Ltmp226
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp227-.Lfunc_begin0         # >> Call Site 46 <<
	.uleb128 .Ltmp230-.Ltmp227              #   Call between .Ltmp227 and .Ltmp230
	.uleb128 .Ltmp231-.Lfunc_begin0         #     jumps to .Ltmp231
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp230-.Lfunc_begin0         # >> Call Site 47 <<
	.uleb128 .Ltmp232-.Ltmp230              #   Call between .Ltmp230 and .Ltmp232
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp232-.Lfunc_begin0         # >> Call Site 48 <<
	.uleb128 .Ltmp251-.Ltmp232              #   Call between .Ltmp232 and .Ltmp251
	.uleb128 .Ltmp252-.Lfunc_begin0         #     jumps to .Ltmp252
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp251-.Lfunc_begin0         # >> Call Site 49 <<
	.uleb128 .Ltmp253-.Ltmp251              #   Call between .Ltmp251 and .Ltmp253
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp253-.Lfunc_begin0         # >> Call Site 50 <<
	.uleb128 .Ltmp254-.Ltmp253              #   Call between .Ltmp253 and .Ltmp254
	.uleb128 .Ltmp255-.Lfunc_begin0         #     jumps to .Ltmp255
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp256-.Lfunc_begin0         # >> Call Site 51 <<
	.uleb128 .Ltmp259-.Ltmp256              #   Call between .Ltmp256 and .Ltmp259
	.uleb128 .Ltmp260-.Lfunc_begin0         #     jumps to .Ltmp260
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp259-.Lfunc_begin0         # >> Call Site 52 <<
	.uleb128 .Ltmp261-.Ltmp259              #   Call between .Ltmp259 and .Ltmp261
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp261-.Lfunc_begin0         # >> Call Site 53 <<
	.uleb128 .Ltmp280-.Ltmp261              #   Call between .Ltmp261 and .Ltmp280
	.uleb128 .Ltmp281-.Lfunc_begin0         #     jumps to .Ltmp281
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp280-.Lfunc_begin0         # >> Call Site 54 <<
	.uleb128 .Ltmp282-.Ltmp280              #   Call between .Ltmp280 and .Ltmp282
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp282-.Lfunc_begin0         # >> Call Site 55 <<
	.uleb128 .Ltmp283-.Ltmp282              #   Call between .Ltmp282 and .Ltmp283
	.uleb128 .Ltmp284-.Lfunc_begin0         #     jumps to .Ltmp284
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp285-.Lfunc_begin0         # >> Call Site 56 <<
	.uleb128 .Ltmp288-.Ltmp285              #   Call between .Ltmp285 and .Ltmp288
	.uleb128 .Ltmp289-.Lfunc_begin0         #     jumps to .Ltmp289
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp288-.Lfunc_begin0         # >> Call Site 57 <<
	.uleb128 .Ltmp290-.Ltmp288              #   Call between .Ltmp288 and .Ltmp290
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp290-.Lfunc_begin0         # >> Call Site 58 <<
	.uleb128 .Ltmp309-.Ltmp290              #   Call between .Ltmp290 and .Ltmp309
	.uleb128 .Ltmp310-.Lfunc_begin0         #     jumps to .Ltmp310
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp309-.Lfunc_begin0         # >> Call Site 59 <<
	.uleb128 .Ltmp311-.Ltmp309              #   Call between .Ltmp309 and .Ltmp311
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp311-.Lfunc_begin0         # >> Call Site 60 <<
	.uleb128 .Ltmp312-.Ltmp311              #   Call between .Ltmp311 and .Ltmp312
	.uleb128 .Ltmp313-.Lfunc_begin0         #     jumps to .Ltmp313
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp314-.Lfunc_begin0         # >> Call Site 61 <<
	.uleb128 .Ltmp317-.Ltmp314              #   Call between .Ltmp314 and .Ltmp317
	.uleb128 .Ltmp318-.Lfunc_begin0         #     jumps to .Ltmp318
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp317-.Lfunc_begin0         # >> Call Site 62 <<
	.uleb128 .Ltmp319-.Ltmp317              #   Call between .Ltmp317 and .Ltmp319
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp319-.Lfunc_begin0         # >> Call Site 63 <<
	.uleb128 .Ltmp338-.Ltmp319              #   Call between .Ltmp319 and .Ltmp338
	.uleb128 .Ltmp339-.Lfunc_begin0         #     jumps to .Ltmp339
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp338-.Lfunc_begin0         # >> Call Site 64 <<
	.uleb128 .Ltmp340-.Ltmp338              #   Call between .Ltmp338 and .Ltmp340
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp340-.Lfunc_begin0         # >> Call Site 65 <<
	.uleb128 .Ltmp341-.Ltmp340              #   Call between .Ltmp340 and .Ltmp341
	.uleb128 .Ltmp342-.Lfunc_begin0         #     jumps to .Ltmp342
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp343-.Lfunc_begin0         # >> Call Site 66 <<
	.uleb128 .Ltmp346-.Ltmp343              #   Call between .Ltmp343 and .Ltmp346
	.uleb128 .Ltmp347-.Lfunc_begin0         #     jumps to .Ltmp347
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp26-.Lfunc_begin0          # >> Call Site 67 <<
	.uleb128 .Ltmp27-.Ltmp26                #   Call between .Ltmp26 and .Ltmp27
	.uleb128 .Ltmp28-.Lfunc_begin0          #     jumps to .Ltmp28
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp27-.Lfunc_begin0          # >> Call Site 68 <<
	.uleb128 .Ltmp348-.Ltmp27               #   Call between .Ltmp27 and .Ltmp348
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp348-.Lfunc_begin0         # >> Call Site 69 <<
	.uleb128 .Ltmp367-.Ltmp348              #   Call between .Ltmp348 and .Ltmp367
	.uleb128 .Ltmp368-.Lfunc_begin0         #     jumps to .Ltmp368
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp367-.Lfunc_begin0         # >> Call Site 70 <<
	.uleb128 .Ltmp369-.Ltmp367              #   Call between .Ltmp367 and .Ltmp369
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp369-.Lfunc_begin0         # >> Call Site 71 <<
	.uleb128 .Ltmp370-.Ltmp369              #   Call between .Ltmp369 and .Ltmp370
	.uleb128 .Ltmp371-.Lfunc_begin0         #     jumps to .Ltmp371
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp372-.Lfunc_begin0         # >> Call Site 72 <<
	.uleb128 .Ltmp375-.Ltmp372              #   Call between .Ltmp372 and .Ltmp375
	.uleb128 .Ltmp376-.Lfunc_begin0         #     jumps to .Ltmp376
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp375-.Lfunc_begin0         # >> Call Site 73 <<
	.uleb128 .Ltmp377-.Ltmp375              #   Call between .Ltmp375 and .Ltmp377
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp377-.Lfunc_begin0         # >> Call Site 74 <<
	.uleb128 .Ltmp396-.Ltmp377              #   Call between .Ltmp377 and .Ltmp396
	.uleb128 .Ltmp397-.Lfunc_begin0         #     jumps to .Ltmp397
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp396-.Lfunc_begin0         # >> Call Site 75 <<
	.uleb128 .Ltmp398-.Ltmp396              #   Call between .Ltmp396 and .Ltmp398
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp398-.Lfunc_begin0         # >> Call Site 76 <<
	.uleb128 .Ltmp399-.Ltmp398              #   Call between .Ltmp398 and .Ltmp399
	.uleb128 .Ltmp400-.Lfunc_begin0         #     jumps to .Ltmp400
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp401-.Lfunc_begin0         # >> Call Site 77 <<
	.uleb128 .Ltmp404-.Ltmp401              #   Call between .Ltmp401 and .Ltmp404
	.uleb128 .Ltmp405-.Lfunc_begin0         #     jumps to .Ltmp405
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp404-.Lfunc_begin0         # >> Call Site 78 <<
	.uleb128 .Ltmp406-.Ltmp404              #   Call between .Ltmp404 and .Ltmp406
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp406-.Lfunc_begin0         # >> Call Site 79 <<
	.uleb128 .Ltmp425-.Ltmp406              #   Call between .Ltmp406 and .Ltmp425
	.uleb128 .Ltmp426-.Lfunc_begin0         #     jumps to .Ltmp426
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp425-.Lfunc_begin0         # >> Call Site 80 <<
	.uleb128 .Ltmp427-.Ltmp425              #   Call between .Ltmp425 and .Ltmp427
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp427-.Lfunc_begin0         # >> Call Site 81 <<
	.uleb128 .Ltmp428-.Ltmp427              #   Call between .Ltmp427 and .Ltmp428
	.uleb128 .Ltmp429-.Lfunc_begin0         #     jumps to .Ltmp429
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp430-.Lfunc_begin0         # >> Call Site 82 <<
	.uleb128 .Ltmp433-.Ltmp430              #   Call between .Ltmp430 and .Ltmp433
	.uleb128 .Ltmp434-.Lfunc_begin0         #     jumps to .Ltmp434
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp433-.Lfunc_begin0         # >> Call Site 83 <<
	.uleb128 .Ltmp435-.Ltmp433              #   Call between .Ltmp433 and .Ltmp435
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp435-.Lfunc_begin0         # >> Call Site 84 <<
	.uleb128 .Ltmp454-.Ltmp435              #   Call between .Ltmp435 and .Ltmp454
	.uleb128 .Ltmp455-.Lfunc_begin0         #     jumps to .Ltmp455
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp454-.Lfunc_begin0         # >> Call Site 85 <<
	.uleb128 .Ltmp456-.Ltmp454              #   Call between .Ltmp454 and .Ltmp456
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp456-.Lfunc_begin0         # >> Call Site 86 <<
	.uleb128 .Ltmp457-.Ltmp456              #   Call between .Ltmp456 and .Ltmp457
	.uleb128 .Ltmp458-.Lfunc_begin0         #     jumps to .Ltmp458
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp459-.Lfunc_begin0         # >> Call Site 87 <<
	.uleb128 .Ltmp462-.Ltmp459              #   Call between .Ltmp459 and .Ltmp462
	.uleb128 .Ltmp463-.Lfunc_begin0         #     jumps to .Ltmp463
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp462-.Lfunc_begin0         # >> Call Site 88 <<
	.uleb128 .Ltmp464-.Ltmp462              #   Call between .Ltmp462 and .Ltmp464
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp464-.Lfunc_begin0         # >> Call Site 89 <<
	.uleb128 .Ltmp483-.Ltmp464              #   Call between .Ltmp464 and .Ltmp483
	.uleb128 .Ltmp484-.Lfunc_begin0         #     jumps to .Ltmp484
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp483-.Lfunc_begin0         # >> Call Site 90 <<
	.uleb128 .Ltmp485-.Ltmp483              #   Call between .Ltmp483 and .Ltmp485
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp485-.Lfunc_begin0         # >> Call Site 91 <<
	.uleb128 .Ltmp486-.Ltmp485              #   Call between .Ltmp485 and .Ltmp486
	.uleb128 .Ltmp487-.Lfunc_begin0         #     jumps to .Ltmp487
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp488-.Lfunc_begin0         # >> Call Site 92 <<
	.uleb128 .Ltmp491-.Ltmp488              #   Call between .Ltmp488 and .Ltmp491
	.uleb128 .Ltmp492-.Lfunc_begin0         #     jumps to .Ltmp492
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp491-.Lfunc_begin0         # >> Call Site 93 <<
	.uleb128 .Ltmp493-.Ltmp491              #   Call between .Ltmp491 and .Ltmp493
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp493-.Lfunc_begin0         # >> Call Site 94 <<
	.uleb128 .Ltmp512-.Ltmp493              #   Call between .Ltmp493 and .Ltmp512
	.uleb128 .Ltmp513-.Lfunc_begin0         #     jumps to .Ltmp513
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp512-.Lfunc_begin0         # >> Call Site 95 <<
	.uleb128 .Ltmp514-.Ltmp512              #   Call between .Ltmp512 and .Ltmp514
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp514-.Lfunc_begin0         # >> Call Site 96 <<
	.uleb128 .Ltmp515-.Ltmp514              #   Call between .Ltmp514 and .Ltmp515
	.uleb128 .Ltmp516-.Lfunc_begin0         #     jumps to .Ltmp516
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp517-.Lfunc_begin0         # >> Call Site 97 <<
	.uleb128 .Ltmp520-.Ltmp517              #   Call between .Ltmp517 and .Ltmp520
	.uleb128 .Ltmp521-.Lfunc_begin0         #     jumps to .Ltmp521
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp520-.Lfunc_begin0         # >> Call Site 98 <<
	.uleb128 .Ltmp522-.Ltmp520              #   Call between .Ltmp520 and .Ltmp522
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp522-.Lfunc_begin0         # >> Call Site 99 <<
	.uleb128 .Ltmp541-.Ltmp522              #   Call between .Ltmp522 and .Ltmp541
	.uleb128 .Ltmp542-.Lfunc_begin0         #     jumps to .Ltmp542
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp541-.Lfunc_begin0         # >> Call Site 100 <<
	.uleb128 .Ltmp543-.Ltmp541              #   Call between .Ltmp541 and .Ltmp543
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp543-.Lfunc_begin0         # >> Call Site 101 <<
	.uleb128 .Ltmp544-.Ltmp543              #   Call between .Ltmp543 and .Ltmp544
	.uleb128 .Ltmp545-.Lfunc_begin0         #     jumps to .Ltmp545
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp546-.Lfunc_begin0         # >> Call Site 102 <<
	.uleb128 .Ltmp549-.Ltmp546              #   Call between .Ltmp546 and .Ltmp549
	.uleb128 .Ltmp550-.Lfunc_begin0         #     jumps to .Ltmp550
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp549-.Lfunc_begin0         # >> Call Site 103 <<
	.uleb128 .Ltmp551-.Ltmp549              #   Call between .Ltmp549 and .Ltmp551
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp551-.Lfunc_begin0         # >> Call Site 104 <<
	.uleb128 .Ltmp570-.Ltmp551              #   Call between .Ltmp551 and .Ltmp570
	.uleb128 .Ltmp571-.Lfunc_begin0         #     jumps to .Ltmp571
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp570-.Lfunc_begin0         # >> Call Site 105 <<
	.uleb128 .Ltmp572-.Ltmp570              #   Call between .Ltmp570 and .Ltmp572
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp572-.Lfunc_begin0         # >> Call Site 106 <<
	.uleb128 .Ltmp573-.Ltmp572              #   Call between .Ltmp572 and .Ltmp573
	.uleb128 .Ltmp574-.Lfunc_begin0         #     jumps to .Ltmp574
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp575-.Lfunc_begin0         # >> Call Site 107 <<
	.uleb128 .Ltmp578-.Ltmp575              #   Call between .Ltmp575 and .Ltmp578
	.uleb128 .Ltmp579-.Lfunc_begin0         #     jumps to .Ltmp579
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp23-.Lfunc_begin0          # >> Call Site 108 <<
	.uleb128 .Ltmp24-.Ltmp23                #   Call between .Ltmp23 and .Ltmp24
	.uleb128 .Ltmp25-.Lfunc_begin0          #     jumps to .Ltmp25
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp20-.Lfunc_begin0          # >> Call Site 109 <<
	.uleb128 .Ltmp21-.Ltmp20                #   Call between .Ltmp20 and .Ltmp21
	.uleb128 .Ltmp22-.Lfunc_begin0          #     jumps to .Ltmp22
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp21-.Lfunc_begin0          # >> Call Site 110 <<
	.uleb128 .Lfunc_end4-.Ltmp21            #   Call between .Ltmp21 and .Lfunc_end4
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_ # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	leaq	16(%rdi), %rax
	movq	%rax, (%rdi)
	testq	%rsi, %rsi
	je	.LBB5_1
# %bb.2:
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movq	%rsi, %rdi
	callq	strlen
	leaq	(%rax,%rbx), %rdx
	movq	%r14, %rdi
	movq	%rbx, %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag # TAILCALL
.LBB5_1:
	.cfi_def_cfa_offset 32
	movl	$.L.str.19, %edi
	callq	_ZSt19__throw_logic_errorPKc
.Lfunc_end5:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, .Lfunc_end5-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.cfi_endproc
                                        # -- End function
	.section	.text._Z18allocateHostDeviceIfESt4pairIPT_S2_Em,"axG",@progbits,_Z18allocateHostDeviceIfESt4pairIPT_S2_Em,comdat
	.weak	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em # -- Begin function _Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	.type	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em,@function
_Z18allocateHostDeviceIfESt4pairIPT_S2_Em: # @_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$432, %rsp                      # imm = 0x1B0
	.cfi_def_cfa_offset 464
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%rdi, %r14
	xorl	%eax, %eax
	leaq	16(%rsp), %rdi
	movq	%rax, (%rdi)
	movq	%rax, 8(%rsp)
	shlq	$2, %r14
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	hipHostMalloc
	testl	%eax, %eax
	jne	.LBB6_3
# %bb.1:
	leaq	8(%rsp), %rdi
	movq	%r14, %rsi
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB6_16
# %bb.2:
	movq	16(%rsp), %rax
	movq	8(%rsp), %rdx
	addq	$432, %rsp                      # imm = 0x1B0
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB6_3:
	.cfi_def_cfa_offset 464
	movl	%eax, %ebx
	leaq	56(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp583:
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp584:
# %bb.4:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
.Ltmp585:
	leaq	56(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp586:
# %bb.5:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit29
.Ltmp587:
	leaq	56(%rsp), %rdi
	movl	$196, %esi
	callq	_ZNSolsEi
.Ltmp588:
# %bb.6:
.Ltmp589:
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp590:
# %bb.7:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit30
.Ltmp591:
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp592:
# %bb.8:
.Ltmp593:
	leaq	56(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp594:
# %bb.9:
.Ltmp595:
	movq	%rax, %r14
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp596:
# %bb.10:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit31
.Ltmp597:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp598:
# %bb.11:
.Ltmp599:
	movq	%rax, %rbx
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp600:
# %bb.12:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit32
.Ltmp601:
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp602:
# %bb.13:                               # %_ZNSolsEPFRSoS_E.exit
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	64(%rsp), %rsi
.Ltmp604:
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp605:
# %bb.14:                               # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit
	movb	$1, %bpl
.Ltmp607:
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp608:
# %bb.15:
	xorl	%ebp, %ebp
.Ltmp609:
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp610:
	jmp	.LBB6_29
.LBB6_16:
	movl	%eax, %ebx
	leaq	56(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp612:
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp613:
# %bb.17:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit33
.Ltmp614:
	leaq	56(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp615:
# %bb.18:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit34
.Ltmp616:
	leaq	56(%rsp), %rdi
	movl	$197, %esi
	callq	_ZNSolsEi
.Ltmp617:
# %bb.19:
.Ltmp618:
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp619:
# %bb.20:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit35
.Ltmp620:
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp621:
# %bb.21:
.Ltmp622:
	leaq	56(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp623:
# %bb.22:
.Ltmp624:
	movq	%rax, %r14
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp625:
# %bb.23:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit36
.Ltmp626:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp627:
# %bb.24:
.Ltmp628:
	movq	%rax, %rbx
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp629:
# %bb.25:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit37
.Ltmp630:
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp631:
# %bb.26:                               # %_ZNSolsEPFRSoS_E.exit38
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	64(%rsp), %rsi
.Ltmp633:
	leaq	24(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp634:
# %bb.27:                               # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit39
	movb	$1, %bpl
.Ltmp636:
	leaq	24(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp637:
# %bb.28:
	xorl	%ebp, %ebp
.Ltmp638:
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp639:
.LBB6_29:
.LBB6_30:
.Ltmp640:
	jmp	.LBB6_33
.LBB6_31:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit42.thread
.Ltmp635:
	jmp	.LBB6_37
.LBB6_32:
.Ltmp611:
.LBB6_33:
	movq	%rax, %rbx
	leaq	40(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB6_35
# %bb.34:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	callq	_ZdlPv
.LBB6_35:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	testb	%bpl, %bpl
	jne	.LBB6_38
	jmp	.LBB6_42
.LBB6_36:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread
.Ltmp606:
.LBB6_37:
	movq	%rax, %rbx
.LBB6_38:
	movq	%r14, %rdi
	callq	__cxa_free_exception
	jmp	.LBB6_42
.LBB6_39:
.Ltmp632:
	jmp	.LBB6_41
.LBB6_40:
.Ltmp603:
.LBB6_41:
	movq	%rax, %rbx
.LBB6_42:
	leaq	56(%rsp), %rdi
	movl	$_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, %esi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
	leaq	168(%rsp), %rdi
	callq	_ZNSt8ios_baseD2Ev
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end6:
	.size	_Z18allocateHostDeviceIfESt4pairIPT_S2_Em, .Lfunc_end6-_Z18allocateHostDeviceIfESt4pairIPT_S2_Em
	.cfi_endproc
	.section	.gcc_except_table._Z18allocateHostDeviceIfESt4pairIPT_S2_Em,"aG",@progbits,_Z18allocateHostDeviceIfESt4pairIPT_S2_Em,comdat
	.p2align	2, 0x0
GCC_except_table6:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Lfunc_begin1-.Lfunc_begin1    # >> Call Site 1 <<
	.uleb128 .Ltmp583-.Lfunc_begin1         #   Call between .Lfunc_begin1 and .Ltmp583
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp583-.Lfunc_begin1         # >> Call Site 2 <<
	.uleb128 .Ltmp602-.Ltmp583              #   Call between .Ltmp583 and .Ltmp602
	.uleb128 .Ltmp603-.Lfunc_begin1         #     jumps to .Ltmp603
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp602-.Lfunc_begin1         # >> Call Site 3 <<
	.uleb128 .Ltmp604-.Ltmp602              #   Call between .Ltmp602 and .Ltmp604
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp604-.Lfunc_begin1         # >> Call Site 4 <<
	.uleb128 .Ltmp605-.Ltmp604              #   Call between .Ltmp604 and .Ltmp605
	.uleb128 .Ltmp606-.Lfunc_begin1         #     jumps to .Ltmp606
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp607-.Lfunc_begin1         # >> Call Site 5 <<
	.uleb128 .Ltmp610-.Ltmp607              #   Call between .Ltmp607 and .Ltmp610
	.uleb128 .Ltmp611-.Lfunc_begin1         #     jumps to .Ltmp611
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp610-.Lfunc_begin1         # >> Call Site 6 <<
	.uleb128 .Ltmp612-.Ltmp610              #   Call between .Ltmp610 and .Ltmp612
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp612-.Lfunc_begin1         # >> Call Site 7 <<
	.uleb128 .Ltmp631-.Ltmp612              #   Call between .Ltmp612 and .Ltmp631
	.uleb128 .Ltmp632-.Lfunc_begin1         #     jumps to .Ltmp632
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp631-.Lfunc_begin1         # >> Call Site 8 <<
	.uleb128 .Ltmp633-.Ltmp631              #   Call between .Ltmp631 and .Ltmp633
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp633-.Lfunc_begin1         # >> Call Site 9 <<
	.uleb128 .Ltmp634-.Ltmp633              #   Call between .Ltmp633 and .Ltmp634
	.uleb128 .Ltmp635-.Lfunc_begin1         #     jumps to .Ltmp635
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp636-.Lfunc_begin1         # >> Call Site 10 <<
	.uleb128 .Ltmp639-.Ltmp636              #   Call between .Ltmp636 and .Ltmp639
	.uleb128 .Ltmp640-.Lfunc_begin1         #     jumps to .Ltmp640
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp639-.Lfunc_begin1         # >> Call Site 11 <<
	.uleb128 .Lfunc_end6-.Ltmp639           #   Call between .Ltmp639 and .Lfunc_end6
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,"axG",@progbits,_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,comdat
	.weak	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb # -- Begin function _Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.type	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,@function
_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb: # @_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$416, %rsp                      # imm = 0x1A0
	.cfi_def_cfa_offset 448
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movl	%edx, %ebp
	movq	%rdi, %r14
	movq	(%rdi), %rax
	movq	8(%rdi), %rdi
	leaq	(,%rsi,4), %rdx
	movq	%rax, %rsi
	movl	$1, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB7_5
# %bb.1:
	testb	%bpl, %bpl
	je	.LBB7_4
# %bb.2:
	movq	(%r14), %rdi
	callq	hipHostFree
	testl	%eax, %eax
	jne	.LBB7_18
# %bb.3:
	movq	$0, (%r14)
.LBB7_4:
	addq	$416, %rsp                      # imm = 0x1A0
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB7_5:
	.cfi_def_cfa_offset 448
	movl	%eax, %ebx
	leaq	40(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp641:
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp642:
# %bb.6:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
.Ltmp643:
	leaq	40(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp644:
# %bb.7:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit33
.Ltmp645:
	leaq	40(%rsp), %rdi
	movl	$205, %esi
	callq	_ZNSolsEi
.Ltmp646:
# %bb.8:
.Ltmp647:
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp648:
# %bb.9:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit34
.Ltmp649:
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp650:
# %bb.10:
.Ltmp651:
	leaq	40(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp652:
# %bb.11:
.Ltmp653:
	movq	%rax, %r14
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp654:
# %bb.12:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit35
.Ltmp655:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp656:
# %bb.13:
.Ltmp657:
	movq	%rax, %rbx
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp658:
# %bb.14:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit36
.Ltmp659:
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp660:
# %bb.15:                               # %_ZNSolsEPFRSoS_E.exit
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	48(%rsp), %rsi
.Ltmp662:
	leaq	8(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp663:
# %bb.16:                               # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit
	movb	$1, %bpl
.Ltmp665:
	leaq	8(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp666:
# %bb.17:
	xorl	%ebp, %ebp
.Ltmp667:
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp668:
	jmp	.LBB7_31
.LBB7_18:
	movl	%eax, %ebx
	leaq	40(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp670:
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp671:
# %bb.19:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit37
.Ltmp672:
	leaq	40(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp673:
# %bb.20:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit38
.Ltmp674:
	leaq	40(%rsp), %rdi
	movl	$207, %esi
	callq	_ZNSolsEi
.Ltmp675:
# %bb.21:
.Ltmp676:
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp677:
# %bb.22:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit39
.Ltmp678:
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp679:
# %bb.23:
.Ltmp680:
	leaq	40(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp681:
# %bb.24:
.Ltmp682:
	movq	%rax, %r14
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp683:
# %bb.25:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit40
.Ltmp684:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp685:
# %bb.26:
.Ltmp686:
	movq	%rax, %rbx
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp687:
# %bb.27:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit41
.Ltmp688:
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp689:
# %bb.28:                               # %_ZNSolsEPFRSoS_E.exit42
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %r14
	leaq	48(%rsp), %rsi
.Ltmp691:
	leaq	8(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp692:
# %bb.29:                               # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit43
	movb	$1, %bpl
.Ltmp694:
	leaq	8(%rsp), %rsi
	movq	%r14, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp695:
# %bb.30:
	xorl	%ebp, %ebp
.Ltmp696:
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%r14, %rdi
	callq	__cxa_throw
.Ltmp697:
.LBB7_31:
.LBB7_32:
.Ltmp698:
	jmp	.LBB7_35
.LBB7_33:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46.thread
.Ltmp693:
	jmp	.LBB7_39
.LBB7_34:
.Ltmp669:
.LBB7_35:
	movq	%rax, %rbx
	leaq	24(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB7_37
# %bb.36:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	callq	_ZdlPv
.LBB7_37:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	testb	%bpl, %bpl
	jne	.LBB7_40
	jmp	.LBB7_44
.LBB7_38:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread
.Ltmp664:
.LBB7_39:
	movq	%rax, %rbx
.LBB7_40:
	movq	%r14, %rdi
	callq	__cxa_free_exception
	jmp	.LBB7_44
.LBB7_41:
.Ltmp690:
	jmp	.LBB7_43
.LBB7_42:
.Ltmp661:
.LBB7_43:
	movq	%rax, %rbx
.LBB7_44:
	leaq	40(%rsp), %rdi
	movl	$_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, %esi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
	leaq	152(%rsp), %rdi
	callq	_ZNSt8ios_baseD2Ev
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end7:
	.size	_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb, .Lfunc_end7-_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb
	.cfi_endproc
	.section	.gcc_except_table._Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,"aG",@progbits,_Z16hostToDeviceCopyIfEvRSt4pairIPT_S2_Emb,comdat
	.p2align	2, 0x0
GCC_except_table7:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Lfunc_begin2-.Lfunc_begin2    # >> Call Site 1 <<
	.uleb128 .Ltmp641-.Lfunc_begin2         #   Call between .Lfunc_begin2 and .Ltmp641
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp641-.Lfunc_begin2         # >> Call Site 2 <<
	.uleb128 .Ltmp660-.Ltmp641              #   Call between .Ltmp641 and .Ltmp660
	.uleb128 .Ltmp661-.Lfunc_begin2         #     jumps to .Ltmp661
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp660-.Lfunc_begin2         # >> Call Site 3 <<
	.uleb128 .Ltmp662-.Ltmp660              #   Call between .Ltmp660 and .Ltmp662
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp662-.Lfunc_begin2         # >> Call Site 4 <<
	.uleb128 .Ltmp663-.Ltmp662              #   Call between .Ltmp662 and .Ltmp663
	.uleb128 .Ltmp664-.Lfunc_begin2         #     jumps to .Ltmp664
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp665-.Lfunc_begin2         # >> Call Site 5 <<
	.uleb128 .Ltmp668-.Ltmp665              #   Call between .Ltmp665 and .Ltmp668
	.uleb128 .Ltmp669-.Lfunc_begin2         #     jumps to .Ltmp669
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp668-.Lfunc_begin2         # >> Call Site 6 <<
	.uleb128 .Ltmp670-.Ltmp668              #   Call between .Ltmp668 and .Ltmp670
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp670-.Lfunc_begin2         # >> Call Site 7 <<
	.uleb128 .Ltmp689-.Ltmp670              #   Call between .Ltmp670 and .Ltmp689
	.uleb128 .Ltmp690-.Lfunc_begin2         #     jumps to .Ltmp690
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp689-.Lfunc_begin2         # >> Call Site 8 <<
	.uleb128 .Ltmp691-.Ltmp689              #   Call between .Ltmp689 and .Ltmp691
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp691-.Lfunc_begin2         # >> Call Site 9 <<
	.uleb128 .Ltmp692-.Ltmp691              #   Call between .Ltmp691 and .Ltmp692
	.uleb128 .Ltmp693-.Lfunc_begin2         #     jumps to .Ltmp693
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp694-.Lfunc_begin2         # >> Call Site 10 <<
	.uleb128 .Ltmp697-.Ltmp694              #   Call between .Ltmp694 and .Ltmp697
	.uleb128 .Ltmp698-.Lfunc_begin2         #     jumps to .Ltmp698
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp697-.Lfunc_begin2         # >> Call Site 11 <<
	.uleb128 .Lfunc_end7-.Ltmp697           #   Call between .Ltmp697 and .Lfunc_end7
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,"axG",@progbits,_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,comdat
	.weak	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em # -- Begin function _Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.type	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,@function
_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em: # @_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
.Lfunc_begin3:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception3
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$416, %rsp                      # imm = 0x1A0
	.cfi_def_cfa_offset 448
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	(%rdi), %rax
	movq	8(%rdi), %rcx
	leaq	(,%rsi,4), %rdx
	movq	%rax, %rdi
	movq	%rcx, %rsi
	movl	$2, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB8_1
# %bb.21:
	addq	$416, %rsp                      # imm = 0x1A0
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB8_1:
	.cfi_def_cfa_offset 448
	movl	%eax, %ebx
	leaq	40(%rsp), %r14
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev
.Ltmp699:
	movl	$.L.str.5, %esi
	movl	$123, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp700:
# %bb.2:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
.Ltmp701:
	leaq	40(%rsp), %rdi
	movl	$.L.str.6, %esi
	movl	$2, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp702:
# %bb.3:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit15
.Ltmp703:
	leaq	40(%rsp), %rdi
	movl	$215, %esi
	callq	_ZNSolsEi
.Ltmp704:
# %bb.4:
.Ltmp705:
	movl	$.L.str.7, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp706:
# %bb.5:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit16
.Ltmp707:
	movl	%ebx, %edi
	callq	hipGetErrorString
.Ltmp708:
# %bb.6:
.Ltmp709:
	leaq	40(%rsp), %rdi
	movq	%rax, %rsi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
.Ltmp710:
# %bb.7:
.Ltmp711:
	movq	%rax, %r14
	movl	$.L.str.8, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp712:
# %bb.8:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit17
.Ltmp713:
	movq	%r14, %rdi
	movl	%ebx, %esi
	callq	_ZNSolsEi
.Ltmp714:
# %bb.9:
.Ltmp715:
	movq	%rax, %rbx
	movl	$.L.str.9, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp716:
# %bb.10:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit18
.Ltmp717:
	movq	%rbx, %rdi
	callq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
.Ltmp718:
# %bb.11:                               # %_ZNSolsEPFRSoS_E.exit
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
	leaq	48(%rsp), %rsi
.Ltmp720:
	leaq	8(%rsp), %rdi
	callq	_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv
.Ltmp721:
# %bb.12:                               # %_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv.exit
	movb	$1, %bpl
.Ltmp723:
	leaq	8(%rsp), %rsi
	movq	%rbx, %rdi
	callq	_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp724:
# %bb.13:
	xorl	%ebp, %ebp
.Ltmp725:
	movl	$_ZTISt13runtime_error, %esi
	movl	$_ZNSt13runtime_errorD1Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.Ltmp726:
# %bb.22:
.LBB8_16:
.Ltmp727:
	movq	%rax, %r14
	leaq	24(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB8_18
# %bb.17:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	callq	_ZdlPv
.LBB8_18:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	testb	%bpl, %bpl
	jne	.LBB8_19
	jmp	.LBB8_20
.LBB8_15:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread
.Ltmp722:
	movq	%rax, %r14
.LBB8_19:
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	jmp	.LBB8_20
.LBB8_14:
.Ltmp719:
	movq	%rax, %r14
.LBB8_20:
	leaq	40(%rsp), %rdi
	movl	$_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, %esi
	callq	_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev
	leaq	152(%rsp), %rdi
	callq	_ZNSt8ios_baseD2Ev
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end8:
	.size	_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em, .Lfunc_end8-_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em
	.cfi_endproc
	.section	.gcc_except_table._Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,"aG",@progbits,_Z16deviceToHostCopyIfEvRSt4pairIPT_S2_Em,comdat
	.p2align	2, 0x0
GCC_except_table8:
.Lexception3:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
	.uleb128 .Lfunc_begin3-.Lfunc_begin3    # >> Call Site 1 <<
	.uleb128 .Ltmp699-.Lfunc_begin3         #   Call between .Lfunc_begin3 and .Ltmp699
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp699-.Lfunc_begin3         # >> Call Site 2 <<
	.uleb128 .Ltmp718-.Ltmp699              #   Call between .Ltmp699 and .Ltmp718
	.uleb128 .Ltmp719-.Lfunc_begin3         #     jumps to .Ltmp719
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp718-.Lfunc_begin3         # >> Call Site 3 <<
	.uleb128 .Ltmp720-.Ltmp718              #   Call between .Ltmp718 and .Ltmp720
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp720-.Lfunc_begin3         # >> Call Site 4 <<
	.uleb128 .Ltmp721-.Ltmp720              #   Call between .Ltmp720 and .Ltmp721
	.uleb128 .Ltmp722-.Lfunc_begin3         #     jumps to .Ltmp722
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp723-.Lfunc_begin3         # >> Call Site 5 <<
	.uleb128 .Ltmp726-.Ltmp723              #   Call between .Ltmp723 and .Ltmp726
	.uleb128 .Ltmp727-.Lfunc_begin3         #     jumps to .Ltmp727
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp726-.Lfunc_begin3         # >> Call Site 6 <<
	.uleb128 .Lfunc_end8-.Ltmp726           #   Call between .Ltmp726 and .Lfunc_end8
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end3:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	subq	%rsi, %r14
	movq	%r14, (%rsp)
	cmpq	$15, %r14
	jbe	.LBB9_1
# %bb.2:
	movq	%rsp, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm
	movq	%rax, (%rbx)
	movq	(%r12), %rcx
	movq	%rcx, 16(%rbx)
	jmp	.LBB9_3
.LBB9_1:                                # %._crit_edge
	movq	(%rbx), %rax
.LBB9_3:
	testq	%r14, %r14
	je	.LBB9_7
# %bb.4:
	cmpq	$1, %r14
	jne	.LBB9_6
# %bb.5:
	movb	(%r15), %cl
	movb	%cl, (%rax)
	jmp	.LBB9_7
.LBB9_6:
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	memcpy@PLT
.LBB9_7:                                # %_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev.exit
	movq	(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rcx
	movb	$0, (%rcx,%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end9:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag, .Lfunc_end9-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst4,"aM",@progbits,4
	.p2align	2, 0x0                          # -- Begin function _ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
.LCPI10_0:
	.long	0xbf800000                      # float -1
.LCPI10_1:
	.long	0x3f800000                      # float 1
.LCPI10_2:
	.long	0xc0000000                      # float -2
.LCPI10_3:
	.long	0x00000000                      # float 0
	.section	.text._ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE,"axG",@progbits,_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE,comdat
	.weak	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	.p2align	1, 0x90
	.type	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE,@function
_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE: # @_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %rbx
	movq	%rdi, %r14
	cmpb	$0, 12(%rdi)
	je	.LBB10_1
# %bb.9:
	movb	$0, 12(%r14)
	movss	8(%r14), %xmm1                  # xmm1 = mem[0],zero,zero,zero
	jmp	.LBB10_8
.LBB10_1:
	movq	%rsi, %r15
.LBB10_2:                               # %.preheader
                                        # =>This Inner Loop Header: Depth=1
	movq	%r15, %rdi
	callq	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	movaps	%xmm0, %xmm1
	addss	%xmm0, %xmm1
	movss	.LCPI10_0(%rip), %xmm0          # xmm0 = mem[0],zero,zero,zero
	addss	%xmm0, %xmm1
	movss	%xmm1, 4(%rsp)                  # 4-byte Spill
	movq	%r15, %rdi
	callq	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	addss	%xmm0, %xmm0
	addss	.LCPI10_0(%rip), %xmm0
	movss	4(%rsp), %xmm1                  # 4-byte Reload
                                        # xmm1 = mem[0],zero,zero,zero
	mulss	%xmm1, %xmm1
	movaps	%xmm0, %xmm2
	mulss	%xmm0, %xmm2
	addss	%xmm1, %xmm2
	ucomiss	.LCPI10_1(%rip), %xmm2
	ja	.LBB10_2
# %bb.3:                                # %.preheader
                                        #   in Loop: Header=BB10_2 Depth=1
	ucomiss	.LCPI10_3(%rip), %xmm2
	jne	.LBB10_4
	jnp	.LBB10_2
.LBB10_4:
	movss	%xmm0, 12(%rsp)                 # 4-byte Spill
	movaps	%xmm2, %xmm0
	movss	%xmm2, 8(%rsp)                  # 4-byte Spill
	callq	logf
	mulss	.LCPI10_2(%rip), %xmm0
	divss	8(%rsp), %xmm0                  # 4-byte Folded Reload
	xorps	%xmm1, %xmm1
	ucomiss	%xmm1, %xmm0
	jb	.LBB10_6
# %bb.5:
	sqrtss	%xmm0, %xmm0
	jmp	.LBB10_7
.LBB10_6:                               # %call.sqrt
	callq	sqrtf
.LBB10_7:                               # %.split
	movss	4(%rsp), %xmm1                  # 4-byte Reload
                                        # xmm1 = mem[0],zero,zero,zero
	mulss	%xmm0, %xmm1
	movss	%xmm1, 8(%r14)
	movb	$1, 12(%r14)
	movss	12(%rsp), %xmm1                 # 4-byte Reload
                                        # xmm1 = mem[0],zero,zero,zero
	mulss	%xmm0, %xmm1
.LBB10_8:
	mulss	4(%rbx), %xmm1
	addss	(%rbx), %xmm1
	movaps	%xmm1, %xmm0
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end10:
	.size	_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE, .Lfunc_end10-_ZNSt19normal_distributionIfEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEfRT_RKNS0_10param_typeE
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst4,"aM",@progbits,4
	.p2align	2, 0x0                          # -- Begin function _ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
.LCPI11_0:
	.long	0x4f800000                      # float 4.2949673E+9
.LCPI11_1:
	.long	0x40000000                      # float 2
.LCPI11_2:
	.long	0x5f000000                      # float 9.22337203E+18
.LCPI11_3:
	.long	0x3f800000                      # float 1
	.section	.text._ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_,"axG",@progbits,_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_,comdat
	.weak	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.type	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_,@function
_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_: # @_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdi, %rbx
	flds	.LCPI11_0(%rip)
	fstpt	(%rsp)
	callq	logl
	fstpt	36(%rsp)                        # 10-byte Folded Spill
	flds	.LCPI11_1(%rip)
	fstpt	(%rsp)
	callq	logl
	fldt	36(%rsp)                        # 10-byte Folded Reload
	fdivp	%st, %st(1)
	flds	.LCPI11_2(%rip)
	xorl	%ecx, %ecx
	fxch	%st(1)
	fucomi	%st(1), %st
	fldz
	fcmovnb	%st(2), %st
	fstp	%st(2)
	fsubp	%st, %st(1)
	setae	%cl
	fnstcw	28(%rsp)
	movzwl	28(%rsp), %eax
	orl	$3072, %eax                     # imm = 0xC00
	movw	%ax, 30(%rsp)
	fldcw	30(%rsp)
	fistpll	48(%rsp)
	fldcw	28(%rsp)
	shlq	$63, %rcx
	xorq	48(%rsp), %rcx
	leaq	23(%rcx), %rax
	xorl	%edx, %edx
	divq	%rcx
	movq	%rax, %r14
	cmpq	$1, %rax
	adcq	$0, %r14
	xorps	%xmm0, %xmm0
	movss	.LCPI11_3(%rip), %xmm2          # xmm2 = mem[0],zero,zero,zero
.LBB11_1:                               # %select.unfold
                                        # =>This Inner Loop Header: Depth=1
	movss	%xmm2, 32(%rsp)                 # 4-byte Spill
	movss	%xmm0, 36(%rsp)                 # 4-byte Spill
	movq	%rbx, %rdi
	callq	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
	testq	%rax, %rax
	js	.LBB11_2
# %bb.3:                                # %select.unfold
                                        #   in Loop: Header=BB11_1 Depth=1
	xorps	%xmm0, %xmm0
	cvtsi2ss	%rax, %xmm0
	jmp	.LBB11_4
.LBB11_2:                               #   in Loop: Header=BB11_1 Depth=1
	movq	%rax, %rcx
	shrq	%rcx
	andl	$1, %eax
	orq	%rcx, %rax
	xorps	%xmm0, %xmm0
	cvtsi2ss	%rax, %xmm0
	addss	%xmm0, %xmm0
.LBB11_4:                               # %select.unfold
                                        #   in Loop: Header=BB11_1 Depth=1
	movss	32(%rsp), %xmm2                 # 4-byte Reload
                                        # xmm2 = mem[0],zero,zero,zero
	mulss	%xmm2, %xmm0
	movss	36(%rsp), %xmm1                 # 4-byte Reload
                                        # xmm1 = mem[0],zero,zero,zero
	addss	%xmm0, %xmm1
	movaps	%xmm1, %xmm0
	mulss	.LCPI11_0(%rip), %xmm2
	decq	%r14
	jne	.LBB11_1
# %bb.5:
	divss	%xmm2, %xmm0
	ucomiss	.LCPI11_3(%rip), %xmm0
	jae	.LBB11_7
# %bb.6:
	addq	$56, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.LBB11_7:
	.cfi_def_cfa_offset 80
	movss	.LCPI11_3(%rip), %xmm0          # xmm0 = mem[0],zero,zero,zero
	xorps	%xmm1, %xmm1
	addq	$56, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	nextafterf                      # TAILCALL
.Lfunc_end11:
	.size	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_, .Lfunc_end11-_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
	.weak	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv # -- Begin function _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
	.p2align	1, 0x90
	.type	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,@function
_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv: # @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	4992(%rdi), %rax
	cmpq	$624, %rax                      # imm = 0x270
	jb	.LBB12_2
# %bb.1:
	movq	%rbx, %rdi
	callq	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	movq	4992(%rbx), %rax
.LBB12_2:
	leaq	1(%rax), %rcx
	movq	%rcx, 4992(%rbx)
	movq	(%rbx,%rax,8), %rax
	movq	%rax, %rcx
	shrq	$11, %rcx
	movl	%ecx, %ecx
	xorq	%rax, %rcx
	movl	%ecx, %eax
	shll	$7, %eax
	andl	$-1658038656, %eax              # imm = 0x9D2C5680
	xorq	%rcx, %rax
	movl	%eax, %ecx
	shll	$15, %ecx
	andl	$-272236544, %ecx               # imm = 0xEFC60000
	xorq	%rax, %rcx
	movq	%rcx, %rax
	shrq	$18, %rax
	xorq	%rcx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end12:
	.size	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv, .Lfunc_end12-_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv,comdat
	.weak	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv # -- Begin function _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	.p2align	1, 0x90
	.type	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv,@function
_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv: # @_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	.cfi_startproc
# %bb.0:
	movl	$2567483615, %eax               # imm = 0x9908B0DF
	movq	(%rdi), %rdx
	xorl	%ecx, %ecx
.LBB13_1:                               # =>This Inner Loop Header: Depth=1
	andq	$-2147483648, %rdx              # imm = 0x80000000
	movq	8(%rdi,%rcx,8), %rsi
	movl	%esi, %r8d
	andl	$2147483646, %r8d               # imm = 0x7FFFFFFE
	orq	%rdx, %r8
	shrq	%r8
	xorq	3176(%rdi,%rcx,8), %r8
	movq	%rsi, %rdx
                                        # kill: def $esi killed $esi killed $rsi def $rsi
	andl	$1, %esi
	negl	%esi
	andl	%eax, %esi
	xorq	%r8, %rsi
	movq	%rsi, (%rdi,%rcx,8)
	leaq	1(%rcx), %rsi
	movq	%rsi, %rcx
	cmpq	$227, %rsi
	jne	.LBB13_1
# %bb.2:                                # %.preheader.preheader
	movq	1816(%rdi), %rdx
	movl	$228, %ecx
.LBB13_3:                               # %.preheader
                                        # =>This Inner Loop Header: Depth=1
	andq	$-2147483648, %rdx              # imm = 0x80000000
	movq	(%rdi,%rcx,8), %rsi
	movl	%esi, %r8d
	andl	$2147483646, %r8d               # imm = 0x7FFFFFFE
	orq	%rdx, %r8
	shrq	%r8
	xorq	-1824(%rdi,%rcx,8), %r8
	movq	%rsi, %rdx
                                        # kill: def $esi killed $esi killed $rsi def $rsi
	andl	$1, %esi
	negl	%esi
	andl	%eax, %esi
	xorq	%r8, %rsi
	movq	%rsi, -8(%rdi,%rcx,8)
	incq	%rcx
	cmpq	$624, %rcx                      # imm = 0x270
	jne	.LBB13_3
# %bb.4:
	movq	$-2147483648, %rcx              # imm = 0x80000000
	andq	4984(%rdi), %rcx
	movq	(%rdi), %rdx
	movl	%edx, %esi
	andl	$2147483646, %esi               # imm = 0x7FFFFFFE
	orq	%rcx, %rsi
	shrq	%rsi
	xorq	3168(%rdi), %rsi
	andl	$1, %edx
	negl	%edx
	andl	%eax, %edx
	xorq	%rsi, %rdx
	movq	%rdx, 4984(%rdi)
	movq	$0, 4992(%rdi)
	retq
.Lfunc_end13:
	.size	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv, .Lfunc_end13-_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
	.cfi_endproc
                                        # -- End function
	.text
	.p2align	4, 0x90                         # -- Begin function __hip_module_ctor
	.type	__hip_module_ctor,@function
__hip_module_ctor:                      # @__hip_module_ctor
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -16
	movq	__hip_gpubin_handle(%rip), %rbx
	testq	%rbx, %rbx
	jne	.LBB14_2
# %bb.1:
	movl	$__hip_fatbin_wrapper, %edi
	callq	__hipRegisterFatBinary
	movq	%rax, %rbx
	movq	%rax, __hip_gpubin_handle(%rip)
.LBB14_2:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z15continuousDensejjPfPKfS1_, %esi
	movl	$.L__unnamed_1, %edx
	movl	$.L__unnamed_1, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, %esi
	movl	$.L__unnamed_2, %edx
	movl	$.L__unnamed_2, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z20continuousDenseBlockjjjPfPKfS1_, %esi
	movl	$.L__unnamed_3, %edx
	movl	$.L__unnamed_3, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, %esi
	movl	$.L__unnamed_4, %edx
	movl	$.L__unnamed_4, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	movl	$__hip_module_dtor, %edi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit                          # TAILCALL
.Lfunc_end14:
	.size	__hip_module_ctor, .Lfunc_end14-__hip_module_ctor
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_dtor
	.type	__hip_module_dtor,@function
__hip_module_dtor:                      # @__hip_module_dtor
	.cfi_startproc
# %bb.0:
	movq	__hip_gpubin_handle(%rip), %rdi
	testq	%rdi, %rdi
	je	.LBB15_2
# %bb.1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__hipUnregisterFatBinary
	movq	$0, __hip_gpubin_handle(%rip)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
.LBB15_2:
	retq
.Lfunc_end15:
	.size	__hip_module_dtor, .Lfunc_end15-__hip_module_dtor
	.cfi_endproc
                                        # -- End function
	.type	_Z15continuousDensejjPfPKfS1_,@object # @_Z15continuousDensejjPfPKfS1_
	.section	.rodata,"a",@progbits
	.globl	_Z15continuousDensejjPfPKfS1_
	.p2align	3, 0x0
_Z15continuousDensejjPfPKfS1_:
	.quad	_Z30__device_stub__continuousDensejjPfPKfS1_
	.size	_Z15continuousDensejjPfPKfS1_, 8

	.type	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_,@object # @_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.p2align	3, 0x0
_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_:
	.quad	_Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.size	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, 8

	.type	_Z20continuousDenseBlockjjjPfPKfS1_,@object # @_Z20continuousDenseBlockjjjPfPKfS1_
	.globl	_Z20continuousDenseBlockjjjPfPKfS1_
	.p2align	3, 0x0
_Z20continuousDenseBlockjjjPfPKfS1_:
	.quad	_Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
	.size	_Z20continuousDenseBlockjjjPfPKfS1_, 8

	.type	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_,@object # @_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.p2align	3, 0x0
_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_:
	.quad	_Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.size	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, 8

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"Expected parameters specifying:"
	.size	.L.str, 32

	.type	.L.str.1,@object                # @.str.1
.L.str.1:
	.asciz	"\t Model (0 = Continuous, 1 = eProp)"
	.size	.L.str.1, 36

	.type	.L.str.2,@object                # @.str.2
.L.str.2:
	.asciz	"Model:"
	.size	.L.str.2, 7

	.type	.L.str.3,@object                # @.str.3
.L.str.3:
	.asciz	", num neurons:"
	.size	.L.str.3, 15

	.type	.L.str.4,@object                # @.str.4
.L.str.4:
	.asciz	", block size:"
	.size	.L.str.4, 14

	.type	.L.str.5,@object                # @.str.5
.L.str.5:
	.asciz	"cuda error:/home/ubuntu/Datasets/stackv2/train-structured-repos-hip-sm89/neworderofjamie/synapse_dynamics/master/kernel.hip"
	.size	.L.str.5, 124

	.type	.L.str.6,@object                # @.str.6
.L.str.6:
	.asciz	": "
	.size	.L.str.6, 3

	.type	.L.str.7,@object                # @.str.7
.L.str.7:
	.asciz	" "
	.size	.L.str.7, 2

	.type	.L.str.8,@object                # @.str.8
.L.str.8:
	.asciz	"("
	.size	.L.str.8, 2

	.type	.L.str.9,@object                # @.str.9
.L.str.9:
	.asciz	")"
	.size	.L.str.9, 2

	.type	.L.str.10,@object               # @.str.10
.L.str.10:
	.asciz	"Continous Dense: sum:"
	.size	.L.str.10, 22

	.type	.L.str.11,@object               # @.str.11
.L.str.11:
	.asciz	", time:"
	.size	.L.str.11, 8

	.type	.L.str.12,@object               # @.str.12
.L.str.12:
	.asciz	"Continous Dense Block: sum:"
	.size	.L.str.12, 28

	.type	.L.str.13,@object               # @.str.13
.L.str.13:
	.asciz	"eProp ALIF Dense: eFiltered sum:"
	.size	.L.str.13, 33

	.type	.L.str.14,@object               # @.str.14
.L.str.14:
	.asciz	", epsilonA sum:"
	.size	.L.str.14, 16

	.type	.L.str.15,@object               # @.str.15
.L.str.15:
	.asciz	", deltaG sum:"
	.size	.L.str.15, 14

	.type	.L.str.16,@object               # @.str.16
.L.str.16:
	.asciz	", time: "
	.size	.L.str.16, 9

	.type	.L.str.17,@object               # @.str.17
.L.str.17:
	.asciz	"eProp ALIF Dense Block: eFiltered sum:"
	.size	.L.str.17, 39

	.type	.L.str.18,@object               # @.str.18
.L.str.18:
	.asciz	"stoul"
	.size	.L.str.18, 6

	.type	.L.str.19,@object               # @.str.19
.L.str.19:
	.asciz	"basic_string: construction from null is not valid"
	.size	.L.str.19, 50

	.type	.L__unnamed_1,@object           # @0
.L__unnamed_1:
	.asciz	"_Z15continuousDensejjPfPKfS1_"
	.size	.L__unnamed_1, 30

	.type	.L__unnamed_2,@object           # @1
.L__unnamed_2:
	.asciz	"_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_"
	.size	.L__unnamed_2, 41

	.type	.L__unnamed_3,@object           # @2
.L__unnamed_3:
	.asciz	"_Z20continuousDenseBlockjjjPfPKfS1_"
	.size	.L__unnamed_3, 36

	.type	.L__unnamed_4,@object           # @3
.L__unnamed_4:
	.asciz	"_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_"
	.size	.L__unnamed_4, 47

	.type	__hip_fatbin_wrapper,@object    # @__hip_fatbin_wrapper
	.section	.hipFatBinSegment,"a",@progbits
	.p2align	3, 0x0
__hip_fatbin_wrapper:
	.long	1212764230                      # 0x48495046
	.long	1                               # 0x1
	.quad	__hip_fatbin
	.quad	0
	.size	__hip_fatbin_wrapper, 24

	.type	__hip_gpubin_handle,@object     # @__hip_gpubin_handle
	.local	__hip_gpubin_handle
	.comm	__hip_gpubin_handle,8,8
	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	__hip_module_ctor
	.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 _Z30__device_stub__continuousDensejjPfPKfS1_
	.addrsig_sym _Z29__device_stub__epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.addrsig_sym _Z35__device_stub__continuousDenseBlockjjjPfPKfS1_
	.addrsig_sym _Z34__device_stub__epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym __hip_module_ctor
	.addrsig_sym __hip_module_dtor
	.addrsig_sym _Unwind_Resume
	.addrsig_sym _Z15continuousDensejjPfPKfS1_
	.addrsig_sym _Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.addrsig_sym _Z20continuousDenseBlockjjjPfPKfS1_
	.addrsig_sym _Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.addrsig_sym _ZSt4cerr
	.addrsig_sym _ZSt4cout
	.addrsig_sym _ZTISt13runtime_error
	.addrsig_sym __hip_fatbin
	.addrsig_sym __hip_fatbin_wrapper
	.addrsig_sym __hip_cuid_

	.text
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.protected	_Z15continuousDensejjPfPKfS1_ ; -- Begin function _Z15continuousDensejjPfPKfS1_
	.globl	_Z15continuousDensejjPfPKfS1_
	.p2align	8
	.type	_Z15continuousDensejjPfPKfS1_,@function
_Z15continuousDensejjPfPKfS1_:          ; @_Z15continuousDensejjPfPKfS1_
; %bb.0:
	s_clause 0x1
	s_load_b32 s4, s[0:1], 0x2c
	s_load_b64 s[2:3], s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	s_and_b32 s4, s4, 0xffff
	s_mul_i32 s2, s3, s2
	v_mad_u64_u32 v[1:2], null, s15, s4, v[0:1]
	s_delay_alu instid0(VALU_DEP_1)
	v_cmp_gt_u32_e32 vcc_lo, s2, v1
	s_and_saveexec_b32 s2, vcc_lo
	s_cbranch_execz .LBB0_3
; %bb.1:
	v_cvt_f32_u32_e32 v0, s3
	s_sub_i32 s2, 0, s3
	s_clause 0x1
	s_load_b64 s[8:9], s[0:1], 0x18
	s_load_b128 s[4:7], s[0:1], 0x8
	s_mov_b32 s0, 0
	v_rcp_iflag_f32_e32 v0, v0
	s_waitcnt_depctr 0xfff
	v_mul_f32_e32 v0, 0x4f7ffffe, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_cvt_u32_f32_e32 v0, v0
	v_mul_lo_u32 v2, s2, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_hi_u32 v2, v0, v2
	v_add_nc_u32_e32 v0, v0, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_hi_u32 v0, v1, v0
	v_mul_lo_u32 v2, v0, s3
	v_add_nc_u32_e32 v3, 1, v0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_sub_nc_u32_e32 v2, v1, v2
	v_subrev_nc_u32_e32 v4, s3, v2
	v_cmp_le_u32_e32 vcc_lo, s3, v2
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_cndmask_b32_e32 v0, v0, v3, vcc_lo
	v_dual_cndmask_b32 v4, v2, v4 :: v_dual_mov_b32 v3, 0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_nc_u32_e32 v5, 1, v0
	v_cmp_le_u32_e32 vcc_lo, s3, v4
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_mov_b32_e32 v2, v3
	v_dual_cndmask_b32 v4, v0, v5 :: v_dual_mov_b32 v5, v3
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_lshlrev_b64 v[6:7], 2, v[1:2]
	v_mul_lo_u32 v0, v4, s3
	s_waitcnt lgkmcnt(0)
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_co_u32 v6, vcc_lo, s8, v6
	v_add_co_ci_u32_e32 v7, vcc_lo, s9, v7, vcc_lo
	s_delay_alu instid0(VALU_DEP_3)
	v_sub_nc_u32_e32 v2, v1, v0
	v_lshlrev_b64 v[0:1], 2, v[4:5]
	global_load_b32 v6, v[6:7], off
	v_lshlrev_b64 v[2:3], 2, v[2:3]
	v_add_co_u32 v4, vcc_lo, s6, v0
	v_add_co_ci_u32_e32 v5, vcc_lo, s7, v1, vcc_lo
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_co_u32 v0, vcc_lo, s4, v2
	v_add_co_ci_u32_e32 v1, vcc_lo, s5, v3, vcc_lo
	global_load_b32 v2, v[4:5], off
	global_load_b32 v3, v[0:1], off
	s_waitcnt vmcnt(1)
	v_mul_f32_e32 v4, v6, v2
.LBB0_2:                                ; %atomicrmw.start
                                        ; =>This Inner Loop Header: Depth=1
	s_waitcnt vmcnt(0)
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v2, v3, v4
	global_atomic_cmpswap_b32 v2, v[0:1], v[2:3], off glc
	s_waitcnt vmcnt(0)
	v_cmp_eq_u32_e32 vcc_lo, v2, v3
	v_mov_b32_e32 v3, v2
	s_or_b32 s0, vcc_lo, s0
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_not1_b32 exec_lo, exec_lo, s0
	s_cbranch_execnz .LBB0_2
.LBB0_3:
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z15continuousDensejjPfPKfS1_
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 288
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 8
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end0:
	.size	_Z15continuousDensejjPfPKfS1_, .Lfunc_end0-_Z15continuousDensejjPfPKfS1_
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 400
; NumSgprs: 18
; NumVgprs: 8
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 0
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 8
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_ ; -- Begin function _Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
	.p2align	8
	.type	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_,@function
_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_: ; @_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
; %bb.0:
	s_clause 0x1
	s_load_b32 s4, s[0:1], 0x4c
	s_load_b64 s[2:3], s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	s_and_b32 s4, s4, 0xffff
	s_mul_i32 s2, s3, s2
	v_mad_u64_u32 v[1:2], null, s15, s4, v[0:1]
	s_delay_alu instid0(VALU_DEP_1)
	v_cmp_gt_u32_e32 vcc_lo, s2, v1
	s_and_saveexec_b32 s2, vcc_lo
	s_cbranch_execz .LBB1_2
; %bb.1:
	v_cvt_f32_u32_e32 v0, s3
	s_sub_i32 s2, 0, s3
	s_clause 0x2
	s_load_b256 s[4:11], s[0:1], 0x8
	s_load_b128 s[12:15], s[0:1], 0x28
	s_load_b64 s[0:1], s[0:1], 0x38
	v_rcp_iflag_f32_e32 v0, v0
	s_waitcnt_depctr 0xfff
	v_mul_f32_e32 v0, 0x4f7ffffe, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_cvt_u32_f32_e32 v0, v0
	v_mul_lo_u32 v2, s2, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_hi_u32 v2, v0, v2
	v_add_nc_u32_e32 v0, v0, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_hi_u32 v0, v1, v0
	v_mul_lo_u32 v2, v0, s3
	v_add_nc_u32_e32 v3, 1, v0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_sub_nc_u32_e32 v2, v1, v2
	v_subrev_nc_u32_e32 v4, s3, v2
	v_cmp_le_u32_e32 vcc_lo, s3, v2
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_cndmask_b32_e32 v0, v0, v3, vcc_lo
	v_cndmask_b32_e32 v2, v2, v4, vcc_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_cmp_le_u32_e32 vcc_lo, s3, v2
	v_dual_mov_b32 v2, 0 :: v_dual_add_nc_u32 v3, 1, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_mov_b32_e32 v4, v2
	v_cndmask_b32_e32 v0, v0, v3, vcc_lo
	v_lshlrev_b64 v[5:6], 2, v[1:2]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v3, v0, s3
	v_sub_nc_u32_e32 v3, v1, v3
	v_mov_b32_e32 v1, v2
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_lshlrev_b64 v[3:4], 2, v[3:4]
	v_lshlrev_b64 v[0:1], 2, v[0:1]
	s_waitcnt lgkmcnt(0)
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_co_u32 v7, vcc_lo, s6, v3
	v_add_co_ci_u32_e32 v8, vcc_lo, s7, v4, vcc_lo
	v_add_co_u32 v9, vcc_lo, s14, v5
	v_add_co_ci_u32_e32 v10, vcc_lo, s15, v6, vcc_lo
	global_load_b32 v7, v[7:8], off
	v_add_co_u32 v0, vcc_lo, s4, v0
	global_load_b32 v2, v[9:10], off
	v_add_co_ci_u32_e32 v1, vcc_lo, s5, v1, vcc_lo
	global_load_b32 v8, v[0:1], off
	s_waitcnt vmcnt(2)
	v_mul_f32_e32 v0, 0xbc8e8a72, v7
	s_waitcnt vmcnt(1)
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)
	v_mul_f32_e32 v11, v2, v0
	v_add_co_u32 v0, vcc_lo, s8, v3
	v_add_co_ci_u32_e32 v1, vcc_lo, s9, v4, vcc_lo
	v_fmamk_f32 v2, v2, 0x3f7fbe77, v11
	s_waitcnt vmcnt(0)
	s_delay_alu instid0(VALU_DEP_1)
	v_fmac_f32_e32 v2, v7, v8
	global_store_b32 v[9:10], v2, off
	global_load_b32 v9, v[0:1], off
	v_add_co_u32 v0, vcc_lo, s12, v5
	v_add_co_ci_u32_e32 v1, vcc_lo, s13, v6, vcc_lo
	v_add_co_u32 v2, vcc_lo, s10, v3
	v_add_co_ci_u32_e32 v3, vcc_lo, s11, v4, vcc_lo
	global_load_b32 v10, v[0:1], off
	v_add_co_u32 v4, vcc_lo, s0, v5
	v_add_co_ci_u32_e32 v5, vcc_lo, s1, v6, vcc_lo
	global_load_b32 v2, v[2:3], off
	global_load_b32 v3, v[4:5], off
	s_waitcnt vmcnt(3)
	v_add_f32_e32 v6, 0xbc23d70a, v9
	v_fma_f32 v7, v7, v8, v11
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_mul_f32_e32 v6, 0x360637bd, v6
	s_waitcnt vmcnt(2)
	v_fmamk_f32 v8, v10, 0x3f733333, v7
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_mul_f32_e32 v6, v7, v6
	s_waitcnt vmcnt(1)
	v_fmac_f32_e32 v6, v2, v8
	s_waitcnt vmcnt(0)
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v2, v3, v6
	global_store_b32 v[4:5], v2, off
	global_store_b32 v[0:1], v8, off
.LBB1_2:
	s_nop 0
	s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 320
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 12
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end1:
	.size	_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_, .Lfunc_end1-_Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 572
; NumSgprs: 18
; NumVgprs: 12
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 12
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z20continuousDenseBlockjjjPfPKfS1_ ; -- Begin function _Z20continuousDenseBlockjjjPfPKfS1_
	.globl	_Z20continuousDenseBlockjjjPfPKfS1_
	.p2align	8
	.type	_Z20continuousDenseBlockjjjPfPKfS1_,@function
_Z20continuousDenseBlockjjjPfPKfS1_:    ; @_Z20continuousDenseBlockjjjPfPKfS1_
; %bb.0:
	s_clause 0x2
	s_load_b256 s[4:11], s[0:1], 0x0
	s_load_b32 s2, s[0:1], 0x34
	s_load_b64 s[0:1], s[0:1], 0x20
	s_waitcnt lgkmcnt(0)
	v_cvt_f32_u32_e32 v1, s6
	s_sub_i32 s3, 0, s6
	s_and_b32 s2, s2, 0xffff
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_rcp_iflag_f32_e32 v1, v1
	s_waitcnt_depctr 0xfff
	v_mul_f32_e32 v1, 0x4f7ffffe, v1
	v_cvt_u32_f32_e32 v3, v1
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v1, s3, v3
	v_mul_hi_u32 v4, v3, v1
	v_mad_u64_u32 v[1:2], null, s15, s2, v[0:1]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_nc_u32_e32 v2, v3, v4
	v_mul_hi_u32 v2, v1, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v3, v2, s6
	v_sub_nc_u32_e32 v3, v1, v3
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_subrev_nc_u32_e32 v5, s6, v3
	v_cmp_le_u32_e32 vcc_lo, s6, v3
	v_dual_cndmask_b32 v3, v3, v5 :: v_dual_add_nc_u32 v4, 1, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cndmask_b32_e32 v2, v2, v4, vcc_lo
	v_cmp_le_u32_e32 vcc_lo, s6, v3
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_nc_u32_e32 v4, 1, v2
	v_cndmask_b32_e32 v2, v2, v4, vcc_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v3, v2, s2
	v_add_nc_u32_e32 v4, s2, v3
	s_mov_b32 s2, exec_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_min_u32_e32 v4, s4, v4
	v_sub_nc_u32_e32 v5, v4, v3
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_lt_u32_e64 v0, v5
	s_cbranch_execz .LBB2_2
; %bb.1:
	v_dual_mov_b32 v6, 0 :: v_dual_add_nc_u32 v5, v3, v0
	v_lshl_add_u32 v0, v0, 2, 0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[5:6], 2, v[5:6]
	v_add_co_u32 v5, vcc_lo, s10, v5
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v6, vcc_lo, s11, v6, vcc_lo
	global_load_b32 v5, v[5:6], off
	s_waitcnt vmcnt(0)
	ds_store_b32 v0, v5
.LBB2_2:
	s_or_b32 exec_lo, exec_lo, s2
	v_mul_lo_u32 v0, v2, s6
	s_waitcnt lgkmcnt(0)
	s_barrier
	buffer_gl0_inv
	s_mov_b32 s2, exec_lo
	v_sub_nc_u32_e32 v0, v1, v0
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_gt_u32_e64 s5, v0
	s_cbranch_execz .LBB2_9
; %bb.3:                                ; %.preheader
	v_mov_b32_e32 v5, 0
	s_mov_b32 s2, exec_lo
	v_cmpx_gt_u32_e64 v4, v3
	s_cbranch_execz .LBB2_7
; %bb.4:                                ; %.lr.ph.preheader
	v_mad_u64_u32 v[1:2], null, v3, s5, v[0:1]
	v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v5, 0
	s_mov_b32 s4, 0
	s_mov_b32 s3, 0
.LBB2_5:                                ; %.lr.ph
                                        ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)
	v_lshlrev_b64 v[6:7], 2, v[1:2]
	v_add_nc_u32_e32 v3, 1, v3
	v_add_nc_u32_e32 v1, s5, v1
	v_add_co_u32 v6, vcc_lo, s0, v6
	s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_co_ci_u32_e32 v7, vcc_lo, s1, v7, vcc_lo
	v_cmp_ge_u32_e32 vcc_lo, v3, v4
	global_load_b32 v6, v[6:7], off
	v_mov_b32_e32 v7, s4
	s_add_i32 s4, s4, 4
	s_or_b32 s3, vcc_lo, s3
	ds_load_b32 v7, v7
	s_waitcnt vmcnt(0) lgkmcnt(0)
	v_fmac_f32_e32 v5, v6, v7
	s_and_not1_b32 exec_lo, exec_lo, s3
	s_cbranch_execnz .LBB2_5
; %bb.6:                                ; %Flow56
	s_or_b32 exec_lo, exec_lo, s3
.LBB2_7:                                ; %Flow57
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	s_or_b32 exec_lo, exec_lo, s2
	v_mov_b32_e32 v1, 0
	s_mov_b32 s0, 0
	v_lshlrev_b64 v[0:1], 2, v[0:1]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_co_u32 v0, vcc_lo, s8, v0
	v_add_co_ci_u32_e32 v1, vcc_lo, s9, v1, vcc_lo
	global_load_b32 v3, v[0:1], off
.LBB2_8:                                ; %atomicrmw.start
                                        ; =>This Inner Loop Header: Depth=1
	s_waitcnt vmcnt(0)
	v_add_f32_e32 v2, v3, v5
	global_atomic_cmpswap_b32 v2, v[0:1], v[2:3], off glc
	s_waitcnt vmcnt(0)
	v_cmp_eq_u32_e32 vcc_lo, v2, v3
	v_mov_b32_e32 v3, v2
	s_or_b32 s0, vcc_lo, s0
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_not1_b32 exec_lo, exec_lo, s0
	s_cbranch_execnz .LBB2_8
.LBB2_9:
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z20continuousDenseBlockjjjPfPKfS1_
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 296
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 8
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end2:
	.size	_Z20continuousDenseBlockjjjPfPKfS1_, .Lfunc_end2-_Z20continuousDenseBlockjjjPfPKfS1_
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 568
; NumSgprs: 18
; NumVgprs: 8
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 0
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 8
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_ ; -- Begin function _Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.globl	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
	.p2align	8
	.type	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_,@function
_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_: ; @_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
; %bb.0:
	s_clause 0x1
	s_load_b128 s[16:19], s[0:1], 0x0
	s_load_b32 s2, s[0:1], 0x54
	s_waitcnt lgkmcnt(0)
	v_cvt_f32_u32_e32 v1, s18
	s_sub_i32 s3, 0, s18
	s_and_b32 s19, s2, 0xffff
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_rcp_iflag_f32_e32 v1, v1
	s_waitcnt_depctr 0xfff
	v_mul_f32_e32 v1, 0x4f7ffffe, v1
	v_cvt_u32_f32_e32 v3, v1
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v1, s3, v3
	v_mul_hi_u32 v4, v3, v1
	v_mad_u64_u32 v[1:2], null, s15, s19, v[0:1]
	s_clause 0x1
	s_load_b256 s[8:15], s[0:1], 0x10
	s_load_b256 s[0:7], s[0:1], 0x30
	s_waitcnt lgkmcnt(0)
	s_mov_b32 s6, exec_lo
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_nc_u32_e32 v2, v3, v4
	v_mul_hi_u32 v2, v1, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v3, v2, s18
	v_sub_nc_u32_e32 v3, v1, v3
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_subrev_nc_u32_e32 v5, s18, v3
	v_cmp_le_u32_e32 vcc_lo, s18, v3
	v_dual_cndmask_b32 v3, v3, v5 :: v_dual_add_nc_u32 v4, 1, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cndmask_b32_e32 v2, v2, v4, vcc_lo
	v_cmp_le_u32_e32 vcc_lo, s18, v3
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_add_nc_u32_e32 v4, 1, v2
	v_cndmask_b32_e32 v4, v2, v4, vcc_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_lo_u32 v2, v4, s19
	v_add_nc_u32_e32 v3, s19, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_min_u32_e32 v3, s16, v3
	v_sub_nc_u32_e32 v5, v3, v2
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_lt_u32_e64 v0, v5
	s_cbranch_execz .LBB3_2
; %bb.1:
	v_dual_mov_b32 v6, 0 :: v_dual_add_nc_u32 v5, v2, v0
	v_lshl_add_u32 v0, v0, 2, 0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[5:6], 2, v[5:6]
	v_add_co_u32 v5, vcc_lo, s8, v5
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v6, vcc_lo, s9, v6, vcc_lo
	global_load_b32 v5, v[5:6], off
	s_waitcnt vmcnt(0)
	ds_store_b32 v0, v5
.LBB3_2:
	s_or_b32 exec_lo, exec_lo, s6
	v_mul_lo_u32 v0, v4, s18
	s_waitcnt lgkmcnt(0)
	s_barrier
	buffer_gl0_inv
	s_mov_b32 s6, exec_lo
	v_sub_nc_u32_e32 v0, v1, v0
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_gt_u32_e64 s17, v0
	s_cbranch_execz .LBB3_6
; %bb.3:
	v_cmp_gt_u32_e32 vcc_lo, v3, v2
	s_and_b32 exec_lo, exec_lo, vcc_lo
	s_cbranch_execz .LBB3_6
; %bb.4:                                ; %.lr.ph
	v_mov_b32_e32 v1, 0
	s_mov_b32 s6, 0
	s_mov_b32 s7, 0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[5:6], 2, v[0:1]
	v_add_co_u32 v7, vcc_lo, s12, v5
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v8, vcc_lo, s13, v6, vcc_lo
	v_add_co_u32 v9, vcc_lo, s10, v5
	v_add_co_ci_u32_e32 v10, vcc_lo, s11, v6, vcc_lo
	v_add_co_u32 v5, vcc_lo, s14, v5
	global_load_b32 v7, v[7:8], off
	global_load_b32 v4, v[9:10], off
	v_add_co_ci_u32_e32 v6, vcc_lo, s15, v6, vcc_lo
	v_mad_u64_u32 v[8:9], null, v2, s17, v[0:1]
	global_load_b32 v5, v[5:6], off
	s_waitcnt vmcnt(2)
	v_add_f32_e32 v0, 0xbc23d70a, v7
	s_waitcnt vmcnt(1)
	v_mul_f32_e32 v6, 0x3c8e8a72, v4
	s_delay_alu instid0(VALU_DEP_2)
	v_dual_mul_f32 v7, 0x360637bd, v0 :: v_dual_mov_b32 v0, v8
.LBB3_5:                                ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)
	v_lshlrev_b64 v[8:9], 2, v[0:1]
	v_add_nc_u32_e32 v2, 1, v2
	v_add_nc_u32_e32 v0, s17, v0
	v_add_co_u32 v10, vcc_lo, s2, v8
	s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_3) | instid1(VALU_DEP_1)
	v_add_co_ci_u32_e32 v11, vcc_lo, s3, v9, vcc_lo
	global_load_b32 v12, v[10:11], off
	s_waitcnt vmcnt(0)
	v_mul_f32_e32 v15, v6, v12
	v_fma_f32 v16, 0x3f7fbe77, v12, -v15
	v_mov_b32_e32 v13, s6
	v_add_co_u32 v12, vcc_lo, s0, v8
	s_add_i32 s6, s6, 4
	ds_load_b32 v14, v13
	v_add_co_ci_u32_e32 v13, vcc_lo, s1, v9, vcc_lo
	v_add_co_u32 v8, vcc_lo, s4, v8
	v_add_co_ci_u32_e32 v9, vcc_lo, s5, v9, vcc_lo
	v_cmp_ge_u32_e32 vcc_lo, v2, v3
	s_or_b32 s7, vcc_lo, s7
	s_waitcnt lgkmcnt(0)
	v_fmac_f32_e32 v16, v4, v14
	v_fma_f32 v14, v4, v14, -v15
	global_store_b32 v[10:11], v16, off
	global_load_b32 v10, v[12:13], off
	global_load_b32 v11, v[8:9], off
	s_waitcnt vmcnt(1)
	v_fmamk_f32 v10, v10, 0x3f733333, v14
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_f32_e32 v15, v5, v10
	v_fmac_f32_e32 v15, v7, v14
	s_waitcnt vmcnt(0)
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v11, v11, v15
	global_store_b32 v[8:9], v11, off
	global_store_b32 v[12:13], v10, off
	s_and_not1_b32 exec_lo, exec_lo, s7
	s_cbranch_execnz .LBB3_5
.LBB3_6:                                ; %.loopexit
	s_nop 0
	s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 328
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 17
		.amdhsa_next_free_sgpr 20
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end3:
	.size	_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_, .Lfunc_end3-_Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 728
; NumSgprs: 22
; NumVgprs: 17
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 2
; NumSGPRsForWavesPerEU: 22
; NumVGPRsForWavesPerEU: 17
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.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_
	.amdgpu_metadata
---
amdhsa.kernels:
  - .args:
      - .offset:         0
        .size:           4
        .value_kind:     by_value
      - .offset:         4
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .offset:         32
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         36
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         40
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         44
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         46
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         48
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         50
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         52
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         54
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         72
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         80
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         88
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         96
        .size:           2
        .value_kind:     hidden_grid_dims
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 288
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z15continuousDensejjPfPKfS1_
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z15continuousDensejjPfPKfS1_.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     8
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .offset:         0
        .size:           4
        .value_kind:     by_value
      - .offset:         4
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         48
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         56
        .size:           8
        .value_kind:     global_buffer
      - .offset:         64
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         68
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         72
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         76
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         78
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         80
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         82
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         84
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         86
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         104
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         112
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         120
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         128
        .size:           2
        .value_kind:     hidden_grid_dims
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 320
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z14epropALIFDensejjPKfS0_S0_S0_PfS1_S1_.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     12
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .offset:         0
        .size:           4
        .value_kind:     by_value
      - .offset:         4
        .size:           4
        .value_kind:     by_value
      - .offset:         8
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .offset:         40
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         44
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         48
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         52
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         54
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         56
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         58
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         60
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         62
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         80
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         88
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         96
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         104
        .size:           2
        .value_kind:     hidden_grid_dims
      - .offset:         160
        .size:           4
        .value_kind:     hidden_dynamic_lds_size
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 296
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z20continuousDenseBlockjjjPfPKfS1_
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z20continuousDenseBlockjjjPfPKfS1_.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     8
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .offset:         0
        .size:           4
        .value_kind:     by_value
      - .offset:         4
        .size:           4
        .value_kind:     by_value
      - .offset:         8
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         48
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         56
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         64
        .size:           8
        .value_kind:     global_buffer
      - .offset:         72
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         76
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         80
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         84
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         86
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         88
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         90
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         92
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         94
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         112
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         120
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         128
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         136
        .size:           2
        .value_kind:     hidden_grid_dims
      - .offset:         192
        .size:           4
        .value_kind:     hidden_dynamic_lds_size
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 328
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_
    .private_segment_fixed_size: 0
    .sgpr_count:     22
    .sgpr_spill_count: 0
    .symbol:         _Z19epropALIFDenseBlockjjjPKfS0_S0_S0_PfS1_S1_.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     17
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
