/*
 * Copyright 2008, Karen Hains, UWA . All rights reserved.
 *
 * NOTICE TO USER:
 *
 * This source code is subject to NVIDIA ownership rights under U.S. and
 * international Copyright laws. Users and possessors of this source code
 * are hereby granted a nonexclusive, royalty-free license to use this code
 * in individual and commercial software.
 *
 * WE MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
 * CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR
 * IMPLIED WARRANTY OF ANY KIND.
 */

#ifndef _REDUCE_KERNELS_
#define _REDUCE_KERNELS_

#include "global_defines.cuh"
#include <cstdio>
#include <cmath>

///////////////////////////////////////////////////////////
// Simple Hello World kernel
// @param gpu_odata output data in global memory
///////////////////////////////////////////////////////////

#define SUM
//#define MINIMUM
//#define MAXIMUM


#ifndef MIN
#define MIN(x,y) ((x < y) ? x : y)
#endif

#ifndef MAX
#define MAX(x,y) ((x > y) ? x : y)
#endif

// Utility class used to avoid linker errors with extern
// unsized shared memory arrays with templated type
template<class T>
struct SharedMemory
{
	__device__ inline operator       T*()
	{
		extern __shared__ int __smem[];
		return (T*)__smem;
	}

	__device__ inline operator const T*() const
    																		{
		extern __shared__ int __smem[];
		return (T*)__smem;
    																		}
};

// specialize for FLOATING to avoid unaligned memory
// access compile errors

#ifdef USING_DOUBLE
template<>
struct SharedMemory<double>
{
	__device__ inline operator       double*()
    														{
		extern __shared__ double __smem_d[];
		return (double*)__smem_d;
    														}

	__device__ inline operator const double*() const
    														{
		extern __shared__ double __smem_d[];
		return (double*)__smem_d;
    														}
};
#endif //USING_DOUBLE

#ifndef USING_DOUBLE
template<>
struct SharedMemory<float>
{
	__device__ inline operator       float*()
    														{
		extern __shared__ float __smem_d[];
		return (float*)__smem_d;
    														}

	__device__ inline operator const float*() const
    														{
		extern __shared__ float __smem_d[];
		return (float*)__smem_d;
    														}
};
#endif //USING_FLOAT

/*
    Parallel sum reduction using shared memory
    - takes log(n) steps for n input elements
    - uses n threads
    - only works for power-of-2 arrays
 */

/* This reduction interleaves which threads are active by using the modulo
   operator.  This operator is very expensive on GPUs, and the interleaved
   inactivity means that no whole warps are active, which is also very
   inefficient */

unsigned int nextPow2( unsigned int x ) {
	--x;
	x |= x >> 1;
	x |= x >> 2;
	x |= x >> 4;
	x |= x >> 8;
	x |= x >> 16;
	return ++x;
}

void getNumBlocksAndThreads(int whichKernel, int n, int maxBlocks, int maxThreads, int &blocks, int &threads)
{
	//get device capability, to avoid block/grid size excceed the upbound
	cudaDeviceProp prop;
	int device;
	cudaGetDevice(&device);
	cudaGetDeviceProperties(&prop, device);

	if (whichKernel < 3)
	{
		threads = (n < maxThreads) ? nextPow2(n) : maxThreads;
		blocks = (n + threads - 1) / threads;
	}
	else
	{
		threads = (n < maxThreads*2) ? nextPow2((n + 1)/ 2) : maxThreads;
		blocks = (n + (threads * 2 - 1)) / (threads * 2);
	}

	if ((float)threads*blocks > (float)prop.maxGridSize[0] * prop.maxThreadsPerBlock)
	{
		printf("n is too large, please choose a smaller number!\n");
	}

	if (blocks > prop.maxGridSize[0])
	{
		printf("Grid size <%d> excceeds the device capability <%d>, set block size as %d (original %d)\n",
				blocks, prop.maxGridSize[0], threads*2, threads);

		blocks /= 2;
		threads *= 2;
	}

	if (whichKernel == 6)
	{
		blocks = MIN(maxBlocks, blocks);
	}
#ifdef REPORT
	printf("CUDA Kernels will be launched with:\n");
	printf("\tnumber of blocks=%d\n", blocks);
	printf("\tnumber of threads=%d\n", threads);
#endif //REPORT

}

template <class T>
__global__ void
reduce0(T *g_idata, T *g_odata, unsigned int n)
{
	T *sdata = SharedMemory<T>();

	// load shared mem
	unsigned int tid = threadIdx.x;
	unsigned int i = blockIdx.x*blockDim.x + threadIdx.x;

#ifdef SUM
	sdata[tid] = (i < n) ? g_idata[i] : 0;
#endif
#ifdef MINIMUM
	sdata[tid] = (i < n) ? g_idata[i] : 0;
#endif
#ifdef MAXIMUM
	sdata[tid] = (i < n) ? g_idata[i] : 0;
#endif

	__syncthreads();

	// do reduction in shared mem
	for(unsigned int s=1; s < blockDim.x; s *= 2) {
		// modulo arithmetic is slow!
		if ((tid % (2*s)) == 0) {
#ifdef SUM
			sdata[tid] += sdata[tid + s];
#endif
#ifdef MINIMUM
			sdata[tid] = min(sdata[tid] ,  sdata[tid + s]);
#endif
#ifdef MAXIMUM
			sdata[tid] = max(sdata[tid] ,  sdata[tid + s]);
#endif

		}
		__syncthreads();
	}

	// write result for this block to global mem
	if (tid == 0) g_odata[blockIdx.x] = sdata[0];
}

template <class T, unsigned int blockSize, bool nIsPow2>
__global__ void
reduce61(T *g_idata, T *g_odata, unsigned int n)
{
	//original
	T *sdata = SharedMemory<T>();

	// perform first level of reduction,
	// reading from global memory, writing to shared memory
	unsigned int tid = threadIdx.x;
	unsigned int i = blockIdx.x*blockSize*2 + threadIdx.x;
	unsigned int gridSize = blockSize*2*gridDim.x;

	T mySum = 0;

	// we reduce multiple elements per thread.  The number is determined by the
	// number of active thread blocks (via gridDim).  More blocks will result
	// in a larger gridSize and therefore fewer elements per thread
	while (i < n)
	{
		mySum += g_idata[i];

		// ensure we don't read out of bounds -- this is optimized away for powerOf2 sized arrays
		if (nIsPow2 || i + blockSize < n)
			mySum += g_idata[i+blockSize];

		i += gridSize;
	}

	// each thread puts its local sum into shared memory
	sdata[tid] = mySum;
	__syncthreads();


	// do reduction in shared mem
	if (blockSize >= 512)
	{
		if (tid < 256)
		{
			sdata[tid] = mySum = mySum + sdata[tid + 256];
		}

		__syncthreads();
	}

	if (blockSize >= 256)
	{
		if (tid < 128)
		{
			sdata[tid] = mySum = mySum + sdata[tid + 128];
		}

		__syncthreads();
	}

	if (blockSize >= 128)
	{
		if (tid <  64)
		{
			sdata[tid] = mySum = mySum + sdata[tid +  64];
		}

		__syncthreads();
	}

	if (tid < 32)
	{
		// now that we are using warp-synchronous programming (below)
		// we need to declare our shared memory volatile so that the compiler
		// doesn't reorder stores to it and induce incorrect behavior.
		volatile T *smem = sdata;

		if (blockSize >=  64)
		{
			smem[tid] = mySum = mySum + smem[tid + 32];
		}

		if (blockSize >=  32)
		{
			smem[tid] = mySum = mySum + smem[tid + 16];
		}

		if (blockSize >=  16)
		{
			smem[tid] = mySum = mySum + smem[tid +  8];
		}

		if (blockSize >=   8)
		{
			smem[tid] = mySum = mySum + smem[tid +  4];
		}

		if (blockSize >=   4)
		{
			smem[tid] = mySum = mySum + smem[tid +  2];
		}

		if (blockSize >=   2)
		{
			smem[tid] = mySum = mySum + smem[tid +  1];
		}
	}

	// write result for this block to global mem
	if (tid == 0)
		g_odata[blockIdx.x] = sdata[0];
}



template <class T, unsigned int blockSize, bool nIsPow2>
__global__ void
reduce6(T *g_idata, T *g_odata, unsigned int n)
{
	T *sdata = SharedMemory<T>();

	// perform first level of reduction,
	// reading from global memory, writing to shared memory
	unsigned int tid = threadIdx.x;
	unsigned int i = blockIdx.x*blockSize*2 + threadIdx.x;
	unsigned int gridSize = blockSize*2*gridDim.x;

#ifdef SUM
	T mySum = 0;
#endif
#ifdef MINIMUM
	T myMin = g_idata[i];//g_idata[0];
#endif
#ifdef MAXIMUM
	T myMax = g_idata[i];//g_idata[0];
#endif
	// we reduce multiple elements per thread.  The number is determined by the
	// number of active thread blocks (via gridDim).  More blocks will result
	// in a larger gridSize and therefore fewer elements per thread
	while (i < n)
	{
#ifdef SUM
		mySum = mySum+ g_idata[i];
#endif
#ifdef MINIMUM
		myMin=min(myMin, g_idata[i]);
#endif
#ifdef MAXIMUM
		myMax=max(myMax, g_idata[i]);
#endif

		// ensure we don't read out of bounds -- this is optimized away for powerOf2 sized arrays
		if (nIsPow2 || i + blockSize < n){
#ifdef SUM
			mySum = mySum + g_idata[i+blockSize];
#endif
#ifdef MINIMUM
			myMin=min(myMin, g_idata[i+blockSize]);
#endif
#ifdef MAXIMUM
			myMax=max(myMax, g_idata[i+blockSize]);
#endif
		}
		i += gridSize;
	}

	// each thread puts its local sum into shared memory
#ifdef SUM
	sdata[tid] = mySum;
#endif
#ifdef MINIMUM
	sdata[tid] = myMin;
#endif
#ifdef MAXIMUM
	sdata[tid] = myMax;
#endif
	__syncthreads();


	// do reduction in shared mem
#ifdef SUM
	if (blockSize >= 512) { if (tid < 256) { sdata[tid] = mySum = mySum + sdata[tid + 256]; } __syncthreads(); }
	if (blockSize >= 256) { if (tid < 128) { sdata[tid] = mySum = mySum + sdata[tid + 128]; } __syncthreads(); }
	if (blockSize >= 128) { if (tid <  64) { sdata[tid] = mySum = mySum + sdata[tid +  64]; } __syncthreads(); }
#endif
#ifdef MINIMUM
	if (blockSize >= 512) { if (tid < 256) { sdata[tid] = myMin = min(myMin , sdata[tid + 256]); } __syncthreads(); }
	if (blockSize >= 256) { if (tid < 128) { sdata[tid] = myMin = min(myMin , sdata[tid + 128]); } __syncthreads(); }
	if (blockSize >= 128) { if (tid <  64) { sdata[tid] = myMin = min(myMin , sdata[tid +  64]); } __syncthreads(); }
#endif
#ifdef MAXIMUM
	if (blockSize >= 512) { if (tid < 256) { sdata[tid] = myMax = max(myMax , sdata[tid + 256]); } __syncthreads(); }
	if (blockSize >= 256) { if (tid < 128) { sdata[tid] = myMax = max(myMax , sdata[tid + 128]); } __syncthreads(); }
	if (blockSize >= 128) { if (tid <  64) { sdata[tid] = myMax = max(myMax , sdata[tid +  64]); } __syncthreads(); }
#endif
	if (tid < 32)
	{
		// now that we are using warp-synchronous programming (below)
		// we need to declare our shared memory volatile so that the compiler
		// doesn't reorder stores to it and induce incorrect behavior.
		volatile T* smem = sdata;
#ifdef SUM
		if (blockSize >=  64) { smem[tid] = mySum = mySum + smem[tid + 32]; }
		if (blockSize >=  32) { smem[tid] = mySum = mySum + smem[tid + 16]; }
		if (blockSize >=  16) { smem[tid] = mySum = mySum + smem[tid +  8]; }
		if (blockSize >=   8) { smem[tid] = mySum = mySum + smem[tid +  4]; }
		if (blockSize >=   4) { smem[tid] = mySum = mySum + smem[tid +  2]; }
		if (blockSize >=   2) { smem[tid] = mySum = mySum + smem[tid +  1]; }
#endif
#ifdef MINIMUM
		if (blockSize >=  64) { smem[tid] = myMin = min(myMin , smem[tid + 32]); }
		if (blockSize >=  32) { smem[tid] = myMin = min(myMin , smem[tid + 16]); }
		if (blockSize >=  16) { smem[tid] = myMin = min(myMin , smem[tid +  8]); }
		if (blockSize >=   8) { smem[tid] = myMin = min(myMin , smem[tid +  4]); }
		if (blockSize >=   4) { smem[tid] = myMin = min(myMin , smem[tid +  2]); }
		if (blockSize >=   2) { smem[tid] = myMin = min(myMin , smem[tid +  1]); }
#endif
#ifdef MAXIMUM
		if (blockSize >=  64) { smem[tid] = myMax = max(myMax , smem[tid + 32]); }
		if (blockSize >=  32) { smem[tid] = myMax = max(myMax , smem[tid + 16]); }
		if (blockSize >=  16) { smem[tid] = myMax = max(myMax , smem[tid +  8]); }
		if (blockSize >=   8) { smem[tid] = myMax = max(myMax , smem[tid +  4]); }
		if (blockSize >=   4) { smem[tid] = myMax = max(myMax , smem[tid +  2]); }
		if (blockSize >=   2) { smem[tid] = myMax = max(myMax , smem[tid +  1]); }
#endif
	}

	// write result for this block to global mem
	if (tid == 0)
		g_odata[blockIdx.x] = sdata[0];
}






bool isPow2(unsigned int x)
{
	return ((x&(x-1))==0);
}



////////////////////////////////////////////////////////////////////////////////
// Wrapper function for kernel launch
////////////////////////////////////////////////////////////////////////////////
template <class T>
void
reduce(int size, int threads, int blocks,
		int whichKernel, T *d_idata, T *d_odata)
{
	dim3 dimBlock(threads, 1, 1);
	dim3 dimGrid(blocks, 1, 1);

	// when there is only one warp per block, we need to allocate two warps
	// worth of shared memory so that we don't index shared memory out of bounds
	int smemSize = (threads <= 32) ? 2 * threads * sizeof(T) : threads * sizeof(T);

	// choose which of the optimized versions of reduction to launch
	switch (whichKernel)
	{
	case 0:
		reduce0<T><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size);
		break;
	case 6:
	default:
		if (isPow2(size))
		{
			switch (threads)
			{
			case 512:
				reduce6<T, 512, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 256:
				reduce6<T, 256, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 128:
				reduce6<T, 128, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 64:
				reduce6<T,  64, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 32:
				reduce6<T,  32, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 16:
				reduce6<T,  16, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  8:
				reduce6<T,   8, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  4:
				reduce6<T,   4, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  2:
				reduce6<T,   2, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  1:
				reduce6<T,   1, true><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			}
		}
		else
		{
			switch (threads)
			{
			case 512:
				reduce6<T, 512, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 256:
				reduce6<T, 256, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 128:
				reduce6<T, 128, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 64:
				reduce6<T,  64, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 32:
				reduce6<T,  32, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case 16:
				reduce6<T,  16, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  8:
				reduce6<T,   8, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  4:
				reduce6<T,   4, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  2:
				reduce6<T,   2, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			case  1:
				reduce6<T,   1, false><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size); break;
			}
		}
		break;
	}
}




// Instantiate the reduction function for 3 types
template void
reduce<int>(int size, int threads, int blocks,
		int whichKernel, int *d_idata, int *d_odata);

template void
reduce<float>(int size, int threads, int blocks,
		int whichKernel, float *d_idata, float *d_odata);

template void
reduce<double>(int size, int threads, int blocks,
		int whichKernel, double *d_idata, double *d_odata);


//void getNumBlocksAndThreads(int whichKernel, int n, int maxBlocks, int maxThreads, int &blocks, int &threads);



FLOATING reduce_sum(FLOATING *d_idata, const int big_array_length){
	int whichKernel = 6;
	int maxThreads = 256;  // number of threads per block
	int maxBlocks = min(33554432/maxThreads , 65535);
	int numBlocks, numThreads;
	int cpuFinalThreshold=1;


	getNumBlocksAndThreads(whichKernel, big_array_length, maxBlocks, maxThreads, numBlocks, numThreads);

	if (numBlocks == 1) cpuFinalThreshold = 1;
	FLOATING* d_odata = NULL;
	cudaMalloc((void**) &d_odata, numBlocks*sizeof(FLOATING));
	FLOATING* h_odata = (FLOATING*) malloc(numBlocks*sizeof(FLOATING));

	reduce<FLOATING>(big_array_length, numThreads, numBlocks, whichKernel, d_idata, d_odata);
	cudaDeviceSynchronize();

	FLOATING gpu_result_sum=0.0;
	bool needReadBack = true;

	int s=numBlocks;
	int kernel = whichKernel;

	while (s > cpuFinalThreshold)
	{
		int threads = 0, blocks = 0;
		getNumBlocksAndThreads(kernel, s, maxBlocks, maxThreads, blocks, threads);

		reduce<FLOATING>(s, threads, blocks, kernel, d_odata, d_odata);

		if (kernel < 3)
		{
			s = (s + threads - 1) / threads;
		}
		else
		{
			s = (s + (threads*2-1)) / (threads*2);
		}
	}

	if (s > 1)
	{
		// copy result from device to host
		cudaMemcpy(h_odata, d_odata, s * sizeof(FLOATING), cudaMemcpyDeviceToHost);

		for (int i=0; i < s; i++)
		{
			gpu_result_sum += h_odata[i];
		}

		needReadBack = false;
	}

	if (needReadBack)
	{
		// copy final sum from device to host
		cudaMemcpy(&gpu_result_sum, d_odata, sizeof(FLOATING), cudaMemcpyDeviceToHost);
	}

	cudaDeviceSynchronize();


#ifdef REPORT
	printf ( " [universal]gpu_result_sum: %30.10f \n", gpu_result_sum);
#endif //REPORT
	cudaFree(d_odata);
	return gpu_result_sum;
}


#endif // #ifndef _HELLOWORLD_KERNEL_H_

	.file	"tmpxft_003a4984_00000000-6_kernels3.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4577:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4577:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0, @function
_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0:
.LFB5429:
	.cfi_startproc
	jmp	cudaLaunchKernel@PLT
	.cfi_endproc
.LFE5429:
	.size	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0, .-_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	.type	_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j:
.LFB4723:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L3
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj1ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L3:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L5
	call	__stack_chk_fail@PLT
.L5:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4723:
	.size	_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j:
.LFB4721:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L8
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj2ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L8:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L10
	call	__stack_chk_fail@PLT
.L10:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4721:
	.size	_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j:
.LFB4719:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L12
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj4ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L12:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4719:
	.size	_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j:
.LFB4717:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L16
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj8ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L16:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L18
	call	__stack_chk_fail@PLT
.L18:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4717:
	.size	_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j:
.LFB4715:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L20
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj16ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L20:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L22
	call	__stack_chk_fail@PLT
.L22:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4715:
	.size	_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j:
.LFB4713:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L24
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj32ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L24:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4713:
	.size	_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j:
.LFB4711:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L28
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj64ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L28:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L30
	call	__stack_chk_fail@PLT
.L30:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4711:
	.size	_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j:
.LFB4709:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L32
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj128ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L32:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L34
	call	__stack_chk_fail@PLT
.L34:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4709:
	.size	_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j:
.LFB4707:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L36
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj256ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L36:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L38
	call	__stack_chk_fail@PLT
.L38:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4707:
	.size	_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j:
.LFB4705:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L40
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj512ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L40:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L42
	call	__stack_chk_fail@PLT
.L42:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4705:
	.size	_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j:
.LFB4703:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L44
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj1ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L44:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L46
	call	__stack_chk_fail@PLT
.L46:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4703:
	.size	_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j:
.LFB4701:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L48
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj2ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.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
.LFE4701:
	.size	_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j:
.LFB4699:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L52
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj4ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L52:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L54
	call	__stack_chk_fail@PLT
.L54:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4699:
	.size	_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j, @function
_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j:
.LFB4697:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L56
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj8ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L56:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L58
	call	__stack_chk_fail@PLT
.L58:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4697:
	.size	_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j, .-_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j:
.LFB4695:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L60
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj16ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L60:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L62
	call	__stack_chk_fail@PLT
.L62:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4695:
	.size	_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j:
.LFB4693:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L64
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj32ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L64:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L66
	call	__stack_chk_fail@PLT
.L66:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4693:
	.size	_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j
	.type	_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j, @function
_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j:
.LFB4691:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L68
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj64ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L68:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L70
	call	__stack_chk_fail@PLT
.L70:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4691:
	.size	_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j, .-_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j:
.LFB4689:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L72
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj128ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L72:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L74
	call	__stack_chk_fail@PLT
.L74:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4689:
	.size	_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j:
.LFB4687:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L76
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj256ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L76:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L78
	call	__stack_chk_fail@PLT
.L78:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4687:
	.size	_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j
	.type	_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j, @function
_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j:
.LFB4685:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L80
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IdLj512ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L80:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L82
	call	__stack_chk_fail@PLT
.L82:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4685:
	.size	_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j, .-_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j
	.type	_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j, @function
_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j:
.LFB4683:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L84
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce0IdEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L84:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L86
	call	__stack_chk_fail@PLT
.L86:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4683:
	.size	_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j, .-_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j:
.LFB4681:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L88
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj1ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L88:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L90
	call	__stack_chk_fail@PLT
.L90:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4681:
	.size	_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j:
.LFB4679:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L92
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj2ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L92:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L94
	call	__stack_chk_fail@PLT
.L94:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4679:
	.size	_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j:
.LFB4677:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L96
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj4ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L96:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L98
	call	__stack_chk_fail@PLT
.L98:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4677:
	.size	_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j:
.LFB4675:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L100
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj8ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L100:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L102
	call	__stack_chk_fail@PLT
.L102:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4675:
	.size	_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j:
.LFB4673:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L104
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj16ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L104:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L106
	call	__stack_chk_fail@PLT
.L106:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4673:
	.size	_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j:
.LFB4671:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L108
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj32ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L108:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L110
	call	__stack_chk_fail@PLT
.L110:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4671:
	.size	_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j:
.LFB4669:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L112
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj64ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L112:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L114
	call	__stack_chk_fail@PLT
.L114:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4669:
	.size	_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j:
.LFB4667:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L116
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj128ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L116:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L118
	call	__stack_chk_fail@PLT
.L118:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4667:
	.size	_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j:
.LFB4665:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L120
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj256ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L120:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L122
	call	__stack_chk_fail@PLT
.L122:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4665:
	.size	_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j:
.LFB4663:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L124
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj512ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L124:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L126
	call	__stack_chk_fail@PLT
.L126:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4663:
	.size	_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j:
.LFB4661:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L128
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj1ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L128:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L130
	call	__stack_chk_fail@PLT
.L130:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4661:
	.size	_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j:
.LFB4659:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L132
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj2ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L132:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L134
	call	__stack_chk_fail@PLT
.L134:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4659:
	.size	_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j:
.LFB4657:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L136
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj4ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L136:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L138
	call	__stack_chk_fail@PLT
.L138:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4657:
	.size	_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j, @function
_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j:
.LFB4655:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L140
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj8ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L140:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L142
	call	__stack_chk_fail@PLT
.L142:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4655:
	.size	_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j, .-_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j:
.LFB4653:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L144
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj16ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L144:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L146
	call	__stack_chk_fail@PLT
.L146:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4653:
	.size	_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j:
.LFB4651:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L148
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj32ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L148:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L150
	call	__stack_chk_fail@PLT
.L150:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4651:
	.size	_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j
	.type	_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j, @function
_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j:
.LFB4649:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L152
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj64ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L152:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L154
	call	__stack_chk_fail@PLT
.L154:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4649:
	.size	_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j, .-_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j:
.LFB4647:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L156
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj128ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L156:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L158
	call	__stack_chk_fail@PLT
.L158:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4647:
	.size	_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j:
.LFB4645:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L160
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj256ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L160:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L162
	call	__stack_chk_fail@PLT
.L162:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4645:
	.size	_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j
	.type	_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j, @function
_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j:
.LFB4643:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L164
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IfLj512ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L164:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L166
	call	__stack_chk_fail@PLT
.L166:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4643:
	.size	_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j, .-_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j
	.type	_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j, @function
_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j:
.LFB4641:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L168
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce0IfEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L168:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L170
	call	__stack_chk_fail@PLT
.L170:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4641:
	.size	_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j, .-_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j:
.LFB4639:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L172
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj1ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L172:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L174
	call	__stack_chk_fail@PLT
.L174:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4639:
	.size	_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j:
.LFB4637:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L176
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj2ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L176:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L178
	call	__stack_chk_fail@PLT
.L178:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4637:
	.size	_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j:
.LFB4635:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L180
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj4ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L180:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L182
	call	__stack_chk_fail@PLT
.L182:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4635:
	.size	_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j:
.LFB4633:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L184
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj8ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L184:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L186
	call	__stack_chk_fail@PLT
.L186:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4633:
	.size	_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j:
.LFB4631:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L188
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj16ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L188:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L190
	call	__stack_chk_fail@PLT
.L190:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4631:
	.size	_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j:
.LFB4629:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L192
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj32ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L192:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L194
	call	__stack_chk_fail@PLT
.L194:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4629:
	.size	_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j:
.LFB4627:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L196
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj64ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L196:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L198
	call	__stack_chk_fail@PLT
.L198:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4627:
	.size	_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j:
.LFB4625:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L200
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj128ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L200:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L202
	call	__stack_chk_fail@PLT
.L202:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4625:
	.size	_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j:
.LFB4623:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L204
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj256ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L204:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L206
	call	__stack_chk_fail@PLT
.L206:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4623:
	.size	_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j:
.LFB4621:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L208
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj512ELb0EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L208:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L210
	call	__stack_chk_fail@PLT
.L210:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4621:
	.size	_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j:
.LFB4619:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L212
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj1ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L212:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L214
	call	__stack_chk_fail@PLT
.L214:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4619:
	.size	_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j:
.LFB4617:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L216
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj2ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L216:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L218
	call	__stack_chk_fail@PLT
.L218:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4617:
	.size	_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j:
.LFB4615:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L220
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj4ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L220:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L222
	call	__stack_chk_fail@PLT
.L222:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4615:
	.size	_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j
	.type	_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j, @function
_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j:
.LFB4613:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L224
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj8ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L224:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L226
	call	__stack_chk_fail@PLT
.L226:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4613:
	.size	_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j, .-_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j:
.LFB4611:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L228
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj16ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L228:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L230
	call	__stack_chk_fail@PLT
.L230:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4611:
	.size	_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j:
.LFB4609:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L232
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj32ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L232:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L234
	call	__stack_chk_fail@PLT
.L234:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4609:
	.size	_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j
	.type	_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j, @function
_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j:
.LFB4607:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L236
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj64ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L236:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L238
	call	__stack_chk_fail@PLT
.L238:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4607:
	.size	_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j, .-_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j:
.LFB4605:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L240
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj128ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L240:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L242
	call	__stack_chk_fail@PLT
.L242:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4605:
	.size	_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j:
.LFB4603:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L244
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj256ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L244:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L246
	call	__stack_chk_fail@PLT
.L246:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4603:
	.size	_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j
	.type	_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j, @function
_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j:
.LFB4601:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L248
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce6IiLj512ELb1EEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L248:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L250
	call	__stack_chk_fail@PLT
.L250:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4601:
	.size	_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j, .-_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j
	.type	_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j, @function
_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j:
.LFB4599:
	.cfi_startproc
	subq	$120, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 24(%rsp)
	leaq	48(%rsp), %rcx
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 80(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 96(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L252
	pushq	48(%rsp)
	.cfi_def_cfa_offset 136
	leaq	_Z7reduce0IiEvPT_S1_j(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 144
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	96(%rsp), %r9
	call	_Z16cudaLaunchKernelIcE9cudaErrorPT_4dim3S3_PPvmP11CUstream_st.isra.0
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L252:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L254
	call	__stack_chk_fail@PLT
.L254:
	addq	$120, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4599:
	.size	_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j, .-_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j
	.section	.text._Z7reduce6IdLj1ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj1ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj1ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj1ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj1ELb0EEvPT_S1_j:
.LFB5108:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5108:
	.size	_Z7reduce6IdLj1ELb0EEvPT_S1_j, .-_Z7reduce6IdLj1ELb0EEvPT_S1_j
	.section	.text._Z7reduce0IiEvPT_S1_j,"axG",@progbits,_Z7reduce0IiEvPT_S1_j,comdat
	.weak	_Z7reduce0IiEvPT_S1_j
	.type	_Z7reduce0IiEvPT_S1_j, @function
_Z7reduce0IiEvPT_S1_j:
.LFB5045:
	.cfi_startproc
	endbr64
	jmp	_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5045:
	.size	_Z7reduce0IiEvPT_S1_j, .-_Z7reduce0IiEvPT_S1_j
	.section	.text._Z7reduce6IiLj512ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj512ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj512ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj512ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj512ELb1EEvPT_S1_j:
.LFB5047:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5047:
	.size	_Z7reduce6IiLj512ELb1EEvPT_S1_j, .-_Z7reduce6IiLj512ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj256ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj256ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj256ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj256ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj256ELb1EEvPT_S1_j:
.LFB5048:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5048:
	.size	_Z7reduce6IiLj256ELb1EEvPT_S1_j, .-_Z7reduce6IiLj256ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj128ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj128ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj128ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj128ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj128ELb1EEvPT_S1_j:
.LFB5049:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5049:
	.size	_Z7reduce6IiLj128ELb1EEvPT_S1_j, .-_Z7reduce6IiLj128ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj64ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj64ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj64ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj64ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj64ELb1EEvPT_S1_j:
.LFB5050:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5050:
	.size	_Z7reduce6IiLj64ELb1EEvPT_S1_j, .-_Z7reduce6IiLj64ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj32ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj32ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj32ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj32ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj32ELb1EEvPT_S1_j:
.LFB5051:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5051:
	.size	_Z7reduce6IiLj32ELb1EEvPT_S1_j, .-_Z7reduce6IiLj32ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj16ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj16ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj16ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj16ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj16ELb1EEvPT_S1_j:
.LFB5052:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5052:
	.size	_Z7reduce6IiLj16ELb1EEvPT_S1_j, .-_Z7reduce6IiLj16ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj8ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj8ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj8ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj8ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj8ELb1EEvPT_S1_j:
.LFB5053:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5053:
	.size	_Z7reduce6IiLj8ELb1EEvPT_S1_j, .-_Z7reduce6IiLj8ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj4ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj4ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj4ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj4ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj4ELb1EEvPT_S1_j:
.LFB5054:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5054:
	.size	_Z7reduce6IiLj4ELb1EEvPT_S1_j, .-_Z7reduce6IiLj4ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj2ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj2ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj2ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj2ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj2ELb1EEvPT_S1_j:
.LFB5055:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5055:
	.size	_Z7reduce6IiLj2ELb1EEvPT_S1_j, .-_Z7reduce6IiLj2ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj1ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj1ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj1ELb1EEvPT_S1_j
	.type	_Z7reduce6IiLj1ELb1EEvPT_S1_j, @function
_Z7reduce6IiLj1ELb1EEvPT_S1_j:
.LFB5056:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5056:
	.size	_Z7reduce6IiLj1ELb1EEvPT_S1_j, .-_Z7reduce6IiLj1ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IiLj512ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj512ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj512ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj512ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj512ELb0EEvPT_S1_j:
.LFB5057:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5057:
	.size	_Z7reduce6IiLj512ELb0EEvPT_S1_j, .-_Z7reduce6IiLj512ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj256ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj256ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj256ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj256ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj256ELb0EEvPT_S1_j:
.LFB5058:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5058:
	.size	_Z7reduce6IiLj256ELb0EEvPT_S1_j, .-_Z7reduce6IiLj256ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj128ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj128ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj128ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj128ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj128ELb0EEvPT_S1_j:
.LFB5059:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5059:
	.size	_Z7reduce6IiLj128ELb0EEvPT_S1_j, .-_Z7reduce6IiLj128ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj64ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj64ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj64ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj64ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj64ELb0EEvPT_S1_j:
.LFB5060:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5060:
	.size	_Z7reduce6IiLj64ELb0EEvPT_S1_j, .-_Z7reduce6IiLj64ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj32ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj32ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj32ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj32ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj32ELb0EEvPT_S1_j:
.LFB5061:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5061:
	.size	_Z7reduce6IiLj32ELb0EEvPT_S1_j, .-_Z7reduce6IiLj32ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj16ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj16ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj16ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj16ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj16ELb0EEvPT_S1_j:
.LFB5062:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5062:
	.size	_Z7reduce6IiLj16ELb0EEvPT_S1_j, .-_Z7reduce6IiLj16ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj8ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj8ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj8ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj8ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj8ELb0EEvPT_S1_j:
.LFB5063:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5063:
	.size	_Z7reduce6IiLj8ELb0EEvPT_S1_j, .-_Z7reduce6IiLj8ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj4ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj4ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj4ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj4ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj4ELb0EEvPT_S1_j:
.LFB5064:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5064:
	.size	_Z7reduce6IiLj4ELb0EEvPT_S1_j, .-_Z7reduce6IiLj4ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj2ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj2ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj2ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj2ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj2ELb0EEvPT_S1_j:
.LFB5065:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5065:
	.size	_Z7reduce6IiLj2ELb0EEvPT_S1_j, .-_Z7reduce6IiLj2ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IiLj1ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IiLj1ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IiLj1ELb0EEvPT_S1_j
	.type	_Z7reduce6IiLj1ELb0EEvPT_S1_j, @function
_Z7reduce6IiLj1ELb0EEvPT_S1_j:
.LFB5066:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j
	.cfi_endproc
.LFE5066:
	.size	_Z7reduce6IiLj1ELb0EEvPT_S1_j, .-_Z7reduce6IiLj1ELb0EEvPT_S1_j
	.section	.text._Z7reduce0IfEvPT_S1_j,"axG",@progbits,_Z7reduce0IfEvPT_S1_j,comdat
	.weak	_Z7reduce0IfEvPT_S1_j
	.type	_Z7reduce0IfEvPT_S1_j, @function
_Z7reduce0IfEvPT_S1_j:
.LFB5067:
	.cfi_startproc
	endbr64
	jmp	_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5067:
	.size	_Z7reduce0IfEvPT_S1_j, .-_Z7reduce0IfEvPT_S1_j
	.section	.text._Z7reduce6IfLj512ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj512ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj512ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj512ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj512ELb1EEvPT_S1_j:
.LFB5068:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5068:
	.size	_Z7reduce6IfLj512ELb1EEvPT_S1_j, .-_Z7reduce6IfLj512ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj256ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj256ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj256ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj256ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj256ELb1EEvPT_S1_j:
.LFB5069:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5069:
	.size	_Z7reduce6IfLj256ELb1EEvPT_S1_j, .-_Z7reduce6IfLj256ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj128ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj128ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj128ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj128ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj128ELb1EEvPT_S1_j:
.LFB5070:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5070:
	.size	_Z7reduce6IfLj128ELb1EEvPT_S1_j, .-_Z7reduce6IfLj128ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj64ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj64ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj64ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj64ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj64ELb1EEvPT_S1_j:
.LFB5071:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5071:
	.size	_Z7reduce6IfLj64ELb1EEvPT_S1_j, .-_Z7reduce6IfLj64ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj32ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj32ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj32ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj32ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj32ELb1EEvPT_S1_j:
.LFB5072:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5072:
	.size	_Z7reduce6IfLj32ELb1EEvPT_S1_j, .-_Z7reduce6IfLj32ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj16ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj16ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj16ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj16ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj16ELb1EEvPT_S1_j:
.LFB5073:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5073:
	.size	_Z7reduce6IfLj16ELb1EEvPT_S1_j, .-_Z7reduce6IfLj16ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj8ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj8ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj8ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj8ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj8ELb1EEvPT_S1_j:
.LFB5074:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5074:
	.size	_Z7reduce6IfLj8ELb1EEvPT_S1_j, .-_Z7reduce6IfLj8ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj4ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj4ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj4ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj4ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj4ELb1EEvPT_S1_j:
.LFB5075:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5075:
	.size	_Z7reduce6IfLj4ELb1EEvPT_S1_j, .-_Z7reduce6IfLj4ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj2ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj2ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj2ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj2ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj2ELb1EEvPT_S1_j:
.LFB5076:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5076:
	.size	_Z7reduce6IfLj2ELb1EEvPT_S1_j, .-_Z7reduce6IfLj2ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj1ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj1ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj1ELb1EEvPT_S1_j
	.type	_Z7reduce6IfLj1ELb1EEvPT_S1_j, @function
_Z7reduce6IfLj1ELb1EEvPT_S1_j:
.LFB5077:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5077:
	.size	_Z7reduce6IfLj1ELb1EEvPT_S1_j, .-_Z7reduce6IfLj1ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IfLj512ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj512ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj512ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj512ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj512ELb0EEvPT_S1_j:
.LFB5078:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5078:
	.size	_Z7reduce6IfLj512ELb0EEvPT_S1_j, .-_Z7reduce6IfLj512ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj256ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj256ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj256ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj256ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj256ELb0EEvPT_S1_j:
.LFB5079:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5079:
	.size	_Z7reduce6IfLj256ELb0EEvPT_S1_j, .-_Z7reduce6IfLj256ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj128ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj128ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj128ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj128ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj128ELb0EEvPT_S1_j:
.LFB5080:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5080:
	.size	_Z7reduce6IfLj128ELb0EEvPT_S1_j, .-_Z7reduce6IfLj128ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj64ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj64ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj64ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj64ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj64ELb0EEvPT_S1_j:
.LFB5081:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5081:
	.size	_Z7reduce6IfLj64ELb0EEvPT_S1_j, .-_Z7reduce6IfLj64ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj32ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj32ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj32ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj32ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj32ELb0EEvPT_S1_j:
.LFB5082:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5082:
	.size	_Z7reduce6IfLj32ELb0EEvPT_S1_j, .-_Z7reduce6IfLj32ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj16ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj16ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj16ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj16ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj16ELb0EEvPT_S1_j:
.LFB5083:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5083:
	.size	_Z7reduce6IfLj16ELb0EEvPT_S1_j, .-_Z7reduce6IfLj16ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj8ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj8ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj8ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj8ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj8ELb0EEvPT_S1_j:
.LFB5084:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5084:
	.size	_Z7reduce6IfLj8ELb0EEvPT_S1_j, .-_Z7reduce6IfLj8ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj4ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj4ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj4ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj4ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj4ELb0EEvPT_S1_j:
.LFB5085:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5085:
	.size	_Z7reduce6IfLj4ELb0EEvPT_S1_j, .-_Z7reduce6IfLj4ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj2ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj2ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj2ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj2ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj2ELb0EEvPT_S1_j:
.LFB5086:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5086:
	.size	_Z7reduce6IfLj2ELb0EEvPT_S1_j, .-_Z7reduce6IfLj2ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IfLj1ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IfLj1ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IfLj1ELb0EEvPT_S1_j
	.type	_Z7reduce6IfLj1ELb0EEvPT_S1_j, @function
_Z7reduce6IfLj1ELb0EEvPT_S1_j:
.LFB5087:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j
	.cfi_endproc
.LFE5087:
	.size	_Z7reduce6IfLj1ELb0EEvPT_S1_j, .-_Z7reduce6IfLj1ELb0EEvPT_S1_j
	.section	.text._Z7reduce0IdEvPT_S1_j,"axG",@progbits,_Z7reduce0IdEvPT_S1_j,comdat
	.weak	_Z7reduce0IdEvPT_S1_j
	.type	_Z7reduce0IdEvPT_S1_j, @function
_Z7reduce0IdEvPT_S1_j:
.LFB5088:
	.cfi_startproc
	endbr64
	jmp	_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5088:
	.size	_Z7reduce0IdEvPT_S1_j, .-_Z7reduce0IdEvPT_S1_j
	.section	.text._Z7reduce6IdLj512ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj512ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj512ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj512ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj512ELb1EEvPT_S1_j:
.LFB5089:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5089:
	.size	_Z7reduce6IdLj512ELb1EEvPT_S1_j, .-_Z7reduce6IdLj512ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj256ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj256ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj256ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj256ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj256ELb1EEvPT_S1_j:
.LFB5090:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5090:
	.size	_Z7reduce6IdLj256ELb1EEvPT_S1_j, .-_Z7reduce6IdLj256ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj128ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj128ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj128ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj128ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj128ELb1EEvPT_S1_j:
.LFB5091:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5091:
	.size	_Z7reduce6IdLj128ELb1EEvPT_S1_j, .-_Z7reduce6IdLj128ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj64ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj64ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj64ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj64ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj64ELb1EEvPT_S1_j:
.LFB5092:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5092:
	.size	_Z7reduce6IdLj64ELb1EEvPT_S1_j, .-_Z7reduce6IdLj64ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj32ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj32ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj32ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj32ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj32ELb1EEvPT_S1_j:
.LFB5093:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5093:
	.size	_Z7reduce6IdLj32ELb1EEvPT_S1_j, .-_Z7reduce6IdLj32ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj16ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj16ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj16ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj16ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj16ELb1EEvPT_S1_j:
.LFB5094:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5094:
	.size	_Z7reduce6IdLj16ELb1EEvPT_S1_j, .-_Z7reduce6IdLj16ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj8ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj8ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj8ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj8ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj8ELb1EEvPT_S1_j:
.LFB5095:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5095:
	.size	_Z7reduce6IdLj8ELb1EEvPT_S1_j, .-_Z7reduce6IdLj8ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj4ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj4ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj4ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj4ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj4ELb1EEvPT_S1_j:
.LFB5096:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5096:
	.size	_Z7reduce6IdLj4ELb1EEvPT_S1_j, .-_Z7reduce6IdLj4ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj2ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj2ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj2ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj2ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj2ELb1EEvPT_S1_j:
.LFB5097:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5097:
	.size	_Z7reduce6IdLj2ELb1EEvPT_S1_j, .-_Z7reduce6IdLj2ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj1ELb1EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj1ELb1EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj1ELb1EEvPT_S1_j
	.type	_Z7reduce6IdLj1ELb1EEvPT_S1_j, @function
_Z7reduce6IdLj1ELb1EEvPT_S1_j:
.LFB5098:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5098:
	.size	_Z7reduce6IdLj1ELb1EEvPT_S1_j, .-_Z7reduce6IdLj1ELb1EEvPT_S1_j
	.section	.text._Z7reduce6IdLj512ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj512ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj512ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj512ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj512ELb0EEvPT_S1_j:
.LFB5099:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5099:
	.size	_Z7reduce6IdLj512ELb0EEvPT_S1_j, .-_Z7reduce6IdLj512ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj256ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj256ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj256ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj256ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj256ELb0EEvPT_S1_j:
.LFB5100:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5100:
	.size	_Z7reduce6IdLj256ELb0EEvPT_S1_j, .-_Z7reduce6IdLj256ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj128ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj128ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj128ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj128ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj128ELb0EEvPT_S1_j:
.LFB5101:
	.cfi_startproc
	endbr64
	jmp	_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5101:
	.size	_Z7reduce6IdLj128ELb0EEvPT_S1_j, .-_Z7reduce6IdLj128ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj64ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj64ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj64ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj64ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj64ELb0EEvPT_S1_j:
.LFB5102:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5102:
	.size	_Z7reduce6IdLj64ELb0EEvPT_S1_j, .-_Z7reduce6IdLj64ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj32ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj32ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj32ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj32ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj32ELb0EEvPT_S1_j:
.LFB5103:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5103:
	.size	_Z7reduce6IdLj32ELb0EEvPT_S1_j, .-_Z7reduce6IdLj32ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj16ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj16ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj16ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj16ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj16ELb0EEvPT_S1_j:
.LFB5104:
	.cfi_startproc
	endbr64
	jmp	_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5104:
	.size	_Z7reduce6IdLj16ELb0EEvPT_S1_j, .-_Z7reduce6IdLj16ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj8ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj8ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj8ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj8ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj8ELb0EEvPT_S1_j:
.LFB5105:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5105:
	.size	_Z7reduce6IdLj8ELb0EEvPT_S1_j, .-_Z7reduce6IdLj8ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj4ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj4ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj4ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj4ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj4ELb0EEvPT_S1_j:
.LFB5106:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5106:
	.size	_Z7reduce6IdLj4ELb0EEvPT_S1_j, .-_Z7reduce6IdLj4ELb0EEvPT_S1_j
	.section	.text._Z7reduce6IdLj2ELb0EEvPT_S1_j,"axG",@progbits,_Z7reduce6IdLj2ELb0EEvPT_S1_j,comdat
	.weak	_Z7reduce6IdLj2ELb0EEvPT_S1_j
	.type	_Z7reduce6IdLj2ELb0EEvPT_S1_j, @function
_Z7reduce6IdLj2ELb0EEvPT_S1_j:
.LFB5107:
	.cfi_startproc
	endbr64
	jmp	_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j
	.cfi_endproc
.LFE5107:
	.size	_Z7reduce6IdLj2ELb0EEvPT_S1_j, .-_Z7reduce6IdLj2ELb0EEvPT_S1_j
	.text
	.globl	_Z8nextPow2j
	.type	_Z8nextPow2j, @function
_Z8nextPow2j:
.LFB4564:
	.cfi_startproc
	endbr64
	decl	%edi
	movl	%edi, %eax
	shrl	%eax
	orl	%edi, %eax
	movl	%eax, %edi
	shrl	$2, %edi
	orl	%eax, %edi
	movl	%edi, %eax
	shrl	$4, %eax
	orl	%edi, %eax
	movl	%eax, %edx
	shrl	$8, %edx
	orl	%eax, %edx
	movl	%edx, %eax
	shrl	$16, %eax
	orl	%edx, %eax
	incl	%eax
	ret
	.cfi_endproc
.LFE4564:
	.size	_Z8nextPow2j, .-_Z8nextPow2j
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"n is too large, please choose a smaller number!\n"
.LC1:
	.string	"Grid size <%d> excceeds the device capability <%d>, set block size as %d (original %d)\n"
	.text
	.globl	_Z22getNumBlocksAndThreadsiiiiRiS_
	.type	_Z22getNumBlocksAndThreadsiiiiRiS_, @function
_Z22getNumBlocksAndThreadsiiiiRiS_:
.LFB4565:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	%esi, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edi, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	%edx, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%ecx, %ebx
	subq	$1064, %rsp
	.cfi_def_cfa_offset 1120
	movq	%fs:40, %rax
	movq	%rax, 1048(%rsp)
	xorl	%eax, %eax
	leaq	12(%rsp), %rdi
	call	cudaGetDevice@PLT
	movl	12(%rsp), %esi
	leaq	16(%rsp), %rdi
	call	cudaGetDeviceProperties_v2@PLT
	cmpl	$2, %r14d
	jg	.L321
	cmpl	%r15d, %ebx
	jle	.L322
	movl	%r15d, %edi
	call	_Z8nextPow2j
	movl	%eax, %ebx
.L322:
	leal	-1(%r15,%rbx), %eax
	cltd
	idivl	%ebx
	jmp	.L323
.L321:
	leal	(%rbx,%rbx), %eax
	cmpl	%r15d, %eax
	jle	.L324
	leal	1(%r15), %eax
	movl	$2, %ecx
	cltd
	idivl	%ecx
	movl	%eax, %edi
	call	_Z8nextPow2j
	movl	%eax, %ebx
.L324:
	leal	(%rbx,%rbx), %ecx
	leal	-1(%rcx,%r15), %eax
	cltd
	idivl	%ecx
.L323:
	movl	%ebx, (%r12)
	movl	%eax, 0(%rbp)
	cvtsi2ssl	%eax, %xmm1
	cvtsi2ssl	(%r12), %xmm0
	cvtsi2ssl	336(%rsp), %xmm2
	mulss	%xmm0, %xmm1
	cvtsi2ssl	352(%rsp), %xmm0
	mulss	%xmm2, %xmm0
	comiss	%xmm0, %xmm1
	jbe	.L325
	leaq	.LC0(%rip), %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
.L325:
	movl	0(%rbp), %edx
	movl	352(%rsp), %ecx
	cmpl	%ecx, %edx
	jle	.L327
	movl	(%r12), %r9d
	leaq	.LC1(%rip), %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	leal	(%r9,%r9), %r8d
	call	__printf_chk@PLT
	movl	0(%rbp), %eax
	movl	$2, %ecx
	cltd
	idivl	%ecx
	movl	%eax, 0(%rbp)
	movd	(%r12), %xmm0
	pslld	$1, %xmm0
	movd	%xmm0, (%r12)
.L327:
	cmpl	$6, %r14d
	jne	.L320
	movl	0(%rbp), %eax
	cmpl	%r13d, %eax
	cmovg	%r13d, %eax
	movl	%eax, 0(%rbp)
.L320:
	movq	1048(%rsp), %rax
	subq	%fs:40, %rax
	je	.L329
	call	__stack_chk_fail@PLT
.L329:
	addq	$1064, %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
.LFE4565:
	.size	_Z22getNumBlocksAndThreadsiiiiRiS_, .-_Z22getNumBlocksAndThreadsiiiiRiS_
	.globl	_Z6isPow2j
	.type	_Z6isPow2j, @function
_Z6isPow2j:
.LFB4572:
	.cfi_startproc
	endbr64
	leal	-1(%rdi), %eax
	testl	%edi, %eax
	sete	%al
	ret
	.cfi_endproc
.LFE4572:
	.size	_Z6isPow2j, .-_Z6isPow2j
	.section	.text._Z6reduceIiEviiiiPT_S1_,"axG",@progbits,_Z6reduceIiEviiiiPT_S1_,comdat
	.weak	_Z6reduceIiEviiiiPT_S1_
	.type	_Z6reduceIiEviiiiPT_S1_, @function
_Z6reduceIiEviiiiPT_S1_:
.LFB5042:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	%esi, %eax
	movl	%edx, %esi
	movq	%r9, %r12
	movabsq	$4294967297, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%r8, %rbp
	leal	0(,%rax,8), %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	%edi, %ebx
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movl	%eax, 8(%rsp)
	movq	%rdx, 12(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 24(%rsp)
	cmpl	$32, %eax
	jle	.L335
	leal	0(,%rax,4), %r8d
.L335:
	testl	%ecx, %ecx
	jne	.L336
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL35__device_stub__Z7reduce0IiEvPT_S1_jPiS_j
.L336:
	.cfi_restore_state
	leal	-1(%rbx), %edx
	testl	%ebx, %edx
	jne	.L339
	cmpl	$32, %eax
	je	.L340
	jg	.L341
	cmpl	$4, %eax
	je	.L342
	jg	.L343
	cmpl	$1, %eax
	je	.L344
	cmpl	$2, %eax
	je	.L345
	jmp	.L333
.L343:
	cmpl	$8, %eax
	je	.L346
	cmpl	$16, %eax
	je	.L347
	jmp	.L333
.L341:
	cmpl	$256, %eax
	je	.L348
	jg	.L349
	cmpl	$64, %eax
	je	.L350
	cmpl	$128, %eax
	je	.L351
	jmp	.L333
.L349:
	cmpl	$512, %eax
	jne	.L333
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj512ELb1EEvPT_S1_jPiS_j
.L348:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj256ELb1EEvPT_S1_jPiS_j
.L351:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj128ELb1EEvPT_S1_jPiS_j
.L350:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj64ELb1EEvPT_S1_jPiS_j
.L340:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj32ELb1EEvPT_S1_jPiS_j
.L347:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj16ELb1EEvPT_S1_jPiS_j
.L346:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj8ELb1EEvPT_S1_jPiS_j
.L342:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj4ELb1EEvPT_S1_jPiS_j
.L345:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj2ELb1EEvPT_S1_jPiS_j
.L344:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj1ELb1EEvPT_S1_jPiS_j
.L339:
	.cfi_restore_state
	cmpl	$32, %eax
	je	.L353
	jg	.L354
	cmpl	$4, %eax
	je	.L355
	jg	.L356
	cmpl	$1, %eax
	je	.L357
	cmpl	$2, %eax
	je	.L358
	jmp	.L333
.L356:
	cmpl	$8, %eax
	je	.L359
	cmpl	$16, %eax
	je	.L360
	jmp	.L333
.L354:
	cmpl	$256, %eax
	je	.L361
	jg	.L362
	cmpl	$64, %eax
	je	.L363
	cmpl	$128, %eax
	je	.L364
	jmp	.L333
.L362:
	cmpl	$512, %eax
	jne	.L333
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj512ELb0EEvPT_S1_jPiS_j
.L361:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj256ELb0EEvPT_S1_jPiS_j
.L364:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IiLj128ELb0EEvPT_S1_jPiS_j
.L363:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj64ELb0EEvPT_S1_jPiS_j
.L353:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj32ELb0EEvPT_S1_jPiS_j
.L360:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IiLj16ELb0EEvPT_S1_jPiS_j
.L359:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj8ELb0EEvPT_S1_jPiS_j
.L355:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj4ELb0EEvPT_S1_jPiS_j
.L358:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj2ELb0EEvPT_S1_jPiS_j
.L357:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L333
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IiLj1ELb0EEvPT_S1_jPiS_j
.L333:
	.cfi_restore_state
	addq	$32, %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
.LFE5042:
	.size	_Z6reduceIiEviiiiPT_S1_, .-_Z6reduceIiEviiiiPT_S1_
	.section	.text._Z6reduceIfEviiiiPT_S1_,"axG",@progbits,_Z6reduceIfEviiiiPT_S1_,comdat
	.weak	_Z6reduceIfEviiiiPT_S1_
	.type	_Z6reduceIfEviiiiPT_S1_, @function
_Z6reduceIfEviiiiPT_S1_:
.LFB5043:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	%esi, %eax
	movl	%edx, %esi
	movq	%r9, %r12
	movabsq	$4294967297, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%r8, %rbp
	leal	0(,%rax,8), %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	%edi, %ebx
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movl	%eax, 8(%rsp)
	movq	%rdx, 12(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 24(%rsp)
	cmpl	$32, %eax
	jle	.L369
	leal	0(,%rax,4), %r8d
.L369:
	testl	%ecx, %ecx
	jne	.L370
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL35__device_stub__Z7reduce0IfEvPT_S1_jPfS_j
.L370:
	.cfi_restore_state
	leal	-1(%rbx), %edx
	testl	%ebx, %edx
	jne	.L373
	cmpl	$32, %eax
	je	.L374
	jg	.L375
	cmpl	$4, %eax
	je	.L376
	jg	.L377
	cmpl	$1, %eax
	je	.L378
	cmpl	$2, %eax
	je	.L379
	jmp	.L367
.L377:
	cmpl	$8, %eax
	je	.L380
	cmpl	$16, %eax
	je	.L381
	jmp	.L367
.L375:
	cmpl	$256, %eax
	je	.L382
	jg	.L383
	cmpl	$64, %eax
	je	.L384
	cmpl	$128, %eax
	je	.L385
	jmp	.L367
.L383:
	cmpl	$512, %eax
	jne	.L367
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj512ELb1EEvPT_S1_jPfS_j
.L382:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj256ELb1EEvPT_S1_jPfS_j
.L385:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj128ELb1EEvPT_S1_jPfS_j
.L384:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj64ELb1EEvPT_S1_jPfS_j
.L374:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj32ELb1EEvPT_S1_jPfS_j
.L381:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj16ELb1EEvPT_S1_jPfS_j
.L380:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj8ELb1EEvPT_S1_jPfS_j
.L376:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj4ELb1EEvPT_S1_jPfS_j
.L379:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj2ELb1EEvPT_S1_jPfS_j
.L378:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj1ELb1EEvPT_S1_jPfS_j
.L373:
	.cfi_restore_state
	cmpl	$32, %eax
	je	.L387
	jg	.L388
	cmpl	$4, %eax
	je	.L389
	jg	.L390
	cmpl	$1, %eax
	je	.L391
	cmpl	$2, %eax
	je	.L392
	jmp	.L367
.L390:
	cmpl	$8, %eax
	je	.L393
	cmpl	$16, %eax
	je	.L394
	jmp	.L367
.L388:
	cmpl	$256, %eax
	je	.L395
	jg	.L396
	cmpl	$64, %eax
	je	.L397
	cmpl	$128, %eax
	je	.L398
	jmp	.L367
.L396:
	cmpl	$512, %eax
	jne	.L367
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj512ELb0EEvPT_S1_jPfS_j
.L395:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj256ELb0EEvPT_S1_jPfS_j
.L398:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IfLj128ELb0EEvPT_S1_jPfS_j
.L397:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj64ELb0EEvPT_S1_jPfS_j
.L387:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj32ELb0EEvPT_S1_jPfS_j
.L394:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IfLj16ELb0EEvPT_S1_jPfS_j
.L393:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj8ELb0EEvPT_S1_jPfS_j
.L389:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj4ELb0EEvPT_S1_jPfS_j
.L392:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj2ELb0EEvPT_S1_jPfS_j
.L391:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L367
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IfLj1ELb0EEvPT_S1_jPfS_j
.L367:
	.cfi_restore_state
	addq	$32, %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
.LFE5043:
	.size	_Z6reduceIfEviiiiPT_S1_, .-_Z6reduceIfEviiiiPT_S1_
	.section	.text._Z6reduceIdEviiiiPT_S1_,"axG",@progbits,_Z6reduceIdEviiiiPT_S1_,comdat
	.weak	_Z6reduceIdEviiiiPT_S1_
	.type	_Z6reduceIdEviiiiPT_S1_, @function
_Z6reduceIdEviiiiPT_S1_:
.LFB5044:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	%esi, %eax
	movl	%edx, %esi
	movq	%r9, %r12
	movabsq	$4294967297, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%r8, %rbp
	leal	0(,%rax,8), %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	%edi, %ebx
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movl	%eax, 8(%rsp)
	movq	%rdx, 12(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 24(%rsp)
	cmpl	$32, %eax
	jg	.L403
	movl	%eax, %r8d
	sall	$4, %r8d
.L403:
	testl	%ecx, %ecx
	jne	.L404
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL35__device_stub__Z7reduce0IdEvPT_S1_jPdS_j
.L404:
	.cfi_restore_state
	leal	-1(%rbx), %edx
	testl	%ebx, %edx
	jne	.L407
	cmpl	$32, %eax
	je	.L408
	jg	.L409
	cmpl	$4, %eax
	je	.L410
	jg	.L411
	cmpl	$1, %eax
	je	.L412
	cmpl	$2, %eax
	je	.L413
	jmp	.L401
.L411:
	cmpl	$8, %eax
	je	.L414
	cmpl	$16, %eax
	je	.L415
	jmp	.L401
.L409:
	cmpl	$256, %eax
	je	.L416
	jg	.L417
	cmpl	$64, %eax
	je	.L418
	cmpl	$128, %eax
	je	.L419
	jmp	.L401
.L417:
	cmpl	$512, %eax
	jne	.L401
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj512ELb1EEvPT_S1_jPdS_j
.L416:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj256ELb1EEvPT_S1_jPdS_j
.L419:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj128ELb1EEvPT_S1_jPdS_j
.L418:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj64ELb1EEvPT_S1_jPdS_j
.L408:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj32ELb1EEvPT_S1_jPdS_j
.L415:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj16ELb1EEvPT_S1_jPdS_j
.L414:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj8ELb1EEvPT_S1_jPdS_j
.L410:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj4ELb1EEvPT_S1_jPdS_j
.L413:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj2ELb1EEvPT_S1_jPdS_j
.L412:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj1ELb1EEvPT_S1_jPdS_j
.L407:
	.cfi_restore_state
	cmpl	$32, %eax
	je	.L421
	jg	.L422
	cmpl	$4, %eax
	je	.L423
	jg	.L424
	cmpl	$1, %eax
	je	.L425
	cmpl	$2, %eax
	je	.L426
	jmp	.L401
.L424:
	cmpl	$8, %eax
	je	.L427
	cmpl	$16, %eax
	je	.L428
	jmp	.L401
.L422:
	cmpl	$256, %eax
	je	.L429
	jg	.L430
	cmpl	$64, %eax
	je	.L431
	cmpl	$128, %eax
	je	.L432
	jmp	.L401
.L430:
	cmpl	$512, %eax
	jne	.L401
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj512ELb0EEvPT_S1_jPdS_j
.L429:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj256ELb0EEvPT_S1_jPdS_j
.L432:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL45__device_stub__Z7reduce6IdLj128ELb0EEvPT_S1_jPdS_j
.L431:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj64ELb0EEvPT_S1_jPdS_j
.L421:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj32ELb0EEvPT_S1_jPdS_j
.L428:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL44__device_stub__Z7reduce6IdLj16ELb0EEvPT_S1_jPdS_j
.L427:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj8ELb0EEvPT_S1_jPdS_j
.L423:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj4ELb0EEvPT_S1_jPdS_j
.L426:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj2ELb0EEvPT_S1_jPdS_j
.L425:
	.cfi_restore_state
	movl	16(%rsp), %ecx
	movq	8(%rsp), %rdx
	xorl	%r9d, %r9d
	movslq	%r8d, %r8
	movq	20(%rsp), %rdi
	movl	28(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L401
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZL43__device_stub__Z7reduce6IdLj1ELb0EEvPT_S1_jPdS_j
.L401:
	.cfi_restore_state
	addq	$32, %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
.LFE5044:
	.size	_Z6reduceIdEviiiiPT_S1_, .-_Z6reduceIdEviiiiPT_S1_
	.text
	.globl	_Z10reduce_sumPfi
	.type	_Z10reduce_sumPfi, @function
_Z10reduce_sumPfi:
.LFB4574:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	$256, %ecx
	movq	%rdi, %r12
	movl	$65535, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movl	$6, %edi
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$48, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r9
	leaq	12(%rsp), %r8
	call	_Z22getNumBlocksAndThreadsiiiiRiS_
	movslq	12(%rsp), %rsi
	xorl	%edx, %edx
	leaq	32(%rsp), %rdi
	movq	%rdx, 32(%rsp)
	movq	%rsi, %rbx
	salq	$2, %rsi
	call	cudaMalloc@PLT
	movq	32(%rsp), %r9
	movl	16(%rsp), %esi
	movl	%ebx, %edx
	movq	%r12, %r8
	movl	$6, %ecx
	leaq	24(%rsp), %r12
	movl	%ebp, %edi
	call	_Z6reduceIfEviiiiPT_S1_
	call	cudaDeviceSynchronize@PLT
	movl	$0x00000000, 20(%rsp)
.L436:
	cmpl	$1, %ebx
	jle	.L440
	xorl	%eax, %eax
	movl	%ebx, %esi
	movq	%r12, %r9
	movl	$256, %ecx
	leaq	28(%rsp), %r8
	movl	$65535, %edx
	movl	$6, %edi
	movl	%eax, 24(%rsp)
	movl	%eax, 28(%rsp)
	call	_Z22getNumBlocksAndThreadsiiiiRiS_
	movl	24(%rsp), %ebp
	movq	32(%rsp), %r9
	movl	%ebx, %edi
	movl	28(%rsp), %edx
	movl	$6, %ecx
	movq	%r9, %r8
	movl	%ebp, %esi
	call	_Z6reduceIfEviiiiPT_S1_
	leal	(%rbp,%rbp), %ecx
	leal	-1(%rbx,%rcx), %eax
	cltd
	idivl	%ecx
	movl	%eax, %ebx
	jmp	.L436
.L440:
	movq	32(%rsp), %rsi
	leaq	20(%rsp), %rdi
	movl	$2, %ecx
	movl	$4, %edx
	call	cudaMemcpy@PLT
	call	cudaDeviceSynchronize@PLT
	movq	32(%rsp), %rdi
	call	cudaFree@PLT
	movss	20(%rsp), %xmm0
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L438
	call	__stack_chk_fail@PLT
.L438:
	addq	$48, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4574:
	.size	_Z10reduce_sumPfi, .-_Z10reduce_sumPfi
	.section	.rodata.str1.1
.LC3:
	.string	"_Z7reduce6IdLj1ELb0EEvPT_S1_j"
.LC4:
	.string	"_Z7reduce6IdLj2ELb0EEvPT_S1_j"
.LC5:
	.string	"_Z7reduce6IdLj4ELb0EEvPT_S1_j"
.LC6:
	.string	"_Z7reduce6IdLj8ELb0EEvPT_S1_j"
.LC7:
	.string	"_Z7reduce6IdLj16ELb0EEvPT_S1_j"
.LC8:
	.string	"_Z7reduce6IdLj32ELb0EEvPT_S1_j"
.LC9:
	.string	"_Z7reduce6IdLj64ELb0EEvPT_S1_j"
.LC10:
	.string	"_Z7reduce6IdLj128ELb0EEvPT_S1_j"
.LC11:
	.string	"_Z7reduce6IdLj256ELb0EEvPT_S1_j"
.LC12:
	.string	"_Z7reduce6IdLj512ELb0EEvPT_S1_j"
.LC13:
	.string	"_Z7reduce6IdLj1ELb1EEvPT_S1_j"
.LC14:
	.string	"_Z7reduce6IdLj2ELb1EEvPT_S1_j"
.LC15:
	.string	"_Z7reduce6IdLj4ELb1EEvPT_S1_j"
.LC16:
	.string	"_Z7reduce6IdLj8ELb1EEvPT_S1_j"
.LC17:
	.string	"_Z7reduce6IdLj16ELb1EEvPT_S1_j"
.LC18:
	.string	"_Z7reduce6IdLj32ELb1EEvPT_S1_j"
.LC19:
	.string	"_Z7reduce6IdLj64ELb1EEvPT_S1_j"
.LC20:
	.string	"_Z7reduce6IdLj128ELb1EEvPT_S1_j"
.LC21:
	.string	"_Z7reduce6IdLj256ELb1EEvPT_S1_j"
.LC22:
	.string	"_Z7reduce6IdLj512ELb1EEvPT_S1_j"
.LC23:
	.string	"_Z7reduce0IdEvPT_S1_j"
.LC24:
	.string	"_Z7reduce6IfLj1ELb0EEvPT_S1_j"
.LC25:
	.string	"_Z7reduce6IfLj2ELb0EEvPT_S1_j"
.LC26:
	.string	"_Z7reduce6IfLj4ELb0EEvPT_S1_j"
.LC27:
	.string	"_Z7reduce6IfLj8ELb0EEvPT_S1_j"
.LC28:
	.string	"_Z7reduce6IfLj16ELb0EEvPT_S1_j"
.LC29:
	.string	"_Z7reduce6IfLj32ELb0EEvPT_S1_j"
.LC30:
	.string	"_Z7reduce6IfLj64ELb0EEvPT_S1_j"
.LC31:
	.string	"_Z7reduce6IfLj128ELb0EEvPT_S1_j"
.LC32:
	.string	"_Z7reduce6IfLj256ELb0EEvPT_S1_j"
.LC33:
	.string	"_Z7reduce6IfLj512ELb0EEvPT_S1_j"
.LC34:
	.string	"_Z7reduce6IfLj1ELb1EEvPT_S1_j"
.LC35:
	.string	"_Z7reduce6IfLj2ELb1EEvPT_S1_j"
.LC36:
	.string	"_Z7reduce6IfLj4ELb1EEvPT_S1_j"
.LC37:
	.string	"_Z7reduce6IfLj8ELb1EEvPT_S1_j"
.LC38:
	.string	"_Z7reduce6IfLj16ELb1EEvPT_S1_j"
.LC39:
	.string	"_Z7reduce6IfLj32ELb1EEvPT_S1_j"
.LC40:
	.string	"_Z7reduce6IfLj64ELb1EEvPT_S1_j"
.LC41:
	.string	"_Z7reduce6IfLj128ELb1EEvPT_S1_j"
.LC42:
	.string	"_Z7reduce6IfLj256ELb1EEvPT_S1_j"
.LC43:
	.string	"_Z7reduce6IfLj512ELb1EEvPT_S1_j"
.LC44:
	.string	"_Z7reduce0IfEvPT_S1_j"
.LC45:
	.string	"_Z7reduce6IiLj1ELb0EEvPT_S1_j"
.LC46:
	.string	"_Z7reduce6IiLj2ELb0EEvPT_S1_j"
.LC47:
	.string	"_Z7reduce6IiLj4ELb0EEvPT_S1_j"
.LC48:
	.string	"_Z7reduce6IiLj8ELb0EEvPT_S1_j"
.LC49:
	.string	"_Z7reduce6IiLj16ELb0EEvPT_S1_j"
.LC50:
	.string	"_Z7reduce6IiLj32ELb0EEvPT_S1_j"
.LC51:
	.string	"_Z7reduce6IiLj64ELb0EEvPT_S1_j"
.LC52:
	.string	"_Z7reduce6IiLj128ELb0EEvPT_S1_j"
.LC53:
	.string	"_Z7reduce6IiLj256ELb0EEvPT_S1_j"
.LC54:
	.string	"_Z7reduce6IiLj512ELb0EEvPT_S1_j"
.LC55:
	.string	"_Z7reduce6IiLj1ELb1EEvPT_S1_j"
.LC56:
	.string	"_Z7reduce6IiLj2ELb1EEvPT_S1_j"
.LC57:
	.string	"_Z7reduce6IiLj4ELb1EEvPT_S1_j"
.LC58:
	.string	"_Z7reduce6IiLj8ELb1EEvPT_S1_j"
.LC59:
	.string	"_Z7reduce6IiLj16ELb1EEvPT_S1_j"
.LC60:
	.string	"_Z7reduce6IiLj32ELb1EEvPT_S1_j"
.LC61:
	.string	"_Z7reduce6IiLj64ELb1EEvPT_S1_j"
.LC62:
	.string	"_Z7reduce6IiLj128ELb1EEvPT_S1_j"
.LC63:
	.string	"_Z7reduce6IiLj256ELb1EEvPT_S1_j"
.LC64:
	.string	"_Z7reduce6IiLj512ELb1EEvPT_S1_j"
.LC65:
	.string	"_Z7reduce0IiEvPT_S1_j"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4726:
	.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	.LC3(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z7reduce6IdLj1ELb0EEvPT_S1_j(%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	.LC4(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj2ELb0EEvPT_S1_j(%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	.LC5(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj4ELb0EEvPT_S1_j(%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	.LC6(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj8ELb0EEvPT_S1_j(%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	_Z7reduce6IdLj16ELb0EEvPT_S1_j(%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	_Z7reduce6IdLj32ELb0EEvPT_S1_j(%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	_Z7reduce6IdLj64ELb0EEvPT_S1_j(%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	_Z7reduce6IdLj128ELb0EEvPT_S1_j(%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	.LC11(%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	_Z7reduce6IdLj256ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC12(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj512ELb0EEvPT_S1_j(%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	.LC13(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj1ELb1EEvPT_S1_j(%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	.LC14(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj2ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC15(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj4ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC16(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj8ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC17(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj16ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC18(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj32ELb1EEvPT_S1_j(%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	.LC19(%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	_Z7reduce6IdLj64ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC20(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj128ELb1EEvPT_S1_j(%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	.LC21(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj256ELb1EEvPT_S1_j(%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	.LC22(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IdLj512ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC23(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce0IdEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC24(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj1ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC25(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj2ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC26(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj4ELb0EEvPT_S1_j(%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	.LC27(%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	_Z7reduce6IfLj8ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC28(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj16ELb0EEvPT_S1_j(%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	.LC29(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj32ELb0EEvPT_S1_j(%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	.LC30(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj64ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC31(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj128ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC32(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj256ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC33(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj512ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC34(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj1ELb1EEvPT_S1_j(%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	.LC35(%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	_Z7reduce6IfLj2ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC36(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj4ELb1EEvPT_S1_j(%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	.LC37(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj8ELb1EEvPT_S1_j(%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	.LC38(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj16ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC39(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj32ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC40(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj64ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC41(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj128ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC42(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IfLj256ELb1EEvPT_S1_j(%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	.LC43(%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	_Z7reduce6IfLj512ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC44(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce0IfEvPT_S1_j(%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	.LC45(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj1ELb0EEvPT_S1_j(%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	.LC46(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj2ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC47(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj4ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC48(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj8ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC49(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj16ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC50(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj32ELb0EEvPT_S1_j(%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	.LC51(%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	_Z7reduce6IiLj64ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC52(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj128ELb0EEvPT_S1_j(%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	.LC53(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj256ELb0EEvPT_S1_j(%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	.LC54(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj512ELb0EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC55(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj1ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC56(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj2ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC57(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj4ELb1EEvPT_S1_j(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC58(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z7reduce6IiLj8ELb1EEvPT_S1_j(%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	.LC59(%rip), %rdx
	pushq	$0
	.cfi_def_cfa_offset 24
	movq	%rdx, %rcx
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	_Z7reduce6IiLj16ELb1EEvPT_S1_j(%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
	movq	%rbx, %rdi
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC60(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce6IiLj32ELb1EEvPT_S1_j(%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
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC61(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce6IiLj64ELb1EEvPT_S1_j(%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
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC62(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce6IiLj128ELb1EEvPT_S1_j(%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
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC63(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce6IiLj256ELb1EEvPT_S1_j(%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
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC64(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce6IiLj512ELb1EEvPT_S1_j(%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
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC65(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z7reduce0IiEvPT_S1_j(%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
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	addq	$32, %rsp
	.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
.LFE4726:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.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
	.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:


#include <hip/hip_runtime.h>
#include "global_defines.cuh"

void getNumBlocksAndThreads(int whichKernel, int n, int maxBlocks, int maxThreads, int &blocks, int &threads);
template <class T>
void
reduce(int size, int threads, int blocks,
		int whichKernel, T *d_idata, T *d_odata);
FLOATING cuda_reduce_max(FLOATING *big_array, int big_array_size);
FLOATING reduce_sum(FLOATING *d_idata, const int big_array_length);

	.text
	.file	"kernels3.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
