
#include "filter.cuh"


//////////////////////////////////////////////////////////////
// constructors
/////////////////////////////////////////////////////////////
Filter::Filter( const float mu[], const float sigma[],  const float worldPoints[] )
{
    
    // allocate memory on GPU
    cudaMalloc( &d_states1, N_PARTICLES*N_STATES*sizeof( float ) );
    cudaMalloc( &d_states2, N_PARTICLES*N_STATES*sizeof( float ) );
    cudaMalloc( &d_weights, (N_PARTICLES+1)*sizeof( float ) );
    cudaMalloc( &d_worldPoints, 3*N_WPOINTS*sizeof( float ) );
    cudaMalloc( &d_weightSum, sizeof( float ) );
    cudaMalloc( &d_resampleIdx, N_PARTICLES*sizeof( int ) );
    cudaMalloc( &d_meanStates, N_STATES*sizeof( float ) );
    cudaMalloc( &d_rngStates, N_PARTICLES*sizeof( curandState ) );
    cudaMalloc( &d_cumsum, (N_PARTICLES+1)*sizeof( float ) );
    checkCUDAError("constructor malloc");

    // copy world points to GPU
    cudaMemcpy( d_worldPoints, worldPoints, 3*N_WPOINTS*sizeof( float ), cudaMemcpyHostToDevice);
    checkCUDAError("constructor memcpy");

    // zero out first element of weights
    cudaMemset( d_weights, 0, sizeof( float ) );
    checkCUDAError("constructor memset");

    // Determine temporary device storage requirements for inclusive prefix sum
    d_temp_storage = NULL;
    temp_storage_bytes = 0;
    cub::DeviceScan::InclusiveSum( d_temp_storage, temp_storage_bytes, d_weights, d_cumsum, N_PARTICLES );
    // Allocate temporary storage for inclusive prefix sum
    cudaMalloc(&d_temp_storage, temp_storage_bytes);


    // set up the states of random generators on the GPU
    setupRNG_kernel<<<N_PARTICLES/PARTICLE_BLK_SZ, PARTICLE_BLK_SZ>>>( d_rngStates, 1234 );

    // initilize particles
    init( mu, sigma, worldPoints );
}

//////////////////////////////////////////////////////////////
// destructor
/////////////////////////////////////////////////////////////
Filter:: ~Filter()
{
    cudaFree(d_states1);
    cudaFree(d_states2);
    cudaFree(d_weights);
    cudaFree(d_worldPoints);
    cudaFree(d_weightSum);
    cudaFree(d_cumsum);
    cudaFree(d_meanStates);
    cudaFree(d_temp_storage);

}


//////////////////////////////////////////////////////////////
// initalize particles 
/////////////////////////////////////////////////////////////
void Filter::init( const float mu[], const float sigma[], const float worldPoints[] )
{
	    
    std::random_device rd{};
    std::mt19937 gen{rd()};

    float *h_states = new float[N_PARTICLES*N_STATES];
//  float h_states[N_PARTICLES*N_STATES];

    // pack memory for thread coalessing N_STATES*N_PARTICLES matrix
    for (int state = 0; state < N_STATES; ++state)
    {
	std::normal_distribution<float> distribution( mu[state], sigma[state] );

	for (int particle = 0; particle < N_PARTICLES; ++particle)
	{
	    h_states[ state*N_PARTICLES + particle ] = distribution( gen );
	}
    
    }

    

    
    // copy to GPU 
    cudaMemcpy( d_states1, h_states, N_PARTICLES*N_STATES*sizeof( float ), cudaMemcpyHostToDevice );
    checkCUDAError("memcpy");

    
    
    states = d_states1;
/* TODO: init on device
    // launch kernel
    dim3 blocksPerGrid( N_PARTICLES/PARTICLE_BLK_SZ, 1, 1 );
    dim3 threadsPerBlock( PARTICLE_BLK_SZ, 1, 1);

    init_kernel<<< blocksPerGrid, threadsPerBlock >>>(
*/

    delete[] h_states;
}


//////////////////////////////////////////////////////////////
// update motion and observation
/////////////////////////////////////////////////////////////
void Filter::update( float startTime, float endTime, const float *d_camera, cudaTextureObject_t texObj, cudaStream_t motionStream/*=0*/ )
{
    float interval = endTime - startTime;

    // launch kernel
    dim3 blocksPerGrid( N_PARTICLES/PARTICLE_BLK_SZ, 1, 1 );
    dim3 threadsPerBlock( PARTICLE_BLK_SZ, 1, 1);

    motion_kernel<<< blocksPerGrid, threadsPerBlock, 0, motionStream >>>( d_rngStates, interval, states );
    
//    cudaThreadSynchronize();

    
    dim3 blocksPerGrid2( N_PARTICLES, 1, 1 );
    dim3 threadsPerBlock2( N_LINE_SAMPLES*(N_WPOINTS/2), 1, 1);

    cudaMemset( d_weightSum, 0, sizeof(float) );

    observation_kernel<<< blocksPerGrid2, threadsPerBlock2 >>>( texObj, d_camera, d_worldPoints, states, &d_weights[1], d_weightSum );

    #if PARTICLE_DBG
    cudaThreadSynchronize();
    #endif
    checkCUDAError("update_kernel");
    
}

//////////////////////////////////////////////////////////////
// resample
/////////////////////////////////////////////////////////////
void Filter::resample()
{
    // normalize weights
    normalize();

    // launch kernel
    dim3 blocksPerGrid( N_PARTICLES/PARTICLE_BLK_SZ, 1, 1 );
    dim3 threadsPerBlock( PARTICLE_BLK_SZ, 1, 1);
 
    // swap elements
    if( states==d_states1 )
    {
	resample_kernel<<< blocksPerGrid, threadsPerBlock >>>( d_rngStates, d_cumsum, states, d_states2 );
	states = d_states2;
    }
    else
    {
	resample_kernel<<< blocksPerGrid, threadsPerBlock >>>( d_rngStates, d_cumsum, states, d_states1 );
	states = d_states1;
    }

//    cudaThreadSynchronize();
    checkCUDAError("resample_kernel");

}

void Filter::mean()
{
    // reset mean
    cudaMemset( d_meanStates, 0, N_STATES*sizeof(float) );
    checkCUDAError("memset mean");
    
    // launch kernel
    dim3 blocksPerGrid( N_PARTICLES/PARTICLE_BLK_SZ, 1, 1 );
    dim3 threadsPerBlock( PARTICLE_BLK_SZ, 1, 1);


    mean_kernel<<< blocksPerGrid, threadsPerBlock >>>( states, d_meanStates );
//    cudaThreadSynchronize();
    checkCUDAError("mean_kernel");

    // copy back mean states
    cudaMemcpy( h_meanStates, d_meanStates, N_STATES*sizeof( float ), cudaMemcpyDeviceToHost );
    checkCUDAError("memcpy mean");

    for (int i = 0; i < N_STATES; ++i)
    {
	h_meanStates[i] /= (float)N_PARTICLES;
    }

}


//////////////////////////////////////////////////////////////
// normalize and compute cumulative sum
/////////////////////////////////////////////////////////////
void Filter::normalize()
{
    // launch kernel
    dim3 blocksPerGrid( N_PARTICLES/PARTICLE_BLK_SZ, 1, 1 );
    dim3 threadsPerBlock( PARTICLE_BLK_SZ, 1, 1);

    cudaThreadSynchronize();
    normalize_kernel<<< blocksPerGrid, threadsPerBlock >>>( &d_weights[1], d_weightSum );

    checkCUDAError("normalize_kernel");

    /* compute cumulative sum of weights on the device */
    
    // Run inclusive prefix sum
    cub::DeviceScan::InclusiveSum(d_temp_storage, temp_storage_bytes, d_weights, d_cumsum, N_PARTICLES );
    checkCUDAError("cumsum");
  
}


//////////////////////////////////////////////////////////////
// compute normal from 2 image points
/////////////////////////////////////////////////////////////
__device__ void computeNormal( const float *imPts, float *n )
{
    n[0] = imPts[1] - imPts[3];
    n[1] = imPts[2] - imPts[0];

    // make unit length
    float norm_inv = rhypotf( n[0], n[1] );
    n[0] *= norm_inv;
    n[1] *= norm_inv;
    
    // scale it by lambda pixels
    n[0] *= IM_LAMBDA;
    n[1] *= IM_LAMBDA;
}



/******************************* KERNELS ******************************************************/

//////////////////////////////////////////////////////////////
// mean kernel
/////////////////////////////////////////////////////////////

__global__ void mean_kernel( const float *statesPtr, float *meanStates )
{

    int index = blockDim.x*blockIdx.x + threadIdx.x;

    // block reduce to sum states
    typedef cub::BlockReduce<float, PARTICLE_BLK_SZ> BlockReduce;
    __shared__ typename BlockReduce::TempStorage tmp_storage;

    #pragma unroll
    for (int i = 0; i < N_STATES; ++i)
    {	
    
	float state = statesPtr[index + i*N_PARTICLES];
	    
	float blockSum = BlockReduce(tmp_storage).Sum( state );

	if( threadIdx.x==0 )
	    atomicAdd( &meanStates[ i ], blockSum );
    }

}

//////////////////////////////////////////////////////////////
// resample kernel
/////////////////////////////////////////////////////////////


__global__ void resample_kernel(  curandState *rngStates, const float *weights, const float *fromStates, float *toStates )
{
    int index = blockDim.x*blockIdx.x + threadIdx.x;
    
    curandState random = rngStates[index];

    float U = curand_uniform( &random );

    int particle = findInterval( U, weights );

    // copy states to new array
    #pragma unroll
    for (int i = 0; i < N_STATES; ++i)
    {
	toStates[ index + i*N_PARTICLES ] = fromStates[ particle + i*N_PARTICLES ];
    }
  
#if PARTICLE_DBG
    printf("Particle %d, sample: %f, resampled to particle %d\n", index, U,  particle);
#endif

    rngStates[index] = random;
}




//////////////////////////////////////////////////////////////
// normalize kernel
/////////////////////////////////////////////////////////////


__global__ void normalize_kernel( float *weightPtr, const float *weightSum )
{
    int index = blockDim.x*blockIdx.x + threadIdx.x;

    
    weightPtr[index] /= *weightSum;

    #if PARTICLE_DBG
    printf("Normalized %d: %f\n", index, weightPtr[index]);
    #endif
}



//////////////////////////////////////////////////////////////
// motion kernel
/////////////////////////////////////////////////////////////


__global__ void motion_kernel( curandState *rngStates, float time_left, float *statesPtr )
{
    int index = blockDim.x*blockIdx.x + threadIdx.x;

    // copy data to thread mem
    float states[N_STATES];

    for (int i = 0; i < N_STATES; ++i)
    {
	states[i] = statesPtr[ index + i*N_PARTICLES  ]; 
    }
#if PARTICLE_DBG
    printf("thread %d initial states: [ %f, %f, %f, %f, %f, %f ]\n", index, STATE_X, STATE_Y, STATE_Z, STATE_ALPHA, STATE_BETA, STATE_GAMMA ); 
#endif

    
    // convert to orientation to the center of mass
    STATE_ALPHA += PARAMETER::THETA_ALPHA;
    STATE_BETA += PARAMETER::THETA_BETA;

    // states: x,y,z,x_dot,y_dot,z_dot,alpha,beta,gamma,alpha_dot,beta_dot,gamma_dot
	    
    // first handle states with constant acceleration
	    
    STATE_X += time_left*STATE_X_D;// x
    STATE_Y += time_left*STATE_Y_D;// y
    STATE_Z += time_left*STATE_Z_D;// z
    // states[3] to states[5] and states[11] are unchanged 
    STATE_GAMMA += time_left*STATE_GAMMA_D;

    // next use the forward euler method to integrate alpha, beta and their velocities
    float alpha  = STATE_ALPHA;
    float beta = STATE_BETA;
    float alpha_d = STATE_ALPHA_D;
    
    while( time_left>STEP_SZ )
    {
		 
	STATE_ALPHA += STEP_SZ*alpha_d;// alpha
	STATE_BETA += STEP_SZ*STATE_BETA_D;// beta

	
	STATE_ALPHA_D += STEP_SZ*dynamicsAlpha( alpha, beta, alpha_d, STATE_BETA_D );// alpha_dot
	STATE_BETA_D += STEP_SZ*dynamicsBeta( alpha, beta, alpha_d );// beta_dot
 
	time_left -= STEP_SZ;

	alpha  = STATE_ALPHA;
	beta = STATE_BETA;
	alpha_d = STATE_ALPHA_D;
    }

    // finish up the remainder
    STATE_ALPHA += time_left*alpha_d;// - PARAMETER::THETA_ALPHA;// alpha
    STATE_BETA += time_left*STATE_BETA_D;// - PARAMETER::THETA_BETA;// beta

    STATE_ALPHA_D += time_left*dynamicsAlpha( alpha, beta, alpha_d, STATE_BETA_D );// alpha_dot
    STATE_BETA_D += time_left*dynamicsBeta( alpha, beta, alpha_d );// beta_dot

    // convert to pviot frame
    STATE_ALPHA -= PARAMETER::THETA_ALPHA;
    STATE_BETA -= PARAMETER::THETA_BETA;

    // apply noise
    curandState random = rngStates[index];

    STATE_X += curand_normal(&random)*X_SIGMA;
    STATE_Y += curand_normal(&random)*Y_SIGMA;
    STATE_Z += curand_normal(&random)*Z_SIGMA;
    STATE_X_D += curand_normal(&random)*X_D_SIGMA;
    STATE_Y_D += curand_normal(&random)*Y_D_SIGMA;
    STATE_Z_D += curand_normal(&random)*Z_D_SIGMA;
    STATE_ALPHA += curand_normal(&random)*ALPHA_SIGMA;
    STATE_BETA += curand_normal(&random)*BETA_SIGMA;
    STATE_GAMMA += curand_normal(&random)*GAMMA_SIGMA;
    STATE_ALPHA_D += curand_normal(&random)*ALPHA_D_SIGMA;
    STATE_BETA_D += curand_normal(&random)*BETA_D_SIGMA;
    STATE_GAMMA_D += curand_normal(&random)*GAMMA_D_SIGMA;

    rngStates[index] = random;
    // copy back to global memory
    for (int i = 0; i < N_STATES; ++i)
    {
	statesPtr[ index + i*N_PARTICLES  ] = states[i]; 
    }
    
#if PARTICLE_DBG
    printf("thread %d predicted states: [ %f, %f, %f, %f, %f, %f ]\n", index, STATE_X, STATE_Y, STATE_Z, STATE_ALPHA, STATE_BETA, STATE_GAMMA );
#endif

}

//////////////////////////////////////////////////////////////
// Observation kernel
/////////////////////////////////////////////////////////////

__global__ void observation_kernel(cudaTextureObject_t texObj, const float *cameraPtr, const float *worldPtsPtr, float *statesPtr, float *weightPtr, float *weightSum )
{

    __shared__ float camera[12];
    __shared__ float states[N_STATES];
    __shared__ float worldPts[3*N_WPOINTS];
    
    __shared__ float imPts[2*N_WPOINTS];
    __shared__ float normals[N_WPOINTS];

    // block reduce to sum weights
    typedef cub::BlockReduce<float, N_LINE_SAMPLES*(N_WPOINTS/2)> BlockReduce;
    __shared__ typename BlockReduce::TempStorage tmp_storage;


    // assuming 3*N_WPOINTS is largest
    if( threadIdx.x<3*N_WPOINTS )
    {
	worldPts[threadIdx.x] = worldPtsPtr[threadIdx.x];
	// next is states
#if N_STATES==12
	if( threadIdx.x < 12 )
	{
	    camera[threadIdx.x] = cameraPtr[threadIdx.x];
	    states[threadIdx.x] = statesPtr[ blockIdx.x + threadIdx.x*N_PARTICLES  ];
	}
#else
	if( threadIdx.x < 12 )
	    camera[threadIdx.x] = cameraPtr[threadIdx.x];

	if( threadIdx.x < N_STATES )
	    states[threadIdx.x] = statesPtr[ blockIdx.x + threadIdx.x*N_PARTICLES  ];
#endif

	// project to image points
	if( threadIdx.x < N_WPOINTS )
	{
	    float T[12];
	    statesToTransform( states, T );
	    float tmp[3];
	    // transform and project points
	    transformPt( T, &worldPts[3*threadIdx.x], tmp );
	    project( tmp, camera, &imPts[2*threadIdx.x] );

	    // and compute normals
	    if(  threadIdx.x < (N_WPOINTS/2) )
		    computeNormal( &imPts[4*threadIdx.x], &normals[2*threadIdx.x] );

	}	

    }

    __syncthreads();// is this neccesary if N_WPOINTS<32?

#if PARTICLE_DBG
    if(threadIdx.x==0)
	printf("Particle %d states: [ %f, %f, %f, %f, %f, %f ]\n", blockIdx.x, STATE_X, STATE_Y, STATE_Z, STATE_ALPHA, STATE_BETA, STATE_GAMMA ); 
#endif

 
    int idx = threadIdx.x/N_LINE_SAMPLES;
    int remainderIdx = threadIdx.x%N_LINE_SAMPLES;
    // fraction of line segment
    float frac  = (float)(remainderIdx+1)/( N_LINE_SAMPLES + 1 );

    
    // some aliases
    const float &ax = imPts[4*idx];
    const float &ay = imPts[4*idx+1];
    const float &bx = imPts[4*idx+2];
    const float &by = imPts[4*idx+3];

    const float *n = &normals[2*idx];

    // dont sample if line crosses image boundaries
    float weight = 0;
    float diff = 0;
    // negative pixel pos
    if( ax<IM_LAMBDA || ay<IM_LAMBDA || bx<IM_LAMBDA || by<IM_LAMBDA  )
	goto end;
    // too large pixel pos
    if( (IM_LAMBDA + ax)>=IM_W || (IM_LAMBDA + ay)>=IM_H || (IM_LAMBDA + bx)>=IM_W || (IM_LAMBDA + by)>=IM_H )
	goto end;

   
#if PARTICLE_DBG
    printf("particle %d, thread %d: a=[ %f, %f ], b=[ %f, %f ] \n", blockIdx.x, threadIdx.x,  ax, ay, bx, by );
#endif
	    

    float pt[2];

    pt[0] = ( 1-frac )*ax + frac*bx;
    pt[1] = ( 1-frac )*ay + frac*by;

#if PARTICLE_DBG
    printf("particle %d, thread %d: pt= [ %f, %f ]\n", blockIdx.x, threadIdx.x, pt[0], pt[1] );
#endif
    // measure image at point +- normal
    diff =  tex2D<uchar>( texObj, pt[0] + n[0], pt[1] + n[1]  ) - tex2D<uchar>( texObj, pt[0] - n[0], pt[1] - n[1] );

    weight = idx*diff*diff;// weight by position in array, closest to pivot first
       

#if PARTICLE_DBG
    printf("Particle %d, thread %d weight: %f \n", blockIdx.x, threadIdx.x, weight);
#endif

end:
    
    float blockSum = BlockReduce(tmp_storage).Sum( weight );


#if PARTICLE_DBG
    if(threadIdx.x==0)
	printf("Particle %d, blockSum: %f, weightSum: %f\n", blockIdx.x, blockSum, *weightSum );
#endif
    
    if(threadIdx.x==0)
    {
	weightPtr[blockIdx.x] = blockSum;
	atomicAdd( weightSum, blockSum );    
    }
}




/******************************* MOTION DEVICE FUNCTIONS **************************************/
//////////////////////////////////////////////////////////////
// motion equations
/////////////////////////////////////////////////////////////
__device__ inline float dynamicsAlpha( float alpha, float beta, float alpha_dot, float beta_dot )
{
    float sinBeta, cosBeta;
    sincosf( beta, &sinBeta, &cosBeta );
    return ( 2*alpha_dot*beta_dot*sinBeta - (9.81f/PARAMETER::LENGTH)*sinf(alpha) )/cosBeta;
}

__device__ inline float dynamicsBeta( float alpha, float beta, float alpha_dot )
{
    float sinBeta, cosBeta;
    sincosf( beta, &sinBeta, &cosBeta );
    return -( (9.81f/PARAMETER::LENGTH)*cosf(alpha) + alpha_dot*alpha_dot*cosBeta )*sinBeta;
}


/******************************* OBSERVATION DEVICE FUNCTIONS *********************************/

//////////////////////////////////////////////////////////////
// project world points to image points
/////////////////////////////////////////////////////////////
__device__ void projectWorldPt( const float *camera, const float *worldPt, const float states[], float imPt[]  )
{
    
	/* first update the camera to a new reference frame
	 * equivalent of transforming the states in the world
	 * frame to the camera frame*/
/*    
	float newCamera[12];

	transformCamera( camera, states, newCamera );

	// go through the world points and transform them to image points
	for (int i = 0; i < 2; ++i)
	{
	    project( &worldPts[i*3], newCamera, &imPts[i*2] );
	}
*/
    // transform point 
    float T[12];
	
    statesToTransform( states, T );

    float pt3D[3];
    transformPt( T, worldPt, pt3D );
    	    
    project( pt3D, camera, imPt );
	
}


//////////////////////////////////////////////////////////////
// transform a single world point
/////////////////////////////////////////////////////////////
__device__ void transformPt( const float T[12], const float *worldPt, float pt3D[3] )
{
    pt3D[0] = T[0]*worldPt[0] + T[1]*worldPt[1] + T[2]*worldPt[2] + T[3];
    pt3D[1] = T[4]*worldPt[0] + T[5]*worldPt[1] + T[6]*worldPt[2] + T[7];
    pt3D[2] = T[8]*worldPt[0] + T[9]*worldPt[1] + T[10]*worldPt[2] + T[11];
}





//////////////////////////////////////////////////////////////
//  Make a (truncated) transformation matrix given the states
/////////////////////////////////////////////////////////////
__device__ void statesToTransform( const float states[], float T[] )
{

    // Rotation matrix:
    float s1, c1, s2, c2, s3, c3;

    sincosf( STATE_ALPHA, &s1, &c1 );
    sincosf( STATE_BETA, &s2, &c2 );
    sincosf( STATE_GAMMA, &s3, &c3 );


//    printf("s1: %f, c1: %f\n", s1, c1);
    
    /* row 1 */
    // T_11
    T[0] = c2*c3;
    // T_12
    T[1] = -c2*s3;
    // T_13
    T[2] = s2;
    // T_14
    T[3] = STATE_X;
    /* row 2 */
    // T_21
    T[4] = c1*s3 + c3*s1*s2;
    // T_22
    T[5] = c1*c3 - s1*s2*s3;
    // T_23
    T[6] = -c2*s1;
    // T_24
    T[7] = STATE_Y;
    /* row 3 */
    // T_31
    T[8] = s1*s3 - c1*c3*s2;
    // T_32
    T[9] = c3*s1 + c1*s2*s3;
    // T_33
    T[10] = c1*c2;
    // T_34
    T[11] = STATE_Z;
    /* row 4 is only 0 0 0 1, save the memory */
/*
    #if PARTICLE_DBG
    printf("T= [ %f, %f, %f, %f;\n %f, %f, %f, %f;\n %f, %f, %f, %f ];\n", T[0], T[1], T[2], T[3], T[4], T[5], T[6], T[7], T[8], T[9], T[10], T[11] );
    #endif
*/

}



//////////////////////////////////////////////////////////////
// Transform camera to new reference frame given a state
/////////////////////////////////////////////////////////////
__device__ void transformCamera( const float *camera, const float states[], float newCamera[] )
{

    // first make transformation matrix from states
    float T[12];
    statesToTransform( states, T );
    
// update camera matrix by P*T
    for (int row = 0; row < 3; ++row)
    {
	float sum1 = 0;
	float sum2 = 0;
	float sum3 = 0;
	float sum4 = 0;
	
	for (int col = 0; col < 3; ++col)
	{
	    sum1 += camera[row*4 + col]*T[4*col];
	    sum2 += camera[row*4 + col]*T[4*col +1];
	    sum3 += camera[row*4 + col]*T[4*col +2];
	    sum4 += camera[row*4 + col]*T[4*col +3];
	}

	newCamera[row*4] = sum1;
	newCamera[row*4 +1] = sum2;
	newCamera[row*4 +2] = sum3;
	newCamera[row*4 +3] = sum4 + camera[row*4 +3];
    }
/*
    #if PARTICLE_DBG
    printf("camera= [ %f, %f, %f, %f;\n %f, %f, %f, %f;\n %f, %f, %f, %f ];\n", newCamera[0], newCamera[1], newCamera[2], newCamera[3], newCamera[4], newCamera[5], newCamera[6], newCamera[7], newCamera[8], newCamera[9], newCamera[10], newCamera[11] );
    #endif
*/
}


//////////////////////////////////////////////////////////////
// Project 3D world point using a given camera to a 2D point
/////////////////////////////////////////////////////////////
__device__ void project( const float worldPt[], const float *camera, float imPt[] )
{
    /* project [X,Y,Z,1]^T to [x,y,w] */
    
    // project x
    imPt[0] = worldPt[0]*camera[0] + worldPt[1]*camera[1] + worldPt[2]*camera[2] + camera[3];
    // project y
    imPt[1] = worldPt[0]*camera[4] + worldPt[1]*camera[5] + worldPt[2]*camera[6] + camera[7];
    // project w
    float denominator = worldPt[0]*camera[8] + worldPt[1]*camera[9] + worldPt[2]*camera[10] + camera[11];

    // normalize x and y, assume no division by 0
    imPt[0] /= denominator;
    imPt[1] /= denominator;
}

//////////////////////////////////////////////////////////////
// PRNG
/////////////////////////////////////////////////////////////
__global__ void setupRNG_kernel( curandState *rngStates, unsigned int seed )
{
    int index = blockDim.x*blockIdx.x + threadIdx.x;

    // same seed, different sequence, no offset
    curand_init( seed, index, 0, &rngStates[index] );
}



__device__ constexpr unsigned int floor_pow_2( unsigned int N )
{
#define SH_1( x ) (  x | (x >> 1) )
#define SH_2( x ) (  x | (x >> 2) )
#define SH_3( x ) (  x | (x >> 4) )
#define SH_4( x ) (  x | (x >> 8) )
#define SH_5( x ) (  x | (x >> 16) )
#define SH_6( x ) (  x - (x >> 1) )

#define FLOOR_POW_2( x ) ( SH_6( SH_5( SH_4( SH_3( SH_2( SH_1( x ) ) ) ) ) ) )
    return FLOOR_POW_2( N );

#undef SH_1
#undef SH_2
#undef SH_3
#undef SH_4
#undef SH_5
#undef SH_6
#undef FLOOR_POW_2
}

__device__ int findInterval( float val, const float *arr )
{
    int idx = 0;

    int n = floor_pow_2( N_PARTICLES );

    idx += ( arr[ n ] <= val )*( N_PARTICLES - n );

    // branchless binary search
    for (int i = n/2; i>1; i/=2)
	idx += (arr[ idx+i ]<= val)*i;

    
    // returns index of the last element in arr smaller than val
    return idx;
}

	.file	"tmpxft_00287ddb_00000000-6_filter.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	nvtxDomainRangePop, @function
nvtxDomainRangePop:
.LFB8779:
	.cfi_startproc
	movq	424+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L2
	jmp	*%rax
.L2:
	movl	$-2, %eax
	ret
	.cfi_endproc
.LFE8779:
	.size	nvtxDomainRangePop, .-nvtxDomainRangePop
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.weak	nvtxEtiGetModuleFunctionTable_v3
	.hidden	nvtxEtiGetModuleFunctionTable_v3
	.type	nvtxEtiGetModuleFunctionTable_v3, @function
nvtxEtiGetModuleFunctionTable_v3:
.LFB8790:
	.cfi_startproc
	endbr64
	decl	%edi
	xorl	%eax, %eax
	cmpl	$5, %edi
	ja	.L4
	leaq	.L7(%rip), %rcx
	movslq	(%rcx,%rdi,4), %rax
	addq	%rcx, %rax
	notrack jmp	*%rax
	.section	.rodata.nvtxEtiGetModuleFunctionTable_v3,"aG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.align 4
	.align 4
.L7:
	.long	.L12-.L7
	.long	.L17-.L7
	.long	.L10-.L7
	.long	.L9-.L7
	.long	.L8-.L7
	.long	.L6-.L7
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
.L12:
	leaq	560+nvtxGlobals_v3(%rip), %rcx
	jmp	.L21
.L10:
	leaq	776+nvtxGlobals_v3(%rip), %rcx
	movl	$128, %eax
	jmp	.L11
.L9:
	leaq	904+nvtxGlobals_v3(%rip), %rcx
	jmp	.L22
.L8:
	leaq	968+nvtxGlobals_v3(%rip), %rcx
.L21:
	movl	$136, %eax
	jmp	.L11
.L6:
	leaq	1104+nvtxGlobals_v3(%rip), %rcx
.L22:
	movl	$64, %eax
	jmp	.L11
.L17:
	leaq	696+nvtxGlobals_v3(%rip), %rcx
	movl	$80, %eax
.L11:
	testq	%rdx, %rdx
	je	.L13
	shrl	$3, %eax
	decl	%eax
	movl	%eax, (%rdx)
.L13:
	testq	%rsi, %rsi
	jne	.L14
.L15:
	movl	$1, %eax
	ret
.L14:
	movq	%rcx, (%rsi)
	jmp	.L15
.L4:
	ret
	.cfi_endproc
.LFE8790:
	.size	nvtxEtiGetModuleFunctionTable_v3, .-nvtxEtiGetModuleFunctionTable_v3
	.section	.text.nvtxGetExportTable_v3,"axG",@progbits,nvtxGetExportTable_v3,comdat
	.weak	nvtxGetExportTable_v3
	.hidden	nvtxGetExportTable_v3
	.type	nvtxGetExportTable_v3, @function
nvtxGetExportTable_v3:
.LFB8791:
	.cfi_startproc
	endbr64
	leaq	8+nvtxGlobals_v3(%rip), %rax
	cmpl	$1, %edi
	je	.L23
	cmpl	$3, %edi
	leaq	16(%rax), %rax
	movl	$0, %edx
	cmovne	%rdx, %rax
.L23:
	ret
	.cfi_endproc
.LFE8791:
	.size	nvtxGetExportTable_v3, .-nvtxGetExportTable_v3
	.section	.text.nvtxEtiSetInjectionNvtxVersion_v3,"axG",@progbits,nvtxEtiSetInjectionNvtxVersion_v3,comdat
	.weak	nvtxEtiSetInjectionNvtxVersion_v3
	.hidden	nvtxEtiSetInjectionNvtxVersion_v3
	.type	nvtxEtiSetInjectionNvtxVersion_v3, @function
nvtxEtiSetInjectionNvtxVersion_v3:
.LFB8792:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE8792:
	.size	nvtxEtiSetInjectionNvtxVersion_v3, .-nvtxEtiSetInjectionNvtxVersion_v3
	.section	.text._ZN4cuda3__410cuda_errorD2Ev,"axG",@progbits,_ZN4cuda3__410cuda_errorD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__410cuda_errorD2Ev
	.type	_ZN4cuda3__410cuda_errorD2Ev, @function
_ZN4cuda3__410cuda_errorD2Ev:
.LFB9242:
	.cfi_startproc
	endbr64
	leaq	16+_ZTVN4cuda3__410cuda_errorE(%rip), %rax
	movq	%rax, (%rdi)
	jmp	_ZNSt13runtime_errorD2Ev@PLT
	.cfi_endproc
.LFE9242:
	.size	_ZN4cuda3__410cuda_errorD2Ev, .-_ZN4cuda3__410cuda_errorD2Ev
	.weak	_ZN4cuda3__410cuda_errorD1Ev
	.set	_ZN4cuda3__410cuda_errorD1Ev,_ZN4cuda3__410cuda_errorD2Ev
	.section	.text._ZN4cuda3__410cuda_errorD0Ev,"axG",@progbits,_ZN4cuda3__410cuda_errorD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__410cuda_errorD0Ev
	.type	_ZN4cuda3__410cuda_errorD0Ev, @function
_ZN4cuda3__410cuda_errorD0Ev:
.LFB9244:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	_ZN4cuda3__410cuda_errorD1Ev
	movq	8(%rsp), %rdi
	movl	$16, %esi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE9244:
	.size	_ZN4cuda3__410cuda_errorD0Ev, .-_ZN4cuda3__410cuda_errorD0Ev
	.text
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB12642:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE12642:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0:
.LFB14000:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	pushq	%r10
	.cfi_def_cfa_offset 64
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rax), %esi
	movq	(%rdi), %rdi
	movq	32(%rax), %r9
	movq	24(%rax), %r8
	movq	64(%rsp), %r15
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L34
	movl	(%r15), %r8d
	movl	(%r14), %ecx
	movq	0(%r13), %rdx
	movq	(%r12), %rsi
	movq	0(%rbp), %rdi
	call	*%rbx
.L34:
	popq	%rax
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE14000:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	.align 2
	.type	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0, @function
_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0:
.LFB14001:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rdi), %rax
	movq	%rsi, %rbx
	movq	12(%rdi), %rdx
	movl	20(%rdi), %ecx
	movl	8(%rdi), %esi
	movq	32(%rdi), %r9
	movq	24(%rdi), %r8
	movq	%rax, %rdi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L37
	movl	(%r12), %esi
	movq	0(%rbp), %rdi
	call	*%rbx
.L37:
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	cudaPeekAtLastError@PLT
	.cfi_endproc
.LFE14001:
	.size	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0, .-_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	.type	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0, @function
_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0:
.LFB14002:
	.cfi_startproc
	jmp	cudaMalloc@PLT
	.cfi_endproc
.LFE14002:
	.size	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0, .-_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	.section	.text._ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,comdat
	.weak	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.hidden	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.type	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, @function
_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv:
.LFB13087:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967297, %rax
	leaq	8(%rsp), %rcx
	movq	%rsp, %rdx
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L40
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L40:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L42
	call	__stack_chk_fail@PLT
.L42:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13087:
	.size	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, .-_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.section	.text._ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_,"axG",@progbits,_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_,comdat
	.weak	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_
	.hidden	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_
	.type	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_, @function
_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_:
.LFB13250:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdx, 8(%rsp)
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rax
	movq	%rdi, 32(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rax, 112(%rsp)
	leaq	40(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	7(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	6(%rsp), %rax
	movq	%rax, 152(%rsp)
	leaq	28(%rsp), %rax
	movq	%rsi, 40(%rsp)
	leaq	76(%rsp), %rsi
	movl	%ecx, 24(%rsp)
	leaq	56(%rsp), %rcx
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movl	%r8d, 28(%rsp)
	movq	%rax, 64(%rsp)
	movl	$1, 72(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L44
	pushq	56(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 208
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	128(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L44:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L46
	call	__stack_chk_fail@PLT
.L46:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13250:
	.size	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_, .-_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_
	.section	.text._ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i,comdat
	.weak	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i
	.hidden	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i
	.type	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i, @function
_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i:
.LFB13247:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rcx
	leaq	24(%rsp), %rdx
	leaq	40(%rsp), %rdi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	%esi, 20(%rsp)
	leaq	52(%rsp), %rsi
	movq	%rax, 88(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movl	$1, 48(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L48
	pushq	32(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 144
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	104(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L48:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L50
	call	__stack_chk_fail@PLT
.L50:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13247:
	.size	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i, .-_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i
	.section	.text.nvtxSetInitFunctionsToNoops_v3,"axG",@progbits,nvtxSetInitFunctionsToNoops_v3,comdat
	.weak	nvtxSetInitFunctionsToNoops_v3
	.hidden	nvtxSetInitFunctionsToNoops_v3
	.type	nvtxSetInitFunctionsToNoops_v3, @function
nvtxSetInitFunctionsToNoops_v3:
.LFB8857:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	leaq	nvtxMarkEx_impl_init_v3(%rip), %rdx
	setne	%al
	cmpq	%rdx, 48+nvtxGlobals_v3(%rip)
	je	.L181
	testb	%al, %al
	je	.L53
.L181:
	xorl	%r10d, %r10d
	movq	%r10, 48+nvtxGlobals_v3(%rip)
.L53:
	leaq	nvtxMarkA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 56+nvtxGlobals_v3(%rip)
	je	.L182
	testb	%al, %al
	je	.L55
.L182:
	xorl	%r9d, %r9d
	movq	%r9, 56+nvtxGlobals_v3(%rip)
.L55:
	leaq	nvtxMarkW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 64+nvtxGlobals_v3(%rip)
	je	.L183
	testb	%al, %al
	je	.L57
.L183:
	xorl	%r8d, %r8d
	movq	%r8, 64+nvtxGlobals_v3(%rip)
.L57:
	leaq	nvtxRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 72+nvtxGlobals_v3(%rip)
	je	.L184
	testb	%al, %al
	je	.L59
.L184:
	xorl	%edi, %edi
	movq	%rdi, 72+nvtxGlobals_v3(%rip)
.L59:
	leaq	nvtxRangeStartA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 80+nvtxGlobals_v3(%rip)
	je	.L185
	testb	%al, %al
	je	.L61
.L185:
	xorl	%esi, %esi
	movq	%rsi, 80+nvtxGlobals_v3(%rip)
.L61:
	leaq	nvtxRangeStartW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 88+nvtxGlobals_v3(%rip)
	je	.L186
	testb	%al, %al
	je	.L63
.L186:
	xorl	%ecx, %ecx
	movq	%rcx, 88+nvtxGlobals_v3(%rip)
.L63:
	leaq	nvtxRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 96+nvtxGlobals_v3(%rip)
	je	.L187
	testb	%al, %al
	je	.L65
.L187:
	xorl	%edx, %edx
	movq	%rdx, 96+nvtxGlobals_v3(%rip)
.L65:
	leaq	nvtxRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 104+nvtxGlobals_v3(%rip)
	je	.L188
	testb	%al, %al
	je	.L67
.L188:
	xorl	%r11d, %r11d
	movq	%r11, 104+nvtxGlobals_v3(%rip)
.L67:
	leaq	nvtxRangePushA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 112+nvtxGlobals_v3(%rip)
	je	.L189
	testb	%al, %al
	je	.L69
.L189:
	xorl	%r10d, %r10d
	movq	%r10, 112+nvtxGlobals_v3(%rip)
.L69:
	leaq	nvtxRangePushW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 120+nvtxGlobals_v3(%rip)
	je	.L190
	testb	%al, %al
	je	.L71
.L190:
	xorl	%r9d, %r9d
	movq	%r9, 120+nvtxGlobals_v3(%rip)
.L71:
	leaq	nvtxRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 128+nvtxGlobals_v3(%rip)
	je	.L191
	testb	%al, %al
	je	.L73
.L191:
	xorl	%r8d, %r8d
	movq	%r8, 128+nvtxGlobals_v3(%rip)
.L73:
	leaq	nvtxNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 136+nvtxGlobals_v3(%rip)
	je	.L192
	testb	%al, %al
	je	.L75
.L192:
	xorl	%edi, %edi
	movq	%rdi, 136+nvtxGlobals_v3(%rip)
.L75:
	leaq	nvtxNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 144+nvtxGlobals_v3(%rip)
	je	.L193
	testb	%al, %al
	je	.L77
.L193:
	xorl	%esi, %esi
	movq	%rsi, 144+nvtxGlobals_v3(%rip)
.L77:
	leaq	nvtxNameOsThreadA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 152+nvtxGlobals_v3(%rip)
	je	.L194
	testb	%al, %al
	je	.L79
.L194:
	xorl	%ecx, %ecx
	movq	%rcx, 152+nvtxGlobals_v3(%rip)
.L79:
	leaq	nvtxNameOsThreadW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 160+nvtxGlobals_v3(%rip)
	je	.L195
	testb	%al, %al
	je	.L81
.L195:
	xorl	%edx, %edx
	movq	%rdx, 160+nvtxGlobals_v3(%rip)
.L81:
	leaq	nvtxNameCuDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 168+nvtxGlobals_v3(%rip)
	je	.L196
	testb	%al, %al
	je	.L83
.L196:
	xorl	%r11d, %r11d
	movq	%r11, 168+nvtxGlobals_v3(%rip)
.L83:
	leaq	nvtxNameCuDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 176+nvtxGlobals_v3(%rip)
	je	.L197
	testb	%al, %al
	je	.L85
.L197:
	xorl	%r10d, %r10d
	movq	%r10, 176+nvtxGlobals_v3(%rip)
.L85:
	leaq	nvtxNameCuContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 184+nvtxGlobals_v3(%rip)
	je	.L198
	testb	%al, %al
	je	.L87
.L198:
	xorl	%r9d, %r9d
	movq	%r9, 184+nvtxGlobals_v3(%rip)
.L87:
	leaq	nvtxNameCuContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 192+nvtxGlobals_v3(%rip)
	je	.L199
	testb	%al, %al
	je	.L89
.L199:
	xorl	%r8d, %r8d
	movq	%r8, 192+nvtxGlobals_v3(%rip)
.L89:
	leaq	nvtxNameCuStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 200+nvtxGlobals_v3(%rip)
	je	.L200
	testb	%al, %al
	je	.L91
.L200:
	xorl	%edi, %edi
	movq	%rdi, 200+nvtxGlobals_v3(%rip)
.L91:
	leaq	nvtxNameCuStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 208+nvtxGlobals_v3(%rip)
	je	.L201
	testb	%al, %al
	je	.L93
.L201:
	xorl	%esi, %esi
	movq	%rsi, 208+nvtxGlobals_v3(%rip)
.L93:
	leaq	nvtxNameCuEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 216+nvtxGlobals_v3(%rip)
	je	.L202
	testb	%al, %al
	je	.L95
.L202:
	xorl	%ecx, %ecx
	movq	%rcx, 216+nvtxGlobals_v3(%rip)
.L95:
	leaq	nvtxNameCuEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 224+nvtxGlobals_v3(%rip)
	je	.L203
	testb	%al, %al
	je	.L97
.L203:
	xorl	%edx, %edx
	movq	%rdx, 224+nvtxGlobals_v3(%rip)
.L97:
	leaq	nvtxNameClDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 232+nvtxGlobals_v3(%rip)
	je	.L204
	testb	%al, %al
	je	.L99
.L204:
	xorl	%r11d, %r11d
	movq	%r11, 232+nvtxGlobals_v3(%rip)
.L99:
	leaq	nvtxNameClDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 240+nvtxGlobals_v3(%rip)
	je	.L205
	testb	%al, %al
	je	.L101
.L205:
	xorl	%r10d, %r10d
	movq	%r10, 240+nvtxGlobals_v3(%rip)
.L101:
	leaq	nvtxNameClContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 248+nvtxGlobals_v3(%rip)
	je	.L206
	testb	%al, %al
	je	.L103
.L206:
	xorl	%r9d, %r9d
	movq	%r9, 248+nvtxGlobals_v3(%rip)
.L103:
	leaq	nvtxNameClContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 256+nvtxGlobals_v3(%rip)
	je	.L207
	testb	%al, %al
	je	.L105
.L207:
	xorl	%r8d, %r8d
	movq	%r8, 256+nvtxGlobals_v3(%rip)
.L105:
	leaq	nvtxNameClCommandQueueA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 264+nvtxGlobals_v3(%rip)
	je	.L208
	testb	%al, %al
	je	.L107
.L208:
	xorl	%edi, %edi
	movq	%rdi, 264+nvtxGlobals_v3(%rip)
.L107:
	leaq	nvtxNameClCommandQueueW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 272+nvtxGlobals_v3(%rip)
	je	.L209
	testb	%al, %al
	je	.L109
.L209:
	xorl	%esi, %esi
	movq	%rsi, 272+nvtxGlobals_v3(%rip)
.L109:
	leaq	nvtxNameClMemObjectA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 280+nvtxGlobals_v3(%rip)
	je	.L210
	testb	%al, %al
	je	.L111
.L210:
	xorl	%ecx, %ecx
	movq	%rcx, 280+nvtxGlobals_v3(%rip)
.L111:
	leaq	nvtxNameClMemObjectW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 288+nvtxGlobals_v3(%rip)
	je	.L211
	testb	%al, %al
	je	.L113
.L211:
	xorl	%edx, %edx
	movq	%rdx, 288+nvtxGlobals_v3(%rip)
.L113:
	leaq	nvtxNameClSamplerA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 296+nvtxGlobals_v3(%rip)
	je	.L212
	testb	%al, %al
	je	.L115
.L212:
	xorl	%r11d, %r11d
	movq	%r11, 296+nvtxGlobals_v3(%rip)
.L115:
	leaq	nvtxNameClSamplerW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 304+nvtxGlobals_v3(%rip)
	je	.L213
	testb	%al, %al
	je	.L117
.L213:
	xorl	%r10d, %r10d
	movq	%r10, 304+nvtxGlobals_v3(%rip)
.L117:
	leaq	nvtxNameClProgramA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 312+nvtxGlobals_v3(%rip)
	je	.L214
	testb	%al, %al
	je	.L119
.L214:
	xorl	%r9d, %r9d
	movq	%r9, 312+nvtxGlobals_v3(%rip)
.L119:
	leaq	nvtxNameClProgramW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 320+nvtxGlobals_v3(%rip)
	je	.L215
	testb	%al, %al
	je	.L121
.L215:
	xorl	%r8d, %r8d
	movq	%r8, 320+nvtxGlobals_v3(%rip)
.L121:
	leaq	nvtxNameClEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 328+nvtxGlobals_v3(%rip)
	je	.L216
	testb	%al, %al
	je	.L123
.L216:
	xorl	%edi, %edi
	movq	%rdi, 328+nvtxGlobals_v3(%rip)
.L123:
	leaq	nvtxNameClEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 336+nvtxGlobals_v3(%rip)
	je	.L217
	testb	%al, %al
	je	.L125
.L217:
	xorl	%esi, %esi
	movq	%rsi, 336+nvtxGlobals_v3(%rip)
.L125:
	leaq	nvtxNameCudaDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 344+nvtxGlobals_v3(%rip)
	je	.L218
	testb	%al, %al
	je	.L127
.L218:
	xorl	%ecx, %ecx
	movq	%rcx, 344+nvtxGlobals_v3(%rip)
.L127:
	leaq	nvtxNameCudaDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 352+nvtxGlobals_v3(%rip)
	je	.L219
	testb	%al, %al
	je	.L129
.L219:
	xorl	%edx, %edx
	movq	%rdx, 352+nvtxGlobals_v3(%rip)
.L129:
	leaq	nvtxNameCudaStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 360+nvtxGlobals_v3(%rip)
	je	.L220
	testb	%al, %al
	je	.L131
.L220:
	xorl	%r11d, %r11d
	movq	%r11, 360+nvtxGlobals_v3(%rip)
.L131:
	leaq	nvtxNameCudaStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 368+nvtxGlobals_v3(%rip)
	je	.L221
	testb	%al, %al
	je	.L133
.L221:
	xorl	%r10d, %r10d
	movq	%r10, 368+nvtxGlobals_v3(%rip)
.L133:
	leaq	nvtxNameCudaEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 376+nvtxGlobals_v3(%rip)
	je	.L222
	testb	%al, %al
	je	.L135
.L222:
	xorl	%r9d, %r9d
	movq	%r9, 376+nvtxGlobals_v3(%rip)
.L135:
	leaq	nvtxNameCudaEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 384+nvtxGlobals_v3(%rip)
	je	.L223
	testb	%al, %al
	je	.L137
.L223:
	xorl	%r8d, %r8d
	movq	%r8, 384+nvtxGlobals_v3(%rip)
.L137:
	leaq	nvtxDomainMarkEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 392+nvtxGlobals_v3(%rip)
	je	.L224
	testb	%al, %al
	je	.L139
.L224:
	xorl	%edi, %edi
	movq	%rdi, 392+nvtxGlobals_v3(%rip)
.L139:
	leaq	nvtxDomainRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 400+nvtxGlobals_v3(%rip)
	je	.L225
	testb	%al, %al
	je	.L141
.L225:
	xorl	%esi, %esi
	movq	%rsi, 400+nvtxGlobals_v3(%rip)
.L141:
	leaq	nvtxDomainRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 408+nvtxGlobals_v3(%rip)
	je	.L226
	testb	%al, %al
	je	.L143
.L226:
	xorl	%ecx, %ecx
	movq	%rcx, 408+nvtxGlobals_v3(%rip)
.L143:
	leaq	nvtxDomainRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 416+nvtxGlobals_v3(%rip)
	je	.L227
	testb	%al, %al
	je	.L145
.L227:
	xorl	%edx, %edx
	movq	%rdx, 416+nvtxGlobals_v3(%rip)
.L145:
	leaq	nvtxDomainRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 424+nvtxGlobals_v3(%rip)
	je	.L228
	testb	%al, %al
	je	.L147
.L228:
	xorl	%r11d, %r11d
	movq	%r11, 424+nvtxGlobals_v3(%rip)
.L147:
	leaq	nvtxDomainResourceCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 432+nvtxGlobals_v3(%rip)
	je	.L229
	testb	%al, %al
	je	.L149
.L229:
	xorl	%r10d, %r10d
	movq	%r10, 432+nvtxGlobals_v3(%rip)
.L149:
	leaq	nvtxDomainResourceDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 440+nvtxGlobals_v3(%rip)
	je	.L230
	testb	%al, %al
	je	.L151
.L230:
	xorl	%r9d, %r9d
	movq	%r9, 440+nvtxGlobals_v3(%rip)
.L151:
	leaq	nvtxDomainNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 448+nvtxGlobals_v3(%rip)
	je	.L231
	testb	%al, %al
	je	.L153
.L231:
	xorl	%r8d, %r8d
	movq	%r8, 448+nvtxGlobals_v3(%rip)
.L153:
	leaq	nvtxDomainNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 456+nvtxGlobals_v3(%rip)
	je	.L232
	testb	%al, %al
	je	.L155
.L232:
	xorl	%edi, %edi
	movq	%rdi, 456+nvtxGlobals_v3(%rip)
.L155:
	leaq	nvtxDomainRegisterStringA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 464+nvtxGlobals_v3(%rip)
	je	.L233
	testb	%al, %al
	je	.L157
.L233:
	xorl	%esi, %esi
	movq	%rsi, 464+nvtxGlobals_v3(%rip)
.L157:
	leaq	nvtxDomainRegisterStringW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 472+nvtxGlobals_v3(%rip)
	je	.L234
	testb	%al, %al
	je	.L159
.L234:
	xorl	%ecx, %ecx
	movq	%rcx, 472+nvtxGlobals_v3(%rip)
.L159:
	leaq	nvtxDomainCreateA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 480+nvtxGlobals_v3(%rip)
	je	.L235
	testb	%al, %al
	je	.L161
.L235:
	xorl	%edx, %edx
	movq	%rdx, 480+nvtxGlobals_v3(%rip)
.L161:
	leaq	nvtxDomainCreateW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 488+nvtxGlobals_v3(%rip)
	je	.L236
	testb	%al, %al
	je	.L163
.L236:
	xorl	%r11d, %r11d
	movq	%r11, 488+nvtxGlobals_v3(%rip)
.L163:
	leaq	nvtxDomainDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 496+nvtxGlobals_v3(%rip)
	je	.L237
	testb	%al, %al
	je	.L165
.L237:
	xorl	%r10d, %r10d
	movq	%r10, 496+nvtxGlobals_v3(%rip)
.L165:
	leaq	nvtxInitialize_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 504+nvtxGlobals_v3(%rip)
	je	.L238
	testb	%al, %al
	je	.L167
.L238:
	xorl	%r9d, %r9d
	movq	%r9, 504+nvtxGlobals_v3(%rip)
.L167:
	leaq	nvtxDomainSyncUserCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 512+nvtxGlobals_v3(%rip)
	je	.L239
	testb	%al, %al
	je	.L169
.L239:
	xorl	%r8d, %r8d
	movq	%r8, 512+nvtxGlobals_v3(%rip)
.L169:
	leaq	nvtxDomainSyncUserDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 520+nvtxGlobals_v3(%rip)
	je	.L240
	testb	%al, %al
	je	.L171
.L240:
	xorl	%edi, %edi
	movq	%rdi, 520+nvtxGlobals_v3(%rip)
.L171:
	leaq	nvtxDomainSyncUserAcquireStart_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 528+nvtxGlobals_v3(%rip)
	je	.L241
	testb	%al, %al
	je	.L173
.L241:
	xorl	%esi, %esi
	movq	%rsi, 528+nvtxGlobals_v3(%rip)
.L173:
	leaq	nvtxDomainSyncUserAcquireFailed_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 536+nvtxGlobals_v3(%rip)
	je	.L242
	testb	%al, %al
	je	.L175
.L242:
	xorl	%ecx, %ecx
	movq	%rcx, 536+nvtxGlobals_v3(%rip)
.L175:
	leaq	nvtxDomainSyncUserAcquireSuccess_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 544+nvtxGlobals_v3(%rip)
	je	.L243
	testb	%al, %al
	je	.L177
.L243:
	xorl	%edx, %edx
	movq	%rdx, 544+nvtxGlobals_v3(%rip)
.L177:
	leaq	nvtxDomainSyncUserReleasing_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 552+nvtxGlobals_v3(%rip)
	je	.L244
	testb	%al, %al
	je	.L52
.L244:
	xorl	%eax, %eax
	movq	%rax, 552+nvtxGlobals_v3(%rip)
.L52:
	ret
	.cfi_endproc
.LFE8857:
	.size	nvtxSetInitFunctionsToNoops_v3, .-nvtxSetInitFunctionsToNoops_v3
	.section	.rodata.nvtxInitializeInjectionLibrary_v3.str1.1,"aMS",@progbits,1
.LC1:
	.string	"NVTX_INJECTION64_PATH"
.LC2:
	.string	"InitializeInjectionNvtx2"
	.section	.text.nvtxInitializeInjectionLibrary_v3,"axG",@progbits,nvtxInitializeInjectionLibrary_v3,comdat
	.weak	nvtxInitializeInjectionLibrary_v3
	.hidden	nvtxInitializeInjectionLibrary_v3
	.type	nvtxInitializeInjectionLibrary_v3, @function
nvtxInitializeInjectionLibrary_v3:
.LFB8858:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	.LC1(%rip), %rdi
	call	getenv@PLT
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L438
	movl	$1, %esi
	movq	%rax, %rdi
	call	dlopen@PLT
	movl	$4, %edx
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L437
	leaq	.LC2(%rip), %rsi
	movq	%rax, %rdi
	call	dlsym@PLT
	testq	%rax, %rax
	jne	.L440
	movq	%rbx, %rdi
	call	dlclose@PLT
	movl	$5, %edx
	jmp	.L437
.L438:
	movq	InitializeInjectionNvtx2_fnptr(%rip), %rax
	movl	$7, %edx
	testq	%rax, %rax
	je	.L437
.L440:
	leaq	nvtxGetExportTable_v3(%rip), %rdi
	call	*%rax
	xorl	%edx, %edx
	testl	%eax, %eax
	jne	.L437
	testq	%rbx, %rbx
	je	.L441
	movq	%rbx, %rdi
	call	dlclose@PLT
.L441:
	movl	$6, %edx
.L437:
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8858:
	.size	nvtxInitializeInjectionLibrary_v3, .-nvtxInitializeInjectionLibrary_v3
	.section	.text.nvtxInitOnce_v3,"axG",@progbits,nvtxInitOnce_v3,comdat
	.weak	nvtxInitOnce_v3
	.hidden	nvtxInitOnce_v3
	.type	nvtxInitOnce_v3, @function
nvtxInitOnce_v3:
.LFB8859:
	.cfi_startproc
	endbr64
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L457
	pushq	%rdx
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	xorl	%edx, %edx
	mfence
	lock cmpxchgl	%edx, nvtxGlobals_v3(%rip)
	testl	%eax, %eax
	jne	.L460
	call	nvtxInitializeInjectionLibrary_v3
	xorl	%edi, %edi
	testl	%eax, %eax
	setne	%dil
	call	nvtxSetInitFunctionsToNoops_v3
	movl	$2, %eax
	mfence
	xchgl	nvtxGlobals_v3(%rip), %eax
	jmp	.L449
.L460:
	mfence
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L449
	call	sched_yield@PLT
	jmp	.L460
.L449:
	popq	%rax
	.cfi_def_cfa_offset 8
	ret
.L457:
	ret
	.cfi_endproc
.LFE8859:
	.size	nvtxInitOnce_v3, .-nvtxInitOnce_v3
	.section	.text.nvtxDomainSyncUserReleasing_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserReleasing_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserReleasing_impl_init_v3
	.hidden	nvtxDomainSyncUserReleasing_impl_init_v3
	.type	nvtxDomainSyncUserReleasing_impl_init_v3, @function
nvtxDomainSyncUserReleasing_impl_init_v3:
.LFB8856:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	552+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L461
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L461:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8856:
	.size	nvtxDomainSyncUserReleasing_impl_init_v3, .-nvtxDomainSyncUserReleasing_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireSuccess_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireSuccess_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.type	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, @function
nvtxDomainSyncUserAcquireSuccess_impl_init_v3:
.LFB8855:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	544+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L464
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L464:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8855:
	.size	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, .-nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireFailed_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireFailed_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.type	nvtxDomainSyncUserAcquireFailed_impl_init_v3, @function
nvtxDomainSyncUserAcquireFailed_impl_init_v3:
.LFB8854:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	536+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L467
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L467:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8854:
	.size	nvtxDomainSyncUserAcquireFailed_impl_init_v3, .-nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireStart_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireStart_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.type	nvtxDomainSyncUserAcquireStart_impl_init_v3, @function
nvtxDomainSyncUserAcquireStart_impl_init_v3:
.LFB8853:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	528+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L470
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L470:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8853:
	.size	nvtxDomainSyncUserAcquireStart_impl_init_v3, .-nvtxDomainSyncUserAcquireStart_impl_init_v3
	.section	.text.nvtxDomainSyncUserDestroy_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserDestroy_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserDestroy_impl_init_v3
	.hidden	nvtxDomainSyncUserDestroy_impl_init_v3
	.type	nvtxDomainSyncUserDestroy_impl_init_v3, @function
nvtxDomainSyncUserDestroy_impl_init_v3:
.LFB8852:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	520+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L473
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L473:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8852:
	.size	nvtxDomainSyncUserDestroy_impl_init_v3, .-nvtxDomainSyncUserDestroy_impl_init_v3
	.section	.text.nvtxDomainSyncUserCreate_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserCreate_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserCreate_impl_init_v3
	.hidden	nvtxDomainSyncUserCreate_impl_init_v3
	.type	nvtxDomainSyncUserCreate_impl_init_v3, @function
nvtxDomainSyncUserCreate_impl_init_v3:
.LFB8851:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	512+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L477
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L477:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8851:
	.size	nvtxDomainSyncUserCreate_impl_init_v3, .-nvtxDomainSyncUserCreate_impl_init_v3
	.section	.text.nvtxInitialize_impl_init_v3,"axG",@progbits,nvtxInitialize_impl_init_v3,comdat
	.weak	nvtxInitialize_impl_init_v3
	.hidden	nvtxInitialize_impl_init_v3
	.type	nvtxInitialize_impl_init_v3, @function
nvtxInitialize_impl_init_v3:
.LFB8822:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	504+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L479
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L479:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8822:
	.size	nvtxInitialize_impl_init_v3, .-nvtxInitialize_impl_init_v3
	.section	.text.nvtxDomainDestroy_impl_init_v3,"axG",@progbits,nvtxDomainDestroy_impl_init_v3,comdat
	.weak	nvtxDomainDestroy_impl_init_v3
	.hidden	nvtxDomainDestroy_impl_init_v3
	.type	nvtxDomainDestroy_impl_init_v3, @function
nvtxDomainDestroy_impl_init_v3:
.LFB8821:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	496+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L482
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L482:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8821:
	.size	nvtxDomainDestroy_impl_init_v3, .-nvtxDomainDestroy_impl_init_v3
	.section	.text.nvtxDomainCreateW_impl_init_v3,"axG",@progbits,nvtxDomainCreateW_impl_init_v3,comdat
	.weak	nvtxDomainCreateW_impl_init_v3
	.hidden	nvtxDomainCreateW_impl_init_v3
	.type	nvtxDomainCreateW_impl_init_v3, @function
nvtxDomainCreateW_impl_init_v3:
.LFB8820:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	488+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L486
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L486:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8820:
	.size	nvtxDomainCreateW_impl_init_v3, .-nvtxDomainCreateW_impl_init_v3
	.section	.text.nvtxDomainCreateA_impl_init_v3,"axG",@progbits,nvtxDomainCreateA_impl_init_v3,comdat
	.weak	nvtxDomainCreateA_impl_init_v3
	.hidden	nvtxDomainCreateA_impl_init_v3
	.type	nvtxDomainCreateA_impl_init_v3, @function
nvtxDomainCreateA_impl_init_v3:
.LFB8819:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	480+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L489
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L489:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8819:
	.size	nvtxDomainCreateA_impl_init_v3, .-nvtxDomainCreateA_impl_init_v3
	.section	.text.nvtxDomainRegisterStringW_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringW_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringW_impl_init_v3
	.hidden	nvtxDomainRegisterStringW_impl_init_v3
	.type	nvtxDomainRegisterStringW_impl_init_v3, @function
nvtxDomainRegisterStringW_impl_init_v3:
.LFB8818:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	472+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L492
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L492:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8818:
	.size	nvtxDomainRegisterStringW_impl_init_v3, .-nvtxDomainRegisterStringW_impl_init_v3
	.section	.text.nvtxDomainRegisterStringA_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringA_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringA_impl_init_v3
	.hidden	nvtxDomainRegisterStringA_impl_init_v3
	.type	nvtxDomainRegisterStringA_impl_init_v3, @function
nvtxDomainRegisterStringA_impl_init_v3:
.LFB8817:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	464+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L495
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L495:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8817:
	.size	nvtxDomainRegisterStringA_impl_init_v3, .-nvtxDomainRegisterStringA_impl_init_v3
	.section	.text.nvtxDomainNameCategoryW_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryW_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryW_impl_init_v3
	.hidden	nvtxDomainNameCategoryW_impl_init_v3
	.type	nvtxDomainNameCategoryW_impl_init_v3, @function
nvtxDomainNameCategoryW_impl_init_v3:
.LFB8816:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	456+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L497
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L497:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8816:
	.size	nvtxDomainNameCategoryW_impl_init_v3, .-nvtxDomainNameCategoryW_impl_init_v3
	.section	.text.nvtxDomainNameCategoryA_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryA_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryA_impl_init_v3
	.hidden	nvtxDomainNameCategoryA_impl_init_v3
	.type	nvtxDomainNameCategoryA_impl_init_v3, @function
nvtxDomainNameCategoryA_impl_init_v3:
.LFB8815:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	448+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L500
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L500:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8815:
	.size	nvtxDomainNameCategoryA_impl_init_v3, .-nvtxDomainNameCategoryA_impl_init_v3
	.section	.text.nvtxDomainResourceDestroy_impl_init_v3,"axG",@progbits,nvtxDomainResourceDestroy_impl_init_v3,comdat
	.weak	nvtxDomainResourceDestroy_impl_init_v3
	.hidden	nvtxDomainResourceDestroy_impl_init_v3
	.type	nvtxDomainResourceDestroy_impl_init_v3, @function
nvtxDomainResourceDestroy_impl_init_v3:
.LFB8814:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	440+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L503
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L503:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8814:
	.size	nvtxDomainResourceDestroy_impl_init_v3, .-nvtxDomainResourceDestroy_impl_init_v3
	.section	.text.nvtxDomainResourceCreate_impl_init_v3,"axG",@progbits,nvtxDomainResourceCreate_impl_init_v3,comdat
	.weak	nvtxDomainResourceCreate_impl_init_v3
	.hidden	nvtxDomainResourceCreate_impl_init_v3
	.type	nvtxDomainResourceCreate_impl_init_v3, @function
nvtxDomainResourceCreate_impl_init_v3:
.LFB8813:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	432+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L507
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L507:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8813:
	.size	nvtxDomainResourceCreate_impl_init_v3, .-nvtxDomainResourceCreate_impl_init_v3
	.section	.text.nvtxDomainRangePop_impl_init_v3,"axG",@progbits,nvtxDomainRangePop_impl_init_v3,comdat
	.weak	nvtxDomainRangePop_impl_init_v3
	.hidden	nvtxDomainRangePop_impl_init_v3
	.type	nvtxDomainRangePop_impl_init_v3, @function
nvtxDomainRangePop_impl_init_v3:
.LFB8812:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	nvtxDomainRangePop
	.cfi_endproc
.LFE8812:
	.size	nvtxDomainRangePop_impl_init_v3, .-nvtxDomainRangePop_impl_init_v3
	.section	.text.nvtxDomainRangePushEx_impl_init_v3,"axG",@progbits,nvtxDomainRangePushEx_impl_init_v3,comdat
	.weak	nvtxDomainRangePushEx_impl_init_v3
	.hidden	nvtxDomainRangePushEx_impl_init_v3
	.type	nvtxDomainRangePushEx_impl_init_v3, @function
nvtxDomainRangePushEx_impl_init_v3:
.LFB8811:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L512
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L512:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8811:
	.size	nvtxDomainRangePushEx_impl_init_v3, .-nvtxDomainRangePushEx_impl_init_v3
	.section	.text.nvtxDomainRangeEnd_impl_init_v3,"axG",@progbits,nvtxDomainRangeEnd_impl_init_v3,comdat
	.weak	nvtxDomainRangeEnd_impl_init_v3
	.hidden	nvtxDomainRangeEnd_impl_init_v3
	.type	nvtxDomainRangeEnd_impl_init_v3, @function
nvtxDomainRangeEnd_impl_init_v3:
.LFB8810:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	408+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L514
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L514:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8810:
	.size	nvtxDomainRangeEnd_impl_init_v3, .-nvtxDomainRangeEnd_impl_init_v3
	.section	.text.nvtxDomainRangeStartEx_impl_init_v3,"axG",@progbits,nvtxDomainRangeStartEx_impl_init_v3,comdat
	.weak	nvtxDomainRangeStartEx_impl_init_v3
	.hidden	nvtxDomainRangeStartEx_impl_init_v3
	.type	nvtxDomainRangeStartEx_impl_init_v3, @function
nvtxDomainRangeStartEx_impl_init_v3:
.LFB8809:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	400+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L518
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L518:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8809:
	.size	nvtxDomainRangeStartEx_impl_init_v3, .-nvtxDomainRangeStartEx_impl_init_v3
	.section	.text.nvtxDomainMarkEx_impl_init_v3,"axG",@progbits,nvtxDomainMarkEx_impl_init_v3,comdat
	.weak	nvtxDomainMarkEx_impl_init_v3
	.hidden	nvtxDomainMarkEx_impl_init_v3
	.type	nvtxDomainMarkEx_impl_init_v3, @function
nvtxDomainMarkEx_impl_init_v3:
.LFB8808:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	392+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L520
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L520:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8808:
	.size	nvtxDomainMarkEx_impl_init_v3, .-nvtxDomainMarkEx_impl_init_v3
	.section	.text.nvtxNameCudaEventW_impl_init_v3,"axG",@progbits,nvtxNameCudaEventW_impl_init_v3,comdat
	.weak	nvtxNameCudaEventW_impl_init_v3
	.hidden	nvtxNameCudaEventW_impl_init_v3
	.type	nvtxNameCudaEventW_impl_init_v3, @function
nvtxNameCudaEventW_impl_init_v3:
.LFB8836:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	384+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L523
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L523:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8836:
	.size	nvtxNameCudaEventW_impl_init_v3, .-nvtxNameCudaEventW_impl_init_v3
	.section	.text.nvtxNameCudaEventA_impl_init_v3,"axG",@progbits,nvtxNameCudaEventA_impl_init_v3,comdat
	.weak	nvtxNameCudaEventA_impl_init_v3
	.hidden	nvtxNameCudaEventA_impl_init_v3
	.type	nvtxNameCudaEventA_impl_init_v3, @function
nvtxNameCudaEventA_impl_init_v3:
.LFB8835:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	376+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L526
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L526:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8835:
	.size	nvtxNameCudaEventA_impl_init_v3, .-nvtxNameCudaEventA_impl_init_v3
	.section	.text.nvtxNameCudaStreamW_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamW_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamW_impl_init_v3
	.hidden	nvtxNameCudaStreamW_impl_init_v3
	.type	nvtxNameCudaStreamW_impl_init_v3, @function
nvtxNameCudaStreamW_impl_init_v3:
.LFB8834:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	368+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L529
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L529:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8834:
	.size	nvtxNameCudaStreamW_impl_init_v3, .-nvtxNameCudaStreamW_impl_init_v3
	.section	.text.nvtxNameCudaStreamA_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamA_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamA_impl_init_v3
	.hidden	nvtxNameCudaStreamA_impl_init_v3
	.type	nvtxNameCudaStreamA_impl_init_v3, @function
nvtxNameCudaStreamA_impl_init_v3:
.LFB8833:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	360+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L532
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L532:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8833:
	.size	nvtxNameCudaStreamA_impl_init_v3, .-nvtxNameCudaStreamA_impl_init_v3
	.section	.text.nvtxNameCudaDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceW_impl_init_v3
	.hidden	nvtxNameCudaDeviceW_impl_init_v3
	.type	nvtxNameCudaDeviceW_impl_init_v3, @function
nvtxNameCudaDeviceW_impl_init_v3:
.LFB8832:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	352+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L535
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L535:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8832:
	.size	nvtxNameCudaDeviceW_impl_init_v3, .-nvtxNameCudaDeviceW_impl_init_v3
	.section	.text.nvtxNameCudaDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceA_impl_init_v3
	.hidden	nvtxNameCudaDeviceA_impl_init_v3
	.type	nvtxNameCudaDeviceA_impl_init_v3, @function
nvtxNameCudaDeviceA_impl_init_v3:
.LFB8831:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	344+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L538
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L538:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8831:
	.size	nvtxNameCudaDeviceA_impl_init_v3, .-nvtxNameCudaDeviceA_impl_init_v3
	.section	.text.nvtxNameClEventW_impl_init_v3,"axG",@progbits,nvtxNameClEventW_impl_init_v3,comdat
	.weak	nvtxNameClEventW_impl_init_v3
	.hidden	nvtxNameClEventW_impl_init_v3
	.type	nvtxNameClEventW_impl_init_v3, @function
nvtxNameClEventW_impl_init_v3:
.LFB8850:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	336+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L541
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L541:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8850:
	.size	nvtxNameClEventW_impl_init_v3, .-nvtxNameClEventW_impl_init_v3
	.section	.text.nvtxNameClEventA_impl_init_v3,"axG",@progbits,nvtxNameClEventA_impl_init_v3,comdat
	.weak	nvtxNameClEventA_impl_init_v3
	.hidden	nvtxNameClEventA_impl_init_v3
	.type	nvtxNameClEventA_impl_init_v3, @function
nvtxNameClEventA_impl_init_v3:
.LFB8849:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	328+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L544
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L544:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8849:
	.size	nvtxNameClEventA_impl_init_v3, .-nvtxNameClEventA_impl_init_v3
	.section	.text.nvtxNameClProgramW_impl_init_v3,"axG",@progbits,nvtxNameClProgramW_impl_init_v3,comdat
	.weak	nvtxNameClProgramW_impl_init_v3
	.hidden	nvtxNameClProgramW_impl_init_v3
	.type	nvtxNameClProgramW_impl_init_v3, @function
nvtxNameClProgramW_impl_init_v3:
.LFB8848:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	320+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L547
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L547:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8848:
	.size	nvtxNameClProgramW_impl_init_v3, .-nvtxNameClProgramW_impl_init_v3
	.section	.text.nvtxNameClProgramA_impl_init_v3,"axG",@progbits,nvtxNameClProgramA_impl_init_v3,comdat
	.weak	nvtxNameClProgramA_impl_init_v3
	.hidden	nvtxNameClProgramA_impl_init_v3
	.type	nvtxNameClProgramA_impl_init_v3, @function
nvtxNameClProgramA_impl_init_v3:
.LFB8847:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	312+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L550
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L550:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8847:
	.size	nvtxNameClProgramA_impl_init_v3, .-nvtxNameClProgramA_impl_init_v3
	.section	.text.nvtxNameClSamplerW_impl_init_v3,"axG",@progbits,nvtxNameClSamplerW_impl_init_v3,comdat
	.weak	nvtxNameClSamplerW_impl_init_v3
	.hidden	nvtxNameClSamplerW_impl_init_v3
	.type	nvtxNameClSamplerW_impl_init_v3, @function
nvtxNameClSamplerW_impl_init_v3:
.LFB8846:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	304+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L553
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L553:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8846:
	.size	nvtxNameClSamplerW_impl_init_v3, .-nvtxNameClSamplerW_impl_init_v3
	.section	.text.nvtxNameClSamplerA_impl_init_v3,"axG",@progbits,nvtxNameClSamplerA_impl_init_v3,comdat
	.weak	nvtxNameClSamplerA_impl_init_v3
	.hidden	nvtxNameClSamplerA_impl_init_v3
	.type	nvtxNameClSamplerA_impl_init_v3, @function
nvtxNameClSamplerA_impl_init_v3:
.LFB8845:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	296+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L556
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L556:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8845:
	.size	nvtxNameClSamplerA_impl_init_v3, .-nvtxNameClSamplerA_impl_init_v3
	.section	.text.nvtxNameClMemObjectW_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectW_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectW_impl_init_v3
	.hidden	nvtxNameClMemObjectW_impl_init_v3
	.type	nvtxNameClMemObjectW_impl_init_v3, @function
nvtxNameClMemObjectW_impl_init_v3:
.LFB8844:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	288+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L559
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L559:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8844:
	.size	nvtxNameClMemObjectW_impl_init_v3, .-nvtxNameClMemObjectW_impl_init_v3
	.section	.text.nvtxNameClMemObjectA_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectA_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectA_impl_init_v3
	.hidden	nvtxNameClMemObjectA_impl_init_v3
	.type	nvtxNameClMemObjectA_impl_init_v3, @function
nvtxNameClMemObjectA_impl_init_v3:
.LFB8843:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	280+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L562
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L562:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8843:
	.size	nvtxNameClMemObjectA_impl_init_v3, .-nvtxNameClMemObjectA_impl_init_v3
	.section	.text.nvtxNameClCommandQueueW_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueW_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueW_impl_init_v3
	.hidden	nvtxNameClCommandQueueW_impl_init_v3
	.type	nvtxNameClCommandQueueW_impl_init_v3, @function
nvtxNameClCommandQueueW_impl_init_v3:
.LFB8842:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	272+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L565
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L565:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8842:
	.size	nvtxNameClCommandQueueW_impl_init_v3, .-nvtxNameClCommandQueueW_impl_init_v3
	.section	.text.nvtxNameClCommandQueueA_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueA_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueA_impl_init_v3
	.hidden	nvtxNameClCommandQueueA_impl_init_v3
	.type	nvtxNameClCommandQueueA_impl_init_v3, @function
nvtxNameClCommandQueueA_impl_init_v3:
.LFB8841:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	264+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L568
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L568:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8841:
	.size	nvtxNameClCommandQueueA_impl_init_v3, .-nvtxNameClCommandQueueA_impl_init_v3
	.section	.text.nvtxNameClContextW_impl_init_v3,"axG",@progbits,nvtxNameClContextW_impl_init_v3,comdat
	.weak	nvtxNameClContextW_impl_init_v3
	.hidden	nvtxNameClContextW_impl_init_v3
	.type	nvtxNameClContextW_impl_init_v3, @function
nvtxNameClContextW_impl_init_v3:
.LFB8840:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	256+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L571
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L571:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8840:
	.size	nvtxNameClContextW_impl_init_v3, .-nvtxNameClContextW_impl_init_v3
	.section	.text.nvtxNameClContextA_impl_init_v3,"axG",@progbits,nvtxNameClContextA_impl_init_v3,comdat
	.weak	nvtxNameClContextA_impl_init_v3
	.hidden	nvtxNameClContextA_impl_init_v3
	.type	nvtxNameClContextA_impl_init_v3, @function
nvtxNameClContextA_impl_init_v3:
.LFB8839:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	248+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L574
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L574:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8839:
	.size	nvtxNameClContextA_impl_init_v3, .-nvtxNameClContextA_impl_init_v3
	.section	.text.nvtxNameClDeviceW_impl_init_v3,"axG",@progbits,nvtxNameClDeviceW_impl_init_v3,comdat
	.weak	nvtxNameClDeviceW_impl_init_v3
	.hidden	nvtxNameClDeviceW_impl_init_v3
	.type	nvtxNameClDeviceW_impl_init_v3, @function
nvtxNameClDeviceW_impl_init_v3:
.LFB8838:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	240+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L577
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L577:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8838:
	.size	nvtxNameClDeviceW_impl_init_v3, .-nvtxNameClDeviceW_impl_init_v3
	.section	.text.nvtxNameClDeviceA_impl_init_v3,"axG",@progbits,nvtxNameClDeviceA_impl_init_v3,comdat
	.weak	nvtxNameClDeviceA_impl_init_v3
	.hidden	nvtxNameClDeviceA_impl_init_v3
	.type	nvtxNameClDeviceA_impl_init_v3, @function
nvtxNameClDeviceA_impl_init_v3:
.LFB8837:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	232+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L580
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L580:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8837:
	.size	nvtxNameClDeviceA_impl_init_v3, .-nvtxNameClDeviceA_impl_init_v3
	.section	.text.nvtxNameCuEventW_impl_init_v3,"axG",@progbits,nvtxNameCuEventW_impl_init_v3,comdat
	.weak	nvtxNameCuEventW_impl_init_v3
	.hidden	nvtxNameCuEventW_impl_init_v3
	.type	nvtxNameCuEventW_impl_init_v3, @function
nvtxNameCuEventW_impl_init_v3:
.LFB8830:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	224+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L583
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L583:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8830:
	.size	nvtxNameCuEventW_impl_init_v3, .-nvtxNameCuEventW_impl_init_v3
	.section	.text.nvtxNameCuEventA_impl_init_v3,"axG",@progbits,nvtxNameCuEventA_impl_init_v3,comdat
	.weak	nvtxNameCuEventA_impl_init_v3
	.hidden	nvtxNameCuEventA_impl_init_v3
	.type	nvtxNameCuEventA_impl_init_v3, @function
nvtxNameCuEventA_impl_init_v3:
.LFB8829:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	216+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L586
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L586:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8829:
	.size	nvtxNameCuEventA_impl_init_v3, .-nvtxNameCuEventA_impl_init_v3
	.section	.text.nvtxNameCuStreamW_impl_init_v3,"axG",@progbits,nvtxNameCuStreamW_impl_init_v3,comdat
	.weak	nvtxNameCuStreamW_impl_init_v3
	.hidden	nvtxNameCuStreamW_impl_init_v3
	.type	nvtxNameCuStreamW_impl_init_v3, @function
nvtxNameCuStreamW_impl_init_v3:
.LFB8828:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	208+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L589
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L589:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8828:
	.size	nvtxNameCuStreamW_impl_init_v3, .-nvtxNameCuStreamW_impl_init_v3
	.section	.text.nvtxNameCuStreamA_impl_init_v3,"axG",@progbits,nvtxNameCuStreamA_impl_init_v3,comdat
	.weak	nvtxNameCuStreamA_impl_init_v3
	.hidden	nvtxNameCuStreamA_impl_init_v3
	.type	nvtxNameCuStreamA_impl_init_v3, @function
nvtxNameCuStreamA_impl_init_v3:
.LFB8827:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	200+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L592
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L592:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8827:
	.size	nvtxNameCuStreamA_impl_init_v3, .-nvtxNameCuStreamA_impl_init_v3
	.section	.text.nvtxNameCuContextW_impl_init_v3,"axG",@progbits,nvtxNameCuContextW_impl_init_v3,comdat
	.weak	nvtxNameCuContextW_impl_init_v3
	.hidden	nvtxNameCuContextW_impl_init_v3
	.type	nvtxNameCuContextW_impl_init_v3, @function
nvtxNameCuContextW_impl_init_v3:
.LFB8826:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	192+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L595
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L595:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8826:
	.size	nvtxNameCuContextW_impl_init_v3, .-nvtxNameCuContextW_impl_init_v3
	.section	.text.nvtxNameCuContextA_impl_init_v3,"axG",@progbits,nvtxNameCuContextA_impl_init_v3,comdat
	.weak	nvtxNameCuContextA_impl_init_v3
	.hidden	nvtxNameCuContextA_impl_init_v3
	.type	nvtxNameCuContextA_impl_init_v3, @function
nvtxNameCuContextA_impl_init_v3:
.LFB8825:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	184+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L598
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L598:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8825:
	.size	nvtxNameCuContextA_impl_init_v3, .-nvtxNameCuContextA_impl_init_v3
	.section	.text.nvtxNameCuDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceW_impl_init_v3
	.hidden	nvtxNameCuDeviceW_impl_init_v3
	.type	nvtxNameCuDeviceW_impl_init_v3, @function
nvtxNameCuDeviceW_impl_init_v3:
.LFB8824:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	176+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L601
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L601:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8824:
	.size	nvtxNameCuDeviceW_impl_init_v3, .-nvtxNameCuDeviceW_impl_init_v3
	.section	.text.nvtxNameCuDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceA_impl_init_v3
	.hidden	nvtxNameCuDeviceA_impl_init_v3
	.type	nvtxNameCuDeviceA_impl_init_v3, @function
nvtxNameCuDeviceA_impl_init_v3:
.LFB8823:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	168+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L604
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L604:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8823:
	.size	nvtxNameCuDeviceA_impl_init_v3, .-nvtxNameCuDeviceA_impl_init_v3
	.section	.text.nvtxNameOsThreadW_impl_init_v3,"axG",@progbits,nvtxNameOsThreadW_impl_init_v3,comdat
	.weak	nvtxNameOsThreadW_impl_init_v3
	.hidden	nvtxNameOsThreadW_impl_init_v3
	.type	nvtxNameOsThreadW_impl_init_v3, @function
nvtxNameOsThreadW_impl_init_v3:
.LFB8807:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	160+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L607
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L607:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8807:
	.size	nvtxNameOsThreadW_impl_init_v3, .-nvtxNameOsThreadW_impl_init_v3
	.section	.text.nvtxNameOsThreadA_impl_init_v3,"axG",@progbits,nvtxNameOsThreadA_impl_init_v3,comdat
	.weak	nvtxNameOsThreadA_impl_init_v3
	.hidden	nvtxNameOsThreadA_impl_init_v3
	.type	nvtxNameOsThreadA_impl_init_v3, @function
nvtxNameOsThreadA_impl_init_v3:
.LFB8806:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	152+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L610
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L610:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8806:
	.size	nvtxNameOsThreadA_impl_init_v3, .-nvtxNameOsThreadA_impl_init_v3
	.section	.text.nvtxNameCategoryW_impl_init_v3,"axG",@progbits,nvtxNameCategoryW_impl_init_v3,comdat
	.weak	nvtxNameCategoryW_impl_init_v3
	.hidden	nvtxNameCategoryW_impl_init_v3
	.type	nvtxNameCategoryW_impl_init_v3, @function
nvtxNameCategoryW_impl_init_v3:
.LFB8805:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	144+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L613
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L613:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8805:
	.size	nvtxNameCategoryW_impl_init_v3, .-nvtxNameCategoryW_impl_init_v3
	.section	.text.nvtxNameCategoryA_impl_init_v3,"axG",@progbits,nvtxNameCategoryA_impl_init_v3,comdat
	.weak	nvtxNameCategoryA_impl_init_v3
	.hidden	nvtxNameCategoryA_impl_init_v3
	.type	nvtxNameCategoryA_impl_init_v3, @function
nvtxNameCategoryA_impl_init_v3:
.LFB8804:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	136+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L616
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L616:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8804:
	.size	nvtxNameCategoryA_impl_init_v3, .-nvtxNameCategoryA_impl_init_v3
	.section	.text.nvtxRangePop_impl_init_v3,"axG",@progbits,nvtxRangePop_impl_init_v3,comdat
	.weak	nvtxRangePop_impl_init_v3
	.hidden	nvtxRangePop_impl_init_v3
	.type	nvtxRangePop_impl_init_v3, @function
nvtxRangePop_impl_init_v3:
.LFB8803:
	.cfi_startproc
	endbr64
	pushq	%rsi
	.cfi_def_cfa_offset 16
	call	nvtxInitOnce_v3
	movq	128+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L620
	popq	%rcx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L620:
	.cfi_restore_state
	movl	$-2, %eax
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8803:
	.size	nvtxRangePop_impl_init_v3, .-nvtxRangePop_impl_init_v3
	.section	.text.nvtxRangePushW_impl_init_v3,"axG",@progbits,nvtxRangePushW_impl_init_v3,comdat
	.weak	nvtxRangePushW_impl_init_v3
	.hidden	nvtxRangePushW_impl_init_v3
	.type	nvtxRangePushW_impl_init_v3, @function
nvtxRangePushW_impl_init_v3:
.LFB8802:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	120+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L623
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L623:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8802:
	.size	nvtxRangePushW_impl_init_v3, .-nvtxRangePushW_impl_init_v3
	.section	.text.nvtxRangePushA_impl_init_v3,"axG",@progbits,nvtxRangePushA_impl_init_v3,comdat
	.weak	nvtxRangePushA_impl_init_v3
	.hidden	nvtxRangePushA_impl_init_v3
	.type	nvtxRangePushA_impl_init_v3, @function
nvtxRangePushA_impl_init_v3:
.LFB8801:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	112+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L626
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L626:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8801:
	.size	nvtxRangePushA_impl_init_v3, .-nvtxRangePushA_impl_init_v3
	.section	.text.nvtxRangePushEx_impl_init_v3,"axG",@progbits,nvtxRangePushEx_impl_init_v3,comdat
	.weak	nvtxRangePushEx_impl_init_v3
	.hidden	nvtxRangePushEx_impl_init_v3
	.type	nvtxRangePushEx_impl_init_v3, @function
nvtxRangePushEx_impl_init_v3:
.LFB8800:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	104+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L629
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L629:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8800:
	.size	nvtxRangePushEx_impl_init_v3, .-nvtxRangePushEx_impl_init_v3
	.section	.text.nvtxRangeEnd_impl_init_v3,"axG",@progbits,nvtxRangeEnd_impl_init_v3,comdat
	.weak	nvtxRangeEnd_impl_init_v3
	.hidden	nvtxRangeEnd_impl_init_v3
	.type	nvtxRangeEnd_impl_init_v3, @function
nvtxRangeEnd_impl_init_v3:
.LFB8799:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	96+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L631
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L631:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8799:
	.size	nvtxRangeEnd_impl_init_v3, .-nvtxRangeEnd_impl_init_v3
	.section	.text.nvtxRangeStartW_impl_init_v3,"axG",@progbits,nvtxRangeStartW_impl_init_v3,comdat
	.weak	nvtxRangeStartW_impl_init_v3
	.hidden	nvtxRangeStartW_impl_init_v3
	.type	nvtxRangeStartW_impl_init_v3, @function
nvtxRangeStartW_impl_init_v3:
.LFB8798:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	88+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L635
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L635:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8798:
	.size	nvtxRangeStartW_impl_init_v3, .-nvtxRangeStartW_impl_init_v3
	.section	.text.nvtxRangeStartA_impl_init_v3,"axG",@progbits,nvtxRangeStartA_impl_init_v3,comdat
	.weak	nvtxRangeStartA_impl_init_v3
	.hidden	nvtxRangeStartA_impl_init_v3
	.type	nvtxRangeStartA_impl_init_v3, @function
nvtxRangeStartA_impl_init_v3:
.LFB8797:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	80+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L638
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L638:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8797:
	.size	nvtxRangeStartA_impl_init_v3, .-nvtxRangeStartA_impl_init_v3
	.section	.text.nvtxRangeStartEx_impl_init_v3,"axG",@progbits,nvtxRangeStartEx_impl_init_v3,comdat
	.weak	nvtxRangeStartEx_impl_init_v3
	.hidden	nvtxRangeStartEx_impl_init_v3
	.type	nvtxRangeStartEx_impl_init_v3, @function
nvtxRangeStartEx_impl_init_v3:
.LFB8796:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	72+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L641
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L641:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8796:
	.size	nvtxRangeStartEx_impl_init_v3, .-nvtxRangeStartEx_impl_init_v3
	.section	.text.nvtxMarkW_impl_init_v3,"axG",@progbits,nvtxMarkW_impl_init_v3,comdat
	.weak	nvtxMarkW_impl_init_v3
	.hidden	nvtxMarkW_impl_init_v3
	.type	nvtxMarkW_impl_init_v3, @function
nvtxMarkW_impl_init_v3:
.LFB8795:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	64+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L643
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L643:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8795:
	.size	nvtxMarkW_impl_init_v3, .-nvtxMarkW_impl_init_v3
	.section	.text.nvtxMarkA_impl_init_v3,"axG",@progbits,nvtxMarkA_impl_init_v3,comdat
	.weak	nvtxMarkA_impl_init_v3
	.hidden	nvtxMarkA_impl_init_v3
	.type	nvtxMarkA_impl_init_v3, @function
nvtxMarkA_impl_init_v3:
.LFB8794:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	56+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L646
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L646:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8794:
	.size	nvtxMarkA_impl_init_v3, .-nvtxMarkA_impl_init_v3
	.section	.text.nvtxMarkEx_impl_init_v3,"axG",@progbits,nvtxMarkEx_impl_init_v3,comdat
	.weak	nvtxMarkEx_impl_init_v3
	.hidden	nvtxMarkEx_impl_init_v3
	.type	nvtxMarkEx_impl_init_v3, @function
nvtxMarkEx_impl_init_v3:
.LFB8793:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	48+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L649
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L649:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8793:
	.size	nvtxMarkEx_impl_init_v3, .-nvtxMarkEx_impl_init_v3
	.section	.rodata._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc.str1.1,"aMS",@progbits,1
.LC3:
	.string	"cudaError %d: %s"
	.section	.text.unlikely._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"axG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
	.weak	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.hidden	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.type	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc, @function
_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc:
.LFB9240:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA9240
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$288, %rsp
	.cfi_def_cfa_offset 320
	movl	%edi, 12(%rsp)
	movl	$16, %edi
	leaq	24(%rsp), %r12
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
	call	__cxa_allocate_exception@PLT
	leaq	24(%rsp), %rdi
	movl	$64, %ecx
	leaq	.LC3(%rip), %r8
	movq	%rax, %rbx
	xorl	%eax, %eax
	movl	$256, %esi
	rep stosl
	pushq	%rdx
	.cfi_def_cfa_offset 328
	movl	$256, %ecx
	movl	$2, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 336
	movl	28(%rsp), %r9d
	movq	%r12, %rdi
	call	__snprintf_chk@PLT
	popq	%rcx
	.cfi_def_cfa_offset 328
	movq	%rbx, %rdi
	popq	%rsi
	.cfi_def_cfa_offset 320
	movq	%r12, %rsi
	call	_ZNSt13runtime_errorC2EPKc@PLT
	leaq	16+_ZTVN4cuda3__410cuda_errorE(%rip), %rax
	movq	%rax, (%rbx)
	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	je	.L653
	call	__stack_chk_fail@PLT
.L653:
	leaq	_ZN4cuda3__410cuda_errorD1Ev(%rip), %rdx
	leaq	_ZTIN4cuda3__410cuda_errorE(%rip), %rsi
	movq	%rbx, %rdi
.LEHB0:
	call	__cxa_throw@PLT
.LEHE0:
	.cfi_endproc
.LFE9240:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"aG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
.LLSDA9240:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE9240-.LLSDACSB9240
.LLSDACSB9240:
	.uleb128 .LEHB0-.LFB9240
	.uleb128 .LEHE0-.LEHB0
	.uleb128 0
	.uleb128 0
.LLSDACSE9240:
	.section	.text.unlikely._ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,"axG",@progbits,_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc,comdat
	.size	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc, .-_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
	.section	.rodata._ZN4cuda3__423__ensure_current_deviceD2Ev.str1.1,"aMS",@progbits,1
.LC4:
	.string	"Failed to set device"
	.section	.text._ZN4cuda3__423__ensure_current_deviceD2Ev,"axG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
	.align 2
	.weak	_ZN4cuda3__423__ensure_current_deviceD2Ev
	.type	_ZN4cuda3__423__ensure_current_deviceD2Ev, @function
_ZN4cuda3__423__ensure_current_deviceD2Ev:
.LFB9249:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA9249
	endbr64
	movl	4(%rdi), %eax
	cmpl	(%rdi), %eax
	je	.L662
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%eax, %edi
	call	cudaSetDevice@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L656
	call	cudaGetLastError@PLT
	leaq	.LC4(%rip), %rsi
	movl	%ebx, %edi
	call	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
.L656:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L662:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE9249:
	.section	.gcc_except_table._ZN4cuda3__423__ensure_current_deviceD2Ev,"aG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
.LLSDA9249:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE9249-.LLSDACSB9249
.LLSDACSB9249:
.LLSDACSE9249:
	.section	.text._ZN4cuda3__423__ensure_current_deviceD2Ev,"axG",@progbits,_ZN4cuda3__423__ensure_current_deviceD5Ev,comdat
	.size	_ZN4cuda3__423__ensure_current_deviceD2Ev, .-_ZN4cuda3__423__ensure_current_deviceD2Ev
	.weak	_ZN4cuda3__423__ensure_current_deviceD1Ev
	.set	_ZN4cuda3__423__ensure_current_deviceD1Ev,_ZN4cuda3__423__ensure_current_deviceD2Ev
	.text
	.align 2
	.globl	_ZN6FilterD2Ev
	.type	_ZN6FilterD2Ev, @function
_ZN6FilterD2Ev:
.LFB12623:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12623
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	64(%rdi), %rdi
	call	cudaFree@PLT
	movq	72(%rbx), %rdi
	call	cudaFree@PLT
	movq	80(%rbx), %rdi
	call	cudaFree@PLT
	movq	88(%rbx), %rdi
	call	cudaFree@PLT
	movq	96(%rbx), %rdi
	call	cudaFree@PLT
	movq	104(%rbx), %rdi
	call	cudaFree@PLT
	movq	48(%rbx), %rdi
	call	cudaFree@PLT
	movq	399488(%rbx), %rdi
	call	cudaFree@PLT
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12623:
	.section	.gcc_except_table,"a",@progbits
.LLSDA12623:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12623-.LLSDACSB12623
.LLSDACSB12623:
.LLSDACSE12623:
	.text
	.size	_ZN6FilterD2Ev, .-_ZN6FilterD2Ev
	.globl	_ZN6FilterD1Ev
	.set	_ZN6FilterD1Ev,_ZN6FilterD2Ev
	.globl	_Z14projectWorldPtPKfS0_S0_Pf
	.type	_Z14projectWorldPtPKfS0_S0_Pf, @function
_Z14projectWorldPtPKfS0_S0_Pf:
.LFB12633:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE12633:
	.size	_Z14projectWorldPtPKfS0_S0_Pf, .-_Z14projectWorldPtPKfS0_S0_Pf
	.globl	_Z11transformPtPKfS0_Pf
	.type	_Z11transformPtPKfS0_Pf, @function
_Z11transformPtPKfS0_Pf:
.LFB12634:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE12634:
	.size	_Z11transformPtPKfS0_Pf, .-_Z11transformPtPKfS0_Pf
	.globl	_Z17statesToTransformPKfPf
	.type	_Z17statesToTransformPKfPf, @function
_Z17statesToTransformPKfPf:
.LFB12635:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE12635:
	.size	_Z17statesToTransformPKfPf, .-_Z17statesToTransformPKfPf
	.globl	_Z13computeNormalPKfPf
	.type	_Z13computeNormalPKfPf, @function
_Z13computeNormalPKfPf:
.LFB13999:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_Z17statesToTransformPKfPf
	.cfi_endproc
.LFE13999:
	.size	_Z13computeNormalPKfPf, .-_Z13computeNormalPKfPf
	.globl	_Z15transformCameraPKfS0_Pf
	.type	_Z15transformCameraPKfS0_Pf, @function
_Z15transformCameraPKfS0_Pf:
.LFB13995:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE13995:
	.size	_Z15transformCameraPKfS0_Pf, .-_Z15transformCameraPKfS0_Pf
	.globl	_Z7projectPKfS0_Pf
	.type	_Z7projectPKfS0_Pf, @function
_Z7projectPKfS0_Pf:
.LFB13997:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE13997:
	.size	_Z7projectPKfS0_Pf, .-_Z7projectPKfS0_Pf
	.globl	_Z12findIntervalfPKf
	.type	_Z12findIntervalfPKf, @function
_Z12findIntervalfPKf:
.LFB12639:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE12639:
	.size	_Z12findIntervalfPKf, .-_Z12findIntervalfPKf
	.globl	_Z34__device_stub__Z11mean_kernelPKfPfPKfPf
	.type	_Z34__device_stub__Z11mean_kernelPKfPfPKfPf, @function
_Z34__device_stub__Z11mean_kernelPKfPfPKfPf:
.LFB12664:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rcx
	leaq	24(%rsp), %rdx
	movq	%rsi, (%rsp)
	leaq	40(%rsp), %rdi
	leaq	52(%rsp), %rsi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	$1, 48(%rsp)
	movq	%rax, 88(%rsp)
	movq	%rsp, %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L681
	pushq	32(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z11mean_kernelPKfPf(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 144
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	104(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L681:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L683
	call	__stack_chk_fail@PLT
.L683:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12664:
	.size	_Z34__device_stub__Z11mean_kernelPKfPfPKfPf, .-_Z34__device_stub__Z11mean_kernelPKfPfPKfPf
	.globl	_Z11mean_kernelPKfPf
	.type	_Z11mean_kernelPKfPf, @function
_Z11mean_kernelPKfPf:
.LFB12665:
	.cfi_startproc
	endbr64
	jmp	_Z34__device_stub__Z11mean_kernelPKfPfPKfPf
	.cfi_endproc
.LFE12665:
	.size	_Z11mean_kernelPKfPf, .-_Z11mean_kernelPKfPf
	.globl	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf
	.type	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf, @function
_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf:
.LFB12666:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 24(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 8(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, (%rsp)
	leaq	48(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	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, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L686
	pushq	48(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 176
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	120(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L686:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L688
	call	__stack_chk_fail@PLT
.L688:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12666:
	.size	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf, .-_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf
	.globl	_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf
	.type	_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf, @function
_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf:
.LFB12667:
	.cfi_startproc
	endbr64
	jmp	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf
	.cfi_endproc
.LFE12667:
	.size	_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf, .-_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf
	.globl	_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf
	.type	_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf, @function
_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf:
.LFB12668:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rcx
	leaq	24(%rsp), %rdx
	movq	%rsi, (%rsp)
	leaq	40(%rsp), %rdi
	leaq	52(%rsp), %rsi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	$1, 48(%rsp)
	movq	%rax, 88(%rsp)
	movq	%rsp, %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L691
	pushq	32(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z16normalize_kernelPfPKf(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 144
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	104(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L691:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L693
	call	__stack_chk_fail@PLT
.L693:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12668:
	.size	_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf, .-_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf
	.globl	_Z16normalize_kernelPfPKf
	.type	_Z16normalize_kernelPfPKf, @function
_Z16normalize_kernelPfPKf:
.LFB12669:
	.cfi_startproc
	endbr64
	jmp	_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf
	.cfi_endproc
.LFE12669:
	.size	_Z16normalize_kernelPfPKf, .-_Z16normalize_kernelPfPKf
	.globl	_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf
	.type	_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf, @function
_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf:
.LFB12670:
	.cfi_startproc
	endbr64
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdi, 24(%rsp)
	leaq	40(%rsp), %rcx
	leaq	32(%rsp), %rdx
	movq	%rsi, 8(%rsp)
	leaq	48(%rsp), %rdi
	leaq	60(%rsp), %rsi
	movss	%xmm0, 20(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 56(%rsp)
	movq	%rax, 96(%rsp)
	leaq	20(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 48(%rsp)
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L696
	pushq	40(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z13motion_kernelP17curandStateXORWOWfPf(%rip), %rdi
	pushq	40(%rsp)
	.cfi_def_cfa_offset 160
	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 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L696:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L698
	call	__stack_chk_fail@PLT
.L698:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12670:
	.size	_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf, .-_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf
	.globl	_Z13motion_kernelP17curandStateXORWOWfPf
	.type	_Z13motion_kernelP17curandStateXORWOWfPf, @function
_Z13motion_kernelP17curandStateXORWOWfPf:
.LFB12671:
	.cfi_startproc
	endbr64
	jmp	_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf
	.cfi_endproc
.LFE12671:
	.size	_Z13motion_kernelP17curandStateXORWOWfPf, .-_Z13motion_kernelP17curandStateXORWOWfPf
	.globl	_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_
	.type	_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_, @function
_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_:
.LFB12672:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdi, 40(%rsp)
	leaq	72(%rsp), %rdi
	movq	%rsi, 32(%rsp)
	leaq	84(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	56(%rsp), %rdx
	movq	%rcx, 16(%rsp)
	leaq	64(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movq	%r9, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movl	$1, 80(%rsp)
	movq	%rax, 120(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 144(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 152(%rsp)
	movq	%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	.L701
	pushq	64(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_Z18observation_kernelyPKfS0_PfS1_S1_(%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
.L701:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L703
	call	__stack_chk_fail@PLT
.L703:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12672:
	.size	_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_, .-_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_
	.globl	_Z18observation_kernelyPKfS0_PfS1_S1_
	.type	_Z18observation_kernelyPKfS0_PfS1_S1_, @function
_Z18observation_kernelyPKfS0_PfS1_S1_:
.LFB12673:
	.cfi_startproc
	endbr64
	jmp	_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_
	.cfi_endproc
.LFE12673:
	.size	_Z18observation_kernelyPKfS0_PfS1_S1_, .-_Z18observation_kernelyPKfS0_PfS1_S1_
	.globl	_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj
	.type	_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj, @function
_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj:
.LFB12674:
	.cfi_startproc
	endbr64
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rcx
	leaq	24(%rsp), %rdx
	movl	%esi, 4(%rsp)
	leaq	40(%rsp), %rdi
	leaq	52(%rsp), %rsi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rax
	movl	$1, 48(%rsp)
	movq	%rax, 88(%rsp)
	leaq	4(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 40(%rsp)
	movq	%rax, 52(%rsp)
	movl	$1, 60(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L706
	pushq	32(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z15setupRNG_kernelP17curandStateXORWOWj(%rip), %rdi
	pushq	32(%rsp)
	.cfi_def_cfa_offset 144
	movq	68(%rsp), %rcx
	movl	76(%rsp), %r8d
	movq	56(%rsp), %rsi
	movl	64(%rsp), %edx
	leaq	104(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L706:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L708
	call	__stack_chk_fail@PLT
.L708:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12674:
	.size	_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj, .-_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj
	.globl	_Z15setupRNG_kernelP17curandStateXORWOWj
	.type	_Z15setupRNG_kernelP17curandStateXORWOWj, @function
_Z15setupRNG_kernelP17curandStateXORWOWj:
.LFB12675:
	.cfi_startproc
	endbr64
	jmp	_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj
	.cfi_endproc
.LFE12675:
	.size	_Z15setupRNG_kernelP17curandStateXORWOWj, .-_Z15setupRNG_kernelP17curandStateXORWOWj
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC5:
	.string	"_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_"
.LC6:
	.string	"_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i"
.LC7:
	.string	"_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv"
.LC8:
	.string	"_Z15setupRNG_kernelP17curandStateXORWOWj"
.LC9:
	.string	"_Z18observation_kernelyPKfS0_PfS1_S1_"
.LC10:
	.string	"_Z13motion_kernelP17curandStateXORWOWfPf"
.LC11:
	.string	"_Z16normalize_kernelPfPKf"
.LC12:
	.string	"_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf"
.LC13:
	.string	"_Z11mean_kernelPKfPf"
.LC14:
	.string	"precalc_xorwow_matrix"
.LC15:
	.string	"precalc_xorwow_offset_matrix"
.LC16:
	.string	"mrg32k3aM1"
.LC17:
	.string	"mrg32k3aM2"
.LC18:
	.string	"mrg32k3aM1SubSeq"
.LC19:
	.string	"mrg32k3aM2SubSeq"
.LC20:
	.string	"mrg32k3aM1Seq"
.LC21:
	.string	"mrg32k3aM2Seq"
.LC22:
	.string	"__cr_lgamma_table"
.LC23:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo5beginE"
.LC24:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo3endE"
.LC25:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo6cbeginE"
.LC26:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo4cendE"
.LC27:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo6rbeginE"
.LC28:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo4rendE"
.LC29:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo7crbeginE"
.LC30:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__45__cpo5crendE"
.LC31:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE"
.LC32:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__419piecewise_constructE"
.LC33:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__48in_placeE"
.LC34:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__420unreachable_sentinelE"
.LC35:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std3__47nulloptE"
.LC36:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4swapE"
.LC37:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo9iter_moveE"
.LC38:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo7advanceE"
.LC39:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo5beginE"
.LC40:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo3endE"
.LC41:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo6cbeginE"
.LC42:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4cendE"
.LC43:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo9iter_swapE"
.LC44:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4nextE"
.LC45:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4prevE"
.LC46:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4dataE"
.LC47:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo5cdataE"
.LC48:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo4sizeE"
.LC49:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo5ssizeE"
.LC50:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe4cuda3std6ranges3__45__cpo8distanceE"
.LC51:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS6system6detail10sequential3seqE"
.LC52:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_1E"
.LC53:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_2E"
.LC54:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_3E"
.LC55:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_4E"
.LC56:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_5E"
.LC57:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_6E"
.LC58:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_7E"
.LC59:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_8E"
.LC60:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders2_9E"
.LC61:
	.string	"_ZN39_INTERNAL_25601a7d_9_filter_cu_651b18fe6thrust20THRUST_200700_890_NS12placeholders3_10E"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB12683:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC5(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC6(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC7(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC8(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z15setupRNG_kernelP17curandStateXORWOWj(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC9(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z18observation_kernelyPKfS0_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	.LC10(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z13motion_kernelP17curandStateXORWOWfPf(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC11(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z16normalize_kernelPfPKf(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC12(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z15resample_kernelP17curandStateXORWOWPKfS2_Pf(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	leaq	.LC13(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_Z11mean_kernelPKfPf(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC14(%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	.LC15(%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	.LC16(%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	.LC17(%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	.LC18(%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	.LC19(%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	.LC20(%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	.LC21(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	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	.LC22(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	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	.LC23(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5beginE(%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	.LC24(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo3endE(%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	.LC25(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6cbeginE(%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	.LC26(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4cendE(%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	.LC27(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6rbeginE(%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	.LC28(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4rendE(%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	.LC29(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo7crbeginE(%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	.LC30(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5crendE(%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	.LC31(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE(%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	.LC32(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__419piecewise_constructE(%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	.LC33(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__48in_placeE(%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	.LC34(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__420unreachable_sentinelE(%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	.LC35(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__47nulloptE(%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	.LC36(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4swapE(%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	.LC37(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_moveE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%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	.LC38(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo7advanceE(%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	.LC39(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5beginE(%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	.LC40(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC41(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC42(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC43(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_swapE(%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	.LC44(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4nextE(%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	.LC45(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4prevE(%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	.LC46(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4dataE(%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	.LC47(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5cdataE(%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	.LC48(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4sizeE(%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	.LC49(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5ssizeE(%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	.LC50(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo8distanceE(%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	.LC51(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE(%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	.LC52(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E(%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	.LC53(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E(%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	.LC54(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E(%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	.LC55(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E(%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	.LC56(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E(%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	.LC57(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E(%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	.LC58(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E(%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	.LC59(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%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	.LC60(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%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	.LC61(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movl	$1, %r9d
	movq	%rdx, %rcx
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%r8
	.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
.LFE12683:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.rodata._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.str1.1,"aMS",@progbits,1
.LC62:
	.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_:
.LFB12979:
	.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	.L714
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L719
	leaq	.LC62(%rip), %rdi
	call	_ZSt19__throw_logic_errorPKc@PLT
.L714:
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	%rsi, %rbp
	call	strlen@PLT
	movq	%rax, (%rsp)
	leaq	0(%rbp,%rax), %r12
	cmpq	$15, %rax
	jbe	.L716
	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)
.L716:
	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	.L717
.L719:
	call	__stack_chk_fail@PLT
.L717:
	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
.LFE12979:
	.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.str1.1
.LC63:
	.string	"update_kernel"
	.text
	.align 2
	.globl	_ZN6Filter6updateEffPKfyP11CUstream_st
	.type	_ZN6Filter6updateEffPKfyP11CUstream_st, @function
_ZN6Filter6updateEffPKfyP11CUstream_st:
.LFB12626:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12626
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rcx, %r9
	xorl	%r8d, %r8d
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	movl	$8388609, %edx
	movl	$1, %ecx
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	salq	$9, %rdx
	movq	%rdi, %rbx
	movl	$1, %esi
	movabsq	$4294967491, %rdi
	subq	$112, %rsp
	.cfi_def_cfa_offset 144
	movss	%xmm1, 12(%rsp)
	movss	%xmm0, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
.LEHB1:
	call	__cudaPushCallConfiguration@PLT
	movss	12(%rsp), %xmm1
	testl	%eax, %eax
	jne	.L721
	movaps	%xmm1, %xmm0
	subss	8(%rsp), %xmm0
	movq	56(%rbx), %rsi
	movq	399480(%rbx), %rdi
	call	_Z54__device_stub__Z13motion_kernelP17curandStateXORWOWfPfP17curandStateXORWOWfPf
.L721:
	movl	$8388803, %eax
	movq	96(%rbx), %rdi
	xorl	%esi, %esi
	movl	$4, %edx
	salq	$9, %rax
	movl	$1, 56(%rsp)
	movq	%rax, 48(%rsp)
	subq	$99552, %rax
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	cudaMemset@PLT
	movl	68(%rsp), %ecx
	movl	56(%rsp), %esi
	xorl	%r9d, %r9d
	movq	60(%rsp), %rdx
	movq	48(%rsp), %rdi
	xorl	%r8d, %r8d
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L722
	movq	80(%rbx), %rax
	movq	56(%rbx), %rcx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movq	88(%rbx), %rdx
	movq	96(%rbx), %r9
	leaq	4(%rax), %r8
	call	_Z51__device_stub__Z18observation_kernelyPKfS0_PfS1_S1_yPKfS0_PfS1_S1_
.L722:
	leaq	72(%rsp), %rbx
	leaq	23(%rsp), %rdx
	movq	%rbx, %rdi
	leaq	.LC63(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE1:
	movq	%rbx, %rdi
.LEHB2:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE2:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L725
	jmp	.L727
.L726:
	endbr64
	movq	%rax, %rbp
.L723:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L727
	movq	%rbp, %rdi
.LEHB3:
	call	_Unwind_Resume@PLT
.LEHE3:
.L727:
	call	__stack_chk_fail@PLT
.L725:
	addq	$112, %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
.LFE12626:
	.section	.gcc_except_table
.LLSDA12626:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12626-.LLSDACSB12626
.LLSDACSB12626:
	.uleb128 .LEHB1-.LFB12626
	.uleb128 .LEHE1-.LEHB1
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB2-.LFB12626
	.uleb128 .LEHE2-.LEHB2
	.uleb128 .L726-.LFB12626
	.uleb128 0
	.uleb128 .LEHB3-.LFB12626
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
.LLSDACSE12626:
	.text
	.size	_ZN6Filter6updateEffPKfyP11CUstream_st, .-_ZN6Filter6updateEffPKfyP11CUstream_st
	.section	.rodata.str1.1
.LC64:
	.string	"memset mean"
.LC65:
	.string	"mean_kernel"
.LC66:
	.string	"memcpy mean"
	.text
	.align 2
	.globl	_ZN6Filter4meanEv
	.type	_ZN6Filter4meanEv, @function
_ZN6Filter4meanEv:
.LFB12628:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12628
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	$48, %edx
	xorl	%esi, %esi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movq	48(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rbx
.LEHB4:
	call	cudaMemset@PLT
	movq	%rbx, %rdi
	leaq	28(%rsp), %rdx
	leaq	.LC64(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE4:
	movq	%rbx, %rdi
.LEHB5:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE5:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movl	$8388609, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	salq	$9, %rdx
	movl	$1, %ecx
	movabsq	$4294967491, %rdi
	movl	$1, %esi
	movq	%rdx, 28(%rsp)
	movl	$1, 36(%rsp)
.LEHB6:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L730
	movq	48(%rbp), %rsi
	movq	56(%rbp), %rdi
	call	_Z34__device_stub__Z11mean_kernelPKfPfPKfPf
.L730:
	leaq	15(%rsp), %r12
	movq	%rbx, %rdi
	leaq	.LC65(%rip), %rsi
	movq	%r12, %rdx
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE6:
	movq	%rbx, %rdi
.LEHB7:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE7:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	48(%rbp), %rsi
	movl	$2, %ecx
	movq	%rbp, %rdi
	movl	$48, %edx
.LEHB8:
	call	cudaMemcpy@PLT
	movq	%rbx, %rdi
	movq	%r12, %rdx
	leaq	.LC66(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE8:
	movq	%rbx, %rdi
.LEHB9:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE9:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movss	.LC67(%rip), %xmm1
	xorl	%eax, %eax
.L731:
	movss	0(%rbp,%rax,4), %xmm0
	divss	%xmm1, %xmm0
	movss	%xmm0, 0(%rbp,%rax,4)
	incq	%rax
	cmpq	$12, %rax
	jne	.L731
	jmp	.L748
.L739:
	endbr64
	jmp	.L747
.L740:
	endbr64
	jmp	.L747
.L741:
	endbr64
.L747:
	movq	%rax, %rbp
.L736:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L746
	movq	%rbp, %rdi
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L748:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L738
.L746:
	call	__stack_chk_fail@PLT
.L738:
	addq	$80, %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
.LFE12628:
	.section	.gcc_except_table
.LLSDA12628:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12628-.LLSDACSB12628
.LLSDACSB12628:
	.uleb128 .LEHB4-.LFB12628
	.uleb128 .LEHE4-.LEHB4
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB5-.LFB12628
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L739-.LFB12628
	.uleb128 0
	.uleb128 .LEHB6-.LFB12628
	.uleb128 .LEHE6-.LEHB6
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB7-.LFB12628
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L740-.LFB12628
	.uleb128 0
	.uleb128 .LEHB8-.LFB12628
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB9-.LFB12628
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L741-.LFB12628
	.uleb128 0
	.uleb128 .LEHB10-.LFB12628
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE12628:
	.text
	.size	_ZN6Filter4meanEv, .-_ZN6Filter4meanEv
	.section	.rodata._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i.str1.1,"aMS",@progbits,1
.LC68:
	.string	"Failed to query current device"
	.section	.text._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,comdat
	.align 2
	.weak	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	.type	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i, @function
_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i:
.LFB13090:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13090
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movslq	%edx, %rbx
	subq	$168, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movb	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %al
	testb	%al, %al
	jne	.L751
	leaq	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L751
	movq	%rsp, %rdi
	movl	$-1, (%rsp)
.LEHB11:
	call	cudaGetDeviceCount@PLT
	movl	%eax, %ebp
	call	cudaGetLastError@PLT
.LEHE11:
	testl	%ebp, %ebp
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L778
	testl	%ebp, %ebp
	je	.L753
.L778:
	movl	$-1, (%rsp)
.L753:
	movl	(%rsp), %eax
	movq	%r14, %rdi
	movl	%eax, _ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip)
	call	__cxa_guard_release@PLT
.L751:
	cmpl	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count(%rip), %ebx
	jge	.L755
	testl	%ebx, %ebx
	js	.L755
	jmp	.L799
.L776:
	endbr64
	movq	%rax, %rbx
.L757:
	movq	%r14, %rdi
	call	__cxa_guard_abort@PLT
	jmp	.L798
.L799:
	imulq	$12, %rbx, %rbp
	addq	%r13, %rbp
	movl	0(%rbp), %eax
	cmpl	$2, %eax
	je	.L773
	jmp	.L800
.L755:
	movl	$101, %eax
	salq	$32, %rax
	jmp	.L761
.L800:
	xorl	%eax, %eax
	movl	$1, %edx
	lock cmpxchgl	%edx, 0(%rbp)
	jne	.L762
	movl	(%r12), %eax
	leaq	4(%rsp), %rdi
	movl	%eax, (%rsp)
	xorl	%eax, %eax
	movl	%eax, 4(%rsp)
.LEHB12:
	call	cudaGetDevice@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L763
	call	cudaGetLastError@PLT
	leaq	.LC68(%rip), %rsi
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L797
	jmp	.L796
.L763:
	movl	(%rsp), %edi
	cmpl	%edi, 4(%rsp)
	je	.L765
	call	cudaSetDevice@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L765
	call	cudaGetLastError@PLT
	leaq	.LC4(%rip), %rsi
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L796
.L797:
	movl	%r12d, %edi
	call	_ZN4cuda3__418__throw_cuda_errorE9cudaErrorPKc
.LEHE12:
.L765:
	leaq	8(%rsp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rsi
	movq	%rsp, %r15
.LEHB13:
	call	cudaFuncGetAttributes@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
.LEHE13:
	movl	%eax, %r12d
	testl	%r14d, %r14d
	jne	.L779
	testl	%eax, %eax
	jne	.L767
.L779:
	movl	%r14d, %r12d
.L767:
	imull	$10, 40(%rsp), %eax
	movq	%r15, %rdi
	movl	%eax, 4(%rbp)
	call	_ZN4cuda3__423__ensure_current_deviceD1Ev
	movl	%r12d, 8(%rbp)
	testl	%r12d, %r12d
	je	.L770
.LEHB14:
	call	cudaGetLastError@PLT
	jmp	.L770
.L777:
	endbr64
	movq	%rax, %rbx
.L771:
	movq	%r15, %rdi
	call	_ZN4cuda3__423__ensure_current_deviceD1Ev
.L798:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L796
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE14:
.L770:
	movl	$2, 0(%rbp)
	jmp	.L773
.L762:
	decl	%eax
	jne	.L773
.L774:
	movl	0(%rbp), %eax
	cmpl	$2, %eax
	jne	.L774
.L773:
	imulq	$12, %rbx, %rbx
	movq	4(%r13,%rbx), %rax
.L761:
	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L775
.L796:
	call	__stack_chk_fail@PLT
.L775:
	addq	$168, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13090:
	.section	.gcc_except_table
.LLSDA13090:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13090-.LLSDACSB13090
.LLSDACSB13090:
	.uleb128 .LEHB11-.LFB13090
	.uleb128 .LEHE11-.LEHB11
	.uleb128 .L776-.LFB13090
	.uleb128 0
	.uleb128 .LEHB12-.LFB13090
	.uleb128 .LEHE12-.LEHB12
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB13-.LFB13090
	.uleb128 .LEHE13-.LEHB13
	.uleb128 .L777-.LFB13090
	.uleb128 0
	.uleb128 .LEHB14-.LFB13090
	.uleb128 .LEHE14-.LEHB14
	.uleb128 0
	.uleb128 0
.LLSDACSE13090:
	.section	.text._ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,"axG",@progbits,_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i,comdat
	.size	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i, .-_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	.section	.text._ZN3cub17CUB_200700_890_NS10PtxVersionERi,"axG",@progbits,_ZN3cub17CUB_200700_890_NS10PtxVersionERi,comdat
	.weak	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	.type	_ZN3cub17CUB_200700_890_NS10PtxVersionERi, @function
_ZN3cub17CUB_200700_890_NS10PtxVersionERi:
.LFB9482:
	.cfi_startproc
	endbr64
	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
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %r13
	movl	$-1, 4(%rsp)
	movq	%r13, %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L808
	testl	%ebx, %ebx
	jne	.L808
	movl	4(%rsp), %r12d
	jmp	.L802
.L808:
	orl	$-1, %r12d
.L802:
	movb	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %al
	leaq	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %rbx
	testb	%al, %al
	jne	.L804
	leaq	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L804
	movl	$384, %ecx
	xorl	%eax, %eax
	movq	%rbx, %rdi
	rep stosl
	movq	%r14, %rdi
	call	__cxa_guard_release@PLT
.L804:
	movl	%r12d, %edx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	movl	%r12d, 4(%rsp)
	call	_ZN3cub17CUB_200700_890_NS23PerDeviceAttributeCacheclIZNS0_10PtxVersionERiiEUlS3_E_EENS1_13DevicePayloadEOT_i
	movq	%rax, %r12
	movq	%rax, %rbx
	call	cudaGetLastError@PLT
	shrq	$32, %r12
	orl	%r12d, %eax
	movl	%r12d, %r13d
	jne	.L801
	movl	%ebx, 0(%rbp)
.L801:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L807
	call	__stack_chk_fail@PLT
.L807:
	addq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE9482:
	.size	_ZN3cub17CUB_200700_890_NS10PtxVersionERi, .-_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	.section	.rodata._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v.str1.1,"aMS",@progbits,1
.LC69:
	.string	"CCCL"
	.section	.text._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,"axG",@progbits,_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,comdat
	.weak	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	.type	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v, @function
_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v:
.LFB13722:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13722
	endbr64
	movb	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %al
	testb	%al, %al
	jne	.L823
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rbx
	movq	%rbx, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L815
	movq	480+nvtxGlobals_v3(%rip), %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L817
	leaq	.LC69(%rip), %rdi
	call	*%rdx
.L817:
	movq	%rbx, %rdi
	movq	%rax, _ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip)
	call	__cxa_guard_release@PLT
.L815:
	leaq	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L823:
	.cfi_restore 3
	leaq	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d(%rip), %rax
	ret
	.cfi_endproc
.LFE13722:
	.section	.gcc_except_table
.LLSDA13722:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13722-.LLSDACSB13722
.LLSDACSB13722:
.LLSDACSE13722:
	.section	.text._ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,"axG",@progbits,_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v,comdat
	.size	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v, .-_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	.section	.text._ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev,"axG",@progbits,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED5Ev,comdat
	.align 2
	.weak	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.hidden	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.type	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev, @function
_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev:
.LFB13511:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13511
	endbr64
	cmpb	$0, 1(%rdi)
	je	.L829
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	call	nvtxDomainRangePop
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
.L829:
	ret
	.cfi_endproc
.LFE13511:
	.section	.gcc_except_table
.LLSDA13511:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13511-.LLSDACSB13511
.LLSDACSB13511:
.LLSDACSE13511:
	.section	.text._ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev,"axG",@progbits,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED5Ev,comdat
	.size	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev, .-_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.weak	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev
	.hidden	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev
	.set	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED1Ev,_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	.section	.text._ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii,"axG",@progbits,_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii,comdat
	.weak	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	.hidden	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	.type	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii, @function
_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii:
.LFB13942:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	xorl	%r8d, %r8d
	movslq	%ecx, %rcx
	call	cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L835
	testl	%eax, %eax
	jne	.L832
.L835:
	movl	%ebx, %eax
.L832:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13942:
	.size	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii, .-_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	.section	.rodata.str1.1
.LC70:
	.string	"cub::DeviceScan::InclusiveSum"
	.section	.rodata
	.align 32
.LC0:
	.value	3
	.value	48
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.quad	0
	.long	0
	.zero	4
	.quad	0
	.text
	.type	_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0, @function
_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0:
.LFB14009:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA14009
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	.cfi_offset 15, -24
	movq	%rdx, %r15
	pushq	%r14
	pushq	%r13
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	movq	%rsi, %r13
	pushq	%r12
	.cfi_offset 12, -48
	movq	%r9, %r12
	pushq	%rbx
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$600, %rsp
	movq	%rcx, -624(%rbp)
	movl	%r8d, -612(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movw	$0, -598(%rbp)
	movb	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %al
	testb	%al, %al
	jne	.L842
	leaq	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L842
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	464+nvtxGlobals_v3(%rip), %rdx
	movq	(%rax), %rdi
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L844
	leaq	.LC70(%rip), %rsi
	call	*%rdx
.L844:
	movq	%r14, %rdi
	movq	%rax, _ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name(%rip)
	call	__cxa_guard_release@PLT
.L842:
	movb	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %al
	testb	%al, %al
	jne	.L846
	leaq	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L846
	movq	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name(%rip), %rax
	leaq	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rdi
	movl	$12, %ecx
	leaq	.LC0(%rip), %rsi
	rep movsl
	movq	%r14, %rdi
	movl	$3, 32+_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip)
	movq	%rax, 40+_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip)
	call	__cxa_guard_release@PLT
.L846:
	testq	%rbx, %rbx
	je	.L848
	cmpb	$0, -597(%rbp)
	je	.L849
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	call	nvtxDomainRangePop
.L849:
	call	_ZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_v
	movq	(%rax), %rdi
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L850
	leaq	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr(%rip), %rsi
	call	*%rax
.L850:
	movb	$1, -597(%rbp)
.L848:
	xorl	%eax, %eax
	leaq	-596(%rbp), %rdi
	movl	%eax, -596(%rbp)
.LEHB15:
	call	_ZN3cub17CUB_200700_890_NS10PtxVersionERi
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	sete	%dl
	testl	%eax, %eax
	setne	%al
	testb	%al, %dl
	jne	.L851
	testl	%r14d, %r14d
	jne	.L851
	movq	-624(%rbp), %rsi
	movl	-596(%rbp), %eax
	movq	%rbx, -112(%rbp)
	movq	%r13, -104(%rbp)
	movq	%rsi, -88(%rbp)
	movl	-612(%rbp), %esi
	movq	%r15, -96(%rbp)
	movl	%esi, -76(%rbp)
	movq	%r12, -72(%rbp)
	movl	%eax, -64(%rbp)
	cmpl	$899, %eax
	jg	.L852
	cmpl	$859, %eax
	jg	.L853
	cmpl	$799, %eax
	jg	.L854
	cmpl	$599, %eax
	jg	.L855
	cmpl	$519, %eax
	jg	.L856
	leaq	-432(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$1536, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -392(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L859
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L860
.L859:
	cmpq	%rax, 0(%r13)
	jnb	.L861
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L860
.L861:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L860:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L948
	testl	%eax, %eax
	jne	.L870
.L948:
	testl	%r15d, %r15d
	jne	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	testq	%rbx, %rbx
	je	.L870
	movq	%r13, -152(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -348(%rbp)
	setne	%al
	sarl	$7, %edx
	leaq	-392(%rbp), %rcx
	leaq	-352(%rbp), %rdi
	addl	%edx, %eax
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	movq	%r12, -320(%rbp)
	movl	%eax, -352(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -344(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -336(%rbp)
	xorl	%eax, %eax
	movq	%rax, -328(%rbp)
	leaq	-152(%rbp), %rax
	movq	%rax, %rdx
	movq	%rax, -624(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-272(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-432(%rbp), %edx
	leaq	-232(%rbp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-232(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%r15d, %r15d
	movl	%r15d, -612(%rbp)
	movabsq	$549755813889, %r15
.L866:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	xorl	%r11d, %r11d
	movl	%ebx, -312(%rbp)
	movabsq	$4294967297, %rax
	leaq	-88(%rbp), %rcx
	movq	%rax, -296(%rbp)
	leaq	-76(%rbp), %rax
	leaq	-96(%rbp), %rdx
	movq	%r15, -304(%rbp)
	leaq	-312(%rbp), %rdi
	leaq	-192(%rbp), %r9
	movq	%r11, -288(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	movl	$1, -308(%rbp)
	movq	%r12, -280(%rbp)
	pushq	%r13
	movq	-624(%rbp), %r8
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r9
	popq	%r10
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L866
.L856:
	leaq	-352(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$1536, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -312(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L873
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L874
.L873:
	cmpq	%rax, 0(%r13)
	jnb	.L875
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L874
.L875:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L874:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L954
	testl	%eax, %eax
	jne	.L870
.L954:
	testl	%r15d, %r15d
	jne	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	testq	%rbx, %rbx
	je	.L870
	movq	%r13, -152(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -388(%rbp)
	setne	%al
	sarl	$7, %edx
	xorl	%r8d, %r8d
	leaq	-312(%rbp), %rcx
	addl	%edx, %eax
	leaq	-392(%rbp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	movq	%r8, -368(%rbp)
	movl	%eax, -392(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -384(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -376(%rbp)
	leaq	-152(%rbp), %rax
	movq	%rax, %rdx
	movq	%r12, -360(%rbp)
	movq	%rax, -624(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-272(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-352(%rbp), %edx
	leaq	-232(%rbp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movabsq	$549755813889, %r15
	movl	-232(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%edi, %edi
	movl	%edi, -612(%rbp)
.L880:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	movabsq	$4294967297, %rax
	xorl	%ecx, %ecx
	movl	%ebx, -432(%rbp)
	leaq	-96(%rbp), %rdx
	movq	%rax, -416(%rbp)
	leaq	-76(%rbp), %rax
	leaq	-432(%rbp), %rdi
	movq	%rcx, -408(%rbp)
	leaq	-192(%rbp), %r9
	leaq	-88(%rbp), %rcx
	movl	$1, -428(%rbp)
	movq	%r15, -424(%rbp)
	movq	%r12, -400(%rbp)
	pushq	%rsi
	movq	-624(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L880
.L855:
	leaq	-392(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$1920, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -352(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L886
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L887
.L886:
	cmpq	%rax, 0(%r13)
	jnb	.L888
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L887
.L888:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L887:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L960
	testl	%eax, %eax
	jne	.L870
.L960:
	testl	%r15d, %r15d
	jne	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	testq	%rbx, %rbx
	je	.L870
	movq	%r13, -152(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -268(%rbp)
	setne	%al
	sarl	$7, %edx
	leaq	-352(%rbp), %rcx
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	addl	%edx, %eax
	movq	%r12, -240(%rbp)
	movl	%eax, -272(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -264(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -256(%rbp)
	xorl	%eax, %eax
	movq	%rax, -248(%rbp)
	leaq	-152(%rbp), %rax
	movq	%rax, -624(%rbp)
	leaq	-272(%rbp), %rax
	movq	-624(%rbp), %rdx
	movq	%rax, %rdi
	movq	%rax, %r15
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-312(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-392(%rbp), %edx
	movl	$5, %esi
	movq	%r15, %rdi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-272(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%r15d, %r15d
	movl	%r15d, -612(%rbp)
	movabsq	$549755813889, %r15
.L893:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	xorl	%r11d, %r11d
	movl	%ebx, -232(%rbp)
	movabsq	$4294967297, %rax
	leaq	-88(%rbp), %rcx
	movq	%rax, -216(%rbp)
	leaq	-76(%rbp), %rax
	leaq	-96(%rbp), %rdx
	movq	%r15, -224(%rbp)
	leaq	-232(%rbp), %rdi
	leaq	-192(%rbp), %r9
	movq	%r11, -208(%rbp)
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	movl	$1, -228(%rbp)
	movq	%r12, -200(%rbp)
	pushq	%r13
	movq	-624(%rbp), %r8
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r9
	popq	%r10
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L893
.L854:
	leaq	-352(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$2304, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -312(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L899
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L900
.L899:
	cmpq	%rax, 0(%r13)
	jnb	.L901
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L900
.L901:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L900:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L966
	testl	%eax, %eax
	jne	.L870
.L966:
	testl	%r15d, %r15d
	jne	.L870
	testq	%rbx, %rbx
	je	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	movq	%r13, -152(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -468(%rbp)
	setne	%al
	sarl	$7, %edx
	xorl	%r8d, %r8d
	leaq	-312(%rbp), %rcx
	addl	%edx, %eax
	leaq	-472(%rbp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	movq	%r8, -448(%rbp)
	movl	%eax, -472(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -464(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -456(%rbp)
	leaq	-152(%rbp), %rax
	movq	%rax, %rdx
	movq	%r12, -440(%rbp)
	movq	%rax, -624(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-272(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$288, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-352(%rbp), %edx
	leaq	-232(%rbp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movabsq	$1236950581249, %r15
	movl	-232(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%edi, %edi
	movl	%edi, -612(%rbp)
.L906:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	movabsq	$4294967297, %rax
	xorl	%ecx, %ecx
	movl	%ebx, -512(%rbp)
	leaq	-96(%rbp), %rdx
	movq	%rax, -496(%rbp)
	leaq	-76(%rbp), %rax
	leaq	-512(%rbp), %rdi
	movq	%rcx, -488(%rbp)
	leaq	-192(%rbp), %r9
	leaq	-88(%rbp), %rcx
	movl	$1, -508(%rbp)
	movq	%r15, -504(%rbp)
	movq	%r12, -480(%rbp)
	pushq	%rsi
	movq	-624(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L906
.L853:
	leaq	-392(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$1920, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -352(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L912
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L913
.L912:
	cmpq	%rax, 0(%r13)
	jnb	.L914
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L913
.L914:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L913:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L972
	testl	%eax, %eax
	jne	.L870
.L972:
	testl	%r15d, %r15d
	jne	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	testq	%rbx, %rbx
	je	.L870
	movq	%r13, -232(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -188(%rbp)
	setne	%al
	sarl	$7, %edx
	leaq	-352(%rbp), %rcx
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	addl	%edx, %eax
	movq	%r12, -160(%rbp)
	movl	%eax, -192(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -184(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -176(%rbp)
	xorl	%eax, %eax
	movq	%rax, -168(%rbp)
	leaq	-232(%rbp), %rax
	movq	%rax, -624(%rbp)
	leaq	-192(%rbp), %rax
	movq	-624(%rbp), %rdx
	movq	%rax, %rdi
	movq	%rax, -632(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-312(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-392(%rbp), %edx
	leaq	-272(%rbp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-272(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%r15d, %r15d
	movl	%r15d, -612(%rbp)
	movabsq	$549755813889, %r15
.L919:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	xorl	%r11d, %r11d
	movq	%r12, -120(%rbp)
	leaq	-88(%rbp), %rcx
	leaq	-96(%rbp), %rdx
	movabsq	$4294967297, %rax
	movl	%ebx, -152(%rbp)
	leaq	-152(%rbp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	movq	%rax, -136(%rbp)
	leaq	-76(%rbp), %rax
	movl	$1, -148(%rbp)
	movq	%r15, -144(%rbp)
	movq	%r11, -128(%rbp)
	pushq	%r13
	movq	-632(%rbp), %r9
	pushq	%rax
	movq	-624(%rbp), %r8
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%r9
	popq	%r10
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L919
.L852:
	leaq	-352(%rbp), %rdi
	call	cudaGetDevice@PLT
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	testl	%r14d, %r14d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r14d, %r14d
	jne	.L870
	movl	-612(%rbp), %eax
	xorl	%edx, %edx
	movl	$3072, %ecx
	divl	%ecx
	cmpl	$1, %edx
	sbbl	$-1, %eax
	movl	%eax, -312(%rbp)
	movl	%eax, %r14d
	call	cudaGetLastError@PLT
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L870
	leal	32(%r14), %eax
	cltq
	leaq	255(,%rax,8), %rax
	orb	$-1, %al
	testq	%rbx, %rbx
	jne	.L925
	movq	%rax, 0(%r13)
	xorl	%r13d, %r13d
	jmp	.L926
.L925:
	cmpq	%rax, 0(%r13)
	jnb	.L927
	call	cudaGetLastError@PLT
	xorl	%r13d, %r13d
	movl	$1, %r15d
	jmp	.L926
.L927:
	leaq	255(%rbx), %r13
	xorb	%r13b, %r13b
.L926:
	call	cudaGetLastError@PLT
	testl	$1, %r15d
	jne	.L978
	testl	%eax, %eax
	jne	.L870
.L978:
	testl	%r15d, %r15d
	jne	.L870
	cmpl	$0, -612(%rbp)
	je	.L870
	testq	%rbx, %rbx
	je	.L870
	movq	%r13, -152(%rbp)
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	xorl	%eax, %eax
	movl	%r14d, %edx
	testl	$127, %r14d
	movl	$1, -548(%rbp)
	setne	%al
	sarl	$7, %edx
	xorl	%r8d, %r8d
	leaq	-312(%rbp), %rcx
	addl	%edx, %eax
	leaq	-552(%rbp), %rdi
	leaq	_ZN3cub17CUB_200700_890_NS20DeviceScanInitKernelINS0_13ScanTileStateIfLb1EEEEEvT_i(%rip), %rsi
	movq	%r8, -528(%rbp)
	movl	%eax, -552(%rbp)
	movabsq	$549755813889, %rax
	movq	%rax, -544(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -536(%rbp)
	leaq	-152(%rbp), %rax
	movq	%rax, %rdx
	movq	%r12, -520(%rbp)
	movq	%rax, -624(%rbp)
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvN3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiEJS8_iEEE9cudaErrorT_DpRKT0_.isra.0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	leaq	-272(%rbp), %rdi
	xorl	%ecx, %ecx
	movl	$128, %edx
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	call	_ZN3cub17CUB_200700_890_NS14MaxSmOccupancyIPFvPfS2_NS0_13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS0_8NullTypeEjEEE9cudaErrorRiT_ii
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movl	-352(%rbp), %edx
	leaq	-232(%rbp), %rdi
	movl	$5, %esi
	call	cudaDeviceGetAttribute@PLT
	movl	%eax, %ebx
	call	cudaGetLastError@PLT
	testl	%ebx, %ebx
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%ebx, %ebx
	jne	.L870
	movabsq	$549755813889, %r15
	movl	-232(%rbp), %ebx
	cmpl	%ebx, %r14d
	cmovle	%r14d, %ebx
	xorl	%edi, %edi
	movl	%edi, -612(%rbp)
.L932:
	movl	-612(%rbp), %eax
	movl	%eax, -192(%rbp)
	cmpl	%eax, %r14d
	jle	.L870
	movabsq	$4294967297, %rax
	xorl	%ecx, %ecx
	movl	%ebx, -592(%rbp)
	leaq	-96(%rbp), %rdx
	movq	%rax, -576(%rbp)
	leaq	-76(%rbp), %rax
	leaq	-592(%rbp), %rdi
	movq	%rcx, -568(%rbp)
	leaq	-192(%rbp), %r9
	leaq	-88(%rbp), %rcx
	movl	$1, -588(%rbp)
	movq	%r15, -584(%rbp)
	movq	%r12, -560(%rbp)
	pushq	%rsi
	movq	-624(%rbp), %r8
	leaq	_ZN3cub17CUB_200700_890_NS16DeviceScanKernelINS0_16DeviceScanPolicyIfN4cuda3std3__44plusIvEEE9Policy900EPfSA_NS0_13ScanTileStateIfLb1EEES7_NS0_8NullTypeEjfLb0EEEvT0_T1_T2_iT3_T4_T5_(%rip), %rsi
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_ZNK6thrust20THRUST_200700_890_NS8cuda_cub8launcher14triple_chevron9doit_hostIPFvPfS5_N3cub17CUB_200700_890_NS13ScanTileStateIfLb1EEEiN4cuda3std3__44plusIvEENS7_8NullTypeEjEJS5_S5_S9_iSE_SF_jEEE9cudaErrorT_DpRKT0_.isra.0
	popq	%rax
	popq	%rdx
	.cfi_escape 0x2e,0
	call	cudaPeekAtLastError@PLT
	movl	%eax, %r13d
	call	cudaGetLastError@PLT
	testl	%r13d, %r13d
	jne	.L870
	testl	%eax, %eax
	jne	.L870
	testl	%r13d, %r13d
	jne	.L870
	call	cudaGetLastError@PLT
	testl	%eax, %eax
	jne	.L870
	addl	%ebx, -612(%rbp)
	jmp	.L932
.L870:
	call	cudaGetLastError@PLT
.LEHE15:
.L851:
	leaq	-598(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L938
	jmp	.L1109
.L946:
	endbr64
	movq	%rax, %rbx
.L936:
	leaq	-598(%rbp), %rdi
	call	_ZN4cuda3std3__424__optional_destruct_baseIN5nvtx32v115scoped_range_inIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainEEELb0EED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L1109
	movq	%rbx, %rdi
.LEHB16:
	call	_Unwind_Resume@PLT
.LEHE16:
.L1109:
	call	__stack_chk_fail@PLT
.L938:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14009:
	.section	.gcc_except_table
.LLSDA14009:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE14009-.LLSDACSB14009
.LLSDACSB14009:
	.uleb128 .LEHB15-.LFB14009
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L946-.LFB14009
	.uleb128 0
	.uleb128 .LEHB16-.LFB14009
	.uleb128 .LEHE16-.LEHB16
	.uleb128 0
	.uleb128 0
.LLSDACSE14009:
	.text
	.size	_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0, .-_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0
	.section	.rodata.str1.1
.LC71:
	.string	"normalize_kernel"
.LC72:
	.string	"cumsum"
	.text
	.align 2
	.globl	_ZN6Filter9normalizeEv
	.type	_ZN6Filter9normalizeEv, @function
_ZN6Filter9normalizeEv:
.LFB12629:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12629
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967491, %rax
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	addq	$317, %rax
	movq	%rax, 28(%rsp)
.LEHB17:
	call	cudaThreadSynchronize@PLT
	movl	36(%rsp), %ecx
	movl	24(%rsp), %esi
	xorl	%r9d, %r9d
	movq	28(%rsp), %rdx
	movq	16(%rsp), %rdi
	xorl	%r8d, %r8d
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1112
	movq	80(%rbp), %rax
	movq	96(%rbp), %rsi
	leaq	4(%rax), %rdi
	call	_Z39__device_stub__Z16normalize_kernelPfPKfPfPKf
.L1112:
	leaq	40(%rsp), %rbx
	leaq	15(%rsp), %r12
	movq	%rbx, %rdi
	movq	%r12, %rdx
	leaq	.LC71(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE17:
	movq	%rbx, %rdi
.LEHB18:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE18:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	104(%rbp), %rcx
	movq	80(%rbp), %rdx
	xorl	%r9d, %r9d
	movq	399488(%rbp), %rdi
	leaq	399496(%rbp), %rsi
	movl	$99840, %r8d
.LEHB19:
	call	_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0
	movq	%rbx, %rdi
	movq	%r12, %rdx
	leaq	.LC72(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE19:
	movq	%rbx, %rdi
.LEHB20:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE20:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1117
	jmp	.L1120
.L1118:
	endbr64
	jmp	.L1123
.L1119:
	endbr64
.L1123:
	movq	%rax, %rbp
.L1115:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1120
	movq	%rbp, %rdi
.LEHB21:
	call	_Unwind_Resume@PLT
.LEHE21:
.L1120:
	call	__stack_chk_fail@PLT
.L1117:
	addq	$80, %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
.LFE12629:
	.section	.gcc_except_table
.LLSDA12629:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12629-.LLSDACSB12629
.LLSDACSB12629:
	.uleb128 .LEHB17-.LFB12629
	.uleb128 .LEHE17-.LEHB17
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB18-.LFB12629
	.uleb128 .LEHE18-.LEHB18
	.uleb128 .L1118-.LFB12629
	.uleb128 0
	.uleb128 .LEHB19-.LFB12629
	.uleb128 .LEHE19-.LEHB19
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB20-.LFB12629
	.uleb128 .LEHE20-.LEHB20
	.uleb128 .L1119-.LFB12629
	.uleb128 0
	.uleb128 .LEHB21-.LFB12629
	.uleb128 .LEHE21-.LEHB21
	.uleb128 0
	.uleb128 0
.LLSDACSE12629:
	.text
	.size	_ZN6Filter9normalizeEv, .-_ZN6Filter9normalizeEv
	.section	.rodata.str1.1
.LC73:
	.string	"resample_kernel"
	.text
	.align 2
	.globl	_ZN6Filter8resampleEv
	.type	_ZN6Filter8resampleEv, @function
_ZN6Filter8resampleEv:
.LFB12627:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12627
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
.LEHB22:
	call	_ZN6Filter9normalizeEv
	movl	$8388609, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	64(%rbx), %rax
	salq	$9, %rdx
	movl	$1, %ecx
	movabsq	$4294967491, %rdi
	movl	$1, %esi
	cmpq	%rax, 56(%rbx)
	jne	.L1125
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1126
	movq	72(%rbx), %rcx
	movq	56(%rbx), %rdx
	movq	104(%rbx), %rsi
	movq	399480(%rbx), %rdi
	call	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf
.L1126:
	movq	72(%rbx), %rax
	jmp	.L1127
.L1125:
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1128
	movq	64(%rbx), %rcx
	movq	56(%rbx), %rdx
	movq	104(%rbx), %rsi
	movq	399480(%rbx), %rdi
	call	_Z61__device_stub__Z15resample_kernelP17curandStateXORWOWPKfS2_PfP17curandStateXORWOWPKfS2_Pf
.L1128:
	movq	64(%rbx), %rax
.L1127:
	movq	%rax, 56(%rbx)
	leaq	40(%rsp), %rbx
	leaq	15(%rsp), %rdx
	movq	%rbx, %rdi
	leaq	.LC73(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE22:
	movq	%rbx, %rdi
.LEHB23:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE23:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1131
	jmp	.L1133
.L1132:
	endbr64
	movq	%rax, %rbp
.L1129:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1133
	movq	%rbp, %rdi
.LEHB24:
	call	_Unwind_Resume@PLT
.LEHE24:
.L1133:
	call	__stack_chk_fail@PLT
.L1131:
	addq	$88, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12627:
	.section	.gcc_except_table
.LLSDA12627:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12627-.LLSDACSB12627
.LLSDACSB12627:
	.uleb128 .LEHB22-.LFB12627
	.uleb128 .LEHE22-.LEHB22
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB23-.LFB12627
	.uleb128 .LEHE23-.LEHB23
	.uleb128 .L1132-.LFB12627
	.uleb128 0
	.uleb128 .LEHB24-.LFB12627
	.uleb128 .LEHE24-.LEHB24
	.uleb128 0
	.uleb128 0
.LLSDACSE12627:
	.text
	.size	_ZN6Filter8resampleEv, .-_ZN6Filter8resampleEv
	.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:
.LFB13944:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	xorl	%edx, %edx
	movl	$2567483615, %edi
.L1137:
	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	.L1136
	movq	%rdi, %rcx
.L1136:
	xorq	%rsi, %rcx
	movq	%rcx, -8(%rax,%rdx,8)
	cmpq	$227, %rdx
	jne	.L1137
	movl	$2567483615, %edi
.L1139:
	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	.L1138
	movq	%rdi, %rcx
.L1138:
	xorq	%rsi, %rcx
	movq	%rcx, -8(%rax,%rdx,8)
	cmpq	$623, %rdx
	jne	.L1139
	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	.L1140
	movl	$2567483615, %edx
.L1140:
	xorq	%rcx, %rdx
	movq	%rdx, 4984(%rax)
	xorl	%edx, %edx
	movq	%rdx, 4992(%rax)
	ret
	.cfi_endproc
.LFE13944:
	.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_:
.LFB13861:
	.cfi_startproc
	endbr64
	cmpq	$623, 4992(%rdi)
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	jbe	.L1153
	call	_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EE11_M_gen_randEv
.L1153:
	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	.L1154
	cvtsi2ssq	%rax, %xmm0
	jmp	.L1155
.L1154:
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	orq	%rax, %rdx
	cvtsi2ssq	%rdx, %xmm0
	addss	%xmm0, %xmm0
.L1155:
	xorps	%xmm1, %xmm1
	addss	%xmm1, %xmm0
	mulss	.LC76(%rip), %xmm0
	comiss	.LC77(%rip), %xmm0
	jb	.L1152
	movss	.LC74(%rip), %xmm0
.L1152:
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13861:
	.size	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_, .-_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	.section	.rodata.str1.1
.LC78:
	.string	"default"
.LC80:
	.string	"memcpy"
	.text
	.align 2
	.globl	_ZN6Filter4initEPKfS1_S1_
	.type	_ZN6Filter4initEPKfS1_S1_, @function
_ZN6Filter4initEPKfS1_S1_:
.LFB12625:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12625
	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	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$1928, %rsp
	.cfi_def_cfa_offset 10176
	movq	%fs:40, %rax
	movq	%rax, 10104(%rsp)
	xorl	%eax, %eax
	leaq	5104(%rsp), %rbx
	movq	%rdi, %r12
	movq	%rsi, %r14
	leaq	71(%rsp), %rax
	movq	%rbx, %rdi
	movq	%rdx, %r15
	leaq	.LC78(%rip), %rsi
	movq	%rax, %rdx
	movq	%rax, 32(%rsp)
.LEHB25:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE25:
	leaq	104(%rsp), %rax
	movq	%rbx, %rsi
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
.LEHB26:
	call	_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE26:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	8(%rsp), %rdi
.LEHB27:
	call	_ZNSt13random_device9_M_getvalEv@PLT
	movl	%eax, %eax
	movl	$1, %edx
	movq	%rax, 5104(%rsp)
	jmp	.L1163
.L1176:
	endbr64
	movq	%rax, %rbp
.L1161:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	movq	10104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1185
	jmp	.L1182
.L1163:
	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	.L1163
	movl	$4792320, %edi
	movq	$624, 10096(%rsp)
	call	_Znam@PLT
	movq	%rax, 16(%rsp)
	xorl	%ebp, %ebp
.L1168:
	imulq	$99840, %rbp, %rdx
	movq	16(%rsp), %rax
	xorl	%r13d, %r13d
	xorps	%xmm2, %xmm2
	movss	(%r15,%rbp), %xmm3
	movss	(%r14,%rbp), %xmm4
	addq	%rdx, %rax
	movss	%xmm3, 40(%rsp)
	xorl	%edx, %edx
	movq	%rax, 48(%rsp)
	movss	%xmm4, 44(%rsp)
.L1167:
	testb	%dl, %dl
	jne	.L1173
.L1181:
	movq	%rbx, %rdi
	call	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	movq	%rbx, %rdi
	addss	%xmm0, %xmm0
	subss	.LC77(%rip), %xmm0
	movss	%xmm0, 28(%rsp)
	call	_ZSt18generate_canonicalIfLm24ESt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEET_RT1_
	movss	28(%rsp), %xmm2
	addss	%xmm0, %xmm0
	mulss	%xmm2, %xmm2
	movaps	%xmm0, %xmm1
	subss	.LC77(%rip), %xmm1
	movaps	%xmm1, %xmm0
	mulss	%xmm1, %xmm0
	addss	%xmm0, %xmm2
	comiss	.LC77(%rip), %xmm2
	ja	.L1181
	xorps	%xmm0, %xmm0
	ucomiss	%xmm0, %xmm2
	jp	.L1177
	je	.L1181
.L1177:
	movaps	%xmm2, %xmm0
	movss	%xmm1, 60(%rsp)
	movss	%xmm2, 56(%rsp)
	call	logf@PLT
	mulss	.LC79(%rip), %xmm0
	movss	56(%rsp), %xmm2
	divss	%xmm2, %xmm0
	call	sqrtf@PLT
	movss	28(%rsp), %xmm2
	movss	60(%rsp), %xmm1
	movb	$1, %dl
	mulss	%xmm0, %xmm2
	mulss	%xmm0, %xmm1
	jmp	.L1164
.L1173:
	movaps	%xmm2, %xmm1
	xorl	%edx, %edx
.L1164:
	mulss	40(%rsp), %xmm1
	movq	48(%rsp), %rax
	addss	44(%rsp), %xmm1
	movss	%xmm1, (%rax,%r13,4)
	incq	%r13
	cmpq	$99840, %r13
	jne	.L1167
	addq	$4, %rbp
	cmpq	$48, %rbp
	jne	.L1168
	movq	64(%r12), %rdi
	movq	16(%rsp), %rsi
	movl	$1, %ecx
	movl	$4792320, %edx
	call	cudaMemcpy@PLT
	leaq	72(%rsp), %r13
	movq	32(%rsp), %rdx
	leaq	.LC80(%rip), %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE27:
	movq	%r13, %rdi
.LEHB28:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE28:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	64(%r12), %rax
	movq	16(%rsp), %rdi
	movq	%rax, 56(%r12)
	call	_ZdaPv@PLT
	movq	8(%rsp), %rdi
	call	_ZNSt13random_device7_M_finiEv@PLT
	movq	10104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1172
	jmp	.L1182
.L1175:
	endbr64
	movq	%rax, %rbx
.L1169:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1170
.L1174:
	endbr64
	movq	%rax, %rbx
.L1170:
	movq	8(%rsp), %rdi
	call	_ZNSt13random_device7_M_finiEv@PLT
	movq	%rbx, %rdi
	movq	10104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1182
.L1185:
.LEHB29:
	call	_Unwind_Resume@PLT
.LEHE29:
.L1182:
	call	__stack_chk_fail@PLT
.L1172:
	addq	$10120, %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
.LFE12625:
	.section	.gcc_except_table
.LLSDA12625:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12625-.LLSDACSB12625
.LLSDACSB12625:
	.uleb128 .LEHB25-.LFB12625
	.uleb128 .LEHE25-.LEHB25
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB26-.LFB12625
	.uleb128 .LEHE26-.LEHB26
	.uleb128 .L1176-.LFB12625
	.uleb128 0
	.uleb128 .LEHB27-.LFB12625
	.uleb128 .LEHE27-.LEHB27
	.uleb128 .L1174-.LFB12625
	.uleb128 0
	.uleb128 .LEHB28-.LFB12625
	.uleb128 .LEHE28-.LEHB28
	.uleb128 .L1175-.LFB12625
	.uleb128 0
	.uleb128 .LEHB29-.LFB12625
	.uleb128 .LEHE29-.LEHB29
	.uleb128 0
	.uleb128 0
.LLSDACSE12625:
	.text
	.size	_ZN6Filter4initEPKfS1_S1_, .-_ZN6Filter4initEPKfS1_S1_
	.section	.rodata.str1.1
.LC81:
	.string	"constructor malloc"
.LC82:
	.string	"constructor memcpy"
.LC83:
	.string	"constructor memset"
	.text
	.align 2
	.globl	_ZN6FilterC2EPKfS1_S1_
	.type	_ZN6FilterC2EPKfS1_S1_, @function
_ZN6FilterC2EPKfS1_S1_:
.LFB12620:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12620
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	movl	$4792320, %esi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	movl	$12, %ecx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rbp
	leaq	12(%rsp), %r15
	rep stosl
	leaq	64(%rbx), %rdi
.LEHB30:
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	72(%rbx), %rdi
	movl	$4792320, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	80(%rbx), %rdi
	movl	$399364, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	88(%rbx), %rdi
	movl	$216, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	96(%rbx), %rdi
	movl	$4, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	399472(%rbx), %rdi
	movl	$399360, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	48(%rbx), %rdi
	movl	$48, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	399480(%rbx), %rdi
	movl	$4792320, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	leaq	104(%rbx), %rdi
	movl	$399364, %esi
	call	_Z10cudaMallocIfE9cudaErrorPPT_m.isra.0
	movq	%rbp, %rdi
	movq	%r15, %rdx
	leaq	.LC81(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE30:
	movq	%rbp, %rdi
.LEHB31:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE31:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	88(%rbx), %rdi
	movl	$1, %ecx
	movq	%r12, %rsi
	movl	$216, %edx
.LEHB32:
	call	cudaMemcpy@PLT
	movq	%rbp, %rdi
	movq	%r15, %rdx
	leaq	.LC82(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE32:
	movq	%rbp, %rdi
.LEHB33:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE33:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	80(%rbx), %rdi
	movl	$4, %edx
	xorl	%esi, %esi
.LEHB34:
	call	cudaMemset@PLT
	movq	%rbp, %rdi
	movq	%r15, %rdx
	leaq	.LC83(%rip), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE34:
	movq	%rbp, %rdi
.LEHB35:
	call	_Z14checkCUDAErrorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE35:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	xorl	%eax, %eax
	movq	104(%rbx), %rcx
	movq	80(%rbx), %rdx
	movq	%rax, 399488(%rbx)
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	movl	$99840, %r8d
	movq	%rax, 399496(%rbx)
	leaq	399496(%rbx), %rsi
.LEHB36:
	call	_ZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_st.isra.0
	movq	399496(%rbx), %rsi
	leaq	399488(%rbx), %rdi
	call	cudaMalloc@PLT
	movl	$8388609, %edx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	salq	$9, %rdx
	movl	$1, %ecx
	movabsq	$4294967491, %rdi
	movl	$1, %esi
	movq	%rdx, 12(%rsp)
	movl	$1, 20(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1187
	movq	399480(%rbx), %rdi
	movl	$1234, %esi
	call	_Z54__device_stub__Z15setupRNG_kernelP17curandStateXORWOWjP17curandStateXORWOWj
.L1187:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1202
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZN6Filter4initEPKfS1_S1_
.L1196:
	.cfi_restore_state
	endbr64
	jmp	.L1205
.L1197:
	endbr64
	jmp	.L1205
.L1198:
	endbr64
.L1205:
	movq	%rax, %rbx
.L1193:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1194
.L1202:
	call	__stack_chk_fail@PLT
.L1194:
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE36:
	.cfi_endproc
.LFE12620:
	.section	.gcc_except_table
.LLSDA12620:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12620-.LLSDACSB12620
.LLSDACSB12620:
	.uleb128 .LEHB30-.LFB12620
	.uleb128 .LEHE30-.LEHB30
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB31-.LFB12620
	.uleb128 .LEHE31-.LEHB31
	.uleb128 .L1196-.LFB12620
	.uleb128 0
	.uleb128 .LEHB32-.LFB12620
	.uleb128 .LEHE32-.LEHB32
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB33-.LFB12620
	.uleb128 .LEHE33-.LEHB33
	.uleb128 .L1197-.LFB12620
	.uleb128 0
	.uleb128 .LEHB34-.LFB12620
	.uleb128 .LEHE34-.LEHB34
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB35-.LFB12620
	.uleb128 .LEHE35-.LEHB35
	.uleb128 .L1198-.LFB12620
	.uleb128 0
	.uleb128 .LEHB36-.LFB12620
	.uleb128 .LEHE36-.LEHB36
	.uleb128 0
	.uleb128 0
.LLSDACSE12620:
	.text
	.size	_ZN6FilterC2EPKfS1_S1_, .-_ZN6FilterC2EPKfS1_S1_
	.globl	_ZN6FilterC1EPKfS1_S1_
	.set	_ZN6FilterC1EPKfS1_S1_,_ZN6FilterC2EPKfS1_S1_
	.weak	_ZTSN4cuda3__410cuda_errorE
	.section	.rodata._ZTSN4cuda3__410cuda_errorE,"aG",@progbits,_ZTSN4cuda3__410cuda_errorE,comdat
	.align 16
	.type	_ZTSN4cuda3__410cuda_errorE, @object
	.size	_ZTSN4cuda3__410cuda_errorE, 24
_ZTSN4cuda3__410cuda_errorE:
	.string	"N4cuda3__410cuda_errorE"
	.weak	_ZTIN4cuda3__410cuda_errorE
	.section	.data.rel.ro._ZTIN4cuda3__410cuda_errorE,"awG",@progbits,_ZTIN4cuda3__410cuda_errorE,comdat
	.align 8
	.type	_ZTIN4cuda3__410cuda_errorE, @object
	.size	_ZTIN4cuda3__410cuda_errorE, 24
_ZTIN4cuda3__410cuda_errorE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN4cuda3__410cuda_errorE
	.quad	_ZTISt13runtime_error
	.weak	_ZTVN4cuda3__410cuda_errorE
	.section	.data.rel.ro._ZTVN4cuda3__410cuda_errorE,"awG",@progbits,_ZTVN4cuda3__410cuda_errorE,comdat
	.align 8
	.type	_ZTVN4cuda3__410cuda_errorE, @object
	.size	_ZTVN4cuda3__410cuda_errorE, 40
_ZTVN4cuda3__410cuda_errorE:
	.quad	0
	.quad	_ZTIN4cuda3__410cuda_errorE
	.quad	_ZN4cuda3__410cuda_errorD1Ev
	.quad	_ZN4cuda3__410cuda_errorD0Ev
	.quad	_ZNKSt13runtime_error4whatEv
	.weak	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d
	.section	.bss._ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,"awG",@nobits,_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,comdat
	.align 8
	.type	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, @gnu_unique_object
	.size	_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, 8
_ZGVZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d:
	.zero	8
	.weak	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d
	.section	.bss._ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,"awG",@nobits,_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d,comdat
	.align 8
	.type	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, @gnu_unique_object
	.size	_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d, 8
_ZZN5nvtx32v16domain3getIN3cub17CUB_200700_890_NS6detail14NVTXCCCLDomainELi0EEERKS1_vE1d:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr, 8
_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr
	.section	.bss._ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr, 48
_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_attr:
	.zero	48
	.weak	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name, 8
_ZGVZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name
	.section	.bss._ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name,comdat
	.align 8
	.type	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name, 8
_ZZN3cub17CUB_200700_890_NS10DeviceScan12InclusiveSumIPfS3_iEE9cudaErrorPvRmT_T0_T1_P11CUstream_stE21__cub_nvtx3_func_name:
	.zero	8
	.weak	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, 8
_ZGVZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache
	.section	.bss._ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache,comdat
	.align 32
	.type	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache, 1536
_ZZN3cub17CUB_200700_890_NS26GetPerDeviceAttributeCacheINS0_18PtxVersionCacheTagEEERNS0_23PerDeviceAttributeCacheEvE5cache:
	.zero	1536
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E:
	.zero	1
	.weak	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count
	.section	.bss._ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,"awG",@nobits,_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,comdat
	.align 8
	.type	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, @gnu_unique_object
	.size	_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, 8
_ZGVZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count:
	.zero	8
	.weak	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count
	.section	.bss._ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,"awG",@nobits,_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count,comdat
	.align 4
	.type	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, @gnu_unique_object
	.size	_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count, 4
_ZZN3cub17CUB_200700_890_NS22DeviceCountCachedValueEvE5count:
	.zero	4
	.weak	_ZN4cuda3std3__47nulloptE
	.section	.rodata._ZN4cuda3std3__47nulloptE,"aG",@progbits,_ZN4cuda3std3__47nulloptE,comdat
	.type	_ZN4cuda3std3__47nulloptE, @gnu_unique_object
	.size	_ZN4cuda3std3__47nulloptE, 1
_ZN4cuda3std3__47nulloptE:
	.zero	1
	.hidden	InitializeInjectionNvtx2_fnptr
	.weak	InitializeInjectionNvtx2_fnptr
	.bss
	.align 8
	.type	InitializeInjectionNvtx2_fnptr, @object
	.size	InitializeInjectionNvtx2_fnptr, 8
InitializeInjectionNvtx2_fnptr:
	.zero	8
	.hidden	nvtxGlobals_v3
	.weak	nvtxGlobals_v3
	.section	.data.rel.local,"aw"
	.align 32
	.type	nvtxGlobals_v3, @object
	.size	nvtxGlobals_v3, 1168
nvtxGlobals_v3:
	.long	0
	.zero	4
	.quad	16
	.quad	nvtxEtiGetModuleFunctionTable_v3
	.quad	24
	.long	3
	.long	0
	.quad	nvtxEtiSetInjectionNvtxVersion_v3
	.quad	nvtxMarkEx_impl_init_v3
	.quad	nvtxMarkA_impl_init_v3
	.quad	nvtxMarkW_impl_init_v3
	.quad	nvtxRangeStartEx_impl_init_v3
	.quad	nvtxRangeStartA_impl_init_v3
	.quad	nvtxRangeStartW_impl_init_v3
	.quad	nvtxRangeEnd_impl_init_v3
	.quad	nvtxRangePushEx_impl_init_v3
	.quad	nvtxRangePushA_impl_init_v3
	.quad	nvtxRangePushW_impl_init_v3
	.quad	nvtxRangePop_impl_init_v3
	.quad	nvtxNameCategoryA_impl_init_v3
	.quad	nvtxNameCategoryW_impl_init_v3
	.quad	nvtxNameOsThreadA_impl_init_v3
	.quad	nvtxNameOsThreadW_impl_init_v3
	.quad	nvtxNameCuDeviceA_impl_init_v3
	.quad	nvtxNameCuDeviceW_impl_init_v3
	.quad	nvtxNameCuContextA_impl_init_v3
	.quad	nvtxNameCuContextW_impl_init_v3
	.quad	nvtxNameCuStreamA_impl_init_v3
	.quad	nvtxNameCuStreamW_impl_init_v3
	.quad	nvtxNameCuEventA_impl_init_v3
	.quad	nvtxNameCuEventW_impl_init_v3
	.quad	nvtxNameClDeviceA_impl_init_v3
	.quad	nvtxNameClDeviceW_impl_init_v3
	.quad	nvtxNameClContextA_impl_init_v3
	.quad	nvtxNameClContextW_impl_init_v3
	.quad	nvtxNameClCommandQueueA_impl_init_v3
	.quad	nvtxNameClCommandQueueW_impl_init_v3
	.quad	nvtxNameClMemObjectA_impl_init_v3
	.quad	nvtxNameClMemObjectW_impl_init_v3
	.quad	nvtxNameClSamplerA_impl_init_v3
	.quad	nvtxNameClSamplerW_impl_init_v3
	.quad	nvtxNameClProgramA_impl_init_v3
	.quad	nvtxNameClProgramW_impl_init_v3
	.quad	nvtxNameClEventA_impl_init_v3
	.quad	nvtxNameClEventW_impl_init_v3
	.quad	nvtxNameCudaDeviceA_impl_init_v3
	.quad	nvtxNameCudaDeviceW_impl_init_v3
	.quad	nvtxNameCudaStreamA_impl_init_v3
	.quad	nvtxNameCudaStreamW_impl_init_v3
	.quad	nvtxNameCudaEventA_impl_init_v3
	.quad	nvtxNameCudaEventW_impl_init_v3
	.quad	nvtxDomainMarkEx_impl_init_v3
	.quad	nvtxDomainRangeStartEx_impl_init_v3
	.quad	nvtxDomainRangeEnd_impl_init_v3
	.quad	nvtxDomainRangePushEx_impl_init_v3
	.quad	nvtxDomainRangePop_impl_init_v3
	.quad	nvtxDomainResourceCreate_impl_init_v3
	.quad	nvtxDomainResourceDestroy_impl_init_v3
	.quad	nvtxDomainNameCategoryA_impl_init_v3
	.quad	nvtxDomainNameCategoryW_impl_init_v3
	.quad	nvtxDomainRegisterStringA_impl_init_v3
	.quad	nvtxDomainRegisterStringW_impl_init_v3
	.quad	nvtxDomainCreateA_impl_init_v3
	.quad	nvtxDomainCreateW_impl_init_v3
	.quad	nvtxDomainDestroy_impl_init_v3
	.quad	nvtxInitialize_impl_init_v3
	.quad	nvtxDomainSyncUserCreate_impl_init_v3
	.quad	nvtxDomainSyncUserDestroy_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.quad	nvtxDomainSyncUserReleasing_impl_init_v3
	.quad	0
	.quad	nvtxGlobals_v3+48
	.quad	nvtxGlobals_v3+56
	.quad	nvtxGlobals_v3+64
	.quad	nvtxGlobals_v3+72
	.quad	nvtxGlobals_v3+80
	.quad	nvtxGlobals_v3+88
	.quad	nvtxGlobals_v3+96
	.quad	nvtxGlobals_v3+104
	.quad	nvtxGlobals_v3+112
	.quad	nvtxGlobals_v3+120
	.quad	nvtxGlobals_v3+128
	.quad	nvtxGlobals_v3+136
	.quad	nvtxGlobals_v3+144
	.quad	nvtxGlobals_v3+152
	.quad	nvtxGlobals_v3+160
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+168
	.quad	nvtxGlobals_v3+176
	.quad	nvtxGlobals_v3+184
	.quad	nvtxGlobals_v3+192
	.quad	nvtxGlobals_v3+200
	.quad	nvtxGlobals_v3+208
	.quad	nvtxGlobals_v3+216
	.quad	nvtxGlobals_v3+224
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+232
	.quad	nvtxGlobals_v3+240
	.quad	nvtxGlobals_v3+248
	.quad	nvtxGlobals_v3+256
	.quad	nvtxGlobals_v3+264
	.quad	nvtxGlobals_v3+272
	.quad	nvtxGlobals_v3+280
	.quad	nvtxGlobals_v3+288
	.quad	nvtxGlobals_v3+296
	.quad	nvtxGlobals_v3+304
	.quad	nvtxGlobals_v3+312
	.quad	nvtxGlobals_v3+320
	.quad	nvtxGlobals_v3+328
	.quad	nvtxGlobals_v3+336
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+344
	.quad	nvtxGlobals_v3+352
	.quad	nvtxGlobals_v3+360
	.quad	nvtxGlobals_v3+368
	.quad	nvtxGlobals_v3+376
	.quad	nvtxGlobals_v3+384
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+392
	.quad	nvtxGlobals_v3+400
	.quad	nvtxGlobals_v3+408
	.quad	nvtxGlobals_v3+416
	.quad	nvtxGlobals_v3+424
	.quad	nvtxGlobals_v3+432
	.quad	nvtxGlobals_v3+440
	.quad	nvtxGlobals_v3+448
	.quad	nvtxGlobals_v3+456
	.quad	nvtxGlobals_v3+464
	.quad	nvtxGlobals_v3+472
	.quad	nvtxGlobals_v3+480
	.quad	nvtxGlobals_v3+488
	.quad	nvtxGlobals_v3+496
	.quad	nvtxGlobals_v3+504
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+512
	.quad	nvtxGlobals_v3+520
	.quad	nvtxGlobals_v3+528
	.quad	nvtxGlobals_v3+536
	.quad	nvtxGlobals_v3+544
	.quad	nvtxGlobals_v3+552
	.quad	0
	.weak	_ZN4cuda3std3__420unreachable_sentinelE
	.section	.rodata._ZN4cuda3std3__420unreachable_sentinelE,"aG",@progbits,_ZN4cuda3std3__420unreachable_sentinelE,comdat
	.type	_ZN4cuda3std3__420unreachable_sentinelE, @gnu_unique_object
	.size	_ZN4cuda3std3__420unreachable_sentinelE, 1
_ZN4cuda3std3__420unreachable_sentinelE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5crendE
	.section	.rodata._ZN4cuda3std3__45__cpo5crendE,"aG",@progbits,_ZN4cuda3std3__45__cpo5crendE,comdat
	.type	_ZN4cuda3std3__45__cpo5crendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5crendE, 1
_ZN4cuda3std3__45__cpo5crendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo7crbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo7crbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo7crbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo7crbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo7crbeginE, 1
_ZN4cuda3std3__45__cpo7crbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4rendE
	.section	.rodata._ZN4cuda3std3__45__cpo4rendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4rendE,comdat
	.type	_ZN4cuda3std3__45__cpo4rendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4rendE, 1
_ZN4cuda3std3__45__cpo4rendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6rbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6rbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6rbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6rbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6rbeginE, 1
_ZN4cuda3std3__45__cpo6rbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo8distanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo8distanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo8distanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo8distanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo8distanceE, 1
_ZN4cuda3std6ranges3__45__cpo8distanceE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5ssizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5ssizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5ssizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5ssizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5ssizeE, 1
_ZN4cuda3std6ranges3__45__cpo5ssizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4sizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4sizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4sizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4sizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4sizeE, 1
_ZN4cuda3std6ranges3__45__cpo4sizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5cdataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5cdataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5cdataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5cdataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5cdataE, 1
_ZN4cuda3std6ranges3__45__cpo5cdataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4dataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4dataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4dataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4dataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4dataE, 1
_ZN4cuda3std6ranges3__45__cpo4dataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4prevE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4prevE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4prevE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4prevE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4prevE, 1
_ZN4cuda3std6ranges3__45__cpo4prevE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4nextE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4nextE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4nextE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4nextE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4nextE, 1
_ZN4cuda3std6ranges3__45__cpo4nextE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_swapE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4cendE, 1
_ZN4cuda3std6ranges3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo6cbeginE, 1
_ZN4cuda3std6ranges3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo3endE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo3endE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo3endE, 1
_ZN4cuda3std6ranges3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5beginE, 1
_ZN4cuda3std6ranges3__45__cpo5beginE:
	.zero	1
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, 1
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo7advanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo7advanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo7advanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo7advanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo7advanceE, 1
_ZN4cuda3std6ranges3__45__cpo7advanceE:
	.zero	1
	.hidden	_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE
	.weak	_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE
	.section	.rodata._ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE,"aG",@progbits,_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE,comdat
	.type	_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE, @gnu_unique_object
	.size	_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE, 1
_ZN4cuda3std3__441_GLOBAL__N__25601a7d_9_filter_cu_651b18fe6ignoreE:
	.zero	1
	.weak	_ZN4cuda3std3__48in_placeE
	.section	.rodata._ZN4cuda3std3__48in_placeE,"aG",@progbits,_ZN4cuda3std3__48in_placeE,comdat
	.type	_ZN4cuda3std3__48in_placeE, @gnu_unique_object
	.size	_ZN4cuda3std3__48in_placeE, 1
_ZN4cuda3std3__48in_placeE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4cendE, 1
_ZN4cuda3std3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6cbeginE, 1
_ZN4cuda3std3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo3endE
	.section	.rodata._ZN4cuda3std3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std3__45__cpo3endE,comdat
	.type	_ZN4cuda3std3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo3endE, 1
_ZN4cuda3std3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5beginE, 1
_ZN4cuda3std3__45__cpo5beginE:
	.zero	1
	.weak	_ZN4cuda3std3__419piecewise_constructE
	.section	.rodata._ZN4cuda3std3__419piecewise_constructE,"aG",@progbits,_ZN4cuda3std3__419piecewise_constructE,comdat
	.type	_ZN4cuda3std3__419piecewise_constructE, @gnu_unique_object
	.size	_ZN4cuda3std3__419piecewise_constructE, 1
_ZN4cuda3std3__419piecewise_constructE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_moveE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_moveE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_moveE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_moveE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4swapE, 1
_ZN4cuda3std6ranges3__45__cpo4swapE:
	.zero	1
	.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
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC67:
	.long	1203961856
	.align 4
.LC74:
	.long	1065353215
	.align 4
.LC76:
	.long	796917760
	.align 4
.LC77:
	.long	1065353216
	.align 4
.LC79:
	.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:

#ifndef _FILTER_H_
#define _FILTER_H_

//////////////////////////////////////////////////////////////
// dependencies
/////////////////////////////////////////////////////////////
#include <random>
#include <iostream>
#include <string>

#include <hiprand/hiprand.h>
#include <hiprand/hiprand_kernel.h>

//#include "utilities.cuh"
#include "settings.cuh"
#include "hipcub/hipcub.hpp" // for block reduction of weights

//extern double get_current_time();
extern void checkCUDAError(const std::string msg);


//////////////////////////////////////////////////////////////
// Device functions
/////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////
// motion equations
/////////////////////////////////////////////////////////////
__device__ float dynamicsAlpha( float alpha, float beta, float alpha_dot, float beta_dot );
__device__ float dynamicsBeta( float alpha, float beta, float alpha_dot );

//////////////////////////////////////////////////////////////
// project world points to image points transforming the camera
// or each point
/////////////////////////////////////////////////////////////
__device__ void projectWorldPt( const float *camera, const float *worldPt, const float states[], float imPt[] );

//////////////////////////////////////////////////////////////
// transform a single world point
/////////////////////////////////////////////////////////////
__device__ void transformPt( const float T[12], const float *worldPt, float pt3D[3] );


//////////////////////////////////////////////////////////////
//  Make a (truncated) transformation matrix given the states
/////////////////////////////////////////////////////////////
__device__ void statesToTransform( const float states[], float T[] );

    
//////////////////////////////////////////////////////////////
// Transform camera to new reference frame given a state
/////////////////////////////////////////////////////////////
__device__ void transformCamera( const float *camera, const float states[], float newCamera[] );
    
//////////////////////////////////////////////////////////////
// Project 3D world point using a given camera to a 2D point
/////////////////////////////////////////////////////////////
__device__ void project( const float worldPt[], const float *camera, float imPt[] );

//////////////////////////////////////////////////////////////
// compute normal from 2 image points
/////////////////////////////////////////////////////////////
__device__ void computeNormal( const float *imPts, float *n );

//////////////////////////////////////////////////////////////
// search for interval containing val in arr
/////////////////////////////////////////////////////////////
__device__ int findInterval( float val, const float *arr );

//////////////////////////////////////////////////////////////
// update kernel
/////////////////////////////////////////////////////////////
__global__ void observation_kernel(hipTextureObject_t texObj, const float *cameraPtr, const float *worldPtsPtr, float *statesPtr, float *weightPtr, float *weightSum);

__global__ void motion_kernel( hiprandState *rngStates, float time_left, float *statesPtr );


/*************************************** RESAMPLE *************************************/
//////////////////////////////////////////////////////////////
// resample and normalize kernel 
/////////////////////////////////////////////////////////////
__global__ void normalize_kernel( float *weightPtr, const float *weightSum );
__global__ void resample_kernel(  hiprandState *rngStates, const float *weights, const float *fromStates, float *toStates );

//////////////////////////////////////////////////////////////
// mean kernel
/////////////////////////////////////////////////////////////
__global__ void mean_kernel( const float *statesPtr, float *meanStates );

//////////////////////////////////////////////////////////////
// PRNG
/////////////////////////////////////////////////////////////
__global__ void setupRNG_kernel( hiprandState *rngStates, unsigned int seed );

class Filter
{
public:

    Filter(){}
    
    Filter( const float mu[], const float sigma[], const float worldPoints[] );		

    ~Filter();

//////////////////////////////////////////////////////////////
// initalize particles 
/////////////////////////////////////////////////////////////
    void init( const float mu[], const float sigma[], const float worldPoints[] );

    
//////////////////////////////////////////////////////////////
// update motion and observation
/////////////////////////////////////////////////////////////
    void update( float startTime, float endTime, const float *d_camera, hipTextureObject_t texObj, hipStream_t motionStream=0 );

//////////////////////////////////////////////////////////////
// resample
/////////////////////////////////////////////////////////////
    void resample();

//////////////////////////////////////////////////////////////
// mean
/////////////////////////////////////////////////////////////
    void mean();

//////////////////////////////////////////////////////////////
// operator []
/////////////////////////////////////////////////////////////
    float operator[]( int idx )
	{
	    if( idx>=0 && idx<N_STATES )
		return h_meanStates[idx];

	    std::cerr << "Filter: Out of bounds\n";
	    return 0.0f;
	}

    
private:

//////////////////////////////////////////////////////////////
// normalize and compute cumulative sum
/////////////////////////////////////////////////////////////
    void normalize();

//////////////////////////////////////////////////////////////
// member variables
/////////////////////////////////////////////////////////////


    float h_meanStates[N_STATES] = {0.0f};
    float *d_meanStates;

    float *states;
    float *d_states1;
    float *d_states2;
    
    float *d_weights;

    float *d_worldPoints;

    float *d_weightSum;
    float *d_cumsum;

    int h_resampleIdx[N_PARTICLES];
    int *d_resampleIdx;

    hiprandState *d_rngStates;

    void *d_temp_storage;
    size_t temp_storage_bytes;
};



#endif /* _FILTER_H_ */

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

                                        # End of file scope inline assembly
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

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

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

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

	.end_amdgpu_metadata
