#include <stdio.h>
#include <stdlib.h> 
#include <ctime>
#include <iostream>
#include <fstream>
#include <sys/time.h>
#include <math.h>
#include <vector>
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <cuda.h>

using namespace std;
 
#define NUM_OF_HIDDEN_LAYERS 2
#define bias 1
#define ACTIVATION_RESPONSE 1       //it has to be changed
#define LEARNING_RATE 0.1
#define BATCH_SIZE 1000
#define EPOCHS 1000



struct timeval startwtime, endwtime;
double seq_time;


// Template structure to pass to kernel
template <typename T>
struct KernelArray
{
    T*  _array;
    int _size;
};
 
// Function to convert device_vector to structure
template <typename T>
KernelArray<T> convertToKernel(thrust::device_vector<T>& dVec)
{
    KernelArray<T> kArray;
    kArray._array = thrust::raw_pointer_cast(&dVec[0]);
    kArray._size  = (int) dVec.size();
 
    return kArray;
}





struct NeuralNetwork{
    int numLayers;      
    thrust::host_vector<int> layer_size;
    thrust::host_vector<int> offset;
    thrust::host_vector<float> values;
    thrust::host_vector<float> delta;
    thrust::host_vector<float> weights;
    thrust::host_vector<float> d_weights;  
};

void rand_initialize(thrust::host_vector<float> &w)
{
  srand((unsigned)time(NULL)); // use current time as seed for random generator
  for(int i=0;i<w.size();i++){
    w[i] = rand()/float(RAND_MAX);
    w[i] = (w[i] - 0.5)/2;
  }
}
    
 
struct NeuralNetwork InitializeNeuralNetwork(vector<int> layer_s){
    
    NeuralNetwork NN;
    NN.layer_size = layer_s;
    NN.offset.resize(NN.layer_size.size()+1);
    NN.offset[0] = 0;
    NN.numLayers = layer_s.size();
    int i;
    int values_size=0; 
    int weights_size =0; 
    for (i=0;i<NN.numLayers;i++){
		if(i){
			weights_size+= NN.layer_size[i]*NN.layer_size[i-1];
		}
		NN.layer_size[i]++;
		NN.offset[i+1] = NN.offset[i] + NN.layer_size[i];
		cout <<"offset "<< NN.offset[i+1]<<endl;
		values_size += NN.layer_size[i];
    }
     
    NN.weights.resize(weights_size);
    NN.d_weights.resize(weights_size);
    NN.values.resize(values_size);
    NN.delta.resize(values_size - NN.layer_size[0]);
    for (i=0;i<NN.numLayers;i++){
       NN.values[NN.offset[i+1]-1] = -1; 
    }
 
    rand_initialize(NN.weights);

    return NN;
}

__device__ void softMax2(KernelArray<float> values,int start) {
  int sum = 0;
  for(int i = start;i<start+10;i++) {
    values._array[i] = exp(values._array[i]);
    sum += values._array[i];
  }
  for(int i = start;i<start+10;i++) {
    values._array[i] /= sum;
  }
}
__device__ void sigmoid2(float &p) {
   p = 1/(1+ exp(-(p)));	
}

// This function propagates 1 layer forward. It should be called 1 time for each hidden layer + 1 time for the output.
__global__ void propagateLayer(KernelArray<float> values, KernelArray<float> weights,int *offset,int* layerSize,int *wOffset,int currentLayer) {
  //layerSize = [785 31 41 11]
  //offset = [0 785 816 857 868]
  //wOffset = [0 785*30 785*30+31*40]
  //currentLayer = 1 || 2 || 3
  //m = threadIdx.x*currentLayer + wOffset[thisLayer-1]
  //offset will be 784, 784 + 30 , 784+30.

  int m = threadIdx.x * layerSize[currentLayer-1] + wOffset[currentLayer - 1];
  int i = offset[currentLayer] + threadIdx.x + blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2];
  values._array[i] = 0;
  int start_j = blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2] + offset[currentLayer-1];

  for(int j = start_j;j<start_j + layerSize[currentLayer-1];j++){
	values._array[i] += weights._array[m] * values._array[j];
	m ++;  
  }

  __syncthreads();
  if(currentLayer==NUM_OF_HIDDEN_LAYERS+1 && threadIdx.x == 0 ) {
  float sum = 0;

  int start = blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2] + offset[NUM_OF_HIDDEN_LAYERS+1];
  	for(int i = start;i<start+10;i++) {
    		values._array[i] = exp(values._array[i]);
    		sum += values._array[i];
  	}
  for(int i = start;i<start+10;i++) {
    values._array[i] /= sum;
  }
 //values._array[860] += 100 ;

  }
  else if (currentLayer<NUM_OF_HIDDEN_LAYERS+1) {
	values._array[i] = 1/(1+ exp(-(values._array[i])));    
  }
  //if (i == 860) values._array[860] = 5;
  __syncthreads();
}





int reverseInt (int i) 
{
    unsigned char c1, c2, c3, c4;

    c1 = i & 255;
    c2 = (i >> 8) & 255;
    c3 = (i >> 16) & 255;
    c4 = (i >> 24) & 255;

    return ((int)c1 << 24) + ((int)c2 << 16) + ((int)c3 << 8) + c4;
}

thrust::host_vector<float> read_image(string image_path)
{
    ifstream file (image_path.c_str());
    if (file.is_open())
    {
        int magic_number=0;
        int number_of_images=0;
        int n_rows=0;
        int n_cols=0;
        file.read((char*)&magic_number,sizeof(magic_number)); 
        magic_number= reverseInt(magic_number);
        file.read((char*)&number_of_images,sizeof(number_of_images));
        number_of_images= reverseInt(number_of_images);
        file.read((char*)&n_rows,sizeof(n_rows));
        n_rows= reverseInt(n_rows);
        file.read((char*)&n_cols,sizeof(n_cols));
        n_cols= reverseInt(n_cols);
	int size = n_cols*n_rows;
	
	thrust::host_vector<float> dataSet(number_of_images * size);
	unsigned char temp;
	int value;

        for(int i=0;i<number_of_images*size;++i)
        {
	    temp = 0;
	    file.read((char*)&temp,sizeof(temp));
	    value = (int)temp;
            dataSet[i] =  (value/127.5 - 1);
        }
        return dataSet;
    }
}

int* read_label(string label_path){
  ifstream file (label_path.c_str());
    if (file.is_open())
    {
	int magic_number=0;
	int number_of_labels=0;
        file.read((char*)&magic_number,sizeof(magic_number)); 
        magic_number= reverseInt(magic_number);
	file.read((char*)&number_of_labels,sizeof(number_of_labels));
        number_of_labels= reverseInt(number_of_labels);
	int* labels = new int[number_of_labels];
	unsigned char temp;
        for(int i=0;i<number_of_labels;++i)
        {
	    file.read((char*)&temp,sizeof(temp));
	    labels[i] = (int)temp;
        }
	return labels;
    }
}


__global__ void computeOutputDelta2(float* delta,const float* values, int label,const int* offset){
  
  int off_start = offset[NUM_OF_HIDDEN_LAYERS + 1];
  int i_v = off_start + threadIdx.x + blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2];
  int i_d = off_start - offset[1]+ threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
  delta[i_d] = values[i_v] - (label == threadIdx.x);
  
}


/* 
 * arxika to values exei = BATCH_SIZE arxika images
 * kai tha epistrepsei = BATCH_SIZE 10aria output values ston idio pinaka.
 * , 1 weights, 
 */
void forwardPropagation( const thrust::host_vector<float> weights,
			 thrust::host_vector<float> &values, thrust::host_vector<int> offset){
  int this_layer,i;

   
  thrust::device_vector<float> device_values = values;
  thrust::device_vector<float> device_weights = weights;
  thrust::device_vector<int> device_offset = offset;
  thrust::device_vector<int> device_layerSize;
  thrust::device_vector<int> device_wOffset;


  //layerSize = [785 31 41 11] 
  thrust::host_vector<int> layerSize(offset.size() - 1);
  //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
  thrust::host_vector<int> wOffset(offset.size() - 1);
  for (i=0; i<offset.size() - 1 ; i++){
      layerSize[i] = offset[i+1] - offset[i];
      
      if (!i) wOffset[i] = 0;
      else if ( i< offset.size() - 1) wOffset[i] = wOffset[i-1] + layerSize[i-1]*(layerSize[i]-1);
  }

  device_layerSize = layerSize;
  device_wOffset = wOffset;

  //for loop gia ta layers {1,2,3} apo ta {0,1,2,3}
  for (this_layer=1; this_layer<offset.size()-1;this_layer++){ 
        
	//cout << "calling propagate layer with: " << layerSize[this_layer-1] << "threads"<< endl;
        KernelArray<int> temp = convertToKernel(device_offset);
	  propagateLayer<<< BATCH_SIZE, layerSize[this_layer] - 1 >>>(convertToKernel(device_values),
		convertToKernel(device_weights), temp._array, convertToKernel(device_layerSize)._array,
		          convertToKernel(device_wOffset)._array, this_layer);
  
  }
  //cout << "d_v" << device_values.size() << endl;
  //cout << "v" << values.size() << endl;  
  values = device_values;
  
}


//kaleitai xwris to bias. Diladi 40 kai 30 fores.
__global__ void computeLayerDelta(float* delta, float* weights, float* values, int* offset, int* layerSize, int* wOffset, int currentLayer){
	
	int i_d = offset[currentLayer] - offset[1] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
	int start_next_layer = offset[currentLayer+1] - offset[1] + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
	int i_v = offset[currentLayer] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2]);
	delta[i_d] = 0;   
	
	int w_start = wOffset[currentLayer];
	int w_index, next_n;
	int m=0;
	for (next_n = start_next_layer;next_n<start_next_layer + layerSize[currentLayer] - 1 ; next_n++){
		w_index = w_start + m*layerSize[currentLayer] + threadIdx.x;
		delta[i_d] += weights[w_index] * delta[next_n ]; 
		m++;
	}
	float derivative = values[i_v]*(1-values[i_v]);
	
	delta[i_d] *= derivative;
	__syncthreads();
}


__global__ void computePrevLayerDWeights(float* d_w, float* delta, float* values, int* offset, int* layerSize, int* wOffset, int currentLayer ){
	
    //layerSize = [785 31 41 11] 
    //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
	int i_d = offset[currentLayer] - offset[1] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; // block * 868 - (block + 1) * 785 ; 
	int start_prev_layer = offset[currentLayer - 1]  + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] ) ; // block * 868 
	int d_w_index = threadIdx.x * layerSize[currentLayer-1] + wOffset[currentLayer - 1] + blockIdx.x * (wOffset[NUM_OF_HIDDEN_LAYERS + 1] );// block * (785*30+31*40+41*10)
	int prev_n;

	for(prev_n = start_prev_layer; prev_n<start_prev_layer + layerSize[currentLayer - 1] - 1;prev_n++){
		d_w[d_w_index] += values[prev_n]*delta[i_d];
		d_w_index++;
	}
	int layer_bias_index = offset[currentLayer] - offset[1] + layerSize[currentLayer] - 1 + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //bias
	
	d_w[d_w_index++] += delta[layer_bias_index];//bias
	__syncthreads();
	
}


__global__ void updateWeights(float* weights, float* d_weights, int weights_size){
	
	
	int id = blockDim.x * blockIdx.x + threadIdx.x;
	if(id<weights_size){
		int i;
		float d_w_sum = 0;
		for(i=0;i<BATCH_SIZE;i++){
			d_w_sum += d_weights[id + i * weights_size];
			d_weights[id + i * weights_size]=0;
		}
		weights[id] -= LEARNING_RATE/BATCH_SIZE*d_w_sum;
	  
	}
	__syncthreads();
}



void backPropagation(const int label,thrust::host_vector<float> &weights,const thrust::host_vector<float> values,thrust::host_vector<float> delta,
		     const thrust::host_vector<int> offset,thrust::host_vector<float> &d_w){
 
 
 //device_delta
 //device_d_w
  thrust::device_vector<float> device_values = values;
  thrust::device_vector<float> device_weights = weights;
  thrust::device_vector<float> device_delta = delta;
  thrust::device_vector<int> device_offset = offset;
  thrust::device_vector<float> device_d_weights = d_w;  
  thrust::device_vector<int> device_layerSize;
  thrust::device_vector<int> device_wOffset;

  int i,this_layer;
  //layerSize = [785 31 41 11] 
  thrust::host_vector<int> layerSize(offset.size() - 1);
  //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
  thrust::host_vector<int> wOffset(offset.size() - 1);
  for (i=0; i<offset.size() - 1 ; i++){
      layerSize[i] = offset[i+1] - offset[i];
      
      if (!i) wOffset[i] = 0;
      else if ( i< offset.size() - 1) wOffset[i] = wOffset[i-1] + layerSize[i-1]*(layerSize[i]-1);
  }

  device_layerSize = layerSize;
  device_wOffset = wOffset;
 
  //layer 3
  computeOutputDelta2<<<BATCH_SIZE, 
10>>>(convertToKernel(device_delta)._array,convertToKernel(device_values)._array,label,convertToKernel(device_offset)._array);
  
  //layers {2,1} from {0,1,2,3}
  //compute delta
  for (this_layer = offset.size() - 3;this_layer>0 ; this_layer--){

	computeLayerDelta<<<BATCH_SIZE, layerSize[this_layer] - 1>>>(convertToKernel(device_delta)._array, convertToKernel(device_weights)._array, convertToKernel(device_values)._array,
															convertToKernel(device_offset)._array, convertToKernel(device_layerSize)._array, convertToKernel(device_wOffset)._array, this_layer);
  }
  
  //layers {1,2,3} from {0,1,2,3}
  //compute d_weights
  for(this_layer=1; this_layer < offset.size()-1;this_layer++){

	  computePrevLayerDWeights<<<BATCH_SIZE, layerSize[this_layer] - 1>>> (convertToKernel(device_d_weights)._array, convertToKernel(device_delta)._array, convertToKernel(device_values)._array,
												convertToKernel(device_offset)._array, convertToKernel(device_layerSize)._array, convertToKernel(device_wOffset)._array, this_layer);

  }

  //update weights
  int numOfThreads = 1000,numOfBlocks;
  numOfBlocks = (int)(weights.size() / numOfThreads) + 1;
  
  updateWeights<<<numOfBlocks, numOfThreads>>>(convertToKernel(device_weights)._array, convertToKernel(device_d_weights)._array, weights.size());
  
	
   weights = device_weights;
}
 
int predict(thrust::host_vector<float> weights, thrust::host_vector<float> values, thrust::host_vector<int> offset){
  forwardPropagation(weights,values,offset);
  int i,index;
  float max = 0;
  for(i=offset[offset.size()-2];i<offset[offset.size()-1];i++){
    if (values[i] > max){
      max = values[i];
      index = i-offset[offset.size()-2];
    }
    
  }
  return index;
  
} 
 
 
int main(int argc, char *argv[]) {
 
   
  if(argc != 5)
  { cout << "Give 'the training set image_path', 'the training set label_path' 'the test set image_path' and 'the test set label_path'\n"; exit(1); }
  string image_path = argv[1];
  string label_path = argv[2];
  string test_image_path = argv[3];
  string test_label_path = argv[4];
  thrust::host_vector<float> imageSet = read_image(image_path);
  int* labelSet = read_label(label_path);
   
  thrust::host_vector<float> test_imageSet = read_image(test_image_path);
  int* test_labelSet = read_label(test_label_path); 

  vector<int> NeuralNetwork_layers(4);
  NeuralNetwork_layers[0] = 784;
  NeuralNetwork_layers[1] = 30;
  NeuralNetwork_layers[2] = 40;
  NeuralNetwork_layers[3] = 10;

 
  NeuralNetwork NN = InitializeNeuralNetwork(NeuralNetwork_layers);
  int i,j;
  cout << "Training begins now with batch size: "<<BATCH_SIZE << " for "<<EPOCHS<<" epochs "<<endl;
  
  
  thrust::host_vector<float> host_values(NN.values.size() * BATCH_SIZE);
  thrust::host_vector<float> host_delta(NN.delta.size() * BATCH_SIZE);
  thrust::host_vector<float> host_d_weights(NN.d_weights.size() * BATCH_SIZE);

gettimeofday (&startwtime, NULL);

//Give to the biases of each layer the value -1
  for (j=0;j<BATCH_SIZE;j++){
    for (i=1;i<NN.offset.size();i++){
	host_values[NN.offset[i]-1 + j*NN.offset[NN.numLayers]] = -1;
    }
  }


  int times_to_run = EPOCHS*BATCH_SIZE,counter=0;
  i = 0;
  while(counter<times_to_run){
      counter+=BATCH_SIZE;
      i= (i +BATCH_SIZE)%60000;  
      for (j=0;j<BATCH_SIZE;j++){
	  
	   thrust::copy(imageSet.begin()+ (i+j) *784, imageSet.begin() + (i+j+1)*784, host_values.begin()+NN.offset[NN.numLayers]*j);
      }
      forwardPropagation(NN.weights, host_values, NN.offset);
	NN.values = host_values;
      backPropagation(labelSet[i],NN.weights,NN.values,host_delta,NN.offset,host_d_weights);
      if (counter%500==0) cout <<counter<<endl;
  }
  
gettimeofday (&endwtime, NULL);
seq_time = (double)((endwtime.tv_usec - startwtime.tv_usec)/1.0e6
		      + endwtime.tv_sec - startwtime.tv_sec);
cout<<"The NeuralNetwork is trained for: " << EPOCHS*BATCH_SIZE << " images in: "<<seq_time <<" seconds" << endl;
  
cout<< "Evaluating the NeuralNetwork"<< endl;
  float test_sum = 0;
  for(int i=0;i<9900;i++){
      for (j=0;j<BATCH_SIZE;j++){  
	  thrust::copy(test_imageSet.begin()+ (i+j) *784, test_imageSet.begin() + (i+j+1)*784, 
host_values.begin()+NN.offset[NN.numLayers]*j);
      }
     
     int predicted_label = predict(NN.weights,host_values,NN.offset);
     if (predicted_label==test_labelSet[i]) test_sum++;
   }
   cout <<"The NeuralNetwork's accuracy is: "<<(test_sum/100)<<"%"<<endl;
   
}









	.file	"tmpxft_0033951f_00000000-6_parallel.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi
	.type	_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi, @function
_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi:
.LFB8355:
	.cfi_startproc
	endbr64
	movq	%rdi, %rdx
	movl	%esi, %eax
	ret
	.cfi_endproc
.LFE8355:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi, .-_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi
	.type	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi, @function
_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi:
.LFB8357:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	cmpq	%rdi, 8(%rsi)
	jne	.L2
	cmpl	%edx, (%rsi)
	sete	%al
.L2:
	ret
	.cfi_endproc
.LFE8357:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi, .-_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv.str1.1,"aMS",@progbits,1
.LC0:
	.string	"generic"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv:
.LFB8367:
	.cfi_startproc
	endbr64
	leaq	.LC0(%rip), %rax
	ret
	.cfi_endproc
.LFE8367:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv.str1.1,"aMS",@progbits,1
.LC1:
	.string	"system"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv:
.LFB8372:
	.cfi_startproc
	endbr64
	leaq	.LC1(%rip), %rax
	ret
	.cfi_endproc
.LFE8372:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev:
.LFB8377:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE8377:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD1Ev,_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev:
.LFB8382:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE8382:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD1Ev,_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD2Ev
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE
	.type	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE, @function
_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE:
.LFB8356:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdx, %rbx
	call	*24(%rax)
	movq	%rdx, %rcx
	xorl	%edx, %edx
	cmpq	%rcx, 8(%rbx)
	jne	.L11
	cmpl	%eax, (%rbx)
	sete	%dl
.L11:
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8356:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE, .-_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv.str1.1,"aMS",@progbits,1
.LC2:
	.string	"cuda"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv
	.type	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv, @function
_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv:
.LFB8432:
	.cfi_startproc
	endbr64
	leaq	.LC2(%rip), %rax
	ret
	.cfi_endproc
.LFE8432:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv, .-_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev:
.LFB8437:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE8437:
	.size	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD1Ev,_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD2Ev
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.weak	nvtxEtiGetModuleFunctionTable_v3
	.hidden	nvtxEtiGetModuleFunctionTable_v3
	.type	nvtxEtiGetModuleFunctionTable_v3, @function
nvtxEtiGetModuleFunctionTable_v3:
.LFB8600:
	.cfi_startproc
	endbr64
	decl	%edi
	xorl	%eax, %eax
	cmpl	$5, %edi
	ja	.L17
	leaq	.L20(%rip), %rcx
	movslq	(%rcx,%rdi,4), %rax
	addq	%rcx, %rax
	notrack jmp	*%rax
	.section	.rodata.nvtxEtiGetModuleFunctionTable_v3,"aG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
	.align 4
	.align 4
.L20:
	.long	.L25-.L20
	.long	.L30-.L20
	.long	.L23-.L20
	.long	.L22-.L20
	.long	.L21-.L20
	.long	.L19-.L20
	.section	.text.nvtxEtiGetModuleFunctionTable_v3,"axG",@progbits,nvtxEtiGetModuleFunctionTable_v3,comdat
.L25:
	leaq	560+nvtxGlobals_v3(%rip), %rcx
	jmp	.L34
.L23:
	leaq	776+nvtxGlobals_v3(%rip), %rcx
	movl	$128, %eax
	jmp	.L24
.L22:
	leaq	904+nvtxGlobals_v3(%rip), %rcx
	jmp	.L35
.L21:
	leaq	968+nvtxGlobals_v3(%rip), %rcx
.L34:
	movl	$136, %eax
	jmp	.L24
.L19:
	leaq	1104+nvtxGlobals_v3(%rip), %rcx
.L35:
	movl	$64, %eax
	jmp	.L24
.L30:
	leaq	696+nvtxGlobals_v3(%rip), %rcx
	movl	$80, %eax
.L24:
	testq	%rdx, %rdx
	je	.L26
	shrl	$3, %eax
	decl	%eax
	movl	%eax, (%rdx)
.L26:
	testq	%rsi, %rsi
	jne	.L27
.L28:
	movl	$1, %eax
	ret
.L27:
	movq	%rcx, (%rsi)
	jmp	.L28
.L17:
	ret
	.cfi_endproc
.LFE8600:
	.size	nvtxEtiGetModuleFunctionTable_v3, .-nvtxEtiGetModuleFunctionTable_v3
	.section	.text.nvtxGetExportTable_v3,"axG",@progbits,nvtxGetExportTable_v3,comdat
	.weak	nvtxGetExportTable_v3
	.hidden	nvtxGetExportTable_v3
	.type	nvtxGetExportTable_v3, @function
nvtxGetExportTable_v3:
.LFB8601:
	.cfi_startproc
	endbr64
	leaq	8+nvtxGlobals_v3(%rip), %rax
	cmpl	$1, %edi
	je	.L36
	cmpl	$3, %edi
	leaq	16(%rax), %rax
	movl	$0, %edx
	cmovne	%rdx, %rax
.L36:
	ret
	.cfi_endproc
.LFE8601:
	.size	nvtxGetExportTable_v3, .-nvtxGetExportTable_v3
	.section	.text.nvtxEtiSetInjectionNvtxVersion_v3,"axG",@progbits,nvtxEtiSetInjectionNvtxVersion_v3,comdat
	.weak	nvtxEtiSetInjectionNvtxVersion_v3
	.hidden	nvtxEtiSetInjectionNvtxVersion_v3
	.type	nvtxEtiSetInjectionNvtxVersion_v3, @function
nvtxEtiSetInjectionNvtxVersion_v3:
.LFB8602:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE8602:
	.size	nvtxEtiSetInjectionNvtxVersion_v3, .-nvtxEtiSetInjectionNvtxVersion_v3
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv:
.LFB9672:
	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE9672:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev:
.LFB12782:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE12782:
	.size	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED1Ev,_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev:
.LFB12992:
	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE12992:
	.size	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED1Ev,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED2Ev
	.section	.text._ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_
	.type	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_, @function
_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_:
.LFB13387:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	sete	%al
	ret
	.cfi_endproc
.LFE13387:
	.size	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_, .-_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_
	.section	.text._ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_
	.type	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_, @function
_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_:
.LFB13388:
	.cfi_startproc
	endbr64
	cmpq	%rdi, %rsi
	sete	%al
	ret
	.cfi_endproc
.LFE13388:
	.size	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_, .-_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev:
.LFB8379:
	.cfi_startproc
	endbr64
	movl	$8, %esi
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE8379:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev:
.LFB8384:
	.cfi_startproc
	endbr64
	movl	$8, %esi
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE8384:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev:
.LFB8439:
	.cfi_startproc
	endbr64
	movl	$8, %esi
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE8439:
	.size	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev, @function
_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev:
.LFB12784:
	.cfi_startproc
	endbr64
	movl	$16, %esi
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE12784:
	.size	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev, .-_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev:
.LFB12994:
	.cfi_startproc
	endbr64
	movl	$8, %esi
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE12994:
	.size	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system12system_errorD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev:
.LFB8441:
	.cfi_startproc
	endbr64
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE(%rip), %rax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	32(%rdi), %rdi
	movq	%rax, -32(%rdi)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt13runtime_errorD2Ev@PLT
	.cfi_endproc
.LFE8441:
	.size	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD1Ev,_ZN6thrust20THRUST_200700_890_NS6system12system_errorD2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system12system_errorD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev:
.LFB8443:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD1Ev
	movq	8(%rsp), %rdi
	movl	$64, %esi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE8443:
	.size	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev:
.LFB9669:
	.cfi_startproc
	endbr64
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE(%rip), %rax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	8(%rdi), %rdi
	movq	%rax, -8(%rdi)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt9bad_allocD2Ev@PLT
	.cfi_endproc
.LFE9669:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD1Ev,_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev:
.LFB9671:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD1Ev
	movq	8(%rsp), %rdi
	movl	$40, %esi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	_ZdlPvm@PLT
	.cfi_endproc
.LFE9671:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev, .-_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev
	.text
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB11348:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE11348:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0:
.LFB13416:
	.cfi_startproc
	movq	%rdi, %rax
	movq	%rdx, %rdi
	testq	%rsi, %rsi
	je	.L61
	leaq	0(,%rsi,4), %rdx
	movq	%rax, %rsi
	jmp	memmove@PLT
.L61:
	ret
	.cfi_endproc
.LFE13416:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS3_EEEEENS1_15normal_iteratorIPiEET_SG_SF_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS3_EEEEENS1_15normal_iteratorIPiEET_SG_SF_.isra.0:
.LFB13418:
	.cfi_startproc
	subq	%rdi, %rsi
	sarq	$2, %rsi
	jmp	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0
	.cfi_endproc
.LFE13418:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS3_EEEEENS1_15normal_iteratorIPiEET_SG_SF_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS3_EEEEENS1_15normal_iteratorIPiEET_SG_SF_.isra.0
	.type	_ZN6thrust20THRUST_200700_890_NS4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS0_6detail15normal_iteratorIPiEEEET0_T_SF_SE_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS0_6detail15normal_iteratorIPiEEEET0_T_SF_SE_.isra.0:
.LFB13422:
	.cfi_startproc
	subq	%rdi, %rsi
	sarq	$2, %rsi
	jmp	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0
	.cfi_endproc
.LFE13422:
	.size	_ZN6thrust20THRUST_200700_890_NS4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS0_6detail15normal_iteratorIPiEEEET0_T_SF_SE_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS0_6detail15normal_iteratorIPiEEEET0_T_SF_SE_.isra.0
	.type	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0:
.LFB13425:
	.cfi_startproc
	xorl	%eax, %eax
.L66:
	cmpq	%rax, %rsi
	je	.L68
	movl	$0x00000000, (%rdi,%rax,4)
	incq	%rax
	jmp	.L66
.L68:
	ret
	.cfi_endproc
.LFE13425:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	.type	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0:
.LFB13432:
	.cfi_startproc
	xorl	%eax, %eax
.L70:
	cmpq	%rax, %rsi
	je	.L72
	xorl	%edx, %edx
	movl	%edx, (%rdi,%rax,4)
	incq	%rax
	jmp	.L70
.L72:
	ret
	.cfi_endproc
.LFE13432:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	.align 2
	.type	_ZNSolsEPFRSoS_E.isra.0, @function
_ZNSolsEPFRSoS_E.isra.0:
.LFB13439:
	.cfi_startproc
	jmp	*%rsi
	.cfi_endproc
.LFE13439:
	.size	_ZNSolsEPFRSoS_E.isra.0, .-_ZNSolsEPFRSoS_E.isra.0
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv.str1.1,"aMS",@progbits,1
.LC4:
	.string	": "
.LC5:
	.string	"basic_string::append"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv
	.type	_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv, @function
_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv:
.LFB8464:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8464
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpq	$0, 40(%rdi)
	jne	.L76
	call	_ZNKSt13runtime_error4whatEv@PLT
	leaq	32(%rbx), %r13
	movq	%rax, %rdi
	movq	%rax, %rbp
	call	strlen@PLT
	movq	40(%rbx), %rdx
	movq	%rbp, %rcx
	xorl	%esi, %esi
	movq	%rax, %r8
	movq	%r13, %rdi
.LEHB0:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm@PLT
	cmpl	$0, 16(%rbx)
	je	.L76
	cmpq	$0, 40(%rbx)
	jne	.L78
.L80:
	movq	24(%rbx), %rsi
	leaq	8(%rsp), %r12
	movl	16(%rbx), %edx
	movq	%r12, %rdi
	movq	(%rsi), %rax
	call	*48(%rax)
	jmp	.L92
.L78:
	leaq	.LC4(%rip), %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE0:
	jmp	.L80
.L92:
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rsi
	movabsq	$4611686018427387903, %rax
	subq	40(%rbx), %rax
	cmpq	%rdx, %rax
	jnb	.L81
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L91
	leaq	.LC5(%rip), %rdi
.LEHB1:
	call	_ZSt20__throw_length_errorPKc@PLT
.L81:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm@PLT
.LEHE1:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
.L76:
	movq	32(%rbx), %rbx
	jmp	.L74
.L88:
	endbr64
	movq	%rax, %rbp
.L83:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	jmp	.L84
.L87:
	endbr64
	movq	%rax, %rdi
.L84:
	call	__cxa_begin_catch@PLT
	movq	%rbx, %rdi
	call	_ZNKSt13runtime_error4whatEv@PLT
	movq	%rax, %rbx
	call	__cxa_end_catch@PLT
.L74:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L86
.L91:
	call	__stack_chk_fail@PLT
.L86:
	addq	$56, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8464:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table._ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,"aG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,comdat
	.align 4
.LLSDA8464:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT8464-.LLSDATTD8464
.LLSDATTD8464:
	.byte	0x1
	.uleb128 .LLSDACSE8464-.LLSDACSB8464
.LLSDACSB8464:
	.uleb128 .LEHB0-.LFB8464
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L87-.LFB8464
	.uleb128 0x1
	.uleb128 .LEHB1-.LFB8464
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L88-.LFB8464
	.uleb128 0x3
.LLSDACSE8464:
	.byte	0x1
	.byte	0
	.byte	0
	.byte	0x7d
	.align 4
	.long	0

.LLSDATT8464:
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv,comdat
	.size	_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv, .-_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv
	.section	.text._ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,"axG",@progbits,_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv,comdat
	.weak	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.hidden	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.type	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, @function
_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv:
.LFB11782:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967297, %rax
	leaq	8(%rsp), %rcx
	movq	%rsp, %rdx
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L93
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L93:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L95
	call	__stack_chk_fail@PLT
.L95:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11782:
	.size	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv, .-_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv
	.text
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0:
.LFB13448:
	.cfi_startproc
	movq	%rdi, %rax
	movq	%rdx, %rdi
	testq	%rsi, %rsi
	je	.L97
	leaq	0(,%rsi,4), %rdx
	movq	%rax, %rsi
	jmp	memmove@PLT
.L97:
	ret
	.cfi_endproc
.LFE13448:
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0
	.type	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0:
.LFB13449:
	.cfi_startproc
	movq	%rsi, %rax
	movq	%rdi, %rsi
	subq	%rax, %rsi
	sarq	$2, %rsi
	negq	%rsi
	jmp	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0
	.cfi_endproc
.LFE13449:
	.size	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0:
.LFB13452:
	.cfi_startproc
	movq	%rsi, %rax
	movq	%rdi, %rsi
	subq	%rax, %rsi
	sarq	$2, %rsi
	negq	%rsi
	jmp	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0
	.cfi_endproc
.LFE13452:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv
	.type	_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv, @function
_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv:
.LFB8375:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result(%rip), %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 32
	movb	_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result(%rip), %al
	testb	%al, %al
	jne	.L103
	leaq	_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result(%rip), %rbp
	movq	%rbp, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L103
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE(%rip), %rax
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD1Ev(%rip), %rdi
	movq	%rbx, %rsi
	leaq	__dso_handle(%rip), %rdx
	movq	%rax, _ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result(%rip)
	call	__cxa_atexit@PLT
	movq	%rbp, %rdi
	call	__cxa_guard_release@PLT
.L103:
	movq	%rbx, %rax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8375:
	.size	_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv, .-_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei:
.LFB8373:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	movl	%edx, 12(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	call	_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv
	movl	12(%rsp), %edx
	movq	%rbx, %rdi
	movq	%rax, %rsi
	movq	(%rax), %rax
	call	*48(%rax)
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L110
	call	__stack_chk_fail@PLT
.L110:
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8373:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv
	.type	_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv, @function
_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv:
.LFB8380:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result(%rip), %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 32
	movb	_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result(%rip), %al
	testb	%al, %al
	jne	.L114
	leaq	_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result(%rip), %rbp
	movq	%rbp, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L114
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE(%rip), %rax
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD1Ev(%rip), %rdi
	movq	%rbx, %rsi
	leaq	__dso_handle(%rip), %rdx
	movq	%rax, _ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result(%rip)
	call	__cxa_atexit@PLT
	movq	%rbp, %rdi
	call	__cxa_guard_release@PLT
.L114:
	movq	%rbx, %rax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8380:
	.size	_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv, .-_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE
	.type	_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE, @function
_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE:
.LFB8425:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%edi, %ebx
	call	_ZN6thrust20THRUST_200700_890_NS6system16generic_categoryEv
	movq	%rax, %rdx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8425:
	.size	_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE, .-_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi:
.LFB8374:
	.cfi_startproc
	endbr64
	leal	-9901(%rsi), %eax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%esi, %ebx
	cmpl	$78, %eax
	ja	.L123
	leaq	.L125(%rip), %rdx
	movslq	(%rdx,%rax,4), %rax
	addq	%rdx, %rax
	notrack jmp	*%rax
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,"aG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,comdat
	.align 4
	.align 4
.L125:
	.long	.L202-.L125
	.long	.L201-.L125
	.long	.L200-.L125
	.long	.L199-.L125
	.long	.L198-.L125
	.long	.L197-.L125
	.long	.L196-.L125
	.long	.L195-.L125
	.long	.L194-.L125
	.long	.L193-.L125
	.long	.L192-.L125
	.long	.L191-.L125
	.long	.L190-.L125
	.long	.L189-.L125
	.long	.L188-.L125
	.long	.L187-.L125
	.long	.L186-.L125
	.long	.L185-.L125
	.long	.L184-.L125
	.long	.L183-.L125
	.long	.L182-.L125
	.long	.L181-.L125
	.long	.L180-.L125
	.long	.L179-.L125
	.long	.L178-.L125
	.long	.L177-.L125
	.long	.L176-.L125
	.long	.L175-.L125
	.long	.L174-.L125
	.long	.L173-.L125
	.long	.L172-.L125
	.long	.L171-.L125
	.long	.L170-.L125
	.long	.L169-.L125
	.long	.L168-.L125
	.long	.L167-.L125
	.long	.L123-.L125
	.long	.L166-.L125
	.long	.L165-.L125
	.long	.L164-.L125
	.long	.L163-.L125
	.long	.L162-.L125
	.long	.L161-.L125
	.long	.L160-.L125
	.long	.L159-.L125
	.long	.L158-.L125
	.long	.L157-.L125
	.long	.L156-.L125
	.long	.L155-.L125
	.long	.L154-.L125
	.long	.L153-.L125
	.long	.L152-.L125
	.long	.L151-.L125
	.long	.L150-.L125
	.long	.L149-.L125
	.long	.L148-.L125
	.long	.L147-.L125
	.long	.L146-.L125
	.long	.L145-.L125
	.long	.L144-.L125
	.long	.L143-.L125
	.long	.L142-.L125
	.long	.L141-.L125
	.long	.L140-.L125
	.long	.L139-.L125
	.long	.L138-.L125
	.long	.L137-.L125
	.long	.L136-.L125
	.long	.L135-.L125
	.long	.L134-.L125
	.long	.L133-.L125
	.long	.L132-.L125
	.long	.L131-.L125
	.long	.L130-.L125
	.long	.L129-.L125
	.long	.L128-.L125
	.long	.L127-.L125
	.long	.L126-.L125
	.long	.L124-.L125
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi,comdat
.L202:
	movl	$9901, %edi
	jmp	.L204
.L201:
	movl	$9902, %edi
	jmp	.L204
.L200:
	movl	$9903, %edi
	jmp	.L204
.L199:
	movl	$9904, %edi
	jmp	.L204
.L158:
	movl	$9946, %edi
	jmp	.L204
.L157:
	movl	$9947, %edi
	jmp	.L204
.L156:
	movl	$9948, %edi
	jmp	.L204
.L155:
	movl	$9949, %edi
	jmp	.L204
.L198:
	movl	$9905, %edi
	jmp	.L204
.L154:
	movl	$9950, %edi
	jmp	.L204
.L197:
	movl	$9906, %edi
	jmp	.L204
.L196:
	movl	$9907, %edi
	jmp	.L204
.L195:
	movl	$9908, %edi
	jmp	.L204
.L194:
	movl	$9909, %edi
	jmp	.L204
.L153:
	movl	$9951, %edi
	jmp	.L204
.L193:
	movl	$9910, %edi
	jmp	.L204
.L152:
	movl	$9952, %edi
	jmp	.L204
.L151:
	movl	$9953, %edi
	jmp	.L204
.L150:
	movl	$9954, %edi
	jmp	.L204
.L149:
	movl	$9955, %edi
	jmp	.L204
.L148:
	movl	$9956, %edi
	jmp	.L204
.L147:
	movl	$9957, %edi
	jmp	.L204
.L162:
	movl	$9942, %edi
	jmp	.L204
.L192:
	movl	$9911, %edi
	jmp	.L204
.L191:
	movl	$9912, %edi
	jmp	.L204
.L159:
	movl	$9945, %edi
	jmp	.L204
.L146:
	movl	$9958, %edi
	jmp	.L204
.L145:
	movl	$9959, %edi
	jmp	.L204
.L161:
	movl	$9943, %edi
	jmp	.L204
.L144:
	movl	$9960, %edi
	jmp	.L204
.L143:
	movl	$9961, %edi
	jmp	.L204
.L142:
	movl	$9962, %edi
	jmp	.L204
.L190:
	movl	$9913, %edi
	jmp	.L204
.L189:
	movl	$9914, %edi
	jmp	.L204
.L188:
	movl	$9915, %edi
	jmp	.L204
.L187:
	movl	$9916, %edi
	jmp	.L204
.L186:
	movl	$9917, %edi
	jmp	.L204
.L141:
	movl	$9963, %edi
	jmp	.L204
.L185:
	movl	$9918, %edi
	jmp	.L204
.L140:
	movl	$9964, %edi
	jmp	.L204
.L184:
	movl	$9919, %edi
	jmp	.L204
.L183:
	movl	$9920, %edi
	jmp	.L204
.L182:
	movl	$9921, %edi
	jmp	.L204
.L139:
	movl	$9965, %edi
	jmp	.L204
.L181:
	movl	$9922, %edi
	jmp	.L204
.L138:
	movl	$9966, %edi
	jmp	.L204
.L137:
	movl	$9967, %edi
	jmp	.L204
.L136:
	movl	$9968, %edi
	jmp	.L204
.L135:
	movl	$9969, %edi
	jmp	.L204
.L134:
	movl	$9970, %edi
	jmp	.L204
.L180:
	movl	$9923, %edi
	jmp	.L204
.L179:
	movl	$9924, %edi
	jmp	.L204
.L178:
	movl	$9925, %edi
	jmp	.L204
.L133:
	movl	$9971, %edi
	jmp	.L204
.L177:
	movl	$9926, %edi
	jmp	.L204
.L176:
	movl	$9927, %edi
	jmp	.L204
.L175:
	movl	$9928, %edi
	jmp	.L204
.L132:
	movl	$9972, %edi
	jmp	.L204
.L174:
	movl	$9929, %edi
	jmp	.L204
.L173:
	movl	$9930, %edi
	jmp	.L204
.L172:
	movl	$9931, %edi
	jmp	.L204
.L131:
	movl	$9973, %edi
	jmp	.L204
.L171:
	movl	$9932, %edi
	jmp	.L204
.L170:
	movl	$9933, %edi
	jmp	.L204
.L130:
	movl	$9974, %edi
	jmp	.L204
.L129:
	movl	$9975, %edi
	jmp	.L204
.L128:
	movl	$9976, %edi
	jmp	.L204
.L160:
	movl	$9944, %edi
	jmp	.L204
.L169:
	movl	$9934, %edi
	jmp	.L204
.L168:
	movl	$9935, %edi
	jmp	.L204
.L167:
	movl	$9936, %edi
	jmp	.L204
.L166:
	movl	$9938, %edi
	jmp	.L204
.L127:
	movl	$9977, %edi
	jmp	.L204
.L126:
	movl	$9978, %edi
	jmp	.L204
.L124:
	movl	$9979, %edi
	jmp	.L204
.L165:
	movl	$9939, %edi
	jmp	.L204
.L164:
	movl	$9940, %edi
	jmp	.L204
.L163:
	movl	$9941, %edi
.L204:
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6system20make_error_conditionENS1_4errc6errc_tE
.L123:
	.cfi_restore_state
	call	_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv
	movq	%rax, %rdx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8374:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv
	.type	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv, @function
_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv:
.LFB8435:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result(%rip), %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 32
	movb	_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result(%rip), %al
	testb	%al, %al
	jne	.L207
	leaq	_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result(%rip), %rbp
	movq	%rbp, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L207
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE(%rip), %rax
	leaq	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD1Ev(%rip), %rdi
	movq	%rbx, %rsi
	leaq	__dso_handle(%rip), %rdx
	movq	%rax, _ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result(%rip)
	call	__cxa_atexit@PLT
	movq	%rbp, %rdi
	call	__cxa_guard_release@PLT
.L207:
	movq	%rbx, %rax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8435:
	.size	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv, .-_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi
	.type	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi, @function
_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi:
.LFB8434:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%esi, %ebx
	cmpl	$998, %esi
	jg	.L214
	call	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv
	movq	%rax, %rdx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L214:
	.cfi_restore_state
	call	_ZN6thrust20THRUST_200700_890_NS6system15system_categoryEv
	movl	%ebx, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
	movq	(%rax), %rax
	movq	24(%rax), %rax
	jmp	*%rax
	.cfi_endproc
.LFE8434:
	.size	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi, .-_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi
	.section	.text._ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
	.type	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc, @function
_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc:
.LFB8479:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8479
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%rcx
	.cfi_def_cfa_offset 48
.LEHB2:
	call	cudaGetLastError@PLT
.LEHE2:
	testl	%ebp, %ebp
	je	.L218
	movl	$64, %edi
	call	__cxa_allocate_exception@PLT
	movq	%rax, %rbx
	call	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv
	movq	%r13, %rsi
	movq	%rbx, %rdi
	movq	%rax, %r12
.LEHB3:
	call	_ZNSt13runtime_errorC2EPKc@PLT
.LEHE3:
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE(%rip), %rax
	xorl	%edx, %edx
	movl	%ebp, 16(%rbx)
	movq	%rbx, %rdi
	movq	%rax, (%rbx)
	leaq	48(%rbx), %rax
	leaq	_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE(%rip), %rsi
	movq	%rdx, 40(%rbx)
	leaq	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD1Ev(%rip), %rdx
	movq	%r12, 24(%rbx)
	movq	%rax, 32(%rbx)
	movb	$0, 48(%rbx)
.LEHB4:
	call	__cxa_throw@PLT
.L221:
	endbr64
	movq	%rax, %rbp
.L220:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%rbp, %rdi
	call	_Unwind_Resume@PLT
.LEHE4:
.L218:
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8479:
	.section	.gcc_except_table._ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,"aG",@progbits,_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,comdat
.LLSDA8479:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8479-.LLSDACSB8479
.LLSDACSB8479:
	.uleb128 .LEHB2-.LFB8479
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB3-.LFB8479
	.uleb128 .LEHE3-.LEHB3
	.uleb128 .L221-.LFB8479
	.uleb128 0
	.uleb128 .LEHB4-.LFB8479
	.uleb128 .LEHE4-.LEHB4
	.uleb128 0
	.uleb128 0
.LLSDACSE8479:
	.section	.text._ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc, .-_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
	.section	.rodata._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm.str1.1,"aMS",@progbits,1
.LC6:
	.string	"CUDA free failed"
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm
	.type	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm, @function
_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm:
.LFB13066:
	.cfi_startproc
	endbr64
	pushq	%rcx
	.cfi_def_cfa_offset 16
	movq	%rsi, %rdi
	call	cudaFree@PLT
	testl	%eax, %eax
	je	.L223
	movl	%eax, %edi
	leaq	.LC6(%rip), %rsi
	popq	%rdx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.L223:
	.cfi_restore_state
	popq	%rax
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13066:
	.size	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm, .-_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm
	.section	.text._ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm
	.type	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm, @function
_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm:
.LFB12998:
	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	jmp	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm
	.cfi_endproc
.LFE12998:
	.size	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm, .-_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC7:
	.string	"__copy::trivial_device_copy H->D: failed"
	.text
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0:
.LFB13456:
	.cfi_startproc
	movq	%rdi, %rax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	subq	%rsi, %rax
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rax, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	sarq	$2, %rbp
	imulq	$-4, %rbp, %rbp
	testq	%rax, %rax
	jns	.L228
	movq	%rdi, %rsi
	movl	$1, %r8d
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movl	$1, %ecx
	call	cudaMemcpyAsync@PLT
	movl	$1, %edi
	movl	%eax, %r12d
	call	cudaStreamSynchronize@PLT
	leaq	.LC7(%rip), %rsi
	movl	%r12d, %edi
	call	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.L228:
	leaq	(%rbx,%rbp), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13456:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0
	.section	.text.nvtxSetInitFunctionsToNoops_v3,"axG",@progbits,nvtxSetInitFunctionsToNoops_v3,comdat
	.weak	nvtxSetInitFunctionsToNoops_v3
	.hidden	nvtxSetInitFunctionsToNoops_v3
	.type	nvtxSetInitFunctionsToNoops_v3, @function
nvtxSetInitFunctionsToNoops_v3:
.LFB8667:
	.cfi_startproc
	endbr64
	testl	%edi, %edi
	leaq	nvtxMarkEx_impl_init_v3(%rip), %rdx
	setne	%al
	cmpq	%rdx, 48+nvtxGlobals_v3(%rip)
	je	.L359
	testb	%al, %al
	je	.L231
.L359:
	xorl	%r10d, %r10d
	movq	%r10, 48+nvtxGlobals_v3(%rip)
.L231:
	leaq	nvtxMarkA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 56+nvtxGlobals_v3(%rip)
	je	.L360
	testb	%al, %al
	je	.L233
.L360:
	xorl	%r9d, %r9d
	movq	%r9, 56+nvtxGlobals_v3(%rip)
.L233:
	leaq	nvtxMarkW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 64+nvtxGlobals_v3(%rip)
	je	.L361
	testb	%al, %al
	je	.L235
.L361:
	xorl	%r8d, %r8d
	movq	%r8, 64+nvtxGlobals_v3(%rip)
.L235:
	leaq	nvtxRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 72+nvtxGlobals_v3(%rip)
	je	.L362
	testb	%al, %al
	je	.L237
.L362:
	xorl	%edi, %edi
	movq	%rdi, 72+nvtxGlobals_v3(%rip)
.L237:
	leaq	nvtxRangeStartA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 80+nvtxGlobals_v3(%rip)
	je	.L363
	testb	%al, %al
	je	.L239
.L363:
	xorl	%esi, %esi
	movq	%rsi, 80+nvtxGlobals_v3(%rip)
.L239:
	leaq	nvtxRangeStartW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 88+nvtxGlobals_v3(%rip)
	je	.L364
	testb	%al, %al
	je	.L241
.L364:
	xorl	%ecx, %ecx
	movq	%rcx, 88+nvtxGlobals_v3(%rip)
.L241:
	leaq	nvtxRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 96+nvtxGlobals_v3(%rip)
	je	.L365
	testb	%al, %al
	je	.L243
.L365:
	xorl	%edx, %edx
	movq	%rdx, 96+nvtxGlobals_v3(%rip)
.L243:
	leaq	nvtxRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 104+nvtxGlobals_v3(%rip)
	je	.L366
	testb	%al, %al
	je	.L245
.L366:
	xorl	%r11d, %r11d
	movq	%r11, 104+nvtxGlobals_v3(%rip)
.L245:
	leaq	nvtxRangePushA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 112+nvtxGlobals_v3(%rip)
	je	.L367
	testb	%al, %al
	je	.L247
.L367:
	xorl	%r10d, %r10d
	movq	%r10, 112+nvtxGlobals_v3(%rip)
.L247:
	leaq	nvtxRangePushW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 120+nvtxGlobals_v3(%rip)
	je	.L368
	testb	%al, %al
	je	.L249
.L368:
	xorl	%r9d, %r9d
	movq	%r9, 120+nvtxGlobals_v3(%rip)
.L249:
	leaq	nvtxRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 128+nvtxGlobals_v3(%rip)
	je	.L369
	testb	%al, %al
	je	.L251
.L369:
	xorl	%r8d, %r8d
	movq	%r8, 128+nvtxGlobals_v3(%rip)
.L251:
	leaq	nvtxNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 136+nvtxGlobals_v3(%rip)
	je	.L370
	testb	%al, %al
	je	.L253
.L370:
	xorl	%edi, %edi
	movq	%rdi, 136+nvtxGlobals_v3(%rip)
.L253:
	leaq	nvtxNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 144+nvtxGlobals_v3(%rip)
	je	.L371
	testb	%al, %al
	je	.L255
.L371:
	xorl	%esi, %esi
	movq	%rsi, 144+nvtxGlobals_v3(%rip)
.L255:
	leaq	nvtxNameOsThreadA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 152+nvtxGlobals_v3(%rip)
	je	.L372
	testb	%al, %al
	je	.L257
.L372:
	xorl	%ecx, %ecx
	movq	%rcx, 152+nvtxGlobals_v3(%rip)
.L257:
	leaq	nvtxNameOsThreadW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 160+nvtxGlobals_v3(%rip)
	je	.L373
	testb	%al, %al
	je	.L259
.L373:
	xorl	%edx, %edx
	movq	%rdx, 160+nvtxGlobals_v3(%rip)
.L259:
	leaq	nvtxNameCuDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 168+nvtxGlobals_v3(%rip)
	je	.L374
	testb	%al, %al
	je	.L261
.L374:
	xorl	%r11d, %r11d
	movq	%r11, 168+nvtxGlobals_v3(%rip)
.L261:
	leaq	nvtxNameCuDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 176+nvtxGlobals_v3(%rip)
	je	.L375
	testb	%al, %al
	je	.L263
.L375:
	xorl	%r10d, %r10d
	movq	%r10, 176+nvtxGlobals_v3(%rip)
.L263:
	leaq	nvtxNameCuContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 184+nvtxGlobals_v3(%rip)
	je	.L376
	testb	%al, %al
	je	.L265
.L376:
	xorl	%r9d, %r9d
	movq	%r9, 184+nvtxGlobals_v3(%rip)
.L265:
	leaq	nvtxNameCuContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 192+nvtxGlobals_v3(%rip)
	je	.L377
	testb	%al, %al
	je	.L267
.L377:
	xorl	%r8d, %r8d
	movq	%r8, 192+nvtxGlobals_v3(%rip)
.L267:
	leaq	nvtxNameCuStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 200+nvtxGlobals_v3(%rip)
	je	.L378
	testb	%al, %al
	je	.L269
.L378:
	xorl	%edi, %edi
	movq	%rdi, 200+nvtxGlobals_v3(%rip)
.L269:
	leaq	nvtxNameCuStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 208+nvtxGlobals_v3(%rip)
	je	.L379
	testb	%al, %al
	je	.L271
.L379:
	xorl	%esi, %esi
	movq	%rsi, 208+nvtxGlobals_v3(%rip)
.L271:
	leaq	nvtxNameCuEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 216+nvtxGlobals_v3(%rip)
	je	.L380
	testb	%al, %al
	je	.L273
.L380:
	xorl	%ecx, %ecx
	movq	%rcx, 216+nvtxGlobals_v3(%rip)
.L273:
	leaq	nvtxNameCuEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 224+nvtxGlobals_v3(%rip)
	je	.L381
	testb	%al, %al
	je	.L275
.L381:
	xorl	%edx, %edx
	movq	%rdx, 224+nvtxGlobals_v3(%rip)
.L275:
	leaq	nvtxNameClDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 232+nvtxGlobals_v3(%rip)
	je	.L382
	testb	%al, %al
	je	.L277
.L382:
	xorl	%r11d, %r11d
	movq	%r11, 232+nvtxGlobals_v3(%rip)
.L277:
	leaq	nvtxNameClDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 240+nvtxGlobals_v3(%rip)
	je	.L383
	testb	%al, %al
	je	.L279
.L383:
	xorl	%r10d, %r10d
	movq	%r10, 240+nvtxGlobals_v3(%rip)
.L279:
	leaq	nvtxNameClContextA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 248+nvtxGlobals_v3(%rip)
	je	.L384
	testb	%al, %al
	je	.L281
.L384:
	xorl	%r9d, %r9d
	movq	%r9, 248+nvtxGlobals_v3(%rip)
.L281:
	leaq	nvtxNameClContextW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 256+nvtxGlobals_v3(%rip)
	je	.L385
	testb	%al, %al
	je	.L283
.L385:
	xorl	%r8d, %r8d
	movq	%r8, 256+nvtxGlobals_v3(%rip)
.L283:
	leaq	nvtxNameClCommandQueueA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 264+nvtxGlobals_v3(%rip)
	je	.L386
	testb	%al, %al
	je	.L285
.L386:
	xorl	%edi, %edi
	movq	%rdi, 264+nvtxGlobals_v3(%rip)
.L285:
	leaq	nvtxNameClCommandQueueW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 272+nvtxGlobals_v3(%rip)
	je	.L387
	testb	%al, %al
	je	.L287
.L387:
	xorl	%esi, %esi
	movq	%rsi, 272+nvtxGlobals_v3(%rip)
.L287:
	leaq	nvtxNameClMemObjectA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 280+nvtxGlobals_v3(%rip)
	je	.L388
	testb	%al, %al
	je	.L289
.L388:
	xorl	%ecx, %ecx
	movq	%rcx, 280+nvtxGlobals_v3(%rip)
.L289:
	leaq	nvtxNameClMemObjectW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 288+nvtxGlobals_v3(%rip)
	je	.L389
	testb	%al, %al
	je	.L291
.L389:
	xorl	%edx, %edx
	movq	%rdx, 288+nvtxGlobals_v3(%rip)
.L291:
	leaq	nvtxNameClSamplerA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 296+nvtxGlobals_v3(%rip)
	je	.L390
	testb	%al, %al
	je	.L293
.L390:
	xorl	%r11d, %r11d
	movq	%r11, 296+nvtxGlobals_v3(%rip)
.L293:
	leaq	nvtxNameClSamplerW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 304+nvtxGlobals_v3(%rip)
	je	.L391
	testb	%al, %al
	je	.L295
.L391:
	xorl	%r10d, %r10d
	movq	%r10, 304+nvtxGlobals_v3(%rip)
.L295:
	leaq	nvtxNameClProgramA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 312+nvtxGlobals_v3(%rip)
	je	.L392
	testb	%al, %al
	je	.L297
.L392:
	xorl	%r9d, %r9d
	movq	%r9, 312+nvtxGlobals_v3(%rip)
.L297:
	leaq	nvtxNameClProgramW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 320+nvtxGlobals_v3(%rip)
	je	.L393
	testb	%al, %al
	je	.L299
.L393:
	xorl	%r8d, %r8d
	movq	%r8, 320+nvtxGlobals_v3(%rip)
.L299:
	leaq	nvtxNameClEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 328+nvtxGlobals_v3(%rip)
	je	.L394
	testb	%al, %al
	je	.L301
.L394:
	xorl	%edi, %edi
	movq	%rdi, 328+nvtxGlobals_v3(%rip)
.L301:
	leaq	nvtxNameClEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 336+nvtxGlobals_v3(%rip)
	je	.L395
	testb	%al, %al
	je	.L303
.L395:
	xorl	%esi, %esi
	movq	%rsi, 336+nvtxGlobals_v3(%rip)
.L303:
	leaq	nvtxNameCudaDeviceA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 344+nvtxGlobals_v3(%rip)
	je	.L396
	testb	%al, %al
	je	.L305
.L396:
	xorl	%ecx, %ecx
	movq	%rcx, 344+nvtxGlobals_v3(%rip)
.L305:
	leaq	nvtxNameCudaDeviceW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 352+nvtxGlobals_v3(%rip)
	je	.L397
	testb	%al, %al
	je	.L307
.L397:
	xorl	%edx, %edx
	movq	%rdx, 352+nvtxGlobals_v3(%rip)
.L307:
	leaq	nvtxNameCudaStreamA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 360+nvtxGlobals_v3(%rip)
	je	.L398
	testb	%al, %al
	je	.L309
.L398:
	xorl	%r11d, %r11d
	movq	%r11, 360+nvtxGlobals_v3(%rip)
.L309:
	leaq	nvtxNameCudaStreamW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 368+nvtxGlobals_v3(%rip)
	je	.L399
	testb	%al, %al
	je	.L311
.L399:
	xorl	%r10d, %r10d
	movq	%r10, 368+nvtxGlobals_v3(%rip)
.L311:
	leaq	nvtxNameCudaEventA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 376+nvtxGlobals_v3(%rip)
	je	.L400
	testb	%al, %al
	je	.L313
.L400:
	xorl	%r9d, %r9d
	movq	%r9, 376+nvtxGlobals_v3(%rip)
.L313:
	leaq	nvtxNameCudaEventW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 384+nvtxGlobals_v3(%rip)
	je	.L401
	testb	%al, %al
	je	.L315
.L401:
	xorl	%r8d, %r8d
	movq	%r8, 384+nvtxGlobals_v3(%rip)
.L315:
	leaq	nvtxDomainMarkEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 392+nvtxGlobals_v3(%rip)
	je	.L402
	testb	%al, %al
	je	.L317
.L402:
	xorl	%edi, %edi
	movq	%rdi, 392+nvtxGlobals_v3(%rip)
.L317:
	leaq	nvtxDomainRangeStartEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 400+nvtxGlobals_v3(%rip)
	je	.L403
	testb	%al, %al
	je	.L319
.L403:
	xorl	%esi, %esi
	movq	%rsi, 400+nvtxGlobals_v3(%rip)
.L319:
	leaq	nvtxDomainRangeEnd_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 408+nvtxGlobals_v3(%rip)
	je	.L404
	testb	%al, %al
	je	.L321
.L404:
	xorl	%ecx, %ecx
	movq	%rcx, 408+nvtxGlobals_v3(%rip)
.L321:
	leaq	nvtxDomainRangePushEx_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 416+nvtxGlobals_v3(%rip)
	je	.L405
	testb	%al, %al
	je	.L323
.L405:
	xorl	%edx, %edx
	movq	%rdx, 416+nvtxGlobals_v3(%rip)
.L323:
	leaq	nvtxDomainRangePop_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 424+nvtxGlobals_v3(%rip)
	je	.L406
	testb	%al, %al
	je	.L325
.L406:
	xorl	%r11d, %r11d
	movq	%r11, 424+nvtxGlobals_v3(%rip)
.L325:
	leaq	nvtxDomainResourceCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 432+nvtxGlobals_v3(%rip)
	je	.L407
	testb	%al, %al
	je	.L327
.L407:
	xorl	%r10d, %r10d
	movq	%r10, 432+nvtxGlobals_v3(%rip)
.L327:
	leaq	nvtxDomainResourceDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 440+nvtxGlobals_v3(%rip)
	je	.L408
	testb	%al, %al
	je	.L329
.L408:
	xorl	%r9d, %r9d
	movq	%r9, 440+nvtxGlobals_v3(%rip)
.L329:
	leaq	nvtxDomainNameCategoryA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 448+nvtxGlobals_v3(%rip)
	je	.L409
	testb	%al, %al
	je	.L331
.L409:
	xorl	%r8d, %r8d
	movq	%r8, 448+nvtxGlobals_v3(%rip)
.L331:
	leaq	nvtxDomainNameCategoryW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 456+nvtxGlobals_v3(%rip)
	je	.L410
	testb	%al, %al
	je	.L333
.L410:
	xorl	%edi, %edi
	movq	%rdi, 456+nvtxGlobals_v3(%rip)
.L333:
	leaq	nvtxDomainRegisterStringA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 464+nvtxGlobals_v3(%rip)
	je	.L411
	testb	%al, %al
	je	.L335
.L411:
	xorl	%esi, %esi
	movq	%rsi, 464+nvtxGlobals_v3(%rip)
.L335:
	leaq	nvtxDomainRegisterStringW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 472+nvtxGlobals_v3(%rip)
	je	.L412
	testb	%al, %al
	je	.L337
.L412:
	xorl	%ecx, %ecx
	movq	%rcx, 472+nvtxGlobals_v3(%rip)
.L337:
	leaq	nvtxDomainCreateA_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 480+nvtxGlobals_v3(%rip)
	je	.L413
	testb	%al, %al
	je	.L339
.L413:
	xorl	%edx, %edx
	movq	%rdx, 480+nvtxGlobals_v3(%rip)
.L339:
	leaq	nvtxDomainCreateW_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 488+nvtxGlobals_v3(%rip)
	je	.L414
	testb	%al, %al
	je	.L341
.L414:
	xorl	%r11d, %r11d
	movq	%r11, 488+nvtxGlobals_v3(%rip)
.L341:
	leaq	nvtxDomainDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 496+nvtxGlobals_v3(%rip)
	je	.L415
	testb	%al, %al
	je	.L343
.L415:
	xorl	%r10d, %r10d
	movq	%r10, 496+nvtxGlobals_v3(%rip)
.L343:
	leaq	nvtxInitialize_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 504+nvtxGlobals_v3(%rip)
	je	.L416
	testb	%al, %al
	je	.L345
.L416:
	xorl	%r9d, %r9d
	movq	%r9, 504+nvtxGlobals_v3(%rip)
.L345:
	leaq	nvtxDomainSyncUserCreate_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 512+nvtxGlobals_v3(%rip)
	je	.L417
	testb	%al, %al
	je	.L347
.L417:
	xorl	%r8d, %r8d
	movq	%r8, 512+nvtxGlobals_v3(%rip)
.L347:
	leaq	nvtxDomainSyncUserDestroy_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 520+nvtxGlobals_v3(%rip)
	je	.L418
	testb	%al, %al
	je	.L349
.L418:
	xorl	%edi, %edi
	movq	%rdi, 520+nvtxGlobals_v3(%rip)
.L349:
	leaq	nvtxDomainSyncUserAcquireStart_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 528+nvtxGlobals_v3(%rip)
	je	.L419
	testb	%al, %al
	je	.L351
.L419:
	xorl	%esi, %esi
	movq	%rsi, 528+nvtxGlobals_v3(%rip)
.L351:
	leaq	nvtxDomainSyncUserAcquireFailed_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 536+nvtxGlobals_v3(%rip)
	je	.L420
	testb	%al, %al
	je	.L353
.L420:
	xorl	%ecx, %ecx
	movq	%rcx, 536+nvtxGlobals_v3(%rip)
.L353:
	leaq	nvtxDomainSyncUserAcquireSuccess_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 544+nvtxGlobals_v3(%rip)
	je	.L421
	testb	%al, %al
	je	.L355
.L421:
	xorl	%edx, %edx
	movq	%rdx, 544+nvtxGlobals_v3(%rip)
.L355:
	leaq	nvtxDomainSyncUserReleasing_impl_init_v3(%rip), %rdx
	cmpq	%rdx, 552+nvtxGlobals_v3(%rip)
	je	.L422
	testb	%al, %al
	je	.L230
.L422:
	xorl	%eax, %eax
	movq	%rax, 552+nvtxGlobals_v3(%rip)
.L230:
	ret
	.cfi_endproc
.LFE8667:
	.size	nvtxSetInitFunctionsToNoops_v3, .-nvtxSetInitFunctionsToNoops_v3
	.section	.rodata.nvtxInitializeInjectionLibrary_v3.str1.1,"aMS",@progbits,1
.LC8:
	.string	"NVTX_INJECTION64_PATH"
.LC9:
	.string	"InitializeInjectionNvtx2"
	.section	.text.nvtxInitializeInjectionLibrary_v3,"axG",@progbits,nvtxInitializeInjectionLibrary_v3,comdat
	.weak	nvtxInitializeInjectionLibrary_v3
	.hidden	nvtxInitializeInjectionLibrary_v3
	.type	nvtxInitializeInjectionLibrary_v3, @function
nvtxInitializeInjectionLibrary_v3:
.LFB8668:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	.LC8(%rip), %rdi
	call	getenv@PLT
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L616
	movl	$1, %esi
	movq	%rax, %rdi
	call	dlopen@PLT
	movl	$4, %edx
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L615
	leaq	.LC9(%rip), %rsi
	movq	%rax, %rdi
	call	dlsym@PLT
	testq	%rax, %rax
	jne	.L618
	movq	%rbx, %rdi
	call	dlclose@PLT
	movl	$5, %edx
	jmp	.L615
.L616:
	movq	InitializeInjectionNvtx2_fnptr(%rip), %rax
	movl	$7, %edx
	testq	%rax, %rax
	je	.L615
.L618:
	leaq	nvtxGetExportTable_v3(%rip), %rdi
	call	*%rax
	xorl	%edx, %edx
	testl	%eax, %eax
	jne	.L615
	testq	%rbx, %rbx
	je	.L619
	movq	%rbx, %rdi
	call	dlclose@PLT
.L619:
	movl	$6, %edx
.L615:
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8668:
	.size	nvtxInitializeInjectionLibrary_v3, .-nvtxInitializeInjectionLibrary_v3
	.section	.text.nvtxInitOnce_v3,"axG",@progbits,nvtxInitOnce_v3,comdat
	.weak	nvtxInitOnce_v3
	.hidden	nvtxInitOnce_v3
	.type	nvtxInitOnce_v3, @function
nvtxInitOnce_v3:
.LFB8669:
	.cfi_startproc
	endbr64
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L635
	pushq	%rdx
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	xorl	%edx, %edx
	mfence
	lock cmpxchgl	%edx, nvtxGlobals_v3(%rip)
	testl	%eax, %eax
	jne	.L638
	call	nvtxInitializeInjectionLibrary_v3
	xorl	%edi, %edi
	testl	%eax, %eax
	setne	%dil
	call	nvtxSetInitFunctionsToNoops_v3
	movl	$2, %eax
	mfence
	xchgl	nvtxGlobals_v3(%rip), %eax
	jmp	.L627
.L638:
	mfence
	movl	nvtxGlobals_v3(%rip), %eax
	cmpl	$2, %eax
	je	.L627
	call	sched_yield@PLT
	jmp	.L638
.L627:
	popq	%rax
	.cfi_def_cfa_offset 8
	ret
.L635:
	ret
	.cfi_endproc
.LFE8669:
	.size	nvtxInitOnce_v3, .-nvtxInitOnce_v3
	.section	.text.nvtxDomainSyncUserReleasing_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserReleasing_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserReleasing_impl_init_v3
	.hidden	nvtxDomainSyncUserReleasing_impl_init_v3
	.type	nvtxDomainSyncUserReleasing_impl_init_v3, @function
nvtxDomainSyncUserReleasing_impl_init_v3:
.LFB8666:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	552+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L639
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L639:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8666:
	.size	nvtxDomainSyncUserReleasing_impl_init_v3, .-nvtxDomainSyncUserReleasing_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireSuccess_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireSuccess_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.type	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, @function
nvtxDomainSyncUserAcquireSuccess_impl_init_v3:
.LFB8665:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	544+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L642
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L642:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8665:
	.size	nvtxDomainSyncUserAcquireSuccess_impl_init_v3, .-nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireFailed_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireFailed_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.type	nvtxDomainSyncUserAcquireFailed_impl_init_v3, @function
nvtxDomainSyncUserAcquireFailed_impl_init_v3:
.LFB8664:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	536+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L645
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L645:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8664:
	.size	nvtxDomainSyncUserAcquireFailed_impl_init_v3, .-nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.section	.text.nvtxDomainSyncUserAcquireStart_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserAcquireStart_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.hidden	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.type	nvtxDomainSyncUserAcquireStart_impl_init_v3, @function
nvtxDomainSyncUserAcquireStart_impl_init_v3:
.LFB8663:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	528+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L648
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L648:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8663:
	.size	nvtxDomainSyncUserAcquireStart_impl_init_v3, .-nvtxDomainSyncUserAcquireStart_impl_init_v3
	.section	.text.nvtxDomainSyncUserDestroy_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserDestroy_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserDestroy_impl_init_v3
	.hidden	nvtxDomainSyncUserDestroy_impl_init_v3
	.type	nvtxDomainSyncUserDestroy_impl_init_v3, @function
nvtxDomainSyncUserDestroy_impl_init_v3:
.LFB8662:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	520+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L651
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L651:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8662:
	.size	nvtxDomainSyncUserDestroy_impl_init_v3, .-nvtxDomainSyncUserDestroy_impl_init_v3
	.section	.text.nvtxDomainSyncUserCreate_impl_init_v3,"axG",@progbits,nvtxDomainSyncUserCreate_impl_init_v3,comdat
	.weak	nvtxDomainSyncUserCreate_impl_init_v3
	.hidden	nvtxDomainSyncUserCreate_impl_init_v3
	.type	nvtxDomainSyncUserCreate_impl_init_v3, @function
nvtxDomainSyncUserCreate_impl_init_v3:
.LFB8661:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	512+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L655
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L655:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8661:
	.size	nvtxDomainSyncUserCreate_impl_init_v3, .-nvtxDomainSyncUserCreate_impl_init_v3
	.section	.text.nvtxInitialize_impl_init_v3,"axG",@progbits,nvtxInitialize_impl_init_v3,comdat
	.weak	nvtxInitialize_impl_init_v3
	.hidden	nvtxInitialize_impl_init_v3
	.type	nvtxInitialize_impl_init_v3, @function
nvtxInitialize_impl_init_v3:
.LFB8632:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	504+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L657
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L657:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8632:
	.size	nvtxInitialize_impl_init_v3, .-nvtxInitialize_impl_init_v3
	.section	.text.nvtxDomainDestroy_impl_init_v3,"axG",@progbits,nvtxDomainDestroy_impl_init_v3,comdat
	.weak	nvtxDomainDestroy_impl_init_v3
	.hidden	nvtxDomainDestroy_impl_init_v3
	.type	nvtxDomainDestroy_impl_init_v3, @function
nvtxDomainDestroy_impl_init_v3:
.LFB8631:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	496+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L660
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L660:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8631:
	.size	nvtxDomainDestroy_impl_init_v3, .-nvtxDomainDestroy_impl_init_v3
	.section	.text.nvtxDomainCreateW_impl_init_v3,"axG",@progbits,nvtxDomainCreateW_impl_init_v3,comdat
	.weak	nvtxDomainCreateW_impl_init_v3
	.hidden	nvtxDomainCreateW_impl_init_v3
	.type	nvtxDomainCreateW_impl_init_v3, @function
nvtxDomainCreateW_impl_init_v3:
.LFB8630:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	488+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L664
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L664:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8630:
	.size	nvtxDomainCreateW_impl_init_v3, .-nvtxDomainCreateW_impl_init_v3
	.section	.text.nvtxDomainCreateA_impl_init_v3,"axG",@progbits,nvtxDomainCreateA_impl_init_v3,comdat
	.weak	nvtxDomainCreateA_impl_init_v3
	.hidden	nvtxDomainCreateA_impl_init_v3
	.type	nvtxDomainCreateA_impl_init_v3, @function
nvtxDomainCreateA_impl_init_v3:
.LFB8629:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	480+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L667
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L667:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8629:
	.size	nvtxDomainCreateA_impl_init_v3, .-nvtxDomainCreateA_impl_init_v3
	.section	.text.nvtxDomainRegisterStringW_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringW_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringW_impl_init_v3
	.hidden	nvtxDomainRegisterStringW_impl_init_v3
	.type	nvtxDomainRegisterStringW_impl_init_v3, @function
nvtxDomainRegisterStringW_impl_init_v3:
.LFB8628:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	472+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L670
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L670:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8628:
	.size	nvtxDomainRegisterStringW_impl_init_v3, .-nvtxDomainRegisterStringW_impl_init_v3
	.section	.text.nvtxDomainRegisterStringA_impl_init_v3,"axG",@progbits,nvtxDomainRegisterStringA_impl_init_v3,comdat
	.weak	nvtxDomainRegisterStringA_impl_init_v3
	.hidden	nvtxDomainRegisterStringA_impl_init_v3
	.type	nvtxDomainRegisterStringA_impl_init_v3, @function
nvtxDomainRegisterStringA_impl_init_v3:
.LFB8627:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	464+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L673
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L673:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8627:
	.size	nvtxDomainRegisterStringA_impl_init_v3, .-nvtxDomainRegisterStringA_impl_init_v3
	.section	.text.nvtxDomainNameCategoryW_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryW_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryW_impl_init_v3
	.hidden	nvtxDomainNameCategoryW_impl_init_v3
	.type	nvtxDomainNameCategoryW_impl_init_v3, @function
nvtxDomainNameCategoryW_impl_init_v3:
.LFB8626:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	456+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L675
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L675:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8626:
	.size	nvtxDomainNameCategoryW_impl_init_v3, .-nvtxDomainNameCategoryW_impl_init_v3
	.section	.text.nvtxDomainNameCategoryA_impl_init_v3,"axG",@progbits,nvtxDomainNameCategoryA_impl_init_v3,comdat
	.weak	nvtxDomainNameCategoryA_impl_init_v3
	.hidden	nvtxDomainNameCategoryA_impl_init_v3
	.type	nvtxDomainNameCategoryA_impl_init_v3, @function
nvtxDomainNameCategoryA_impl_init_v3:
.LFB8625:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdi, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdx, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	448+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L678
	movq	8(%rsp), %rdx
	movl	20(%rsp), %esi
	movq	24(%rsp), %rdi
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L678:
	.cfi_restore_state
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8625:
	.size	nvtxDomainNameCategoryA_impl_init_v3, .-nvtxDomainNameCategoryA_impl_init_v3
	.section	.text.nvtxDomainResourceDestroy_impl_init_v3,"axG",@progbits,nvtxDomainResourceDestroy_impl_init_v3,comdat
	.weak	nvtxDomainResourceDestroy_impl_init_v3
	.hidden	nvtxDomainResourceDestroy_impl_init_v3
	.type	nvtxDomainResourceDestroy_impl_init_v3, @function
nvtxDomainResourceDestroy_impl_init_v3:
.LFB8624:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	440+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L681
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L681:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8624:
	.size	nvtxDomainResourceDestroy_impl_init_v3, .-nvtxDomainResourceDestroy_impl_init_v3
	.section	.text.nvtxDomainResourceCreate_impl_init_v3,"axG",@progbits,nvtxDomainResourceCreate_impl_init_v3,comdat
	.weak	nvtxDomainResourceCreate_impl_init_v3
	.hidden	nvtxDomainResourceCreate_impl_init_v3
	.type	nvtxDomainResourceCreate_impl_init_v3, @function
nvtxDomainResourceCreate_impl_init_v3:
.LFB8623:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	432+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L685
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L685:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8623:
	.size	nvtxDomainResourceCreate_impl_init_v3, .-nvtxDomainResourceCreate_impl_init_v3
	.section	.text.nvtxDomainRangePop_impl_init_v3,"axG",@progbits,nvtxDomainRangePop_impl_init_v3,comdat
	.weak	nvtxDomainRangePop_impl_init_v3
	.hidden	nvtxDomainRangePop_impl_init_v3
	.type	nvtxDomainRangePop_impl_init_v3, @function
nvtxDomainRangePop_impl_init_v3:
.LFB8622:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	424+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L688
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L688:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8622:
	.size	nvtxDomainRangePop_impl_init_v3, .-nvtxDomainRangePop_impl_init_v3
	.section	.text.nvtxDomainRangePushEx_impl_init_v3,"axG",@progbits,nvtxDomainRangePushEx_impl_init_v3,comdat
	.weak	nvtxDomainRangePushEx_impl_init_v3
	.hidden	nvtxDomainRangePushEx_impl_init_v3
	.type	nvtxDomainRangePushEx_impl_init_v3, @function
nvtxDomainRangePushEx_impl_init_v3:
.LFB8621:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	416+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L691
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L691:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8621:
	.size	nvtxDomainRangePushEx_impl_init_v3, .-nvtxDomainRangePushEx_impl_init_v3
	.section	.text.nvtxDomainRangeEnd_impl_init_v3,"axG",@progbits,nvtxDomainRangeEnd_impl_init_v3,comdat
	.weak	nvtxDomainRangeEnd_impl_init_v3
	.hidden	nvtxDomainRangeEnd_impl_init_v3
	.type	nvtxDomainRangeEnd_impl_init_v3, @function
nvtxDomainRangeEnd_impl_init_v3:
.LFB8620:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	408+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L693
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L693:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8620:
	.size	nvtxDomainRangeEnd_impl_init_v3, .-nvtxDomainRangeEnd_impl_init_v3
	.section	.text.nvtxDomainRangeStartEx_impl_init_v3,"axG",@progbits,nvtxDomainRangeStartEx_impl_init_v3,comdat
	.weak	nvtxDomainRangeStartEx_impl_init_v3
	.hidden	nvtxDomainRangeStartEx_impl_init_v3
	.type	nvtxDomainRangeStartEx_impl_init_v3, @function
nvtxDomainRangeStartEx_impl_init_v3:
.LFB8619:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	400+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L697
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L697:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8619:
	.size	nvtxDomainRangeStartEx_impl_init_v3, .-nvtxDomainRangeStartEx_impl_init_v3
	.section	.text.nvtxDomainMarkEx_impl_init_v3,"axG",@progbits,nvtxDomainMarkEx_impl_init_v3,comdat
	.weak	nvtxDomainMarkEx_impl_init_v3
	.hidden	nvtxDomainMarkEx_impl_init_v3
	.type	nvtxDomainMarkEx_impl_init_v3, @function
nvtxDomainMarkEx_impl_init_v3:
.LFB8618:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	392+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L699
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L699:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8618:
	.size	nvtxDomainMarkEx_impl_init_v3, .-nvtxDomainMarkEx_impl_init_v3
	.section	.text.nvtxNameCudaEventW_impl_init_v3,"axG",@progbits,nvtxNameCudaEventW_impl_init_v3,comdat
	.weak	nvtxNameCudaEventW_impl_init_v3
	.hidden	nvtxNameCudaEventW_impl_init_v3
	.type	nvtxNameCudaEventW_impl_init_v3, @function
nvtxNameCudaEventW_impl_init_v3:
.LFB8646:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	384+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L702
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L702:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8646:
	.size	nvtxNameCudaEventW_impl_init_v3, .-nvtxNameCudaEventW_impl_init_v3
	.section	.text.nvtxNameCudaEventA_impl_init_v3,"axG",@progbits,nvtxNameCudaEventA_impl_init_v3,comdat
	.weak	nvtxNameCudaEventA_impl_init_v3
	.hidden	nvtxNameCudaEventA_impl_init_v3
	.type	nvtxNameCudaEventA_impl_init_v3, @function
nvtxNameCudaEventA_impl_init_v3:
.LFB8645:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	376+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L705
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L705:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8645:
	.size	nvtxNameCudaEventA_impl_init_v3, .-nvtxNameCudaEventA_impl_init_v3
	.section	.text.nvtxNameCudaStreamW_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamW_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamW_impl_init_v3
	.hidden	nvtxNameCudaStreamW_impl_init_v3
	.type	nvtxNameCudaStreamW_impl_init_v3, @function
nvtxNameCudaStreamW_impl_init_v3:
.LFB8644:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	368+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L708
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L708:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8644:
	.size	nvtxNameCudaStreamW_impl_init_v3, .-nvtxNameCudaStreamW_impl_init_v3
	.section	.text.nvtxNameCudaStreamA_impl_init_v3,"axG",@progbits,nvtxNameCudaStreamA_impl_init_v3,comdat
	.weak	nvtxNameCudaStreamA_impl_init_v3
	.hidden	nvtxNameCudaStreamA_impl_init_v3
	.type	nvtxNameCudaStreamA_impl_init_v3, @function
nvtxNameCudaStreamA_impl_init_v3:
.LFB8643:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	360+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L711
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L711:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8643:
	.size	nvtxNameCudaStreamA_impl_init_v3, .-nvtxNameCudaStreamA_impl_init_v3
	.section	.text.nvtxNameCudaDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceW_impl_init_v3
	.hidden	nvtxNameCudaDeviceW_impl_init_v3
	.type	nvtxNameCudaDeviceW_impl_init_v3, @function
nvtxNameCudaDeviceW_impl_init_v3:
.LFB8642:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	352+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L714
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L714:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8642:
	.size	nvtxNameCudaDeviceW_impl_init_v3, .-nvtxNameCudaDeviceW_impl_init_v3
	.section	.text.nvtxNameCudaDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCudaDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCudaDeviceA_impl_init_v3
	.hidden	nvtxNameCudaDeviceA_impl_init_v3
	.type	nvtxNameCudaDeviceA_impl_init_v3, @function
nvtxNameCudaDeviceA_impl_init_v3:
.LFB8641:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	344+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L717
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L717:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8641:
	.size	nvtxNameCudaDeviceA_impl_init_v3, .-nvtxNameCudaDeviceA_impl_init_v3
	.section	.text.nvtxNameClEventW_impl_init_v3,"axG",@progbits,nvtxNameClEventW_impl_init_v3,comdat
	.weak	nvtxNameClEventW_impl_init_v3
	.hidden	nvtxNameClEventW_impl_init_v3
	.type	nvtxNameClEventW_impl_init_v3, @function
nvtxNameClEventW_impl_init_v3:
.LFB8660:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	336+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L720
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L720:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8660:
	.size	nvtxNameClEventW_impl_init_v3, .-nvtxNameClEventW_impl_init_v3
	.section	.text.nvtxNameClEventA_impl_init_v3,"axG",@progbits,nvtxNameClEventA_impl_init_v3,comdat
	.weak	nvtxNameClEventA_impl_init_v3
	.hidden	nvtxNameClEventA_impl_init_v3
	.type	nvtxNameClEventA_impl_init_v3, @function
nvtxNameClEventA_impl_init_v3:
.LFB8659:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	328+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L723
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L723:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8659:
	.size	nvtxNameClEventA_impl_init_v3, .-nvtxNameClEventA_impl_init_v3
	.section	.text.nvtxNameClProgramW_impl_init_v3,"axG",@progbits,nvtxNameClProgramW_impl_init_v3,comdat
	.weak	nvtxNameClProgramW_impl_init_v3
	.hidden	nvtxNameClProgramW_impl_init_v3
	.type	nvtxNameClProgramW_impl_init_v3, @function
nvtxNameClProgramW_impl_init_v3:
.LFB8658:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	320+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L726
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L726:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8658:
	.size	nvtxNameClProgramW_impl_init_v3, .-nvtxNameClProgramW_impl_init_v3
	.section	.text.nvtxNameClProgramA_impl_init_v3,"axG",@progbits,nvtxNameClProgramA_impl_init_v3,comdat
	.weak	nvtxNameClProgramA_impl_init_v3
	.hidden	nvtxNameClProgramA_impl_init_v3
	.type	nvtxNameClProgramA_impl_init_v3, @function
nvtxNameClProgramA_impl_init_v3:
.LFB8657:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	312+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L729
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L729:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8657:
	.size	nvtxNameClProgramA_impl_init_v3, .-nvtxNameClProgramA_impl_init_v3
	.section	.text.nvtxNameClSamplerW_impl_init_v3,"axG",@progbits,nvtxNameClSamplerW_impl_init_v3,comdat
	.weak	nvtxNameClSamplerW_impl_init_v3
	.hidden	nvtxNameClSamplerW_impl_init_v3
	.type	nvtxNameClSamplerW_impl_init_v3, @function
nvtxNameClSamplerW_impl_init_v3:
.LFB8656:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	304+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L732
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L732:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8656:
	.size	nvtxNameClSamplerW_impl_init_v3, .-nvtxNameClSamplerW_impl_init_v3
	.section	.text.nvtxNameClSamplerA_impl_init_v3,"axG",@progbits,nvtxNameClSamplerA_impl_init_v3,comdat
	.weak	nvtxNameClSamplerA_impl_init_v3
	.hidden	nvtxNameClSamplerA_impl_init_v3
	.type	nvtxNameClSamplerA_impl_init_v3, @function
nvtxNameClSamplerA_impl_init_v3:
.LFB8655:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	296+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L735
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L735:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8655:
	.size	nvtxNameClSamplerA_impl_init_v3, .-nvtxNameClSamplerA_impl_init_v3
	.section	.text.nvtxNameClMemObjectW_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectW_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectW_impl_init_v3
	.hidden	nvtxNameClMemObjectW_impl_init_v3
	.type	nvtxNameClMemObjectW_impl_init_v3, @function
nvtxNameClMemObjectW_impl_init_v3:
.LFB8654:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	288+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L738
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L738:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8654:
	.size	nvtxNameClMemObjectW_impl_init_v3, .-nvtxNameClMemObjectW_impl_init_v3
	.section	.text.nvtxNameClMemObjectA_impl_init_v3,"axG",@progbits,nvtxNameClMemObjectA_impl_init_v3,comdat
	.weak	nvtxNameClMemObjectA_impl_init_v3
	.hidden	nvtxNameClMemObjectA_impl_init_v3
	.type	nvtxNameClMemObjectA_impl_init_v3, @function
nvtxNameClMemObjectA_impl_init_v3:
.LFB8653:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	280+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L741
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L741:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8653:
	.size	nvtxNameClMemObjectA_impl_init_v3, .-nvtxNameClMemObjectA_impl_init_v3
	.section	.text.nvtxNameClCommandQueueW_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueW_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueW_impl_init_v3
	.hidden	nvtxNameClCommandQueueW_impl_init_v3
	.type	nvtxNameClCommandQueueW_impl_init_v3, @function
nvtxNameClCommandQueueW_impl_init_v3:
.LFB8652:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	272+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L744
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L744:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8652:
	.size	nvtxNameClCommandQueueW_impl_init_v3, .-nvtxNameClCommandQueueW_impl_init_v3
	.section	.text.nvtxNameClCommandQueueA_impl_init_v3,"axG",@progbits,nvtxNameClCommandQueueA_impl_init_v3,comdat
	.weak	nvtxNameClCommandQueueA_impl_init_v3
	.hidden	nvtxNameClCommandQueueA_impl_init_v3
	.type	nvtxNameClCommandQueueA_impl_init_v3, @function
nvtxNameClCommandQueueA_impl_init_v3:
.LFB8651:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	264+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L747
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L747:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8651:
	.size	nvtxNameClCommandQueueA_impl_init_v3, .-nvtxNameClCommandQueueA_impl_init_v3
	.section	.text.nvtxNameClContextW_impl_init_v3,"axG",@progbits,nvtxNameClContextW_impl_init_v3,comdat
	.weak	nvtxNameClContextW_impl_init_v3
	.hidden	nvtxNameClContextW_impl_init_v3
	.type	nvtxNameClContextW_impl_init_v3, @function
nvtxNameClContextW_impl_init_v3:
.LFB8650:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	256+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L750
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L750:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8650:
	.size	nvtxNameClContextW_impl_init_v3, .-nvtxNameClContextW_impl_init_v3
	.section	.text.nvtxNameClContextA_impl_init_v3,"axG",@progbits,nvtxNameClContextA_impl_init_v3,comdat
	.weak	nvtxNameClContextA_impl_init_v3
	.hidden	nvtxNameClContextA_impl_init_v3
	.type	nvtxNameClContextA_impl_init_v3, @function
nvtxNameClContextA_impl_init_v3:
.LFB8649:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	248+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L753
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L753:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8649:
	.size	nvtxNameClContextA_impl_init_v3, .-nvtxNameClContextA_impl_init_v3
	.section	.text.nvtxNameClDeviceW_impl_init_v3,"axG",@progbits,nvtxNameClDeviceW_impl_init_v3,comdat
	.weak	nvtxNameClDeviceW_impl_init_v3
	.hidden	nvtxNameClDeviceW_impl_init_v3
	.type	nvtxNameClDeviceW_impl_init_v3, @function
nvtxNameClDeviceW_impl_init_v3:
.LFB8648:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	240+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L756
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L756:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8648:
	.size	nvtxNameClDeviceW_impl_init_v3, .-nvtxNameClDeviceW_impl_init_v3
	.section	.text.nvtxNameClDeviceA_impl_init_v3,"axG",@progbits,nvtxNameClDeviceA_impl_init_v3,comdat
	.weak	nvtxNameClDeviceA_impl_init_v3
	.hidden	nvtxNameClDeviceA_impl_init_v3
	.type	nvtxNameClDeviceA_impl_init_v3, @function
nvtxNameClDeviceA_impl_init_v3:
.LFB8647:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	232+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L759
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L759:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8647:
	.size	nvtxNameClDeviceA_impl_init_v3, .-nvtxNameClDeviceA_impl_init_v3
	.section	.text.nvtxNameCuEventW_impl_init_v3,"axG",@progbits,nvtxNameCuEventW_impl_init_v3,comdat
	.weak	nvtxNameCuEventW_impl_init_v3
	.hidden	nvtxNameCuEventW_impl_init_v3
	.type	nvtxNameCuEventW_impl_init_v3, @function
nvtxNameCuEventW_impl_init_v3:
.LFB8640:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	224+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L762
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L762:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8640:
	.size	nvtxNameCuEventW_impl_init_v3, .-nvtxNameCuEventW_impl_init_v3
	.section	.text.nvtxNameCuEventA_impl_init_v3,"axG",@progbits,nvtxNameCuEventA_impl_init_v3,comdat
	.weak	nvtxNameCuEventA_impl_init_v3
	.hidden	nvtxNameCuEventA_impl_init_v3
	.type	nvtxNameCuEventA_impl_init_v3, @function
nvtxNameCuEventA_impl_init_v3:
.LFB8639:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	216+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L765
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L765:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8639:
	.size	nvtxNameCuEventA_impl_init_v3, .-nvtxNameCuEventA_impl_init_v3
	.section	.text.nvtxNameCuStreamW_impl_init_v3,"axG",@progbits,nvtxNameCuStreamW_impl_init_v3,comdat
	.weak	nvtxNameCuStreamW_impl_init_v3
	.hidden	nvtxNameCuStreamW_impl_init_v3
	.type	nvtxNameCuStreamW_impl_init_v3, @function
nvtxNameCuStreamW_impl_init_v3:
.LFB8638:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	208+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L768
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L768:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8638:
	.size	nvtxNameCuStreamW_impl_init_v3, .-nvtxNameCuStreamW_impl_init_v3
	.section	.text.nvtxNameCuStreamA_impl_init_v3,"axG",@progbits,nvtxNameCuStreamA_impl_init_v3,comdat
	.weak	nvtxNameCuStreamA_impl_init_v3
	.hidden	nvtxNameCuStreamA_impl_init_v3
	.type	nvtxNameCuStreamA_impl_init_v3, @function
nvtxNameCuStreamA_impl_init_v3:
.LFB8637:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	200+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L771
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L771:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8637:
	.size	nvtxNameCuStreamA_impl_init_v3, .-nvtxNameCuStreamA_impl_init_v3
	.section	.text.nvtxNameCuContextW_impl_init_v3,"axG",@progbits,nvtxNameCuContextW_impl_init_v3,comdat
	.weak	nvtxNameCuContextW_impl_init_v3
	.hidden	nvtxNameCuContextW_impl_init_v3
	.type	nvtxNameCuContextW_impl_init_v3, @function
nvtxNameCuContextW_impl_init_v3:
.LFB8636:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	192+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L774
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L774:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8636:
	.size	nvtxNameCuContextW_impl_init_v3, .-nvtxNameCuContextW_impl_init_v3
	.section	.text.nvtxNameCuContextA_impl_init_v3,"axG",@progbits,nvtxNameCuContextA_impl_init_v3,comdat
	.weak	nvtxNameCuContextA_impl_init_v3
	.hidden	nvtxNameCuContextA_impl_init_v3
	.type	nvtxNameCuContextA_impl_init_v3, @function
nvtxNameCuContextA_impl_init_v3:
.LFB8635:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	184+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L777
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L777:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8635:
	.size	nvtxNameCuContextA_impl_init_v3, .-nvtxNameCuContextA_impl_init_v3
	.section	.text.nvtxNameCuDeviceW_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceW_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceW_impl_init_v3
	.hidden	nvtxNameCuDeviceW_impl_init_v3
	.type	nvtxNameCuDeviceW_impl_init_v3, @function
nvtxNameCuDeviceW_impl_init_v3:
.LFB8634:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	176+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L780
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L780:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8634:
	.size	nvtxNameCuDeviceW_impl_init_v3, .-nvtxNameCuDeviceW_impl_init_v3
	.section	.text.nvtxNameCuDeviceA_impl_init_v3,"axG",@progbits,nvtxNameCuDeviceA_impl_init_v3,comdat
	.weak	nvtxNameCuDeviceA_impl_init_v3
	.hidden	nvtxNameCuDeviceA_impl_init_v3
	.type	nvtxNameCuDeviceA_impl_init_v3, @function
nvtxNameCuDeviceA_impl_init_v3:
.LFB8633:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	168+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L783
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L783:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8633:
	.size	nvtxNameCuDeviceA_impl_init_v3, .-nvtxNameCuDeviceA_impl_init_v3
	.section	.text.nvtxNameOsThreadW_impl_init_v3,"axG",@progbits,nvtxNameOsThreadW_impl_init_v3,comdat
	.weak	nvtxNameOsThreadW_impl_init_v3
	.hidden	nvtxNameOsThreadW_impl_init_v3
	.type	nvtxNameOsThreadW_impl_init_v3, @function
nvtxNameOsThreadW_impl_init_v3:
.LFB8617:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	160+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L786
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L786:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8617:
	.size	nvtxNameOsThreadW_impl_init_v3, .-nvtxNameOsThreadW_impl_init_v3
	.section	.text.nvtxNameOsThreadA_impl_init_v3,"axG",@progbits,nvtxNameOsThreadA_impl_init_v3,comdat
	.weak	nvtxNameOsThreadA_impl_init_v3
	.hidden	nvtxNameOsThreadA_impl_init_v3
	.type	nvtxNameOsThreadA_impl_init_v3, @function
nvtxNameOsThreadA_impl_init_v3:
.LFB8616:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	152+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L789
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L789:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8616:
	.size	nvtxNameOsThreadA_impl_init_v3, .-nvtxNameOsThreadA_impl_init_v3
	.section	.text.nvtxNameCategoryW_impl_init_v3,"axG",@progbits,nvtxNameCategoryW_impl_init_v3,comdat
	.weak	nvtxNameCategoryW_impl_init_v3
	.hidden	nvtxNameCategoryW_impl_init_v3
	.type	nvtxNameCategoryW_impl_init_v3, @function
nvtxNameCategoryW_impl_init_v3:
.LFB8615:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	144+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L792
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L792:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8615:
	.size	nvtxNameCategoryW_impl_init_v3, .-nvtxNameCategoryW_impl_init_v3
	.section	.text.nvtxNameCategoryA_impl_init_v3,"axG",@progbits,nvtxNameCategoryA_impl_init_v3,comdat
	.weak	nvtxNameCategoryA_impl_init_v3
	.hidden	nvtxNameCategoryA_impl_init_v3
	.type	nvtxNameCategoryA_impl_init_v3, @function
nvtxNameCategoryA_impl_init_v3:
.LFB8614:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	%edi, 12(%rsp)
	movq	%rsi, (%rsp)
	call	nvtxInitOnce_v3
	movq	136+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L795
	movq	(%rsp), %rsi
	movl	12(%rsp), %edi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L795:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8614:
	.size	nvtxNameCategoryA_impl_init_v3, .-nvtxNameCategoryA_impl_init_v3
	.section	.text.nvtxRangePop_impl_init_v3,"axG",@progbits,nvtxRangePop_impl_init_v3,comdat
	.weak	nvtxRangePop_impl_init_v3
	.hidden	nvtxRangePop_impl_init_v3
	.type	nvtxRangePop_impl_init_v3, @function
nvtxRangePop_impl_init_v3:
.LFB8613:
	.cfi_startproc
	endbr64
	pushq	%rsi
	.cfi_def_cfa_offset 16
	call	nvtxInitOnce_v3
	movq	128+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L799
	popq	%rcx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L799:
	.cfi_restore_state
	movl	$-2, %eax
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8613:
	.size	nvtxRangePop_impl_init_v3, .-nvtxRangePop_impl_init_v3
	.section	.text.nvtxRangePushW_impl_init_v3,"axG",@progbits,nvtxRangePushW_impl_init_v3,comdat
	.weak	nvtxRangePushW_impl_init_v3
	.hidden	nvtxRangePushW_impl_init_v3
	.type	nvtxRangePushW_impl_init_v3, @function
nvtxRangePushW_impl_init_v3:
.LFB8612:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	120+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L802
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L802:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8612:
	.size	nvtxRangePushW_impl_init_v3, .-nvtxRangePushW_impl_init_v3
	.section	.text.nvtxRangePushA_impl_init_v3,"axG",@progbits,nvtxRangePushA_impl_init_v3,comdat
	.weak	nvtxRangePushA_impl_init_v3
	.hidden	nvtxRangePushA_impl_init_v3
	.type	nvtxRangePushA_impl_init_v3, @function
nvtxRangePushA_impl_init_v3:
.LFB8611:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	112+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L805
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L805:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8611:
	.size	nvtxRangePushA_impl_init_v3, .-nvtxRangePushA_impl_init_v3
	.section	.text.nvtxRangePushEx_impl_init_v3,"axG",@progbits,nvtxRangePushEx_impl_init_v3,comdat
	.weak	nvtxRangePushEx_impl_init_v3
	.hidden	nvtxRangePushEx_impl_init_v3
	.type	nvtxRangePushEx_impl_init_v3, @function
nvtxRangePushEx_impl_init_v3:
.LFB8610:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	104+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L808
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L808:
	.cfi_restore_state
	movl	$-2, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8610:
	.size	nvtxRangePushEx_impl_init_v3, .-nvtxRangePushEx_impl_init_v3
	.section	.text.nvtxRangeEnd_impl_init_v3,"axG",@progbits,nvtxRangeEnd_impl_init_v3,comdat
	.weak	nvtxRangeEnd_impl_init_v3
	.hidden	nvtxRangeEnd_impl_init_v3
	.type	nvtxRangeEnd_impl_init_v3, @function
nvtxRangeEnd_impl_init_v3:
.LFB8609:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	96+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L810
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L810:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8609:
	.size	nvtxRangeEnd_impl_init_v3, .-nvtxRangeEnd_impl_init_v3
	.section	.text.nvtxRangeStartW_impl_init_v3,"axG",@progbits,nvtxRangeStartW_impl_init_v3,comdat
	.weak	nvtxRangeStartW_impl_init_v3
	.hidden	nvtxRangeStartW_impl_init_v3
	.type	nvtxRangeStartW_impl_init_v3, @function
nvtxRangeStartW_impl_init_v3:
.LFB8608:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	88+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L814
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L814:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8608:
	.size	nvtxRangeStartW_impl_init_v3, .-nvtxRangeStartW_impl_init_v3
	.section	.text.nvtxRangeStartA_impl_init_v3,"axG",@progbits,nvtxRangeStartA_impl_init_v3,comdat
	.weak	nvtxRangeStartA_impl_init_v3
	.hidden	nvtxRangeStartA_impl_init_v3
	.type	nvtxRangeStartA_impl_init_v3, @function
nvtxRangeStartA_impl_init_v3:
.LFB8607:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	80+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L817
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L817:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8607:
	.size	nvtxRangeStartA_impl_init_v3, .-nvtxRangeStartA_impl_init_v3
	.section	.text.nvtxRangeStartEx_impl_init_v3,"axG",@progbits,nvtxRangeStartEx_impl_init_v3,comdat
	.weak	nvtxRangeStartEx_impl_init_v3
	.hidden	nvtxRangeStartEx_impl_init_v3
	.type	nvtxRangeStartEx_impl_init_v3, @function
nvtxRangeStartEx_impl_init_v3:
.LFB8606:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	72+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L820
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L820:
	.cfi_restore_state
	xorl	%eax, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8606:
	.size	nvtxRangeStartEx_impl_init_v3, .-nvtxRangeStartEx_impl_init_v3
	.section	.text.nvtxMarkW_impl_init_v3,"axG",@progbits,nvtxMarkW_impl_init_v3,comdat
	.weak	nvtxMarkW_impl_init_v3
	.hidden	nvtxMarkW_impl_init_v3
	.type	nvtxMarkW_impl_init_v3, @function
nvtxMarkW_impl_init_v3:
.LFB8605:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	64+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L822
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L822:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8605:
	.size	nvtxMarkW_impl_init_v3, .-nvtxMarkW_impl_init_v3
	.section	.text.nvtxMarkA_impl_init_v3,"axG",@progbits,nvtxMarkA_impl_init_v3,comdat
	.weak	nvtxMarkA_impl_init_v3
	.hidden	nvtxMarkA_impl_init_v3
	.type	nvtxMarkA_impl_init_v3, @function
nvtxMarkA_impl_init_v3:
.LFB8604:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	56+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L825
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L825:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8604:
	.size	nvtxMarkA_impl_init_v3, .-nvtxMarkA_impl_init_v3
	.section	.text.nvtxMarkEx_impl_init_v3,"axG",@progbits,nvtxMarkEx_impl_init_v3,comdat
	.weak	nvtxMarkEx_impl_init_v3
	.hidden	nvtxMarkEx_impl_init_v3
	.type	nvtxMarkEx_impl_init_v3, @function
nvtxMarkEx_impl_init_v3:
.LFB8603:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	nvtxInitOnce_v3
	movq	48+nvtxGlobals_v3(%rip), %rax
	testq	%rax, %rax
	je	.L828
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L828:
	.cfi_restore_state
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8603:
	.size	nvtxMarkEx_impl_init_v3, .-nvtxMarkEx_impl_init_v3
	.text
	.globl	_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE
	.type	_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE, @function
_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE:
.LFB11326:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%ebp, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	xorl	%edi, %edi
	pushq	%rdx
	.cfi_def_cfa_offset 32
	call	time@PLT
	movl	%eax, %edi
	call	srand@PLT
.L832:
	cmpq	24(%rbx), %rbp
	jnb	.L835
	call	rand@PLT
	movsd	.LC11(%rip), %xmm1
	movq	8(%rbx), %rdx
	cvtsi2ssl	%eax, %xmm0
	mulss	.LC10(%rip), %xmm0
	cvtss2sd	%xmm0, %xmm0
	subsd	%xmm1, %xmm0
	mulsd	%xmm1, %xmm0
	cvtsd2ss	%xmm0, %xmm0
	movss	%xmm0, (%rdx,%rbp,4)
	incq	%rbp
	jmp	.L832
.L835:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11326:
	.size	_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE, .-_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE
	.globl	_Z8softMax211KernelArrayIfEi
	.type	_Z8softMax211KernelArrayIfEi, @function
_Z8softMax211KernelArrayIfEi:
.LFB11337:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE11337:
	.size	_Z8softMax211KernelArrayIfEi, .-_Z8softMax211KernelArrayIfEi
	.globl	_Z8sigmoid2Rf
	.type	_Z8sigmoid2Rf, @function
_Z8sigmoid2Rf:
.LFB11338:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE11338:
	.size	_Z8sigmoid2Rf, .-_Z8sigmoid2Rf
	.globl	_Z10reverseInti
	.type	_Z10reverseInti, @function
_Z10reverseInti:
.LFB11339:
	.cfi_startproc
	endbr64
	movl	%edi, %eax
	bswap	%eax
	ret
	.cfi_endproc
.LFE11339:
	.size	_Z10reverseInti, .-_Z10reverseInti
	.globl	_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i
	.type	_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i, @function
_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i:
.LFB11370:
	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdx, 24(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, 16(%rsp)
	leaq	48(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movl	%r9d, 4(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movq	%rdi, 104(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rax, 120(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	4(%rsp), %rax
	movq	%rsi, 112(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rax, 144(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movl	$1, 64(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L841
	pushq	48(%rsp)
	.cfi_def_cfa_offset 184
	leaq	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 192
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	120(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
.L841:
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	je	.L843
	call	__stack_chk_fail@PLT
.L843:
	addq	$168, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11370:
	.size	_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i, .-_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i
	.globl	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.type	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, @function
_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i:
.LFB11371:
	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	%rdx, (%rsp)
	movq	%r8, %rdx
	movq	48(%rsp), %r8
	movq	%rcx, 8(%rsp)
	movq	%r9, %rcx
	movl	56(%rsp), %r9d
	movq	%rdi, 16(%rsp)
	leaq	16(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	movq	%rsp, %rsi
	call	_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11371:
	.size	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, .-_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.globl	_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi
	.type	_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi, @function
_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi:
.LFB11372:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 24(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, (%rsp)
	leaq	48(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 120(%rsp)
	movq	%rsp, %rax
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L847
	pushq	48(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z19computeOutputDelta2PfPKfiPKi(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 176
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	120(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L847:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L849
	call	__stack_chk_fail@PLT
.L849:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11372:
	.size	_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi, .-_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi
	.globl	_Z19computeOutputDelta2PfPKfiPKi
	.type	_Z19computeOutputDelta2PfPKfiPKi, @function
_Z19computeOutputDelta2PfPKfiPKi:
.LFB11373:
	.cfi_startproc
	endbr64
	jmp	_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi
	.cfi_endproc
.LFE11373:
	.size	_Z19computeOutputDelta2PfPKfiPKi, .-_Z19computeOutputDelta2PfPKfiPKi
	.globl	_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.type	_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i, @function
_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i:
.LFB11374:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdi, 40(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rsi, 32(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 16(%rsp)
	leaq	56(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movq	%r9, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movl	$1, 72(%rsp)
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	%rsp, %rax
	movq	%rax, 152(%rsp)
	leaq	192(%rsp), %rax
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L852
	pushq	56(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_Z17computeLayerDeltaPfS_S_PiS0_S0_i(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 208
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	128(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L852:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L854
	call	__stack_chk_fail@PLT
.L854:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11374:
	.size	_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i, .-_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.globl	_Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.type	_Z17computeLayerDeltaPfS_S_PiS0_S0_i, @function
_Z17computeLayerDeltaPfS_S_PiS0_S0_i:
.LFB11375:
	.cfi_startproc
	endbr64
	jmp	_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.cfi_endproc
.LFE11375:
	.size	_Z17computeLayerDeltaPfS_S_PiS0_S0_i, .-_Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.globl	_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.type	_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i, @function
_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i:
.LFB11376:
	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdi, 40(%rsp)
	leaq	64(%rsp), %rdi
	movq	%rsi, 32(%rsp)
	leaq	76(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	48(%rsp), %rdx
	movq	%rcx, 16(%rsp)
	leaq	56(%rsp), %rcx
	movq	%r8, 8(%rsp)
	movq	%r9, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rax
	movl	$1, 72(%rsp)
	movq	%rax, 112(%rsp)
	leaq	32(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	24(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 136(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	%rsp, %rax
	movq	%rax, 152(%rsp)
	leaq	192(%rsp), %rax
	movq	%rax, 160(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 64(%rsp)
	movq	%rax, 76(%rsp)
	movl	$1, 84(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L857
	pushq	56(%rsp)
	.cfi_def_cfa_offset 200
	leaq	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i(%rip), %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 208
	movq	92(%rsp), %rcx
	movl	100(%rsp), %r8d
	movq	80(%rsp), %rsi
	movl	88(%rsp), %edx
	leaq	128(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 200
	popq	%rdx
	.cfi_def_cfa_offset 192
.L857:
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	je	.L859
	call	__stack_chk_fail@PLT
.L859:
	addq	$184, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11376:
	.size	_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i, .-_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.globl	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.type	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, @function
_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i:
.LFB11377:
	.cfi_startproc
	endbr64
	jmp	_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	.cfi_endproc
.LFE11377:
	.size	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, .-_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.globl	_Z36__device_stub__Z13updateWeightsPfS_iPfS_i
	.type	_Z36__device_stub__Z13updateWeightsPfS_iPfS_i, @function
_Z36__device_stub__Z13updateWeightsPfS_iPfS_i:
.LFB11378:
	.cfi_startproc
	endbr64
	subq	$136, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdi, 24(%rsp)
	leaq	40(%rsp), %rcx
	leaq	48(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	60(%rsp), %rsi
	movl	%edx, 12(%rsp)
	leaq	32(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 56(%rsp)
	movq	%rax, 96(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 104(%rsp)
	leaq	12(%rsp), %rax
	movq	%rax, 112(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 48(%rsp)
	movq	%rax, 60(%rsp)
	movl	$1, 68(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L862
	pushq	40(%rsp)
	.cfi_def_cfa_offset 152
	leaq	_Z13updateWeightsPfS_i(%rip), %rdi
	pushq	40(%rsp)
	.cfi_def_cfa_offset 160
	movq	76(%rsp), %rcx
	movl	84(%rsp), %r8d
	movq	64(%rsp), %rsi
	movl	72(%rsp), %edx
	leaq	112(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 152
	popq	%rdx
	.cfi_def_cfa_offset 144
.L862:
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	je	.L864
	call	__stack_chk_fail@PLT
.L864:
	addq	$136, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11378:
	.size	_Z36__device_stub__Z13updateWeightsPfS_iPfS_i, .-_Z36__device_stub__Z13updateWeightsPfS_iPfS_i
	.globl	_Z13updateWeightsPfS_i
	.type	_Z13updateWeightsPfS_i, @function
_Z13updateWeightsPfS_i:
.LFB11379:
	.cfi_startproc
	endbr64
	jmp	_Z36__device_stub__Z13updateWeightsPfS_iPfS_i
	.cfi_endproc
.LFE11379:
	.size	_Z13updateWeightsPfS_i, .-_Z13updateWeightsPfS_i
	.section	.rodata.str1.1
.LC12:
	.string	"_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv"
.LC13:
	.string	"_Z13updateWeightsPfS_i"
.LC14:
	.string	"_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i"
.LC15:
	.string	"_Z17computeLayerDeltaPfS_S_PiS0_S0_i"
.LC16:
	.string	"_Z19computeOutputDelta2PfPKfiPKi"
.LC17:
	.string	"_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i"
.LC18:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo5beginE"
.LC19:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo3endE"
.LC20:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo6cbeginE"
.LC21:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo4cendE"
.LC22:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo6rbeginE"
.LC23:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo4rendE"
.LC24:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo7crbeginE"
.LC25:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__45__cpo5crendE"
.LC26:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE"
.LC27:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__419piecewise_constructE"
.LC28:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__48in_placeE"
.LC29:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__47nulloptE"
.LC30:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std3__420unreachable_sentinelE"
.LC31:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4swapE"
.LC32:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo9iter_moveE"
.LC33:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo7advanceE"
.LC34:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo5beginE"
.LC35:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo3endE"
.LC36:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo6cbeginE"
.LC37:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4cendE"
.LC38:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo9iter_swapE"
.LC39:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4nextE"
.LC40:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4prevE"
.LC41:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4dataE"
.LC42:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo5cdataE"
.LC43:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo4sizeE"
.LC44:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo5ssizeE"
.LC45:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7434cuda3std6ranges3__45__cpo8distanceE"
.LC46:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS8cuda_cub3parE"
.LC47:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS8cuda_cub10par_nosyncE"
.LC48:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS6system6detail10sequential3seqE"
.LC49:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_1E"
.LC50:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_2E"
.LC51:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_3E"
.LC52:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_4E"
.LC53:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_5E"
.LC54:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_6E"
.LC55:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_7E"
.LC56:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_8E"
.LC57:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders2_9E"
.LC58:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS12placeholders3_10E"
.LC59:
	.string	"_ZN42_INTERNAL_ba6b047c_11_parallel_cu_930ee7436thrust20THRUST_200700_890_NS3seqE"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB11383:
	.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	.LC12(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_ZN3cub17CUB_200700_890_NS11EmptyKernelIvEEvv(%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	.LC13(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z13updateWeightsPfS_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC14(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC15(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z17computeLayerDeltaPfS_S_PiS0_S0_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC16(%rip), %rdx
	movq	%rbx, %rdi
	leaq	_Z19computeOutputDelta2PfPKfiPKi(%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	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC18(%rip), %rdx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5beginE(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC19(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC20(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC21(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC22(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo6rbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC23(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo4rendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC24(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo7crbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC25(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__45__cpo5crendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC26(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC27(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__419piecewise_constructE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC28(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__48in_placeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC29(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__47nulloptE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC30(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std3__420unreachable_sentinelE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC31(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4swapE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC32(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_moveE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC33(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo7advanceE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC34(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5beginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC35(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo3endE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC36(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo6cbeginE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC37(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4cendE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC38(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo9iter_swapE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC39(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4nextE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC40(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4prevE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC41(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4dataE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC42(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5cdataE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC43(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo4sizeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC44(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo5ssizeE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC45(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN4cuda3std6ranges3__45__cpo8distanceE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC46(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL3parE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC47(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL10par_nosyncE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC48(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC49(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC50(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC51(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC52(%rip), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rdi
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC53(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC54(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC55(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC56(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC57(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC58(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E(%rip), %rsi
	call	__cudaRegisterVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC59(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$1, %r9d
	leaq	_ZN6thrust20THRUST_200700_890_NSL3seqE(%rip), %rsi
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE11383:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.rodata._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.str1.1,"aMS",@progbits,1
.LC60:
	.string	"basic_string: construction from null is not valid"
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC5IS3_EEPKcRKS3_,comdat
	.align 2
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, @function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_:
.LFB11797:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	16(%rdi), %rax
	movq	%rax, (%rdi)
	testq	%rsi, %rsi
	jne	.L870
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L875
	leaq	.LC60(%rip), %rdi
	call	_ZSt19__throw_logic_errorPKc@PLT
.L870:
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	%rsi, %rbp
	call	strlen@PLT
	movq	%rax, (%rsp)
	leaq	0(%rbp,%rax), %r12
	cmpq	$15, %rax
	jbe	.L872
	movq	%rsp, %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm@PLT
	movq	%rax, (%rbx)
	movq	(%rsp), %rax
	movq	%rax, 16(%rbx)
.L872:
	movq	(%rbx), %rdi
	movq	%r12, %rdx
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@PLT
	movq	(%rsp), %rax
	movq	(%rbx), %rdx
	movq	%rax, 8(%rbx)
	movb	$0, (%rdx,%rax)
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L873
.L875:
	call	__stack_chk_fail@PLT
.L873:
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11797:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, .-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
	.set	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei.str1.1,"aMS",@progbits,1
.LC61:
	.string	"Unknown error"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei
	.type	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei, @function
_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei:
.LFB8368:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8368
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movb	_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err(%rip), %al
	testb	%al, %al
	jne	.L878
	leaq	_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err(%rip), %rbp
	movq	%rbp, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L878
	leaq	_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err(%rip), %r13
	leaq	7(%rsp), %rdx
	leaq	.LC61(%rip), %rsi
	movq	%r13, %rdi
.LEHB5:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE5:
	movq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@GOTPCREL(%rip), %rdi
	leaq	__dso_handle(%rip), %rdx
	movq	%r13, %rsi
	call	__cxa_atexit@PLT
	movq	%rbp, %rdi
	call	__cxa_guard_release@PLT
.L878:
	movl	%r12d, %edi
	call	strerror@PLT
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L880
	leaq	7(%rsp), %rdx
	movq	%rbx, %rdi
.LEHB6:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
	jmp	.L876
.L880:
	leaq	_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err(%rip), %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
	jmp	.L876
.L885:
	endbr64
	movq	%rax, %rbx
.L882:
	movq	%rbp, %rdi
	call	__cxa_guard_abort@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L890
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE6:
.L876:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L884
.L890:
	call	__stack_chk_fail@PLT
.L884:
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8368:
	.section	.gcc_except_table._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,"aG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,comdat
.LLSDA8368:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8368-.LLSDACSB8368
.LLSDACSB8368:
	.uleb128 .LEHB5-.LFB8368
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L885-.LFB8368
	.uleb128 0
	.uleb128 .LEHB6-.LFB8368
	.uleb128 .LEHE6-.LEHB6
	.uleb128 0
	.uleb128 0
.LLSDACSE8368:
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei,comdat
	.size	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei, .-_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei
	.section	.rodata._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei.str1.1,"aMS",@progbits,1
.LC62:
	.string	"unknown error"
.LC63:
	.string	"cudaErrorUnknown"
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,comdat
	.align 2
	.weak	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei
	.type	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei, @function
_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei:
.LFB8433:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA8433
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	movl	%edx, %edi
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movl	%edx, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$88, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
.LEHB7:
	call	cudaGetErrorString@PLT
	movl	%ebp, %edi
	movq	%rax, %rbx
	call	cudaGetErrorName@PLT
	movq	%rax, %rsi
	testq	%rbx, %rbx
	jne	.L892
	leaq	.LC62(%rip), %rbx
.L892:
	testq	%rsi, %rsi
	jne	.L893
	leaq	.LC63(%rip), %rsi
.L893:
	leaq	8(%rsp), %rbp
	leaq	7(%rsp), %rdx
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE7:
	leaq	.LC4(%rip), %rsi
	movq	%rbp, %rdi
.LEHB8:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE8:
	leaq	40(%rsp), %r13
	movq	%rax, %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%rbx, %rsi
	movq	%r13, %rdi
.LEHB9:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE9:
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L897
	jmp	.L902
.L901:
	endbr64
	movq	%rax, %rbx
.L894:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L895
.L900:
	endbr64
	movq	%rax, %rbx
.L895:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L902
	movq	%rbx, %rdi
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L902:
	call	__stack_chk_fail@PLT
.L897:
	addq	$88, %rsp
	.cfi_def_cfa_offset 40
	movq	%r12, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE8433:
	.section	.gcc_except_table._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,"aG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,comdat
.LLSDA8433:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE8433-.LLSDACSB8433
.LLSDACSB8433:
	.uleb128 .LEHB7-.LFB8433
	.uleb128 .LEHE7-.LEHB7
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB8-.LFB8433
	.uleb128 .LEHE8-.LEHB8
	.uleb128 .L900-.LFB8433
	.uleb128 0
	.uleb128 .LEHB9-.LFB8433
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L901-.LFB8433
	.uleb128 0
	.uleb128 .LEHB10-.LFB8433
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE8433:
	.section	.text._ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei,comdat
	.size	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei, .-_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm
	.type	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm, @function
_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm:
.LFB13171:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13171
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$96, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rdi
.LEHB11:
	call	cudaMalloc@PLT
	testl	%eax, %eax
	je	.L905
	movl	%eax, %ebp
	leaq	24(%rsp), %r12
	call	cudaGetLastError@PLT
.LEHE11:
	movl	$40, %edi
	call	__cxa_allocate_exception@PLT
	movq	%rax, %rbx
	call	_ZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEv
	movl	%ebp, %edx
	movq	%r12, %rdi
	movq	%rax, %rsi
	movq	(%rax), %rax
.LEHB12:
	call	*48(%rax)
.LEHE12:
	leaq	56(%rsp), %r14
	movq	24(%rsp), %rsi
	leaq	15(%rsp), %rdx
	movq	%r14, %rdi
.LEHB13:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE13:
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE(%rip), %rax
	movb	$0, 24(%rbx)
	movq	%rbx, %rdi
	leaq	8(%rbx), %r13
	movq	%rax, (%rbx)
	leaq	24(%rbx), %rax
	movq	%rax, 8(%rbx)
	xorl	%eax, %eax
	movq	%rax, 16(%rbx)
	call	_ZNKSt9bad_alloc4whatEv@PLT
	movq	%rax, %rdi
	movq	%rax, %rbp
	call	strlen@PLT
	movq	16(%rbx), %rdx
	movq	%rbp, %rcx
	xorl	%esi, %esi
	movq	%rax, %r8
	movq	%r13, %rdi
.LEHB14:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm@PLT
	leaq	.LC4(%rip), %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
	movq	64(%rsp), %rdx
	movq	56(%rsp), %rsi
	movabsq	$4611686018427387903, %rax
	subq	16(%rbx), %rax
	cmpq	%rdx, %rax
	jnb	.L906
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L919
	leaq	.LC5(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L906:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm@PLT
.LEHE14:
	jmp	.L922
.L917:
	endbr64
	movq	%rax, %rbp
.L909:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbx, %rdi
	call	_ZNSt9bad_allocD2Ev@PLT
	movq	%r14, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L910
.L922:
	movq	%r14, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L919
	leaq	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD1Ev(%rip), %rdx
	leaq	_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE(%rip), %rsi
	movq	%rbx, %rdi
.LEHB15:
	call	__cxa_throw@PLT
.L905:
	movq	16(%rsp), %rax
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L914
	jmp	.L919
.L916:
	endbr64
	movq	%rax, %rbp
.L910:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L912
.L915:
	endbr64
	movq	%rax, %rbp
.L912:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L919
	movq	%rbp, %rdi
	call	_Unwind_Resume@PLT
.LEHE15:
.L919:
	call	__stack_chk_fail@PLT
.L914:
	addq	$96, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13171:
	.section	.gcc_except_table._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,"aG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,comdat
.LLSDA13171:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13171-.LLSDACSB13171
.LLSDACSB13171:
	.uleb128 .LEHB11-.LFB13171
	.uleb128 .LEHE11-.LEHB11
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB12-.LFB13171
	.uleb128 .LEHE12-.LEHB12
	.uleb128 .L915-.LFB13171
	.uleb128 0
	.uleb128 .LEHB13-.LFB13171
	.uleb128 .LEHE13-.LEHB13
	.uleb128 .L916-.LFB13171
	.uleb128 0
	.uleb128 .LEHB14-.LFB13171
	.uleb128 .LEHE14-.LEHB14
	.uleb128 .L917-.LFB13171
	.uleb128 0
	.uleb128 .LEHB15-.LFB13171
	.uleb128 .LEHE15-.LEHB15
	.uleb128 0
	.uleb128 0
.LLSDACSE13171:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm, .-_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm
	.section	.text._ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm
	.type	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm, @function
_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm:
.LFB13125:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	8(%rdi), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13125:
	.size	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm, .-_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm
	.text
	.globl	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB11341:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11341
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$8, %edx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$552, %rsp
	.cfi_def_cfa_offset 592
	movq	(%rdi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 536(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rbx
	movq	%rbx, %rdi
.LEHB16:
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@PLT
.LEHE16:
	leaq	136(%rsp), %rdi
	call	_ZNKSt12__basic_fileIcE7is_openEv@PLT
	testb	%al, %al
	je	.L926
	xorl	%eax, %eax
	leaq	8(%rsp), %rsi
	movl	$4, %edx
	movq	%rbx, %rdi
	movl	%eax, 8(%rsp)
	movl	%eax, 12(%rsp)
.LEHB17:
	call	_ZNSi4readEPcl@PLT
	movl	8(%rsp), %edi
	leaq	12(%rsp), %rsi
	movl	$4, %edx
	call	_Z10reverseInti
	movq	%rbx, %rdi
	movl	%eax, 8(%rsp)
	call	_ZNSi4readEPcl@PLT
	movl	12(%rsp), %edi
	call	_Z10reverseInti
	movl	%eax, 12(%rsp)
	movslq	%eax, %rdi
	movabsq	$2305843009213693950, %rax
	cmpq	%rdi, %rax
	jb	.L927
	salq	$2, %rdi
	call	_Znam@PLT
	movq	%rax, %rbp
	xorl	%r12d, %r12d
	leaq	7(%rsp), %r13
	jmp	.L928
.L927:
	movq	536(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L936
	call	__cxa_throw_bad_array_new_length@PLT
.L930:
	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	_ZNSi4readEPcl@PLT
.LEHE17:
	movzbl	7(%rsp), %eax
	movl	%eax, 0(%rbp,%r12,4)
	incq	%r12
.L928:
	cmpl	%r12d, 12(%rsp)
	jg	.L930
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	536(%rsp), %rax
	subq	%fs:40, %rax
	je	.L933
	jmp	.L936
.L926:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
.L935:
	endbr64
	movq	%rax, %rbp
.L931:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	536(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L936
	movq	%rbp, %rdi
.LEHB18:
	call	_Unwind_Resume@PLT
.LEHE18:
.L936:
	call	__stack_chk_fail@PLT
.L933:
	addq	$552, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11341:
	.section	.gcc_except_table,"a",@progbits
.LLSDA11341:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11341-.LLSDACSB11341
.LLSDACSB11341:
	.uleb128 .LEHB16-.LFB11341
	.uleb128 .LEHE16-.LEHB16
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB17-.LFB11341
	.uleb128 .LEHE17-.LEHB17
	.uleb128 .L935-.LFB11341
	.uleb128 0
	.uleb128 .LEHB18-.LFB11341
	.uleb128 .LEHE18-.LEHB18
	.uleb128 0
	.uleb128 0
.LLSDACSE11341:
	.text
	.size	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.text._Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE,"axG",@progbits,_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE,comdat
	.weak	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	.type	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE, @function
_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE:
.LFB11914:
	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	movl	24(%rdi), %edx
	ret
	.cfi_endproc
.LFE11914:
	.size	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE, .-_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	.section	.text._ZNSt6vectorIiSaIiEED2Ev,"axG",@progbits,_ZNSt6vectorIiSaIiEED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIiSaIiEED2Ev
	.type	_ZNSt6vectorIiSaIiEED2Ev, @function
_ZNSt6vectorIiSaIiEED2Ev:
.LFB11933:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L940
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L940:
	ret
	.cfi_endproc
.LFE11933:
	.size	_ZNSt6vectorIiSaIiEED2Ev, .-_ZNSt6vectorIiSaIiEED2Ev
	.weak	_ZNSt6vectorIiSaIiEED1Ev
	.set	_ZNSt6vectorIiSaIiEED1Ev,_ZNSt6vectorIiSaIiEED2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_
	.type	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_, @function
_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_:
.LFB11941:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	subq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdx, %rbx
	sarq	$2, %rbp
	pushq	%rax
	.cfi_def_cfa_offset 32
	movq	%rbp, %rsi
	imulq	$-4, %rbp, %rbp
	negq	%rsi
	call	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0
	popq	%rdx
	.cfi_def_cfa_offset 24
	leaq	(%rbx,%rbp), %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11941:
	.size	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_, .-_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv:
.LFB12406:
	.cfi_startproc
	endbr64
	movq	16(%rdi), %rsi
	testq	%rsi, %rsi
	je	.L950
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	salq	$2, %rsi
	call	_ZdlPvm@PLT
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L950:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE12406:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev:
.LFB12144:
	.cfi_startproc
	endbr64
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	.cfi_endproc
.LFE12144:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED1Ev,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv:
.LFB12421:
	.cfi_startproc
	endbr64
	movq	16(%rdi), %rsi
	testq	%rsi, %rsi
	je	.L960
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	salq	$2, %rsi
	call	_ZdlPvm@PLT
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L960:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE12421:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev:
.LFB12150:
	.cfi_startproc
	endbr64
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	.cfi_endproc
.LFE12150:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED1Ev,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	.section	.text._ZN13NeuralNetworkD2Ev,"axG",@progbits,_ZN13NeuralNetworkD5Ev,comdat
	.align 2
	.weak	_ZN13NeuralNetworkD2Ev
	.type	_ZN13NeuralNetworkD2Ev, @function
_ZN13NeuralNetworkD2Ev:
.LFB11332:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	168(%rdi), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	136(%rbx), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	104(%rbx), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	72(%rbx), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	40(%rbx), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	leaq	8(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	.cfi_endproc
.LFE11332:
	.size	_ZN13NeuralNetworkD2Ev, .-_ZN13NeuralNetworkD2Ev
	.weak	_ZN13NeuralNetworkD1Ev
	.set	_ZN13NeuralNetworkD1Ev,_ZN13NeuralNetworkD2Ev
	.section	.text._ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm,"axG",@progbits,_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm
	.type	_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm, @function
_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm:
.LFB12494:
	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	0(,%rsi,4), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	je	.L970
	movabsq	$2305843009213693951, %rax
	cmpq	%rsi, %rax
	jnb	.L968
	movabsq	$4611686018427387903, %rax
	cmpq	%rsi, %rax
	jnb	.L969
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L969:
	call	_ZSt17__throw_bad_allocv@PLT
.L968:
	movq	%rbp, %rdi
	call	_Znwm@PLT
	jmp	.L967
.L970:
	xorl	%eax, %eax
.L967:
	movq	%rax, (%rbx)
	movq	%rax, 8(%rbx)
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12494:
	.size	_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm, .-_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm:
.LFB12606:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	xorl	%eax, %eax
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L973
	movabsq	$2305843009213693951, %rax
	cmpq	%rsi, %rax
	jnb	.L974
	movabsq	$4611686018427387903, %rax
	cmpq	%rsi, %rax
	jnb	.L975
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L975:
	call	_ZSt17__throw_bad_allocv@PLT
.L974:
	leaq	0(,%rsi,4), %rdi
	call	_Znwm@PLT
.L973:
	movq	%rax, 8(%rbp)
	movq	%rbx, 16(%rbp)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12606:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm:
.LFB12157:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L980
	movq	16(%rdi), %rax
	movq	24(%rdi), %rdx
	movq	%rdi, %rbx
	movq	%rsi, %r12
	movq	%rax, %rcx
	leaq	(%rdx,%rsi), %r13
	subq	%rdx, %rcx
	cmpq	%rsi, %rcx
	jb	.L982
	movq	8(%rdi), %rax
	leaq	(%rax,%rdx,4), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	movq	%r13, 24(%rbx)
	jmp	.L980
.L982:
	xorl	%ecx, %ecx
	cmpq	%rsi, %rdx
	movq	%rsp, %r14
	cmovnb	%rdx, %rsi
	addq	%rax, %rax
	movq	%r14, %rdi
	movq	%rcx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	addq	%rdx, %rsi
	cmpq	%rax, %rsi
	cmovb	%rax, %rsi
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rsi
	cmova	%rax, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
	movq	24(%rbx), %rax
	movq	8(%rsp), %r15
	movq	8(%rbx), %rdi
	leaq	0(,%rax,4), %rbp
	movq	%r15, %rdx
	negq	%rbp
	sarq	$2, %rbp
	movq	%rbp, %rsi
	imulq	$-4, %rbp, %rbp
	negq	%rsi
	call	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0
	movq	%r12, %rsi
	leaq	(%r15,%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	movq	8(%rbx), %rax
	movq	%r13, 24(%rbx)
	movq	%r14, %rdi
	movq	8(%rsp), %rdx
	movq	%rax, 8(%rsp)
	movq	16(%rbx), %rax
	movq	%rdx, 8(%rbx)
	movq	16(%rsp), %rdx
	movq	%rax, 16(%rsp)
	movq	%rdx, 16(%rbx)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
.L980:
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L983
	call	__stack_chk_fail@PLT
.L983:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12157:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC5Em,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em:
.LFB12213:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12213
	endbr64
	xorl	%ecx, %ecx
	movq	%rcx, 8(%rdi)
	movq	%rcx, 16(%rdi)
	movq	%rcx, 24(%rdi)
	testq	%rsi, %rsi
	je	.L988
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
.LEHB19:
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
.LEHE19:
	movq	%rbp, 24(%rbx)
	movq	8(%rbx), %rdi
	movq	%rbp, %rsi
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIiEPimEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
.L991:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L990:
	movq	%rbx, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	movq	%rbp, %rdi
.LEHB20:
	call	_Unwind_Resume@PLT
.LEHE20:
.L988:
	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	ret
	.cfi_endproc
.LFE12213:
	.section	.gcc_except_table
.LLSDA12213:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12213-.LLSDACSB12213
.LLSDACSB12213:
	.uleb128 .LEHB19-.LFB12213
	.uleb128 .LEHE19-.LEHB19
	.uleb128 .L991-.LFB12213
	.uleb128 0
	.uleb128 .LEHB20-.LFB12213
	.uleb128 .LEHE20-.LEHB20
	.uleb128 0
	.uleb128 0
.LLSDACSE12213:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC5Em,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC1Em
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC1Em,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
	.section	.rodata._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_.str1.1,"aMS",@progbits,1
.LC64:
	.string	"assignment exceeds max_size()."
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC5ERKS4_,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_:
.LFB12230:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12230
	endbr64
	xorl	%eax, %eax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rax, 8(%rdi)
	movq	%rax, 16(%rdi)
	movq	%rax, 24(%rdi)
	movq	24(%rsi), %rax
	leaq	0(,%rax,4), %rbx
	negq	%rbx
	sarq	$2, %rbx
	negq	%rbx
	je	.L996
	movq	8(%rsi), %r12
	movabsq	$2305843009213693951, %rsi
	cmpq	%rsi, %rbx
	cmovbe	%rbx, %rsi
	cmpq	%rbx, %rsi
	jnb	.L997
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %r12
.LEHB21:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE21:
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%r12, %rdi
.LEHB22:
	call	__cxa_throw@PLT
.L997:
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
.LEHE22:
	movq	8(%rbp), %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIiEEPT_PKS5_lS6_.isra.0
.L996:
	movq	%rbx, 24(%rbp)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L1001:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbx
.L998:
	movq	%r12, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L999
.L1000:
	endbr64
	movq	%rax, %rbx
.L999:
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	movq	%rbx, %rdi
.LEHB23:
	call	_Unwind_Resume@PLT
.LEHE23:
	.cfi_endproc
.LFE12230:
	.section	.gcc_except_table
.LLSDA12230:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12230-.LLSDACSB12230
.LLSDACSB12230:
	.uleb128 .LEHB21-.LFB12230
	.uleb128 .LEHE21-.LEHB21
	.uleb128 .L1001-.LFB12230
	.uleb128 0
	.uleb128 .LEHB22-.LFB12230
	.uleb128 .LEHE22-.LEHB22
	.uleb128 .L1000-.LFB12230
	.uleb128 0
	.uleb128 .LEHB23-.LFB12230
	.uleb128 .LEHE23-.LEHB23
	.uleb128 0
	.uleb128 0
.LLSDACSE12230:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC5ERKS4_,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC1ERKS4_
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC1ERKS4_,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm:
.LFB12628:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	xorl	%eax, %eax
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L1008
	movabsq	$2305843009213693951, %rax
	cmpq	%rsi, %rax
	jnb	.L1009
	movabsq	$4611686018427387903, %rax
	cmpq	%rsi, %rax
	jnb	.L1010
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L1010:
	call	_ZSt17__throw_bad_allocv@PLT
.L1009:
	leaq	0(,%rsi,4), %rdi
	call	_Znwm@PLT
.L1008:
	movq	%rax, 8(%rbp)
	movq	%rbx, 16(%rbp)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12628:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm:
.LFB12165:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L1015
	movq	16(%rdi), %rax
	movq	24(%rdi), %rdx
	movq	%rdi, %rbx
	movq	%rsi, %r12
	movq	%rax, %rcx
	leaq	(%rdx,%rsi), %r13
	subq	%rdx, %rcx
	cmpq	%rsi, %rcx
	jb	.L1017
	movq	8(%rdi), %rax
	leaq	(%rax,%rdx,4), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	movq	%r13, 24(%rbx)
	jmp	.L1015
.L1017:
	xorl	%ecx, %ecx
	cmpq	%rsi, %rdx
	movq	%rsp, %r14
	cmovnb	%rdx, %rsi
	addq	%rax, %rax
	movq	%r14, %rdi
	movq	%rcx, 8(%rsp)
	movq	%rcx, 16(%rsp)
	addq	%rdx, %rsi
	cmpq	%rax, %rsi
	cmovb	%rax, %rsi
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rsi
	cmova	%rax, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
	movq	24(%rbx), %rax
	movq	8(%rsp), %r15
	movq	8(%rbx), %rdi
	leaq	0(,%rax,4), %rbp
	movq	%r15, %rdx
	negq	%rbp
	sarq	$2, %rbp
	movq	%rbp, %rsi
	imulq	$-4, %rbp, %rbp
	negq	%rsi
	call	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequential14trivial_copy_nIfEEPT_PKS5_lS6_.isra.0
	movq	%r12, %rsi
	leaq	(%r15,%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
	movq	8(%rbx), %rax
	movq	%r13, 24(%rbx)
	movq	%r14, %rdi
	movq	8(%rsp), %rdx
	movq	%rax, 8(%rsp)
	movq	16(%rbx), %rax
	movq	%rdx, 8(%rbx)
	movq	16(%rsp), %rdx
	movq	%rax, 16(%rsp)
	movq	%rdx, 16(%rbx)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
.L1015:
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1018
	call	__stack_chk_fail@PLT
.L1018:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12165:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm:
.LFB11876:
	.cfi_startproc
	endbr64
	movq	24(%rdi), %rdx
	cmpq	%rdx, %rsi
	jnb	.L1024
	subq	%rdx, %rsi
	leaq	0(,%rsi,4), %rax
	sarq	$2, %rax
	addq	%rdx, %rax
	movq	%rax, 24(%rdi)
	ret
.L1024:
	subq	%rdx, %rsi
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6appendEm
	.cfi_endproc
.LFE11876:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
	.section	.rodata.str1.1
.LC65:
	.string	"offset "
	.text
	.globl	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
	.type	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE, @function
_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE:
.LFB11327:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11327
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r8d, %r8d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%r8, 16(%rdi)
	movq	%r8, 24(%rdi)
	movq	%r8, 32(%rdi)
	movq	%r8, 48(%rdi)
	movq	%r8, 56(%rdi)
	movq	%r8, 64(%rdi)
	movq	%r8, 80(%rdi)
	movq	%r8, 88(%rdi)
	movq	%r8, 96(%rdi)
	movq	%r8, 112(%rdi)
	movq	%r8, 120(%rdi)
	movq	%r8, 128(%rdi)
	movq	%r8, 144(%rdi)
	movq	%r8, 152(%rdi)
	movq	%r8, 160(%rdi)
	movq	%r8, 176(%rdi)
	movq	%r8, 184(%rdi)
	movq	8(%rsi), %r14
	movq	(%rsi), %r15
	movq	%r8, 192(%rdi)
	movq	%r14, %r13
	subq	%r15, %r13
	sarq	$2, %r13
	cmpq	%r15, %r14
	je	.L1028
	movabsq	$2305843009213693951, %rsi
	xorl	%ecx, %ecx
	movq	%rsp, %r12
	cmpq	%rsi, %r13
	movq	%rcx, 8(%rsp)
	cmovbe	%r13, %rsi
	movq	%rcx, 16(%rsp)
	cmpq	%r13, %rsi
	jnb	.L1029
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %r13
.LEHB24:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE24:
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1052
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%r13, %rdi
.LEHB25:
	call	__cxa_throw@PLT
.L1029:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE8allocateEm
.LEHE25:
	movq	8(%rsp), %rdx
	movq	%r15, %rdi
	movq	%r14, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS3_EEEEENS1_15normal_iteratorIPiEET_SG_SF_.isra.0
	movq	16(%rbx), %rax
	movq	%r13, 32(%rbx)
	movq	%r12, %rdi
	movq	8(%rsp), %rdx
	movq	%rax, 8(%rsp)
	movq	24(%rbx), %rax
	movq	%rdx, 16(%rbx)
	movq	16(%rsp), %rdx
	movq	%rax, 16(%rsp)
	movq	%rdx, 24(%rbx)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	jmp	.L1031
.L1047:
	endbr64
	movq	%rax, %rbp
.L1032:
	movq	%r13, %rdi
	call	__cxa_free_exception@PLT
	jmp	.L1033
.L1028:
	xorl	%edx, %edx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS0_6detail15normal_iteratorIPiEEEET0_T_SF_SE_.isra.0
	movq	%r13, 32(%rbx)
.L1031:
	movq	32(%rbx), %rax
	movq	64(%rbx), %rdx
	leaq	1(%rax), %rsi
	cmpq	%rdx, %rsi
	jnb	.L1055
	subq	%rdx, %rsi
	leaq	0(,%rsi,4), %rax
	sarq	$2, %rax
	addq	%rdx, %rax
	movq	%rax, 64(%rbx)
	jmp	.L1037
.L1046:
	endbr64
	movq	%rax, %rbp
.L1033:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiSaIiEE10deallocateEv
	jmp	.L1036
.L1055:
	subq	%rdx, %rsi
	leaq	40(%rbx), %rdi
.LEHB26:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEE6appendEm
.L1037:
	movq	48(%rbx), %rax
	xorl	%edx, %edx
	xorl	%r13d, %r13d
	xorl	%r12d, %r12d
	xorl	%r14d, %r14d
	movl	%edx, (%rax)
	movq	8(%rbp), %rax
	subq	0(%rbp), %rax
	xorl	%ebp, %ebp
	sarq	$2, %rax
	movl	%eax, (%rbx)
.L1038:
	cmpl	%r14d, (%rbx)
	jle	.L1056
	movq	16(%rbx), %rax
	testl	%r14d, %r14d
	je	.L1039
	movl	-4(%rax,%rbp), %edx
	imull	(%rax,%rbp), %edx
	addl	%edx, %r13d
.L1039:
	leaq	(%rax,%rbp), %rdx
	leaq	.LC65(%rip), %rsi
	incl	%r14d
	movl	(%rdx), %eax
	leaq	_ZSt4cout(%rip), %rdi
	leaq	4(%rbp), %r15
	incl	%eax
	movl	%eax, (%rdx)
	movq	48(%rbx), %rdx
	addl	(%rdx,%rbp), %eax
	movl	%eax, 4(%rdx,%rbp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movq	48(%rbx), %rax
	movl	4(%rax,%rbp), %esi
	call	_ZNSolsEi@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movq	16(%rbx), %rax
	addl	(%rax,%rbp), %r12d
	movq	%r15, %rbp
	jmp	.L1038
.L1056:
	leaq	136(%rbx), %rbp
	movslq	%r13d, %r13
	movq	%r13, %rsi
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
	leaq	168(%rbx), %rdi
	movq	%r13, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
	movslq	%r12d, %rsi
	leaq	72(%rbx), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
	movq	16(%rbx), %rax
	leaq	104(%rbx), %rdi
	subl	(%rax), %r12d
	movslq	%r12d, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE6resizeEm
.LEHE26:
	movl	(%rbx), %esi
	movss	.LC66(%rip), %xmm0
	movl	$4, %ecx
	xorl	%edx, %edx
.L1041:
	cmpl	%edx, %esi
	jle	.L1057
	movq	48(%rbx), %rax
	movq	80(%rbx), %rdi
	incl	%edx
	movl	(%rax,%rcx), %eax
	addq	$4, %rcx
	decl	%eax
	cltq
	movss	%xmm0, (%rdi,%rax,4)
	jmp	.L1041
.L1057:
	movq	%rbp, %rdi
	call	_Z15rand_initializeRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEE
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1044
	jmp	.L1052
.L1045:
	endbr64
	movq	%rax, %rbp
.L1036:
	movq	%rbx, %rdi
	call	_ZN13NeuralNetworkD1Ev
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1052
	movq	%rbp, %rdi
.LEHB27:
	call	_Unwind_Resume@PLT
.LEHE27:
.L1052:
	call	__stack_chk_fail@PLT
.L1044:
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	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
.LFE11327:
	.section	.gcc_except_table
.LLSDA11327:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11327-.LLSDACSB11327
.LLSDACSB11327:
	.uleb128 .LEHB24-.LFB11327
	.uleb128 .LEHE24-.LEHB24
	.uleb128 .L1047-.LFB11327
	.uleb128 0
	.uleb128 .LEHB25-.LFB11327
	.uleb128 .LEHE25-.LEHB25
	.uleb128 .L1046-.LFB11327
	.uleb128 0
	.uleb128 .LEHB26-.LFB11327
	.uleb128 .LEHE26-.LEHB26
	.uleb128 .L1045-.LFB11327
	.uleb128 0
	.uleb128 .LEHB27-.LFB11327
	.uleb128 .LEHE27-.LEHB27
	.uleb128 0
	.uleb128 0
.LLSDACSE11327:
	.text
	.size	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE, .-_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC5Em,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em:
.LFB12195:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12195
	endbr64
	xorl	%ecx, %ecx
	movq	%rcx, 8(%rdi)
	movq	%rcx, 16(%rdi)
	movq	%rcx, 24(%rdi)
	testq	%rsi, %rsi
	je	.L1058
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
.LEHB28:
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
.LEHE28:
	movq	%rbp, 24(%rbx)
	movq	8(%rbx), %rdi
	movq	%rbp, %rsi
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail23allocator_traits_detail22value_initialize_rangeISaIfEPfmEENS1_10disable_ifIXsrNS2_37needs_default_construct_via_allocatorIT_NS1_15pointer_elementIT0_E4typeEEE5valueEvE4typeERS8_SA_T1_.isra.0
.L1061:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L1060:
	movq	%rbx, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	movq	%rbp, %rdi
.LEHB29:
	call	_Unwind_Resume@PLT
.LEHE29:
.L1058:
	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	ret
	.cfi_endproc
.LFE12195:
	.section	.gcc_except_table
.LLSDA12195:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12195-.LLSDACSB12195
.LLSDACSB12195:
	.uleb128 .LEHB28-.LFB12195
	.uleb128 .LEHE28-.LEHB28
	.uleb128 .L1061-.LFB12195
	.uleb128 0
	.uleb128 .LEHB29-.LFB12195
	.uleb128 .LEHE29-.LEHB29
	.uleb128 0
	.uleb128 0
.LLSDACSE12195:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC5Em,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC1Em
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC1Em,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
	.text
	.globl	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB11340:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11340
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movl	$8, %edx
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$608, %rsp
	.cfi_def_cfa_offset 656
	movq	(%rsi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 600(%rsp)
	xorl	%eax, %eax
	leaq	80(%rsp), %rbx
	movq	%rbx, %rdi
.LEHB30:
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@PLT
.LEHE30:
	leaq	200(%rsp), %rdi
	call	_ZNKSt12__basic_fileIcE7is_openEv@PLT
	testb	%al, %al
	je	.L1066
	xorl	%esi, %esi
	movl	$4, %edx
	movq	%rbx, %rdi
	movl	%esi, 8(%rsp)
	movl	%esi, 12(%rsp)
	movl	%esi, 16(%rsp)
	movl	%esi, 20(%rsp)
	leaq	8(%rsp), %rsi
.LEHB31:
	call	_ZNSi4readEPcl@PLT
	movl	8(%rsp), %edi
	leaq	12(%rsp), %rsi
	movl	$4, %edx
	call	_Z10reverseInti
	movq	%rbx, %rdi
	movl	%eax, 8(%rsp)
	call	_ZNSi4readEPcl@PLT
	movl	12(%rsp), %edi
	leaq	16(%rsp), %rsi
	movl	$4, %edx
	call	_Z10reverseInti
	movq	%rbx, %rdi
	movl	%eax, 12(%rsp)
	call	_ZNSi4readEPcl@PLT
	movl	16(%rsp), %edi
	leaq	20(%rsp), %rsi
	movl	$4, %edx
	call	_Z10reverseInti
	movq	%rbx, %rdi
	movl	%eax, 16(%rsp)
	call	_ZNSi4readEPcl@PLT
	movl	20(%rsp), %edi
	leaq	48(%rsp), %r12
	call	_Z10reverseInti
	movl	12(%rsp), %esi
	movq	%r12, %rdi
	movl	%eax, %ebp
	imull	16(%rsp), %ebp
	movl	%eax, 20(%rsp)
	imull	%ebp, %esi
	movslq	%esi, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
.LEHE31:
	xorl	%r14d, %r14d
.L1067:
	movl	12(%rsp), %eax
	imull	%ebp, %eax
	cmpl	%r14d, %eax
	jle	.L1079
	leaq	7(%rsp), %rsi
	movl	$1, %edx
	movq	%rbx, %rdi
	movb	$0, 7(%rsp)
.LEHB32:
	call	_ZNSi4readEPcl@PLT
.LEHE32:
	movzbl	7(%rsp), %eax
	cvtsi2sdl	%eax, %xmm0
	divsd	.LC67(%rip), %xmm0
	movq	56(%rsp), %rax
	subsd	.LC68(%rip), %xmm0
	cvtsd2ss	%xmm0, %xmm0
	movss	%xmm0, (%rax,%r14,4)
	incq	%r14
	jmp	.L1067
.L1079:
	movq	56(%rsp), %rax
	xorl	%edx, %edx
	leaq	24(%rsp), %rdi
	movq	%rdx, 40(%rsp)
	movq	%rax, 8(%r13)
	movq	64(%rsp), %rax
	movq	%rdx, 56(%rsp)
	movq	%rax, 16(%r13)
	xorl	%eax, %eax
	movq	%rax, 64(%rsp)
	movq	72(%rsp), %rax
	movq	%rdx, 32(%rsp)
	movq	%rax, 24(%r13)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	xorl	%ecx, %ecx
	movq	%r12, %rdi
	movq	%rcx, 72(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	600(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1072
	jmp	.L1077
.L1066:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
.L1075:
	endbr64
	movq	%rax, %rbp
.L1069:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1070
.L1074:
	endbr64
	movq	%rax, %rbp
.L1070:
	movq	%rbx, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	600(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1077
	movq	%rbp, %rdi
.LEHB33:
	call	_Unwind_Resume@PLT
.LEHE33:
.L1077:
	call	__stack_chk_fail@PLT
.L1072:
	addq	$608, %rsp
	.cfi_def_cfa_offset 48
	movq	%r13, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11340:
	.section	.gcc_except_table
.LLSDA11340:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11340-.LLSDACSB11340
.LLSDACSB11340:
	.uleb128 .LEHB30-.LFB11340
	.uleb128 .LEHE30-.LEHB30
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB31-.LFB11340
	.uleb128 .LEHE31-.LEHB31
	.uleb128 .L1074-.LFB11340
	.uleb128 0
	.uleb128 .LEHB32-.LFB11340
	.uleb128 .LEHE32-.LEHB32
	.uleb128 .L1075-.LFB11340
	.uleb128 0
	.uleb128 .LEHB33-.LFB11340
	.uleb128 .LEHE33-.LEHB33
	.uleb128 0
	.uleb128 0
.LLSDACSE11340:
	.text
	.size	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv:
.LFB12654:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12654
	endbr64
	movq	16(%rdi), %rdx
	testq	%rdx, %rdx
	je	.L1086
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rsi
	salq	$2, %rdx
	movq	(%rdi), %rdi
	movl	$4, %ecx
	call	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L1086:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE12654:
	.section	.gcc_except_table
.LLSDA12654:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12654-.LLSDACSB12654
.LLSDACSB12654:
.LLSDACSE12654:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev:
.LFB12201:
	.cfi_startproc
	endbr64
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
	.cfi_endproc
.LFE12201:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED1Ev,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv:
.LFB12678:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12678
	endbr64
	movq	16(%rdi), %rdx
	testq	%rdx, %rdx
	je	.L1096
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rsi
	salq	$2, %rdx
	movq	(%rdi), %rdi
	movl	$4, %ecx
	call	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L1096:
	.cfi_restore 3
	ret
	.cfi_endproc
.LFE12678:
	.section	.gcc_except_table
.LLSDA12678:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12678-.LLSDACSB12678
.LLSDACSB12678:
.LLSDACSE12678:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev:
.LFB12207:
	.cfi_startproc
	endbr64
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	.cfi_endproc
.LFE12207:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED1Ev,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v
	.type	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v, @function
_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v:
.LFB12776:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movb	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource(%rip), %al
	leaq	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource(%rip), %rbx
	testb	%al, %al
	jne	.L1102
	leaq	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource(%rip), %rbp
	movq	%rbp, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L1102
	leaq	16+_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE(%rip), %rax
	leaq	__dso_handle(%rip), %r12
	movq	%rax, _ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource(%rip)
	movb	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource(%rip), %al
	leaq	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource(%rip), %r13
	testb	%al, %al
	jne	.L1105
	leaq	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource(%rip), %r14
	movq	%r14, %rdi
	call	__cxa_guard_acquire@PLT
	testl	%eax, %eax
	je	.L1105
	leaq	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED1Ev(%rip), %rdi
	movq	%r12, %rdx
	movq	%r13, %rsi
	call	__cxa_atexit@PLT
	movq	%r14, %rdi
	call	__cxa_guard_release@PLT
.L1105:
	leaq	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED1Ev(%rip), %rdi
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r13, 8+_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource(%rip)
	call	__cxa_atexit@PLT
	movq	%rbp, %rdi
	call	__cxa_guard_release@PLT
.L1102:
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12776:
	.size	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v, .-_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC5Ev,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev:
.LFB12210:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	call	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v
	movq	%rax, (%rbx)
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
	movq	%rax, 24(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12210:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC1Ev
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC1Ev,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE:
.LFB12805:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12805
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%r9
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	jne	.L1117
	popq	%rdx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r8, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
.L1117:
	.cfi_restore_state
	movq	16(%rdi), %rbx
	addq	%rbx, %rbx
	cmpq	%rsi, %rbx
	cmovb	%rsi, %rbx
	cmpq	%rsi, %rbx
	jnb	.L1118
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
.LEHB34:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE34:
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%rbx, %rdi
.LEHB35:
	call	__cxa_throw@PLT
.L1118:
	movq	(%r8), %rdi
	movq	%rdx, %r12
	movl	$4, %edx
	movq	%rcx, %r13
	leaq	0(,%rbx,4), %rsi
	call	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm
.LEHE35:
	movq	%r12, %rdx
	movq	%rbx, 16(%rbp)
	movq	%rax, 8(%rbp)
	movq	%rax, %rdi
	subq	%r13, %rdx
	jns	.L1116
	sarq	$2, %rdx
	movl	$1, %r8d
	movl	$1, %ecx
	movq	%r12, %rsi
	imulq	$-4, %rdx, %rdx
.LEHB36:
	call	cudaMemcpyAsync@PLT
	movl	$1, %edi
	movl	%eax, %ebx
	call	cudaStreamSynchronize@PLT
	leaq	.LC7(%rip), %rsi
	movl	%ebx, %edi
	call	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.LEHE36:
	jmp	.L1116
.L1123:
	endbr64
	movq	%rax, %rbp
.L1120:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%rbp, %rdi
	jmp	.L1127
.L1124:
	endbr64
	movq	%rax, %rdi
.L1121:
	call	__cxa_begin_catch@PLT
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
.LEHB37:
	call	__cxa_rethrow@PLT
.LEHE37:
.L1125:
	endbr64
	movq	%rax, %rbx
.L1122:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.L1127:
.LEHB38:
	call	_Unwind_Resume@PLT
.LEHE38:
.L1116:
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE12805:
	.section	.gcc_except_table
	.align 4
.LLSDA12805:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT12805-.LLSDATTD12805
.LLSDATTD12805:
	.byte	0x1
	.uleb128 .LLSDACSE12805-.LLSDACSB12805
.LLSDACSB12805:
	.uleb128 .LEHB34-.LFB12805
	.uleb128 .LEHE34-.LEHB34
	.uleb128 .L1123-.LFB12805
	.uleb128 0
	.uleb128 .LEHB35-.LFB12805
	.uleb128 .LEHE35-.LEHB35
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB36-.LFB12805
	.uleb128 .LEHE36-.LEHB36
	.uleb128 .L1124-.LFB12805
	.uleb128 0x1
	.uleb128 .LEHB37-.LFB12805
	.uleb128 .LEHE37-.LEHB37
	.uleb128 .L1125-.LFB12805
	.uleb128 0
	.uleb128 .LEHB38-.LFB12805
	.uleb128 .LEHE38-.LEHB38
	.uleb128 0
	.uleb128 0
.LLSDACSE12805:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT12805:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC5IfSaIfEEERKNS2_IT_T0_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE:
.LFB12198:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12198
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	call	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v
	xorl	%ecx, %ecx
	movq	%rbp, %r8
	movq	%rbp, %rdi
	movq	%rcx, 8(%rbp)
	movq	8(%rbx), %rdx
	movq	24(%rbx), %rbx
	movq	%rcx, 16(%rbp)
	movq	%rcx, 24(%rbp)
	salq	$2, %rbx
	movq	%rax, 0(%rbp)
	leaq	(%rdx,%rbx), %rcx
	negq	%rbx
	sarq	$2, %rbx
	negq	%rbx
	movq	%rbx, %rsi
.LEHB39:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SB_RNS1_18contiguous_storageIfS4_EE
.LEHE39:
	movq	%rbx, 24(%rbp)
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L1130:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbx
.L1129:
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfNS0_16device_allocatorIfEEE10deallocateEv
	movq	%rbx, %rdi
.LEHB40:
	call	_Unwind_Resume@PLT
.LEHE40:
	.cfi_endproc
.LFE12198:
	.section	.gcc_except_table
.LLSDA12198:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12198-.LLSDACSB12198
.LLSDACSB12198:
	.uleb128 .LEHB39-.LFB12198
	.uleb128 .LEHE39-.LEHB39
	.uleb128 .L1130-.LFB12198
	.uleb128 0
	.uleb128 .LEHB40-.LFB12198
	.uleb128 .LEHE40-.LEHB40
	.uleb128 0
	.uleb128 0
.LLSDACSE12198:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC5IfSaIfEEERKNS2_IT_T0_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC1IfSaIfEEERKNS2_IT_T0_EE
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC1IfSaIfEEERKNS2_IT_T0_EE,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE:
.LFB12829:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12829
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%r9
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	jne	.L1134
	popq	%rdx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r8, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
.L1134:
	.cfi_restore_state
	movq	16(%rdi), %rbx
	addq	%rbx, %rbx
	cmpq	%rsi, %rbx
	cmovb	%rsi, %rbx
	cmpq	%rsi, %rbx
	jnb	.L1135
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
.LEHB41:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE41:
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%rbx, %rdi
.LEHB42:
	call	__cxa_throw@PLT
.L1135:
	movq	(%r8), %rdi
	movq	%rdx, %r12
	movl	$4, %edx
	movq	%rcx, %r13
	leaq	0(,%rbx,4), %rsi
	call	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm
.LEHE42:
	movq	%rbx, 16(%rbp)
	movq	%r13, %rsi
	movq	%r12, %rdi
	movq	%rax, 8(%rbp)
	movq	%rax, %rdx
.LEHB43:
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0
.LEHE43:
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L1139:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L1136:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%rbp, %rdi
	jmp	.L1144
.L1140:
	endbr64
	movq	%rax, %rdi
.L1137:
	call	__cxa_begin_catch@PLT
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
.LEHB44:
	call	__cxa_rethrow@PLT
.LEHE44:
.L1141:
	endbr64
	movq	%rax, %rbx
.L1138:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.L1144:
.LEHB45:
	call	_Unwind_Resume@PLT
.LEHE45:
	.cfi_endproc
.LFE12829:
	.section	.gcc_except_table
	.align 4
.LLSDA12829:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT12829-.LLSDATTD12829
.LLSDATTD12829:
	.byte	0x1
	.uleb128 .LLSDACSE12829-.LLSDACSB12829
.LLSDACSB12829:
	.uleb128 .LEHB41-.LFB12829
	.uleb128 .LEHE41-.LEHB41
	.uleb128 .L1139-.LFB12829
	.uleb128 0
	.uleb128 .LEHB42-.LFB12829
	.uleb128 .LEHE42-.LEHB42
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB43-.LFB12829
	.uleb128 .LEHE43-.LEHB43
	.uleb128 .L1140-.LFB12829
	.uleb128 0x1
	.uleb128 .LEHB44-.LFB12829
	.uleb128 .LEHE44-.LEHB44
	.uleb128 .L1141-.LFB12829
	.uleb128 0
	.uleb128 .LEHB45-.LFB12829
	.uleb128 .LEHE45-.LEHB45
	.uleb128 0
	.uleb128 0
.LLSDACSE12829:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT12829:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC5IiSaIiEEERKNS2_IT_T0_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE:
.LFB12204:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12204
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	call	_ZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_v
	xorl	%ecx, %ecx
	movq	%rbp, %r8
	movq	%rbp, %rdi
	movq	%rcx, 8(%rbp)
	movq	8(%rbx), %rdx
	movq	24(%rbx), %rbx
	movq	%rcx, 16(%rbp)
	movq	%rcx, 24(%rbp)
	salq	$2, %rbx
	movq	%rax, 0(%rbp)
	leaq	(%rdx,%rbx), %rcx
	negq	%rbx
	sarq	$2, %rbx
	negq	%rbx
	movq	%rbx, %rsi
.LEHB46:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE
.LEHE46:
	movq	%rbx, 24(%rbp)
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L1147:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbx
.L1146:
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	movq	%rbx, %rdi
.LEHB47:
	call	_Unwind_Resume@PLT
.LEHE47:
	.cfi_endproc
.LFE12204:
	.section	.gcc_except_table
.LLSDA12204:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12204-.LLSDACSB12204
.LLSDACSB12204:
	.uleb128 .LEHB46-.LFB12204
	.uleb128 .LEHE46-.LEHB46
	.uleb128 .L1147-.LFB12204
	.uleb128 0
	.uleb128 .LEHB47-.LFB12204
	.uleb128 .LEHE47-.LEHB47
	.uleb128 0
	.uleb128 0
.LLSDACSE12204:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC5IiSaIiEEERKNS2_IT_T0_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC1IiSaIiEEERKNS2_IT_T0_EE
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC1IiSaIiEEERKNS2_IT_T0_EE,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE:
.LFB12847:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12847
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%rsi, %rsi
	jne	.L1151
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%r8, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
.L1151:
	.cfi_restore_state
	movq	16(%rdi), %rax
	movq	%rsi, %r9
	addq	%rax, %rax
	cmpq	%rsi, %rax
	cmovb	%rsi, %rax
	movq	%rax, %rsi
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rsi
	cmova	%rax, %rsi
	cmpq	%r9, %rsi
	jnb	.L1152
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
.LEHB48:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE48:
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%rbx, %rdi
.LEHB49:
	call	__cxa_throw@PLT
.L1152:
	movq	%r8, %rdi
	movq	%rdx, %rbx
	movq	%rcx, %rbp
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
	movq	8(%r12), %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0
.L1154:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L1153:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%rbp, %rdi
	call	_Unwind_Resume@PLT
.LEHE49:
	.cfi_endproc
.LFE12847:
	.section	.gcc_except_table
.LLSDA12847:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12847-.LLSDACSB12847
.LLSDACSB12847:
	.uleb128 .LEHB48-.LFB12847
	.uleb128 .LEHE48-.LEHB48
	.uleb128 .L1154-.LFB12847
	.uleb128 0
	.uleb128 .LEHB49-.LFB12847
	.uleb128 .LEHE49-.LEHB49
	.uleb128 0
	.uleb128 0
.LLSDACSE12847:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC5ERKS4_,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_:
.LFB12227:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA12227
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%ecx, %ecx
	movq	%rdi, %r8
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	pushq	%rdx
	.cfi_def_cfa_offset 32
	movq	24(%rsi), %rbx
	movq	%rcx, 8(%rdi)
	movq	8(%rsi), %rdx
	salq	$2, %rbx
	movq	%rcx, 16(%rdi)
	movq	%rcx, 24(%rdi)
	leaq	(%rdx,%rbx), %rcx
	negq	%rbx
	sarq	$2, %rbx
	negq	%rbx
	movq	%rbx, %rsi
.LEHB50:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE
.LEHE50:
	movq	%rbx, 24(%rbp)
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L1158:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbx
.L1157:
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	movq	%rbx, %rdi
.LEHB51:
	call	_Unwind_Resume@PLT
.LEHE51:
	.cfi_endproc
.LFE12227:
	.section	.gcc_except_table
.LLSDA12227:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE12227-.LLSDACSB12227
.LLSDACSB12227:
	.uleb128 .LEHB50-.LFB12227
	.uleb128 .LEHE50-.LEHB50
	.uleb128 .L1158-.LFB12227
	.uleb128 0
	.uleb128 .LEHB51-.LFB12227
	.uleb128 .LEHE51-.LEHB51
	.uleb128 0
	.uleb128 0
.LLSDACSE12227:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC5ERKS4_,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC1ERKS4_
	.set	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC1ERKS4_,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
	.section	.text._ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_
	.type	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_, @function
_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_:
.LFB12927:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE12927:
	.size	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_, .-_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_
	.section	.text._Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE,"axG",@progbits,_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE,comdat
	.weak	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	.type	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE, @function
_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE:
.LFB11913:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	movq	8(%rdi), %rax
	movq	%rsp, %rdi
	movq	%rax, (%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_
	movl	24(%rbx), %edx
	movq	8(%rsp), %rcx
	subq	%fs:40, %rcx
	je	.L1163
	call	__stack_chk_fail@PLT
.L1163:
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11913:
	.size	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE, .-_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	.text
	.type	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0:
.LFB13509:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rdx, (%rsp)
	subq	%rsi, %rbp
	jns	.L1165
	movq	%rdi, %rbx
	sarq	$2, %rbp
	movq	%rsp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIiEEEEEENT_9referenceERKS8_
	imulq	$-4, %rbp, %rdx
	movq	%rbx, %rsi
	movl	$1, %r8d
	movq	%rax, %rdi
	movl	$1, %ecx
	call	cudaMemcpyAsync@PLT
	movl	$1, %edi
	movl	%eax, %ebx
	call	cudaStreamSynchronize@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1170
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %edi
	leaq	.LC7(%rip), %rsi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.L1165:
	.cfi_restore_state
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1168
.L1170:
	call	__stack_chk_fail@PLT
.L1168:
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13509:
	.size	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0:
.LFB13511:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13511
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	movq	24(%rsi), %rbp
	movq	8(%rsi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	salq	$2, %rbp
	leaq	(%rdi,%rbp), %r12
	negq	%rbp
	sarq	$2, %rbp
	negq	%rbp
	cmpq	%rbp, 16(%rbx)
	jnb	.L1172
	movq	(%rbx), %rax
	leaq	16(%rsp), %r13
	movq	%rdi, %rdx
	movq	%r12, %rcx
	movq	%r13, %r8
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
	xorl	%eax, %eax
	movq	%rax, 24(%rsp)
	movq	%rax, 32(%rsp)
.LEHB52:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEE17allocate_and_copyINS1_15normal_iteratorIPKiEEEEvmT_SB_RNS1_18contiguous_storageIiS4_EE
.LEHE52:
	movq	24(%rsp), %rdx
	movq	8(%rbx), %rax
	movq	%rbp, 24(%rbx)
	movq	%r13, %rdi
	movq	%rdx, 8(%rbx)
	movq	32(%rsp), %rdx
	movq	%rax, 24(%rsp)
	movq	16(%rbx), %rax
	movq	%rdx, 16(%rbx)
	movq	16(%rsp), %rdx
	movq	%rax, 32(%rsp)
	movq	(%rbx), %rax
	movq	%rdx, (%rbx)
	movq	%rax, 16(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	jmp	.L1171
.L1172:
	movq	24(%rbx), %rax
	movq	8(%rbx), %rdx
	cmpq	%rbp, %rax
	jb	.L1174
	movq	%r12, %rsi
.LEHB53:
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0
	jmp	.L1180
.L1174:
	leaq	(%rdi,%rax,4), %r13
	movq	%r13, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKiEENS3_INS0_10device_ptrIiEEEEEET0_T_SB_SA_.isra.0
	movq	24(%rbx), %rdx
	movq	8(%rbx), %rax
	movq	%r12, %rsi
	movq	%r13, %rdi
	leaq	(%rax,%rdx,4), %rdx
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE18uninitialized_copyINS1_15normal_iteratorIPKiEEEENS7_INS0_10device_ptrIiEEEET_SE_SD_.isra.0
.L1180:
	movq	%rbp, 24(%rbx)
	jmp	.L1171
.L1178:
	endbr64
	movq	%rax, %rbx
.L1175:
	movq	%r13, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIiNS0_16device_allocatorIiEEE10deallocateEv
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1181
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE53:
.L1171:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1177
.L1181:
	call	__stack_chk_fail@PLT
.L1177:
	addq	$56, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13511:
	.section	.gcc_except_table
.LLSDA13511:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13511-.LLSDACSB13511
.LLSDACSB13511:
	.uleb128 .LEHB52-.LFB13511
	.uleb128 .LEHE52-.LEHB52
	.uleb128 .L1178-.LFB13511
	.uleb128 0
	.uleb128 .LEHB53-.LFB13511
	.uleb128 .LEHE53-.LEHB53
	.uleb128 0
	.uleb128 0
.LLSDACSE13511:
	.text
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0
	.section	.text._ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_,comdat
	.weak	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_
	.type	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_, @function
_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_:
.LFB13356:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE13356:
	.size	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_, .-_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_
	.section	.rodata.str1.1
.LC69:
	.string	"trivial_device_copy D->H failed"
	.text
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0:
.LFB13513:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	subq	%rdi, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rdi, (%rsp)
	testq	%rsi, %rsi
	jle	.L1184
	movq	%rsp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_
	movl	$2, %ecx
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movq	%rax, %rsi
	movl	$1, %r8d
	call	cudaMemcpyAsync@PLT
	movl	$1, %edi
	movl	%eax, %r12d
	call	cudaStreamSynchronize@PLT
	leaq	.LC69(%rip), %rsi
	movl	%r12d, %edi
	call	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.L1184:
	leaq	(%rbx,%rbp), %rax
	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L1185
	call	__stack_chk_fail@PLT
.L1185:
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13513:
	.size	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE,comdat
	.align 2
	.weak	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE:
.LFB13032:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13032
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%r8, %rbx
	testq	%rsi, %rsi
	jne	.L1188
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%r8, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
.L1188:
	.cfi_restore_state
	movq	16(%rdi), %rax
	movq	%rsi, %r9
	addq	%rax, %rax
	cmpq	%rsi, %rax
	cmovb	%rsi, %rax
	movq	%rax, %rsi
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rsi
	cmova	%rax, %rsi
	cmpq	%r9, %rsi
	jnb	.L1189
	movl	$16, %edi
	call	__cxa_allocate_exception@PLT
	leaq	.LC64(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
.LEHB54:
	call	_ZNSt12length_errorC1EPKc@PLT
.LEHE54:
	movq	_ZNSt12length_errorD1Ev@GOTPCREL(%rip), %rdx
	leaq	_ZTISt12length_error(%rip), %rsi
	movq	%rbx, %rdi
.LEHB55:
	call	__cxa_throw@PLT
.L1189:
	movq	%r8, %rdi
	movq	%rdx, %rbp
	movq	%rcx, %r12
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE8allocateEm
.LEHE55:
	movq	8(%rbx), %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB56:
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0
.LEHE56:
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L1193:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L1190:
	movq	%rbx, %rdi
	call	__cxa_free_exception@PLT
	movq	%rbp, %rdi
	jmp	.L1198
.L1194:
	endbr64
	movq	%rax, %rdi
.L1191:
	call	__cxa_begin_catch@PLT
	movq	%rbx, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
.LEHB57:
	call	__cxa_rethrow@PLT
.LEHE57:
.L1195:
	endbr64
	movq	%rax, %rbx
.L1192:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.L1198:
.LEHB58:
	call	_Unwind_Resume@PLT
.LEHE58:
	.cfi_endproc
.LFE13032:
	.section	.gcc_except_table
	.align 4
.LLSDA13032:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT13032-.LLSDATTD13032
.LLSDATTD13032:
	.byte	0x1
	.uleb128 .LLSDACSE13032-.LLSDACSB13032
.LLSDACSB13032:
	.uleb128 .LEHB54-.LFB13032
	.uleb128 .LEHE54-.LEHB54
	.uleb128 .L1193-.LFB13032
	.uleb128 0
	.uleb128 .LEHB55-.LFB13032
	.uleb128 .LEHE55-.LEHB55
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB56-.LFB13032
	.uleb128 .LEHE56-.LEHB56
	.uleb128 .L1194-.LFB13032
	.uleb128 0x1
	.uleb128 .LEHB57-.LFB13032
	.uleb128 .LEHE57-.LEHB57
	.uleb128 .L1195-.LFB13032
	.uleb128 0
	.uleb128 .LEHB58-.LFB13032
	.uleb128 .LEHE58-.LEHB58
	.uleb128 0
	.uleb128 0
.LLSDACSE13032:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT13032:
	.section	.text._ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE,"axG",@progbits,_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE,comdat
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE
	.text
	.type	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0:
.LFB13516:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rdi, (%rsp)
	testq	%rbx, %rbx
	jle	.L1199
	movq	%rsp, %rdi
	movq	%rdx, %rbp
	call	_ZN6thrust20THRUST_200700_890_NS20iterator_core_access11dereferenceINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEEEENT_9referenceERKS9_
	movq	%rbx, %rdx
	movq	%rbp, %rdi
	movl	$2, %ecx
	movq	%rax, %rsi
	movl	$1, %r8d
	call	cudaMemcpyAsync@PLT
	movl	$1, %edi
	movl	%eax, %ebx
	call	cudaStreamSynchronize@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1204
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %edi
	leaq	.LC69(%rip), %rsi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust20THRUST_200700_890_NS8cuda_cub14throw_on_errorE9cudaErrorPKc
.L1199:
	.cfi_restore_state
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1202
.L1204:
	call	__stack_chk_fail@PLT
.L1202:
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13516:
	.size	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0, .-_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0
	.align 2
	.type	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0, @function
_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0:
.LFB13518:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA13518
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	movq	24(%rsi), %rbp
	movq	8(%rsi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	salq	$2, %rbp
	leaq	(%rdi,%rbp), %r13
	sarq	$2, %rbp
	cmpq	%rbp, 16(%rbx)
	jnb	.L1206
	movq	%rsp, %r12
	xorl	%eax, %eax
	movq	%rdi, %rdx
	movq	%r13, %rcx
	movq	%r12, %r8
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, 8(%rsp)
	movq	%rax, 16(%rsp)
.LEHB59:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEEvmT_SB_RNS1_18contiguous_storageIfS3_EE
.LEHE59:
	movq	8(%rsp), %rdx
	movq	8(%rbx), %rax
	movq	%rbp, 24(%rbx)
	movq	%r12, %rdi
	movq	%rdx, 8(%rbx)
	movq	16(%rsp), %rdx
	movq	%rax, 8(%rsp)
	movq	16(%rbx), %rax
	movq	%rdx, 16(%rbx)
	movq	%rax, 16(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	jmp	.L1205
.L1206:
	movq	24(%rbx), %rax
	movq	8(%rbx), %rdx
	cmpq	%rbp, %rax
	jb	.L1208
	movq	%r13, %rsi
.LEHB60:
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0
	jmp	.L1214
.L1208:
	leaq	(%rdi,%rax,4), %r12
	movq	%r12, %rsi
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorINS0_10device_ptrIKfEEEENS3_IPfEEEET0_T_SB_SA_.isra.0
	movq	24(%rbx), %rdx
	movq	8(%rbx), %rax
	movq	%r13, %rsi
	movq	%r12, %rdi
	leaq	(%rax,%rdx,4), %rdx
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorINS0_10device_ptrIKfEEEEEENS6_IPfEET_SD_SC_.isra.0
.L1214:
	movq	%rbp, 24(%rbx)
	jmp	.L1205
.L1212:
	endbr64
	movq	%rax, %rbx
.L1209:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1215
	movq	%rbx, %rdi
	call	_Unwind_Resume@PLT
.LEHE60:
.L1205:
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1211
.L1215:
	call	__stack_chk_fail@PLT
.L1211:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE13518:
	.section	.gcc_except_table
.LLSDA13518:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE13518-.LLSDACSB13518
.LLSDACSB13518:
	.uleb128 .LEHB59-.LFB13518
	.uleb128 .LEHE59-.LEHB59
	.uleb128 .L1212-.LFB13518
	.uleb128 0
	.uleb128 .LEHB60-.LFB13518
	.uleb128 .LEHE60-.LEHB60
	.uleb128 0
	.uleb128 0
.LLSDACSE13518:
	.text
	.size	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0, .-_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0
	.globl	_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_
	.type	_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_, @function
_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_:
.LFB11343:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11343
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	movq	%rcx, %r14
	pushq	%r13
	.cfi_offset 13, -40
	movq	%r9, %r13
	pushq	%r12
	.cfi_offset 12, -48
	movq	%rsi, %r12
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$408, %rsp
	movl	%edi, -408(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	leaq	-344(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -376(%rbp)
.LEHB61:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE61:
	leaq	-312(%rbp), %rax
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%rax, -384(%rbp)
.LEHB62:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE62:
	leaq	-280(%rbp), %rax
	movq	%r14, %rsi
	movq	%rax, %rdi
	movq	%rax, -392(%rbp)
.LEHB63:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE63:
	leaq	-248(%rbp), %rax
	movq	%rbx, %rsi
	movq	%rax, %rdi
	movq	%rax, -400(%rbp)
.LEHB64:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE
.LEHE64:
	leaq	-216(%rbp), %rax
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, -416(%rbp)
.LEHB65:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE65:
	leaq	-184(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	leaq	-152(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	movq	24(%rbx), %rax
	leaq	-120(%rbp), %rdi
	leaq	-1(%rax), %rsi
.LEHB66:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
.LEHE66:
	movq	24(%rbx), %rax
	leaq	-88(%rbp), %rdi
	leaq	-1(%rax), %rsi
.LEHB67:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
.LEHE67:
	movq	24(%rbx), %rax
	movq	-112(%rbp), %r13
	xorl	%r8d, %r8d
	movq	-80(%rbp), %rsi
	leaq	-1(%rax), %rcx
.L1217:
	movslq	%r8d, %rax
	cmpq	%rcx, %rax
	jnb	.L1247
	movq	8(%rbx), %r10
	leal	1(%r8), %edi
	movslq	%edi, %r9
	movl	(%r10,%r9,4), %eax
	leaq	0(,%r9,4), %rdx
	subl	-4(%r10,%r9,4), %eax
	movl	%eax, -4(%r13,%rdx)
	testl	%r8d, %r8d
	jne	.L1218
	xorl	%r9d, %r9d
	movl	$1, %edi
	movl	%r9d, (%rsi)
	jmp	.L1219
.L1218:
	decl	%eax
	imull	-8(%r13,%rdx), %eax
	addl	-8(%rsi,%rdx), %eax
	movl	%eax, -4(%rsi,%rdx)
.L1219:
	movl	%edi, %r8d
	jmp	.L1217
.L1247:
	leaq	-120(%rbp), %rsi
	leaq	-184(%rbp), %rdi
.LEHB68:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0
	leaq	-88(%rbp), %rsi
	leaq	-152(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0
	movl	$2147483653, %edx
	movl	$536871037, %edi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	addq	%rdx, %rdx
	salq	$3, %rdi
	movl	$1, %ecx
	movl	$1, %esi
	movq	%rdx, -356(%rbp)
	movl	$1, -348(%rbp)
	movq	%rdi, -368(%rbp)
	movl	$1, -360(%rbp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1221
	movq	-400(%rbp), %rdi
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-376(%rbp), %rdi
	movq	%rax, %r15
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-392(%rbp), %rdi
	movq	%rax, %r14
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movl	-408(%rbp), %edx
	movq	%r15, %rcx
	movq	%r14, %rsi
	movq	%rax, %rdi
	call	_Z46__device_stub__Z19computeOutputDelta2PfPKfiPKiPfPKfiPKi
.L1221:
	movabsq	$4294967297, %r14
	movl	24(%rbx), %eax
	subl	$3, %eax
	cltq
	movq	%rax, -408(%rbp)
.L1222:
	cmpl	$0, -408(%rbp)
	jle	.L1248
	movl	$536871037, %edi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$1, %esi
	movq	-408(%rbp), %rax
	salq	$3, %rdi
	movq	%r14, -352(%rbp)
	movl	-348(%rbp), %ecx
	movq	%rdi, -368(%rbp)
	movl	$1, -360(%rbp)
	movl	0(%r13,%rax,4), %eax
	movl	%eax, -424(%rbp)
	decl	%eax
	movl	%eax, -356(%rbp)
	movq	-356(%rbp), %rdx
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1223
	leaq	-152(%rbp), %rdi
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	leaq	-184(%rbp), %rdi
	movq	%rax, -448(%rbp)
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-400(%rbp), %rdi
	movq	%rax, -440(%rbp)
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-376(%rbp), %rdi
	movq	%rax, %r15
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-384(%rbp), %rdi
	movq	%rax, -424(%rbp)
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-392(%rbp), %rdi
	movq	%rax, -432(%rbp)
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	%r15, %rcx
	pushq	%r8
	movq	%rax, %rdi
	movl	-408(%rbp), %eax
	movq	-448(%rbp), %r9
	movq	-440(%rbp), %r8
	movq	-424(%rbp), %rdx
	movq	-432(%rbp), %rsi
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_Z50__device_stub__Z17computeLayerDeltaPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	popq	%rsi
	popq	%rdi
.L1223:
	decq	-408(%rbp)
	jmp	.L1222
.L1248:
	movq	$1, -408(%rbp)
	movabsq	$4294967297, %r14
.L1225:
	movq	24(%rbx), %rax
	decq	%rax
	cmpq	%rax, -408(%rbp)
	jnb	.L1249
	movl	$536871037, %edi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$1, %esi
	movq	-408(%rbp), %rax
	salq	$3, %rdi
	movq	%r14, -352(%rbp)
	movl	-348(%rbp), %ecx
	movq	%rdi, -368(%rbp)
	movl	$1, -360(%rbp)
	movl	0(%r13,%rax,4), %eax
	movl	%eax, -424(%rbp)
	decl	%eax
	movl	%eax, -356(%rbp)
	movq	-356(%rbp), %rdx
	.cfi_escape 0x2e,0
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1226
	leaq	-152(%rbp), %rdi
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	leaq	-184(%rbp), %rdi
	movq	%rax, -448(%rbp)
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-400(%rbp), %rdi
	movq	%rax, -440(%rbp)
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-376(%rbp), %rdi
	movq	%rax, %r15
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-392(%rbp), %rdi
	movq	%rax, -424(%rbp)
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-416(%rbp), %rdi
	movq	%rax, -432(%rbp)
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	%rax, %rdi
	pushq	%rcx
	movl	-408(%rbp), %eax
	movq	%r15, %rcx
	movq	-448(%rbp), %r9
	movq	-440(%rbp), %r8
	movq	-424(%rbp), %rdx
	movq	-432(%rbp), %rsi
	pushq	%rax
	.cfi_escape 0x2e,0x10
	call	_Z57__device_stub__Z24computePrevLayerDWeightsPfS_S_PiS0_S0_iPfS_S_PiS0_S0_i
	popq	%rax
	popq	%rdx
.L1226:
	incq	-408(%rbp)
	jmp	.L1225
.L1249:
	movq	24(%r12), %rax
	movl	$1000, %ecx
	xorl	%edx, %edx
	xorl	%r9d, %r9d
	movl	$1, -348(%rbp)
	xorl	%r8d, %r8d
	divq	%rcx
	movl	$536871037, %edx
	movl	$1, %ecx
	salq	$3, %rdx
	movq	%rdx, -356(%rbp)
	incl	%eax
	movl	%eax, -368(%rbp)
	movabsq	$4294967297, %rax
	movq	%rax, -364(%rbp)
	movq	-368(%rbp), %rdi
	movl	-360(%rbp), %esi
	.cfi_escape 0x2e,0
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1228
	movq	-416(%rbp), %rdi
	movl	24(%r12), %ebx
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	-384(%rbp), %rdi
	movq	%rax, %r15
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movl	%ebx, %edx
	movq	%r15, %rsi
	movq	%rax, %rdi
	call	_Z36__device_stub__Z13updateWeightsPfS_iPfS_i
.L1228:
	movq	-384(%rbp), %rsi
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0
.LEHE68:
	leaq	-88(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	leaq	-120(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	leaq	-152(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	leaq	-184(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	-416(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	-400(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	-392(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	-384(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	-376(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L1237
	jmp	.L1245
.L1244:
	endbr64
	movq	%rax, %rbx
.L1229:
	leaq	-88(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	jmp	.L1230
.L1243:
	endbr64
	movq	%rax, %rbx
.L1230:
	leaq	-120(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	jmp	.L1231
.L1242:
	endbr64
	movq	%rax, %rbx
.L1231:
	leaq	-152(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	leaq	-184(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	leaq	-216(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	jmp	.L1232
.L1241:
	endbr64
	movq	%rax, %rbx
.L1232:
	leaq	-248(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	jmp	.L1233
.L1240:
	endbr64
	movq	%rax, %rbx
.L1233:
	movq	-392(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	jmp	.L1234
.L1239:
	endbr64
	movq	%rax, %rbx
.L1234:
	movq	-384(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	jmp	.L1235
.L1238:
	endbr64
	movq	%rax, %rbx
.L1235:
	movq	-376(%rbp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L1245
	movq	%rbx, %rdi
.LEHB69:
	call	_Unwind_Resume@PLT
.LEHE69:
.L1245:
	call	__stack_chk_fail@PLT
.L1237:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11343:
	.section	.gcc_except_table
.LLSDA11343:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11343-.LLSDACSB11343
.LLSDACSB11343:
	.uleb128 .LEHB61-.LFB11343
	.uleb128 .LEHE61-.LEHB61
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB62-.LFB11343
	.uleb128 .LEHE62-.LEHB62
	.uleb128 .L1238-.LFB11343
	.uleb128 0
	.uleb128 .LEHB63-.LFB11343
	.uleb128 .LEHE63-.LEHB63
	.uleb128 .L1239-.LFB11343
	.uleb128 0
	.uleb128 .LEHB64-.LFB11343
	.uleb128 .LEHE64-.LEHB64
	.uleb128 .L1240-.LFB11343
	.uleb128 0
	.uleb128 .LEHB65-.LFB11343
	.uleb128 .LEHE65-.LEHB65
	.uleb128 .L1241-.LFB11343
	.uleb128 0
	.uleb128 .LEHB66-.LFB11343
	.uleb128 .LEHE66-.LEHB66
	.uleb128 .L1242-.LFB11343
	.uleb128 0
	.uleb128 .LEHB67-.LFB11343
	.uleb128 .LEHE67-.LEHB67
	.uleb128 .L1243-.LFB11343
	.uleb128 0
	.uleb128 .LEHB68-.LFB11343
	.uleb128 .LEHE68-.LEHB68
	.uleb128 .L1244-.LFB11343
	.uleb128 0
	.uleb128 .LEHB69-.LFB11343
	.uleb128 .LEHE69-.LEHB69
	.uleb128 0
	.uleb128 0
.LLSDACSE11343:
	.text
	.size	_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_, .-_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_
	.globl	_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE
	.type	_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE, @function
_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE:
.LFB11342:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11342
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$360, %rsp
	.cfi_def_cfa_offset 416
	movq	%rsi, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 344(%rsp)
	xorl	%eax, %eax
	leaq	120(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, (%rsp)
.LEHB70:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE70:
	leaq	152(%rsp), %rax
	movq	%rbp, %rsi
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
.LEHB71:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEEC2IfSaIfEEERKNS2_IT_T0_EE
.LEHE71:
	leaq	184(%rsp), %rax
	movq	%rbx, %rsi
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
.LEHB72:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2IiSaIiEEERKNS2_IT_T0_EE
.LEHE72:
	leaq	216(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	leaq	248(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEC2Ev
	movq	24(%rbx), %rax
	leaq	280(%rsp), %rdi
	leaq	-1(%rax), %rsi
.LEHB73:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
.LEHE73:
	movq	24(%rbx), %rax
	leaq	312(%rsp), %rdi
	leaq	-1(%rax), %rsi
.LEHB74:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2Em
.LEHE74:
	movq	24(%rbx), %rax
	movq	288(%rsp), %r14
	xorl	%r8d, %r8d
	movq	320(%rsp), %rsi
	leaq	-1(%rax), %rcx
.L1251:
	movslq	%r8d, %rax
	cmpq	%rcx, %rax
	jnb	.L1274
	movq	8(%rbx), %r10
	leal	1(%r8), %edi
	movslq	%edi, %r9
	movl	(%r10,%r9,4), %eax
	leaq	0(,%r9,4), %rdx
	subl	-4(%r10,%r9,4), %eax
	movl	%eax, -4(%r14,%rdx)
	testl	%r8d, %r8d
	jne	.L1252
	xorl	%eax, %eax
	movl	$1, %edi
	movl	%eax, (%rsi)
	jmp	.L1253
.L1252:
	decl	%eax
	imull	-8(%r14,%rdx), %eax
	addl	-8(%rsi,%rdx), %eax
	movl	%eax, -4(%rsi,%rdx)
.L1253:
	movl	%edi, %r8d
	jmp	.L1251
.L1274:
	movq	8(%rsp), %rdi
	leaq	280(%rsp), %rsi
.LEHB75:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0
	leaq	312(%rsp), %rsi
	leaq	248(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEEaSIiSaIiEEERS5_RKNS2_IT_T0_EE.isra.0
	movabsq	$4294967297, %r15
	movl	$1, %ebp
.L1255:
	movq	24(%rbx), %rax
	decq	%rax
	cmpq	%rax, %rbp
	jnb	.L1275
	movq	24(%rsp), %rdi
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	%r15, 80(%rsp)
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	%rax, 40(%rsp)
	movl	(%r14,%rbp,4), %eax
	movl	$536871037, %edi
	movl	$1, %esi
	movl	84(%rsp), %ecx
	salq	$3, %rdi
	movl	$1, 72(%rsp)
	decl	%eax
	movq	%rdi, 64(%rsp)
	movl	%eax, 76(%rsp)
	movq	76(%rsp), %rdx
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L1256
	leaq	248(%rsp), %rdi
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	8(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_Z15convertToKernelIiE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	16(%rsp), %rdi
	movq	%rax, 48(%rsp)
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	(%rsp), %rdi
	movq	%rax, %r12
	movq	%rdx, %r13
	call	_Z15convertToKernelIfE11KernelArrayIT_ERN6thrust20THRUST_200700_890_NS13device_vectorIS1_NS4_16device_allocatorIS1_EEEE
	movq	56(%rsp), %r8
	movq	48(%rsp), %rcx
	movl	%ebp, %r9d
	movq	%rdx, 96(%rsp)
	movq	40(%rsp), %rdx
	leaq	104(%rsp), %rsi
	leaq	88(%rsp), %rdi
	movq	%rax, 88(%rsp)
	movq	%r12, 104(%rsp)
	movq	%r13, 112(%rsp)
	call	_Z60__device_stub__Z14propagateLayer11KernelArrayIfES0_PiS1_S1_iR11KernelArrayIfES1_PiS2_S2_i
.L1256:
	incq	%rbp
	jmp	.L1255
.L1275:
	movq	(%rsp), %rsi
	movq	32(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEaSIfNS0_16device_allocatorIfEEEERS4_RKNS2_IT_T0_EE.isra.0
.LEHE75:
	leaq	312(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	leaq	280(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	leaq	248(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	24(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	16(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1264
	jmp	.L1272
.L1270:
	endbr64
	movq	%rax, %rbx
.L1258:
	leaq	312(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	jmp	.L1259
.L1269:
	endbr64
	movq	%rax, %rbx
.L1259:
	leaq	280(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	jmp	.L1260
.L1268:
	endbr64
	movq	%rax, %rbx
.L1260:
	leaq	248(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	movq	24(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiNS0_16device_allocatorIiEEED2Ev
	jmp	.L1261
.L1267:
	endbr64
	movq	%rax, %rbx
.L1261:
	movq	16(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	jmp	.L1262
.L1266:
	endbr64
	movq	%rax, %rbx
.L1262:
	movq	(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfNS0_16device_allocatorIfEEED2Ev
	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1272
	movq	%rbx, %rdi
.LEHB76:
	call	_Unwind_Resume@PLT
.LEHE76:
.L1272:
	call	__stack_chk_fail@PLT
.L1264:
	addq	$360, %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
.LFE11342:
	.section	.gcc_except_table
.LLSDA11342:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11342-.LLSDACSB11342
.LLSDACSB11342:
	.uleb128 .LEHB70-.LFB11342
	.uleb128 .LEHE70-.LEHB70
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB71-.LFB11342
	.uleb128 .LEHE71-.LEHB71
	.uleb128 .L1266-.LFB11342
	.uleb128 0
	.uleb128 .LEHB72-.LFB11342
	.uleb128 .LEHE72-.LEHB72
	.uleb128 .L1267-.LFB11342
	.uleb128 0
	.uleb128 .LEHB73-.LFB11342
	.uleb128 .LEHE73-.LEHB73
	.uleb128 .L1268-.LFB11342
	.uleb128 0
	.uleb128 .LEHB74-.LFB11342
	.uleb128 .LEHE74-.LEHB74
	.uleb128 .L1269-.LFB11342
	.uleb128 0
	.uleb128 .LEHB75-.LFB11342
	.uleb128 .LEHE75-.LEHB75
	.uleb128 .L1270-.LFB11342
	.uleb128 0
	.uleb128 .LEHB76-.LFB11342
	.uleb128 .LEHE76-.LEHB76
	.uleb128 0
	.uleb128 0
.LLSDACSE11342:
	.text
	.size	_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE, .-_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE
	.globl	_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE
	.type	_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE, @function
_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE:
.LFB11344:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11344
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	40(%rsp), %rbp
	leaq	8(%rsp), %r12
	movq	%rbp, %rdi
.LEHB77:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
.LEHE77:
	movq	%r15, %rsi
	movq	%r12, %rdi
.LEHB78:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE78:
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
.LEHB79:
	call	_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE
.LEHE79:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	movq	24(%r14), %rax
	movq	8(%r14), %rdx
	xorps	%xmm0, %xmm0
	subq	$2, %rax
	movl	(%rdx,%rax,4), %ecx
	movl	4(%rdx,%rax,4), %edi
	xorl	%edx, %edx
	movslq	%ecx, %rax
	salq	$2, %rax
.L1277:
	leal	(%rcx,%rdx), %esi
	cmpl	%esi, %edi
	jle	.L1291
	movq	8(%rbx), %rsi
	movss	(%rsi,%rax), %xmm1
	comiss	%xmm0, %xmm1
	maxss	%xmm0, %xmm1
	cmova	%edx, %r13d
	movaps	%xmm1, %xmm0
	incl	%edx
	addq	$4, %rax
	jmp	.L1277
.L1286:
	endbr64
	movq	%rax, %rbx
.L1281:
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1282
.L1285:
	endbr64
	movq	%rax, %rbx
.L1282:
	movq	%rbp, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1290
	movq	%rbx, %rdi
.LEHB80:
	call	_Unwind_Resume@PLT
.LEHE80:
.L1291:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1284
.L1290:
	call	__stack_chk_fail@PLT
.L1284:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11344:
	.section	.gcc_except_table
.LLSDA11344:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11344-.LLSDACSB11344
.LLSDACSB11344:
	.uleb128 .LEHB77-.LFB11344
	.uleb128 .LEHE77-.LEHB77
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB78-.LFB11344
	.uleb128 .LEHE78-.LEHB78
	.uleb128 .L1285-.LFB11344
	.uleb128 0
	.uleb128 .LEHB79-.LFB11344
	.uleb128 .LEHE79-.LEHB79
	.uleb128 .L1286-.LFB11344
	.uleb128 0
	.uleb128 .LEHB80-.LFB11344
	.uleb128 .LEHE80-.LEHB80
	.uleb128 0
	.uleb128 0
.LLSDACSE11344:
	.text
	.size	_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE, .-_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE
	.section	.rodata.str1.1
.LC70:
	.string	"Give 'the training set image_path', 'the training set label_path' 'the test set image_path' and 'the test set label_path'\n"
.LC71:
	.string	"Training begins now with batch size: "
.LC72:
	.string	" for "
.LC73:
	.string	" epochs "
.LC75:
	.string	"The NeuralNetwork is trained for: "
.LC76:
	.string	" images in: "
.LC77:
	.string	" seconds"
.LC78:
	.string	"Evaluating the NeuralNetwork"
.LC80:
	.string	"The NeuralNetwork's accuracy is: "
.LC82:
	.string	"%"
	.section	.text.startup
	.globl	main
	.type	main, @function
main:
.LFB11345:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA11345
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	leaq	_ZSt4cout(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$760, %rsp
	.cfi_def_cfa_offset 816
	movq	%fs:40, %rax
	movq	%rax, 744(%rsp)
	xorl	%eax, %eax
	cmpl	$5, %edi
	je	.L1293
	movq	%rbp, %rdi
	leaq	.LC70(%rip), %rsi
.LEHB81:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movl	$1, %edi
	call	exit@PLT
.L1293:
	leaq	384(%rsp), %rax
	movq	%rsi, %rbx
	leaq	584(%rsp), %r15
	movq	8(%rsi), %rsi
	movq	%rax, %rdx
	movq	%r15, %rdi
	movq	%rax, 24(%rsp)
	leaq	616(%rsp), %r14
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE81:
	movq	16(%rbx), %rsi
	movq	24(%rsp), %rdx
	movq	%r14, %rdi
.LEHB82:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE82:
	leaq	648(%rsp), %r13
	movq	24(%rbx), %rsi
	movq	24(%rsp), %rdx
	movq	%r13, %rdi
.LEHB83:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE83:
	leaq	680(%rsp), %r12
	movq	32(%rbx), %rsi
	movq	24(%rsp), %rdx
	movq	%r12, %rdi
.LEHB84:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_
.LEHE84:
	leaq	712(%rsp), %rbx
	movq	%r15, %rsi
	movq	%rbx, %rdi
.LEHB85:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE85:
	leaq	128(%rsp), %rdi
	movq	%rbx, %rsi
.LEHB86:
	call	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LEHE86:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r14, %rsi
	movq	%rbx, %rdi
.LEHB87:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE87:
	movq	%rbx, %rdi
.LEHB88:
	call	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LEHE88:
	movq	%rbx, %rdi
	movq	%rax, 72(%rsp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r13, %rsi
	movq	%rbx, %rdi
.LEHB89:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE89:
	leaq	160(%rsp), %rdi
	movq	%rbx, %rsi
.LEHB90:
	call	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LEHE90:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r12, %rsi
	movq	%rbx, %rdi
.LEHB91:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE91:
	movq	%rbx, %rdi
.LEHB92:
	call	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LEHE92:
	movq	%rbx, %rdi
	movq	%rax, 80(%rsp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	xorl	%ecx, %ecx
	leaq	104(%rsp), %rdi
	movl	$4, %esi
	movq	%rcx, 104(%rsp)
	movq	%rcx, 112(%rsp)
	movq	%rcx, 120(%rsp)
.LEHB93:
	call	_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm
.LEHE93:
	movq	104(%rsp), %rbx
	xorl	%edx, %edx
	movl	$4, %esi
	movq	%rdx, 352(%rsp)
	leaq	16(%rbx), %rax
	movq	%rdx, 360(%rsp)
	movq	%rax, 112(%rsp)
	movabsq	$128849019664, %rax
	movq	%rax, (%rbx)
	movabsq	$42949673000, %rax
	movq	%rax, 8(%rbx)
	leaq	352(%rsp), %rax
	movq	%rax, %rdi
	movq	%rdx, 368(%rsp)
	movq	%rax, 16(%rsp)
.LEHB94:
	call	_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm
.LEHE94:
	movq	352(%rsp), %rax
	movups	(%rbx), %xmm0
	movq	16(%rsp), %rsi
	movq	24(%rsp), %rdi
	movups	%xmm0, (%rax)
	addq	$16, %rax
	movq	%rax, 360(%rsp)
.LEHB95:
	call	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
.LEHE95:
	movq	16(%rsp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	leaq	.LC71(%rip), %rsi
	movq	%rbp, %rdi
.LEHB96:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$1000, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC72(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$1000, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC73(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	imulq	$1000, 480(%rsp), %rsi
	leaq	192(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
.LEHE96:
	imulq	$1000, 512(%rsp), %rsi
	leaq	224(%rsp), %rdi
.LEHB97:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
.LEHE97:
	imulq	$1000, 576(%rsp), %rsi
	leaq	256(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 48(%rsp)
.LEHB98:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2Em
.LEHE98:
	xorl	%esi, %esi
	leaq	startwtime(%rip), %rdi
	call	gettimeofday@PLT
	movq	432(%rsp), %rsi
	xorl	%edx, %edx
	movslq	384(%rsp), %rax
	movq	448(%rsp), %r10
	movq	200(%rsp), %r9
	movl	(%rsi,%rax,4), %r8d
	movss	.LC66(%rip), %xmm0
.L1294:
	movl	%edx, %edi
	xorl	%eax, %eax
	imull	%r8d, %edi
.L1297:
	incq	%rax
	cmpq	%r10, %rax
	jnb	.L1373
	movl	(%rsi,%rax,4), %ecx
	leal	-1(%rdi,%rcx), %ecx
	movslq	%ecx, %rcx
	movss	%xmm0, (%r9,%rcx,4)
	jmp	.L1297
.L1373:
	incl	%edx
	cmpl	$1000, %edx
	jne	.L1294
	leaq	352(%rsp), %rax
	xorl	%r14d, %r14d
	xorl	%ebp, %ebp
	movq	%rax, 8(%rsp)
.L1296:
	leal	1000(%rbp), %eax
	movl	$60000, %ecx
	addl	$1000, %r14d
	xorl	%r12d, %r12d
	cltd
	idivl	%ecx
	imull	$784, %edx, %ebx
	movl	%edx, 40(%rsp)
	movl	%edx, %ebp
	movslq	%ebx, %rbx
	salq	$2, %rbx
.L1298:
	movslq	384(%rsp), %rdx
	movq	432(%rsp), %rax
	movq	136(%rsp), %rdi
	movl	(%rax,%rdx,4), %ecx
	movq	200(%rsp), %rdx
	imull	%r12d, %ecx
	incl	%r12d
	movslq	%ecx, %rax
	leaq	(%rdx,%rax,4), %rdx
	movq	%rbx, %rax
	addq	$3136, %rbx
	leaq	(%rdi,%rbx), %rsi
	addq	%rax, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_
	cmpl	$1000, %r12d
	jne	.L1298
	movq	8(%rsp), %rdi
	leaq	424(%rsp), %rsi
.LEHB99:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
.LEHE99:
	leaq	520(%rsp), %rax
	leaq	320(%rsp), %rbx
	movq	%rax, %rsi
	movq	%rbx, %rdi
	movq	%rax, 56(%rsp)
.LEHB100:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE100:
	leaq	192(%rsp), %rax
	movq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%rax, %rsi
	movq	%rax, 64(%rsp)
.LEHB101:
	call	_Z18forwardPropagationN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEERS3_NS1_IiSaIiEEE
.LEHE101:
	movq	%rbx, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	16(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	movq	216(%rsp), %rax
	movq	200(%rsp), %rbx
	movq	472(%rsp), %r13
	leaq	0(,%rax,4), %r12
	leaq	(%rbx,%r12), %rcx
	negq	%r12
	sarq	$2, %r12
	negq	%r12
	cmpq	%r12, %r13
	jnb	.L1299
	movq	16(%rsp), %r8
	xorl	%eax, %eax
	movq	%rbx, %rdx
	movq	%r12, %rsi
	leaq	456(%rsp), %rdi
	movq	%rax, 360(%rsp)
	movq	%rax, 368(%rsp)
.LEHB102:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEE17allocate_and_copyINS1_15normal_iteratorIPKfEEEEvmT_SA_RNS1_18contiguous_storageIfS3_EE
.LEHE102:
	movq	464(%rsp), %rax
	movq	360(%rsp), %rdx
	movq	%r12, 480(%rsp)
	movq	8(%rsp), %rdi
	movq	%rax, 360(%rsp)
	movq	368(%rsp), %rax
	movq	%rdx, 464(%rsp)
	movq	%rax, 472(%rsp)
	movq	%r13, 368(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	jmp	.L1300
.L1299:
	movq	480(%rsp), %rax
	movq	464(%rsp), %r15
	cmpq	%r12, %rax
	jb	.L1301
	movq	%r15, %rdx
	movq	%rcx, %rsi
	movq	%rbx, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0
	jmp	.L1369
.L1301:
	leaq	0(,%rax,4), %r13
	movq	%r15, %rdx
	movq	%rbx, %rdi
	movq	%rcx, 88(%rsp)
	leaq	(%rbx,%r13), %rax
	movq	%rax, %rsi
	movq	%rax, 32(%rsp)
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPKfEENS3_IPfEEEET0_T_SA_S9_.isra.0
	movq	88(%rsp), %rsi
	movq	32(%rsp), %rdi
	leaq	(%r15,%r13), %rdx
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS1_15normal_iteratorIPKfEEEENS6_IPfEET_SC_SB_.isra.0
.L1369:
	movq	%r12, 480(%rsp)
.L1300:
	movq	8(%rsp), %rdi
	leaq	424(%rsp), %rsi
.LEHB103:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
.LEHE103:
	jmp	.L1374
.L1361:
	endbr64
	movq	%rax, %rbx
.L1303:
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail18contiguous_storageIfSaIfEE10deallocateEv
	jmp	.L1304
.L1374:
	leaq	224(%rsp), %r15
	leaq	320(%rsp), %r12
	movq	%r15, %rsi
	movq	%r12, %rdi
.LEHB104:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE104:
	leaq	288(%rsp), %rax
	leaq	456(%rsp), %rsi
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
.LEHB105:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE105:
	movslq	40(%rsp), %rax
	movq	72(%rsp), %rcx
	movq	48(%rsp), %r9
	movq	16(%rsp), %r8
	movl	(%rcx,%rax,4), %edi
	movq	32(%rsp), %rdx
	leaq	288(%rsp), %rax
	movq	%r12, %rcx
	movq	56(%rsp), %rsi
	movq	%rax, 40(%rsp)
.LEHB106:
	call	_Z15backPropagationiRN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_S3_NS1_IiSaIiEEES4_
.LEHE106:
	movq	32(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	movl	%r14d, %eax
	movl	$500, %ecx
	cltd
	idivl	%ecx
	testl	%edx, %edx
	jne	.L1305
	movl	%r14d, %esi
	leaq	_ZSt4cout(%rip), %rdi
.LEHB107:
	call	_ZNSolsEi@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.L1305:
	cmpl	$1000000, %r14d
	jne	.L1296
	xorl	%esi, %esi
	leaq	endwtime(%rip), %rdi
	leaq	_ZSt4cout(%rip), %rbp
	call	gettimeofday@PLT
	movq	8+endwtime(%rip), %rax
	subq	8+startwtime(%rip), %rax
	movq	%rbp, %rdi
	cvtsi2sdq	endwtime(%rip), %xmm1
	leaq	.LC75(%rip), %rsi
	cvtsi2sdq	%rax, %xmm0
	divsd	.LC74(%rip), %xmm0
	addsd	%xmm1, %xmm0
	cvtsi2sdq	startwtime(%rip), %xmm1
	subsd	%xmm1, %xmm0
	movsd	%xmm0, seq_time(%rip)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movl	$1000000, %esi
	call	_ZNSolsEi@PLT
	movq	%rax, %rdi
	leaq	.LC76(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movsd	seq_time(%rip), %xmm0
	movq	%rax, %rdi
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	%rax, %rdi
	leaq	.LC77(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	leaq	.LC78(%rip), %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	xorl	%ebp, %ebp
	xorl	%r14d, %r14d
.L1306:
	imulq	$3136, %rbp, %r13
	xorl	%r12d, %r12d
.L1307:
	movslq	384(%rsp), %rdx
	movq	432(%rsp), %rax
	movq	168(%rsp), %rdi
	movl	(%rax,%rdx,4), %ecx
	imull	%r12d, %ecx
	incl	%r12d
	movslq	%ecx, %rax
	leaq	(%rbx,%rax,4), %rdx
	movq	%r13, %rax
	addq	$3136, %r13
	leaq	(%rdi,%r13), %rsi
	addq	%rax, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS4copyINS0_6detail15normal_iteratorIPfEES5_EET0_T_S7_S6_
	cmpl	$1000, %r12d
	jne	.L1307
	movq	8(%rsp), %rdi
	leaq	424(%rsp), %rsi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEEC2ERKS4_
.LEHE107:
	leaq	320(%rsp), %r12
	leaq	192(%rsp), %rsi
	movq	%r12, %rdi
.LEHB108:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE108:
	movq	40(%rsp), %rdi
	leaq	520(%rsp), %rsi
.LEHB109:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEEC2ERKS4_
.LEHE109:
	movq	8(%rsp), %rdx
	movq	40(%rsp), %rdi
	movq	%r12, %rsi
.LEHB110:
	call	_Z7predictN6thrust20THRUST_200700_890_NS11host_vectorIfSaIfEEES3_NS1_IiSaIiEEE
.LEHE110:
	movq	32(%rsp), %rdi
	movl	%eax, %r13d
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	%r12, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	movq	80(%rsp), %rax
	cmpl	%r13d, (%rax,%rbp,4)
	jne	.L1308
	movss	.LC79(%rip), %xmm2
	movd	%r14d, %xmm3
	addss	%xmm3, %xmm2
	movd	%xmm2, %r14d
.L1308:
	incq	%rbp
	cmpq	$9900, %rbp
	jne	.L1306
	leaq	.LC80(%rip), %rsi
	leaq	_ZSt4cout(%rip), %rdi
.LEHB111:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movd	%r14d, %xmm0
	divss	.LC81(%rip), %xmm0
	cvtss2sd	%xmm0, %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	%rax, %rdi
	leaq	.LC82(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE111:
	leaq	256(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	%r15, %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	movq	64(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	384(%rsp), %rdi
	call	_ZN13NeuralNetworkD1Ev
	leaq	104(%rsp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	leaq	160(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	128(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	leaq	680(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	leaq	648(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	leaq	616(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	leaq	584(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	744(%rsp), %rax
	subq	%fs:40, %rax
	je	.L1334
	jmp	.L1367
.L1340:
	endbr64
	movq	%rax, %rbp
.L1310:
	movq	%rbx, %rdi
	movq	%rbp, %rbx
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1311
.L1342:
	endbr64
	jmp	.L1370
.L1344:
	endbr64
.L1370:
	movq	%rax, %rbp
.L1314:
	movq	%rbx, %rdi
	movq	%rbp, %rbx
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1313
.L1345:
	endbr64
	movq	%rax, %rbp
.L1315:
	movq	%rbx, %rdi
	movq	%rbp, %rbx
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1316
.L1347:
	endbr64
	movq	%rax, %rbx
.L1317:
	movq	16(%rsp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	jmp	.L1318
.L1354:
	endbr64
	movq	%rax, %rbp
.L1319:
	movq	%rbx, %rdi
	movq	%rbp, %rbx
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1326
.L1353:
	endbr64
	jmp	.L1371
.L1357:
	endbr64
	movq	%rax, %rbx
.L1321:
	movq	40(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1322
.L1356:
	endbr64
	movq	%rax, %rbx
.L1322:
	leaq	320(%rsp), %rdi
	jmp	.L1372
.L1355:
	endbr64
	jmp	.L1371
.L1360:
	endbr64
	movq	%rax, %rbx
.L1324:
	movq	40(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1325
.L1359:
	endbr64
	movq	%rax, %rbx
.L1325:
	movq	%r12, %rdi
.L1372:
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1326
.L1358:
	endbr64
.L1371:
	movq	%rax, %rbx
.L1326:
	movq	8(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIiSaIiEED2Ev
	jmp	.L1304
.L1352:
	endbr64
	movq	%rax, %rbx
.L1304:
	leaq	256(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1327
.L1351:
	endbr64
	movq	%rax, %rbx
.L1327:
	leaq	224(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1328
.L1350:
	endbr64
	movq	%rax, %rbx
.L1328:
	leaq	192(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1329
.L1349:
	endbr64
	movq	%rax, %rbx
.L1329:
	movq	24(%rsp), %rdi
	call	_ZN13NeuralNetworkD1Ev
	jmp	.L1318
.L1348:
	endbr64
	movq	%rax, %rbx
.L1318:
	leaq	104(%rsp), %rdi
	call	_ZNSt6vectorIiSaIiEED1Ev
	jmp	.L1316
.L1346:
	endbr64
	movq	%rax, %rbx
.L1316:
	leaq	160(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1313
.L1343:
	endbr64
	movq	%rax, %rbx
.L1313:
	leaq	128(%rsp), %rdi
	call	_ZN6thrust20THRUST_200700_890_NS6detail11vector_baseIfSaIfEED2Ev
	jmp	.L1311
.L1341:
	endbr64
	movq	%rax, %rbx
.L1311:
	leaq	680(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1330
.L1339:
	endbr64
	movq	%rax, %rbx
.L1330:
	leaq	648(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1331
.L1338:
	endbr64
	movq	%rax, %rbx
.L1331:
	leaq	616(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L1332
.L1337:
	endbr64
	movq	%rax, %rbx
.L1332:
	leaq	584(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	744(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1367
	movq	%rbx, %rdi
.LEHB112:
	call	_Unwind_Resume@PLT
.LEHE112:
.L1367:
	call	__stack_chk_fail@PLT
.L1334:
	addq	$760, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11345:
	.section	.gcc_except_table
.LLSDA11345:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE11345-.LLSDACSB11345
.LLSDACSB11345:
	.uleb128 .LEHB81-.LFB11345
	.uleb128 .LEHE81-.LEHB81
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB82-.LFB11345
	.uleb128 .LEHE82-.LEHB82
	.uleb128 .L1337-.LFB11345
	.uleb128 0
	.uleb128 .LEHB83-.LFB11345
	.uleb128 .LEHE83-.LEHB83
	.uleb128 .L1338-.LFB11345
	.uleb128 0
	.uleb128 .LEHB84-.LFB11345
	.uleb128 .LEHE84-.LEHB84
	.uleb128 .L1339-.LFB11345
	.uleb128 0
	.uleb128 .LEHB85-.LFB11345
	.uleb128 .LEHE85-.LEHB85
	.uleb128 .L1341-.LFB11345
	.uleb128 0
	.uleb128 .LEHB86-.LFB11345
	.uleb128 .LEHE86-.LEHB86
	.uleb128 .L1340-.LFB11345
	.uleb128 0
	.uleb128 .LEHB87-.LFB11345
	.uleb128 .LEHE87-.LEHB87
	.uleb128 .L1343-.LFB11345
	.uleb128 0
	.uleb128 .LEHB88-.LFB11345
	.uleb128 .LEHE88-.LEHB88
	.uleb128 .L1342-.LFB11345
	.uleb128 0
	.uleb128 .LEHB89-.LFB11345
	.uleb128 .LEHE89-.LEHB89
	.uleb128 .L1343-.LFB11345
	.uleb128 0
	.uleb128 .LEHB90-.LFB11345
	.uleb128 .LEHE90-.LEHB90
	.uleb128 .L1344-.LFB11345
	.uleb128 0
	.uleb128 .LEHB91-.LFB11345
	.uleb128 .LEHE91-.LEHB91
	.uleb128 .L1346-.LFB11345
	.uleb128 0
	.uleb128 .LEHB92-.LFB11345
	.uleb128 .LEHE92-.LEHB92
	.uleb128 .L1345-.LFB11345
	.uleb128 0
	.uleb128 .LEHB93-.LFB11345
	.uleb128 .LEHE93-.LEHB93
	.uleb128 .L1346-.LFB11345
	.uleb128 0
	.uleb128 .LEHB94-.LFB11345
	.uleb128 .LEHE94-.LEHB94
	.uleb128 .L1348-.LFB11345
	.uleb128 0
	.uleb128 .LEHB95-.LFB11345
	.uleb128 .LEHE95-.LEHB95
	.uleb128 .L1347-.LFB11345
	.uleb128 0
	.uleb128 .LEHB96-.LFB11345
	.uleb128 .LEHE96-.LEHB96
	.uleb128 .L1349-.LFB11345
	.uleb128 0
	.uleb128 .LEHB97-.LFB11345
	.uleb128 .LEHE97-.LEHB97
	.uleb128 .L1350-.LFB11345
	.uleb128 0
	.uleb128 .LEHB98-.LFB11345
	.uleb128 .LEHE98-.LEHB98
	.uleb128 .L1351-.LFB11345
	.uleb128 0
	.uleb128 .LEHB99-.LFB11345
	.uleb128 .LEHE99-.LEHB99
	.uleb128 .L1352-.LFB11345
	.uleb128 0
	.uleb128 .LEHB100-.LFB11345
	.uleb128 .LEHE100-.LEHB100
	.uleb128 .L1353-.LFB11345
	.uleb128 0
	.uleb128 .LEHB101-.LFB11345
	.uleb128 .LEHE101-.LEHB101
	.uleb128 .L1354-.LFB11345
	.uleb128 0
	.uleb128 .LEHB102-.LFB11345
	.uleb128 .LEHE102-.LEHB102
	.uleb128 .L1361-.LFB11345
	.uleb128 0
	.uleb128 .LEHB103-.LFB11345
	.uleb128 .LEHE103-.LEHB103
	.uleb128 .L1352-.LFB11345
	.uleb128 0
	.uleb128 .LEHB104-.LFB11345
	.uleb128 .LEHE104-.LEHB104
	.uleb128 .L1355-.LFB11345
	.uleb128 0
	.uleb128 .LEHB105-.LFB11345
	.uleb128 .LEHE105-.LEHB105
	.uleb128 .L1356-.LFB11345
	.uleb128 0
	.uleb128 .LEHB106-.LFB11345
	.uleb128 .LEHE106-.LEHB106
	.uleb128 .L1357-.LFB11345
	.uleb128 0
	.uleb128 .LEHB107-.LFB11345
	.uleb128 .LEHE107-.LEHB107
	.uleb128 .L1352-.LFB11345
	.uleb128 0
	.uleb128 .LEHB108-.LFB11345
	.uleb128 .LEHE108-.LEHB108
	.uleb128 .L1358-.LFB11345
	.uleb128 0
	.uleb128 .LEHB109-.LFB11345
	.uleb128 .LEHE109-.LEHB109
	.uleb128 .L1359-.LFB11345
	.uleb128 0
	.uleb128 .LEHB110-.LFB11345
	.uleb128 .LEHE110-.LEHB110
	.uleb128 .L1360-.LFB11345
	.uleb128 0
	.uleb128 .LEHB111-.LFB11345
	.uleb128 .LEHE111-.LEHB111
	.uleb128 .L1352-.LFB11345
	.uleb128 0
	.uleb128 .LEHB112-.LFB11345
	.uleb128 .LEHE112-.LEHB112
	.uleb128 0
	.uleb128 0
.LLSDACSE11345:
	.section	.text.startup
	.size	main, .-main
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE, 55
_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE:
	.string	"N6thrust20THRUST_200700_890_NS6system14error_categoryE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE, 16
_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, 70
_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE:
	.string	"N6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, 69
_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE:
	.string	"N6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, 76
_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE:
	.string	"N6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system14error_categoryE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE, 53
_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE:
	.string	"N6thrust20THRUST_200700_890_NS6system12system_errorE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system12system_errorE
	.quad	_ZTISt13runtime_error
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, 56
_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE:
	.string	"N6thrust20THRUST_200700_890_NS6system6detail9bad_allocE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE
	.quad	_ZTISt9bad_alloc
	.weak	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE, 74
_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE:
	.string	"N6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE, 16
_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE, 135
_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE:
	.string	"N6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE, 16
_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, 193
_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE:
	.string	"N6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, 24
_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE
	.quad	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEEE
	.weak	_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE
	.section	.rodata._ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,"aG",@progbits,_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,comdat
	.align 32
	.type	_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, @object
	.size	_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, 228
_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE:
	.string	"N6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE"
	.weak	_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE
	.section	.data.rel.ro._ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,"awG",@progbits,_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,comdat
	.align 8
	.type	_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, @object
	.size	_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, 24
_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE
	.quad	_ZTIN6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEEE
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE, 72
_ZTVN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail22generic_error_categoryD0Ev
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category4nameEv
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category23default_error_conditionEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11Ei
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE, 72
_ZTVN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail21system_error_categoryD0Ev
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category4nameEv
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category23default_error_conditionEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail21system_error_category7messageB5cxx11Ei
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE, 72
_ZTVN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_categoryD0Ev
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category4nameEv
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category23default_error_conditionEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentEiRKNS1_15error_conditionE
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system14error_category10equivalentERKNS1_10error_codeEi
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system8cuda_cub6detail19cuda_error_category7messageB5cxx11Ei
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE, 40
_ZTVN6thrust20THRUST_200700_890_NS6system12system_errorE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system12system_errorE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system12system_errorD0Ev
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system12system_error4whatEv
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE, 40
_ZTVN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system6detail9bad_allocE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system6detail9bad_allocD0Ev
	.quad	_ZNK6thrust20THRUST_200700_890_NS6system6detail9bad_alloc4whatEv
	.weak	_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE, 56
_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE
	.quad	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEED0Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE11do_allocateEmm
	.quad	_ZN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEE13do_deallocateESB_mm
	.quad	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS5_EENS0_11use_defaultEEEE11do_is_equalERKSA_
	.weak	_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE
	.section	.data.rel.ro.local._ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,"awG",@progbits,_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE,comdat
	.align 8
	.type	_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, @object
	.size	_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE, 56
_ZTVN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE:
	.quad	0
	.quad	_ZTIN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEEE
	.quad	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED1Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEED0Ev
	.quad	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE11do_allocateEmm
	.quad	_ZN6thrust20THRUST_200700_890_NS26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS8_EENS0_11use_defaultEEEEEE13do_deallocateENS0_10device_ptrIvEEmm
	.quad	_ZNK6thrust20THRUST_200700_890_NS2mr15memory_resourceINS0_10device_ptrIvEEE11do_is_equalERKS5_
	.weak	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource
	.section	.bss._ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource,"awG",@nobits,_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource,comdat
	.align 8
	.type	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource, @gnu_unique_object
	.size	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource, 8
_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource:
	.zero	8
	.weak	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource
	.section	.data.rel.local._ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource,"awG",@progbits,_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource,comdat
	.align 8
	.type	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource, @gnu_unique_object
	.size	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource, 8
_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS9_EENS0_11use_defaultEEEEEEEPT_vE8resource:
	.quad	_ZTVN6thrust20THRUST_200700_890_NS6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvS7_EENS0_11use_defaultEEEEE+16
	.weak	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource
	.section	.bss._ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource,"awG",@nobits,_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource,comdat
	.align 8
	.type	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource, @gnu_unique_object
	.size	_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource, 8
_ZGVZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource:
	.zero	8
	.weak	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource
	.section	.bss._ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource,"awG",@nobits,_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource,comdat
	.align 16
	.type	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource, @gnu_unique_object
	.size	_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource, 16
_ZZN6thrust20THRUST_200700_890_NS2mr19get_global_resourceINS0_26device_ptr_memory_resourceINS0_6system4cuda6detail20cuda_memory_resourceIXadL_Z10cudaMallocEEXadL_Z8cudaFreeEENS0_7pointerIvNS0_8cuda_cub3tagENS0_16tagged_referenceIvSA_EENS0_11use_defaultEEEEEEEEEPT_vE8resource:
	.zero	16
	.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
	.globl	seq_time
	.bss
	.align 8
	.type	seq_time, @object
	.size	seq_time, 8
seq_time:
	.zero	8
	.globl	endwtime
	.align 16
	.type	endwtime, @object
	.size	endwtime, 16
endwtime:
	.zero	16
	.globl	startwtime
	.align 16
	.type	startwtime, @object
	.size	startwtime, 16
startwtime:
	.zero	16
	.weak	_ZN4cuda3std3__420unreachable_sentinelE
	.section	.rodata._ZN4cuda3std3__420unreachable_sentinelE,"aG",@progbits,_ZN4cuda3std3__420unreachable_sentinelE,comdat
	.type	_ZN4cuda3std3__420unreachable_sentinelE, @gnu_unique_object
	.size	_ZN4cuda3std3__420unreachable_sentinelE, 1
_ZN4cuda3std3__420unreachable_sentinelE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5crendE
	.section	.rodata._ZN4cuda3std3__45__cpo5crendE,"aG",@progbits,_ZN4cuda3std3__45__cpo5crendE,comdat
	.type	_ZN4cuda3std3__45__cpo5crendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5crendE, 1
_ZN4cuda3std3__45__cpo5crendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo7crbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo7crbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo7crbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo7crbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo7crbeginE, 1
_ZN4cuda3std3__45__cpo7crbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4rendE
	.section	.rodata._ZN4cuda3std3__45__cpo4rendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4rendE,comdat
	.type	_ZN4cuda3std3__45__cpo4rendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4rendE, 1
_ZN4cuda3std3__45__cpo4rendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6rbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6rbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6rbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6rbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6rbeginE, 1
_ZN4cuda3std3__45__cpo6rbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo8distanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo8distanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo8distanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo8distanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo8distanceE, 1
_ZN4cuda3std6ranges3__45__cpo8distanceE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5ssizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5ssizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5ssizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5ssizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5ssizeE, 1
_ZN4cuda3std6ranges3__45__cpo5ssizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4sizeE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4sizeE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4sizeE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4sizeE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4sizeE, 1
_ZN4cuda3std6ranges3__45__cpo4sizeE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5cdataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5cdataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5cdataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5cdataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5cdataE, 1
_ZN4cuda3std6ranges3__45__cpo5cdataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4dataE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4dataE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4dataE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4dataE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4dataE, 1
_ZN4cuda3std6ranges3__45__cpo4dataE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4prevE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4prevE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4prevE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4prevE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4prevE, 1
_ZN4cuda3std6ranges3__45__cpo4prevE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4nextE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4nextE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4nextE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4nextE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4nextE, 1
_ZN4cuda3std6ranges3__45__cpo4nextE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_swapE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_swapE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4cendE, 1
_ZN4cuda3std6ranges3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo6cbeginE, 1
_ZN4cuda3std6ranges3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo3endE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo3endE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo3endE, 1
_ZN4cuda3std6ranges3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo5beginE, 1
_ZN4cuda3std6ranges3__45__cpo5beginE:
	.zero	1
	.weak	_ZN4cuda3std3__47nulloptE
	.section	.rodata._ZN4cuda3std3__47nulloptE,"aG",@progbits,_ZN4cuda3std3__47nulloptE,comdat
	.type	_ZN4cuda3std3__47nulloptE, @gnu_unique_object
	.size	_ZN4cuda3std3__47nulloptE, 1
_ZN4cuda3std3__47nulloptE:
	.zero	1
	.hidden	InitializeInjectionNvtx2_fnptr
	.weak	InitializeInjectionNvtx2_fnptr
	.bss
	.align 8
	.type	InitializeInjectionNvtx2_fnptr, @object
	.size	InitializeInjectionNvtx2_fnptr, 8
InitializeInjectionNvtx2_fnptr:
	.zero	8
	.hidden	nvtxGlobals_v3
	.weak	nvtxGlobals_v3
	.section	.data.rel.local,"aw"
	.align 32
	.type	nvtxGlobals_v3, @object
	.size	nvtxGlobals_v3, 1168
nvtxGlobals_v3:
	.long	0
	.zero	4
	.quad	16
	.quad	nvtxEtiGetModuleFunctionTable_v3
	.quad	24
	.long	3
	.long	0
	.quad	nvtxEtiSetInjectionNvtxVersion_v3
	.quad	nvtxMarkEx_impl_init_v3
	.quad	nvtxMarkA_impl_init_v3
	.quad	nvtxMarkW_impl_init_v3
	.quad	nvtxRangeStartEx_impl_init_v3
	.quad	nvtxRangeStartA_impl_init_v3
	.quad	nvtxRangeStartW_impl_init_v3
	.quad	nvtxRangeEnd_impl_init_v3
	.quad	nvtxRangePushEx_impl_init_v3
	.quad	nvtxRangePushA_impl_init_v3
	.quad	nvtxRangePushW_impl_init_v3
	.quad	nvtxRangePop_impl_init_v3
	.quad	nvtxNameCategoryA_impl_init_v3
	.quad	nvtxNameCategoryW_impl_init_v3
	.quad	nvtxNameOsThreadA_impl_init_v3
	.quad	nvtxNameOsThreadW_impl_init_v3
	.quad	nvtxNameCuDeviceA_impl_init_v3
	.quad	nvtxNameCuDeviceW_impl_init_v3
	.quad	nvtxNameCuContextA_impl_init_v3
	.quad	nvtxNameCuContextW_impl_init_v3
	.quad	nvtxNameCuStreamA_impl_init_v3
	.quad	nvtxNameCuStreamW_impl_init_v3
	.quad	nvtxNameCuEventA_impl_init_v3
	.quad	nvtxNameCuEventW_impl_init_v3
	.quad	nvtxNameClDeviceA_impl_init_v3
	.quad	nvtxNameClDeviceW_impl_init_v3
	.quad	nvtxNameClContextA_impl_init_v3
	.quad	nvtxNameClContextW_impl_init_v3
	.quad	nvtxNameClCommandQueueA_impl_init_v3
	.quad	nvtxNameClCommandQueueW_impl_init_v3
	.quad	nvtxNameClMemObjectA_impl_init_v3
	.quad	nvtxNameClMemObjectW_impl_init_v3
	.quad	nvtxNameClSamplerA_impl_init_v3
	.quad	nvtxNameClSamplerW_impl_init_v3
	.quad	nvtxNameClProgramA_impl_init_v3
	.quad	nvtxNameClProgramW_impl_init_v3
	.quad	nvtxNameClEventA_impl_init_v3
	.quad	nvtxNameClEventW_impl_init_v3
	.quad	nvtxNameCudaDeviceA_impl_init_v3
	.quad	nvtxNameCudaDeviceW_impl_init_v3
	.quad	nvtxNameCudaStreamA_impl_init_v3
	.quad	nvtxNameCudaStreamW_impl_init_v3
	.quad	nvtxNameCudaEventA_impl_init_v3
	.quad	nvtxNameCudaEventW_impl_init_v3
	.quad	nvtxDomainMarkEx_impl_init_v3
	.quad	nvtxDomainRangeStartEx_impl_init_v3
	.quad	nvtxDomainRangeEnd_impl_init_v3
	.quad	nvtxDomainRangePushEx_impl_init_v3
	.quad	nvtxDomainRangePop_impl_init_v3
	.quad	nvtxDomainResourceCreate_impl_init_v3
	.quad	nvtxDomainResourceDestroy_impl_init_v3
	.quad	nvtxDomainNameCategoryA_impl_init_v3
	.quad	nvtxDomainNameCategoryW_impl_init_v3
	.quad	nvtxDomainRegisterStringA_impl_init_v3
	.quad	nvtxDomainRegisterStringW_impl_init_v3
	.quad	nvtxDomainCreateA_impl_init_v3
	.quad	nvtxDomainCreateW_impl_init_v3
	.quad	nvtxDomainDestroy_impl_init_v3
	.quad	nvtxInitialize_impl_init_v3
	.quad	nvtxDomainSyncUserCreate_impl_init_v3
	.quad	nvtxDomainSyncUserDestroy_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireStart_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireFailed_impl_init_v3
	.quad	nvtxDomainSyncUserAcquireSuccess_impl_init_v3
	.quad	nvtxDomainSyncUserReleasing_impl_init_v3
	.quad	0
	.quad	nvtxGlobals_v3+48
	.quad	nvtxGlobals_v3+56
	.quad	nvtxGlobals_v3+64
	.quad	nvtxGlobals_v3+72
	.quad	nvtxGlobals_v3+80
	.quad	nvtxGlobals_v3+88
	.quad	nvtxGlobals_v3+96
	.quad	nvtxGlobals_v3+104
	.quad	nvtxGlobals_v3+112
	.quad	nvtxGlobals_v3+120
	.quad	nvtxGlobals_v3+128
	.quad	nvtxGlobals_v3+136
	.quad	nvtxGlobals_v3+144
	.quad	nvtxGlobals_v3+152
	.quad	nvtxGlobals_v3+160
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+168
	.quad	nvtxGlobals_v3+176
	.quad	nvtxGlobals_v3+184
	.quad	nvtxGlobals_v3+192
	.quad	nvtxGlobals_v3+200
	.quad	nvtxGlobals_v3+208
	.quad	nvtxGlobals_v3+216
	.quad	nvtxGlobals_v3+224
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+232
	.quad	nvtxGlobals_v3+240
	.quad	nvtxGlobals_v3+248
	.quad	nvtxGlobals_v3+256
	.quad	nvtxGlobals_v3+264
	.quad	nvtxGlobals_v3+272
	.quad	nvtxGlobals_v3+280
	.quad	nvtxGlobals_v3+288
	.quad	nvtxGlobals_v3+296
	.quad	nvtxGlobals_v3+304
	.quad	nvtxGlobals_v3+312
	.quad	nvtxGlobals_v3+320
	.quad	nvtxGlobals_v3+328
	.quad	nvtxGlobals_v3+336
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+344
	.quad	nvtxGlobals_v3+352
	.quad	nvtxGlobals_v3+360
	.quad	nvtxGlobals_v3+368
	.quad	nvtxGlobals_v3+376
	.quad	nvtxGlobals_v3+384
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+392
	.quad	nvtxGlobals_v3+400
	.quad	nvtxGlobals_v3+408
	.quad	nvtxGlobals_v3+416
	.quad	nvtxGlobals_v3+424
	.quad	nvtxGlobals_v3+432
	.quad	nvtxGlobals_v3+440
	.quad	nvtxGlobals_v3+448
	.quad	nvtxGlobals_v3+456
	.quad	nvtxGlobals_v3+464
	.quad	nvtxGlobals_v3+472
	.quad	nvtxGlobals_v3+480
	.quad	nvtxGlobals_v3+488
	.quad	nvtxGlobals_v3+496
	.quad	nvtxGlobals_v3+504
	.quad	0
	.quad	0
	.quad	nvtxGlobals_v3+512
	.quad	nvtxGlobals_v3+520
	.quad	nvtxGlobals_v3+528
	.quad	nvtxGlobals_v3+536
	.quad	nvtxGlobals_v3+544
	.quad	nvtxGlobals_v3+552
	.quad	0
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL10par_nosyncE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL10par_nosyncE, 1
_ZN6thrust20THRUST_200700_890_NS8cuda_cubL10par_nosyncE:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL3parE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS8cuda_cubL3parE, 1
_ZN6thrust20THRUST_200700_890_NS8cuda_cubL3parE:
	.zero	1
	.weak	_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result
	.section	.bss._ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result,comdat
	.align 8
	.type	_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result, @gnu_unique_object
	.size	_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result, 8
_ZGVZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result:
	.zero	8
	.weak	_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result
	.section	.bss._ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result,"awG",@nobits,_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result,comdat
	.align 8
	.type	_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result, @gnu_unique_object
	.size	_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result, 8
_ZZN6thrust20THRUST_200700_890_NS6system13cuda_categoryEvE6result:
	.zero	8
	.weak	_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result
	.section	.bss._ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result,comdat
	.align 8
	.type	_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result, @gnu_unique_object
	.size	_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result, 8
_ZGVZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result:
	.zero	8
	.weak	_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result
	.section	.bss._ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result,"awG",@nobits,_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result,comdat
	.align 8
	.type	_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result, @gnu_unique_object
	.size	_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result, 8
_ZZN6thrust20THRUST_200700_890_NS6system15system_categoryEvE6result:
	.zero	8
	.weak	_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result
	.section	.bss._ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result,comdat
	.align 8
	.type	_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result, @gnu_unique_object
	.size	_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result, 8
_ZGVZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result:
	.zero	8
	.weak	_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result
	.section	.bss._ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result,"awG",@nobits,_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result,comdat
	.align 8
	.type	_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result, @gnu_unique_object
	.size	_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result, 8
_ZZN6thrust20THRUST_200700_890_NS6system16generic_categoryEvE6result:
	.zero	8
	.weak	_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err
	.section	.bss._ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err,"awG",@nobits,_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err,comdat
	.align 8
	.type	_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err, @gnu_unique_object
	.size	_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err, 8
_ZGVZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err:
	.zero	8
	.weak	_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err
	.section	.bss._ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err,"awG",@nobits,_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err,comdat
	.align 32
	.type	_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err, @gnu_unique_object
	.size	_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err, 32
_ZZNK6thrust20THRUST_200700_890_NS6system6detail22generic_error_category7messageB5cxx11EiE11unknown_err:
	.zero	32
	.section	.rodata
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL3_10E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_9E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_8E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_7E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_6E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_5E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_4E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_3E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_2E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, @object
	.size	_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E, 1
_ZN6thrust20THRUST_200700_890_NS12placeholdersL2_1E:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NSL3seqE, @object
	.size	_ZN6thrust20THRUST_200700_890_NSL3seqE, 1
_ZN6thrust20THRUST_200700_890_NSL3seqE:
	.zero	1
	.type	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, @object
	.size	_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE, 1
_ZN6thrust20THRUST_200700_890_NS6system6detail10sequentialL3seqE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo7advanceE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo7advanceE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo7advanceE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo7advanceE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo7advanceE, 1
_ZN4cuda3std6ranges3__45__cpo7advanceE:
	.zero	1
	.hidden	_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE
	.weak	_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE
	.section	.rodata._ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE,"aG",@progbits,_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE,comdat
	.type	_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE, @gnu_unique_object
	.size	_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE, 1
_ZN4cuda3std3__444_GLOBAL__N__ba6b047c_11_parallel_cu_930ee7436ignoreE:
	.zero	1
	.weak	_ZN4cuda3std3__48in_placeE
	.section	.rodata._ZN4cuda3std3__48in_placeE,"aG",@progbits,_ZN4cuda3std3__48in_placeE,comdat
	.type	_ZN4cuda3std3__48in_placeE, @gnu_unique_object
	.size	_ZN4cuda3std3__48in_placeE, 1
_ZN4cuda3std3__48in_placeE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo4cendE
	.section	.rodata._ZN4cuda3std3__45__cpo4cendE,"aG",@progbits,_ZN4cuda3std3__45__cpo4cendE,comdat
	.type	_ZN4cuda3std3__45__cpo4cendE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo4cendE, 1
_ZN4cuda3std3__45__cpo4cendE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo6cbeginE
	.section	.rodata._ZN4cuda3std3__45__cpo6cbeginE,"aG",@progbits,_ZN4cuda3std3__45__cpo6cbeginE,comdat
	.type	_ZN4cuda3std3__45__cpo6cbeginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo6cbeginE, 1
_ZN4cuda3std3__45__cpo6cbeginE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo3endE
	.section	.rodata._ZN4cuda3std3__45__cpo3endE,"aG",@progbits,_ZN4cuda3std3__45__cpo3endE,comdat
	.type	_ZN4cuda3std3__45__cpo3endE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo3endE, 1
_ZN4cuda3std3__45__cpo3endE:
	.zero	1
	.weak	_ZN4cuda3std3__45__cpo5beginE
	.section	.rodata._ZN4cuda3std3__45__cpo5beginE,"aG",@progbits,_ZN4cuda3std3__45__cpo5beginE,comdat
	.type	_ZN4cuda3std3__45__cpo5beginE, @gnu_unique_object
	.size	_ZN4cuda3std3__45__cpo5beginE, 1
_ZN4cuda3std3__45__cpo5beginE:
	.zero	1
	.weak	_ZN4cuda3std3__419piecewise_constructE
	.section	.rodata._ZN4cuda3std3__419piecewise_constructE,"aG",@progbits,_ZN4cuda3std3__419piecewise_constructE,comdat
	.type	_ZN4cuda3std3__419piecewise_constructE, @gnu_unique_object
	.size	_ZN4cuda3std3__419piecewise_constructE, 1
_ZN4cuda3std3__419piecewise_constructE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo9iter_moveE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo9iter_moveE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo9iter_moveE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo9iter_moveE, 1
_ZN4cuda3std6ranges3__45__cpo9iter_moveE:
	.zero	1
	.weak	_ZN4cuda3std6ranges3__45__cpo4swapE
	.section	.rodata._ZN4cuda3std6ranges3__45__cpo4swapE,"aG",@progbits,_ZN4cuda3std6ranges3__45__cpo4swapE,comdat
	.type	_ZN4cuda3std6ranges3__45__cpo4swapE, @gnu_unique_object
	.size	_ZN4cuda3std6ranges3__45__cpo4swapE, 1
_ZN4cuda3std6ranges3__45__cpo4swapE:
	.zero	1
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC10:
	.long	805306368
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC11:
	.long	0
	.long	1071644672
	.section	.rodata.cst4
	.align 4
.LC66:
	.long	-1082130432
	.section	.rodata.cst8
	.align 8
.LC67:
	.long	0
	.long	1080025088
	.align 8
.LC68:
	.long	0
	.long	1072693248
	.align 8
.LC74:
	.long	0
	.long	1093567616
	.section	.rodata.cst4
	.align 4
.LC79:
	.long	1065353216
	.align 4
.LC81:
	.long	1120403456
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.hidden	__dso_handle
	.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 <stdio.h>
#include <stdlib.h> 
#include <ctime>
#include <iostream>
#include <fstream>
#include <sys/time.h>
#include <math.h>
#include <vector>
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <hip/hip_runtime.h>

using namespace std;
 
#define NUM_OF_HIDDEN_LAYERS 2
#define bias 1
#define ACTIVATION_RESPONSE 1       //it has to be changed
#define LEARNING_RATE 0.1
#define BATCH_SIZE 1000
#define EPOCHS 1000



struct timeval startwtime, endwtime;
double seq_time;


// Template structure to pass to kernel
template <typename T>
struct KernelArray
{
    T*  _array;
    int _size;
};
 
// Function to convert device_vector to structure
template <typename T>
KernelArray<T> convertToKernel(thrust::device_vector<T>& dVec)
{
    KernelArray<T> kArray;
    kArray._array = thrust::raw_pointer_cast(&dVec[0]);
    kArray._size  = (int) dVec.size();
 
    return kArray;
}





struct NeuralNetwork{
    int numLayers;      
    thrust::host_vector<int> layer_size;
    thrust::host_vector<int> offset;
    thrust::host_vector<float> values;
    thrust::host_vector<float> delta;
    thrust::host_vector<float> weights;
    thrust::host_vector<float> d_weights;  
};

void rand_initialize(thrust::host_vector<float> &w)
{
  srand((unsigned)time(NULL)); // use current time as seed for random generator
  for(int i=0;i<w.size();i++){
    w[i] = rand()/float(RAND_MAX);
    w[i] = (w[i] - 0.5)/2;
  }
}
    
 
struct NeuralNetwork InitializeNeuralNetwork(vector<int> layer_s){
    
    NeuralNetwork NN;
    NN.layer_size = layer_s;
    NN.offset.resize(NN.layer_size.size()+1);
    NN.offset[0] = 0;
    NN.numLayers = layer_s.size();
    int i;
    int values_size=0; 
    int weights_size =0; 
    for (i=0;i<NN.numLayers;i++){
		if(i){
			weights_size+= NN.layer_size[i]*NN.layer_size[i-1];
		}
		NN.layer_size[i]++;
		NN.offset[i+1] = NN.offset[i] + NN.layer_size[i];
		cout <<"offset "<< NN.offset[i+1]<<endl;
		values_size += NN.layer_size[i];
    }
     
    NN.weights.resize(weights_size);
    NN.d_weights.resize(weights_size);
    NN.values.resize(values_size);
    NN.delta.resize(values_size - NN.layer_size[0]);
    for (i=0;i<NN.numLayers;i++){
       NN.values[NN.offset[i+1]-1] = -1; 
    }
 
    rand_initialize(NN.weights);

    return NN;
}

__device__ void softMax2(KernelArray<float> values,int start) {
  int sum = 0;
  for(int i = start;i<start+10;i++) {
    values._array[i] = exp(values._array[i]);
    sum += values._array[i];
  }
  for(int i = start;i<start+10;i++) {
    values._array[i] /= sum;
  }
}
__device__ void sigmoid2(float &p) {
   p = 1/(1+ exp(-(p)));	
}

// This function propagates 1 layer forward. It should be called 1 time for each hidden layer + 1 time for the output.
__global__ void propagateLayer(KernelArray<float> values, KernelArray<float> weights,int *offset,int* layerSize,int *wOffset,int currentLayer) {
  //layerSize = [785 31 41 11]
  //offset = [0 785 816 857 868]
  //wOffset = [0 785*30 785*30+31*40]
  //currentLayer = 1 || 2 || 3
  //m = threadIdx.x*currentLayer + wOffset[thisLayer-1]
  //offset will be 784, 784 + 30 , 784+30.

  int m = threadIdx.x * layerSize[currentLayer-1] + wOffset[currentLayer - 1];
  int i = offset[currentLayer] + threadIdx.x + blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2];
  values._array[i] = 0;
  int start_j = blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2] + offset[currentLayer-1];

  for(int j = start_j;j<start_j + layerSize[currentLayer-1];j++){
	values._array[i] += weights._array[m] * values._array[j];
	m ++;  
  }

  __syncthreads();
  if(currentLayer==NUM_OF_HIDDEN_LAYERS+1 && threadIdx.x == 0 ) {
  float sum = 0;

  int start = blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2] + offset[NUM_OF_HIDDEN_LAYERS+1];
  	for(int i = start;i<start+10;i++) {
    		values._array[i] = exp(values._array[i]);
    		sum += values._array[i];
  	}
  for(int i = start;i<start+10;i++) {
    values._array[i] /= sum;
  }
 //values._array[860] += 100 ;

  }
  else if (currentLayer<NUM_OF_HIDDEN_LAYERS+1) {
	values._array[i] = 1/(1+ exp(-(values._array[i])));    
  }
  //if (i == 860) values._array[860] = 5;
  __syncthreads();
}





int reverseInt (int i) 
{
    unsigned char c1, c2, c3, c4;

    c1 = i & 255;
    c2 = (i >> 8) & 255;
    c3 = (i >> 16) & 255;
    c4 = (i >> 24) & 255;

    return ((int)c1 << 24) + ((int)c2 << 16) + ((int)c3 << 8) + c4;
}

thrust::host_vector<float> read_image(string image_path)
{
    ifstream file (image_path.c_str());
    if (file.is_open())
    {
        int magic_number=0;
        int number_of_images=0;
        int n_rows=0;
        int n_cols=0;
        file.read((char*)&magic_number,sizeof(magic_number)); 
        magic_number= reverseInt(magic_number);
        file.read((char*)&number_of_images,sizeof(number_of_images));
        number_of_images= reverseInt(number_of_images);
        file.read((char*)&n_rows,sizeof(n_rows));
        n_rows= reverseInt(n_rows);
        file.read((char*)&n_cols,sizeof(n_cols));
        n_cols= reverseInt(n_cols);
	int size = n_cols*n_rows;
	
	thrust::host_vector<float> dataSet(number_of_images * size);
	unsigned char temp;
	int value;

        for(int i=0;i<number_of_images*size;++i)
        {
	    temp = 0;
	    file.read((char*)&temp,sizeof(temp));
	    value = (int)temp;
            dataSet[i] =  (value/127.5 - 1);
        }
        return dataSet;
    }
}

int* read_label(string label_path){
  ifstream file (label_path.c_str());
    if (file.is_open())
    {
	int magic_number=0;
	int number_of_labels=0;
        file.read((char*)&magic_number,sizeof(magic_number)); 
        magic_number= reverseInt(magic_number);
	file.read((char*)&number_of_labels,sizeof(number_of_labels));
        number_of_labels= reverseInt(number_of_labels);
	int* labels = new int[number_of_labels];
	unsigned char temp;
        for(int i=0;i<number_of_labels;++i)
        {
	    file.read((char*)&temp,sizeof(temp));
	    labels[i] = (int)temp;
        }
	return labels;
    }
}


__global__ void computeOutputDelta2(float* delta,const float* values, int label,const int* offset){
  
  int off_start = offset[NUM_OF_HIDDEN_LAYERS + 1];
  int i_v = off_start + threadIdx.x + blockIdx.x * offset[NUM_OF_HIDDEN_LAYERS + 2];
  int i_d = off_start - offset[1]+ threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
  delta[i_d] = values[i_v] - (label == threadIdx.x);
  
}


/* 
 * arxika to values exei = BATCH_SIZE arxika images
 * kai tha epistrepsei = BATCH_SIZE 10aria output values ston idio pinaka.
 * , 1 weights, 
 */
void forwardPropagation( const thrust::host_vector<float> weights,
			 thrust::host_vector<float> &values, thrust::host_vector<int> offset){
  int this_layer,i;

   
  thrust::device_vector<float> device_values = values;
  thrust::device_vector<float> device_weights = weights;
  thrust::device_vector<int> device_offset = offset;
  thrust::device_vector<int> device_layerSize;
  thrust::device_vector<int> device_wOffset;


  //layerSize = [785 31 41 11] 
  thrust::host_vector<int> layerSize(offset.size() - 1);
  //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
  thrust::host_vector<int> wOffset(offset.size() - 1);
  for (i=0; i<offset.size() - 1 ; i++){
      layerSize[i] = offset[i+1] - offset[i];
      
      if (!i) wOffset[i] = 0;
      else if ( i< offset.size() - 1) wOffset[i] = wOffset[i-1] + layerSize[i-1]*(layerSize[i]-1);
  }

  device_layerSize = layerSize;
  device_wOffset = wOffset;

  //for loop gia ta layers {1,2,3} apo ta {0,1,2,3}
  for (this_layer=1; this_layer<offset.size()-1;this_layer++){ 
        
	//cout << "calling propagate layer with: " << layerSize[this_layer-1] << "threads"<< endl;
        KernelArray<int> temp = convertToKernel(device_offset);
	  propagateLayer<<< BATCH_SIZE, layerSize[this_layer] - 1 >>>(convertToKernel(device_values),
		convertToKernel(device_weights), temp._array, convertToKernel(device_layerSize)._array,
		          convertToKernel(device_wOffset)._array, this_layer);
  
  }
  //cout << "d_v" << device_values.size() << endl;
  //cout << "v" << values.size() << endl;  
  values = device_values;
  
}


//kaleitai xwris to bias. Diladi 40 kai 30 fores.
__global__ void computeLayerDelta(float* delta, float* weights, float* values, int* offset, int* layerSize, int* wOffset, int currentLayer){
	
	int i_d = offset[currentLayer] - offset[1] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
	int start_next_layer = offset[currentLayer+1] - offset[1] + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //block * 868 - (block + 1) * 785
	int i_v = offset[currentLayer] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2]);
	delta[i_d] = 0;   
	
	int w_start = wOffset[currentLayer];
	int w_index, next_n;
	int m=0;
	for (next_n = start_next_layer;next_n<start_next_layer + layerSize[currentLayer] - 1 ; next_n++){
		w_index = w_start + m*layerSize[currentLayer] + threadIdx.x;
		delta[i_d] += weights[w_index] * delta[next_n ]; 
		m++;
	}
	float derivative = values[i_v]*(1-values[i_v]);
	
	delta[i_d] *= derivative;
	__syncthreads();
}


__global__ void computePrevLayerDWeights(float* d_w, float* delta, float* values, int* offset, int* layerSize, int* wOffset, int currentLayer ){
	
    //layerSize = [785 31 41 11] 
    //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
	int i_d = offset[currentLayer] - offset[1] + threadIdx.x + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; // block * 868 - (block + 1) * 785 ; 
	int start_prev_layer = offset[currentLayer - 1]  + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] ) ; // block * 868 
	int d_w_index = threadIdx.x * layerSize[currentLayer-1] + wOffset[currentLayer - 1] + blockIdx.x * (wOffset[NUM_OF_HIDDEN_LAYERS + 1] );// block * (785*30+31*40+41*10)
	int prev_n;

	for(prev_n = start_prev_layer; prev_n<start_prev_layer + layerSize[currentLayer - 1] - 1;prev_n++){
		d_w[d_w_index] += values[prev_n]*delta[i_d];
		d_w_index++;
	}
	int layer_bias_index = offset[currentLayer] - offset[1] + layerSize[currentLayer] - 1 + blockIdx.x * (offset[NUM_OF_HIDDEN_LAYERS + 2] - offset[1]) ; //bias
	
	d_w[d_w_index++] += delta[layer_bias_index];//bias
	__syncthreads();
	
}


__global__ void updateWeights(float* weights, float* d_weights, int weights_size){
	
	
	int id = blockDim.x * blockIdx.x + threadIdx.x;
	if(id<weights_size){
		int i;
		float d_w_sum = 0;
		for(i=0;i<BATCH_SIZE;i++){
			d_w_sum += d_weights[id + i * weights_size];
			d_weights[id + i * weights_size]=0;
		}
		weights[id] -= LEARNING_RATE/BATCH_SIZE*d_w_sum;
	  
	}
	__syncthreads();
}



void backPropagation(const int label,thrust::host_vector<float> &weights,const thrust::host_vector<float> values,thrust::host_vector<float> delta,
		     const thrust::host_vector<int> offset,thrust::host_vector<float> &d_w){
 
 
 //device_delta
 //device_d_w
  thrust::device_vector<float> device_values = values;
  thrust::device_vector<float> device_weights = weights;
  thrust::device_vector<float> device_delta = delta;
  thrust::device_vector<int> device_offset = offset;
  thrust::device_vector<float> device_d_weights = d_w;  
  thrust::device_vector<int> device_layerSize;
  thrust::device_vector<int> device_wOffset;

  int i,this_layer;
  //layerSize = [785 31 41 11] 
  thrust::host_vector<int> layerSize(offset.size() - 1);
  //wOffset = [0 785*30 785*30+31*40 785*30+31*40+41*10]
  thrust::host_vector<int> wOffset(offset.size() - 1);
  for (i=0; i<offset.size() - 1 ; i++){
      layerSize[i] = offset[i+1] - offset[i];
      
      if (!i) wOffset[i] = 0;
      else if ( i< offset.size() - 1) wOffset[i] = wOffset[i-1] + layerSize[i-1]*(layerSize[i]-1);
  }

  device_layerSize = layerSize;
  device_wOffset = wOffset;
 
  //layer 3
  computeOutputDelta2<<<BATCH_SIZE, 
10>>>(convertToKernel(device_delta)._array,convertToKernel(device_values)._array,label,convertToKernel(device_offset)._array);
  
  //layers {2,1} from {0,1,2,3}
  //compute delta
  for (this_layer = offset.size() - 3;this_layer>0 ; this_layer--){

	computeLayerDelta<<<BATCH_SIZE, layerSize[this_layer] - 1>>>(convertToKernel(device_delta)._array, convertToKernel(device_weights)._array, convertToKernel(device_values)._array,
															convertToKernel(device_offset)._array, convertToKernel(device_layerSize)._array, convertToKernel(device_wOffset)._array, this_layer);
  }
  
  //layers {1,2,3} from {0,1,2,3}
  //compute d_weights
  for(this_layer=1; this_layer < offset.size()-1;this_layer++){

	  computePrevLayerDWeights<<<BATCH_SIZE, layerSize[this_layer] - 1>>> (convertToKernel(device_d_weights)._array, convertToKernel(device_delta)._array, convertToKernel(device_values)._array,
												convertToKernel(device_offset)._array, convertToKernel(device_layerSize)._array, convertToKernel(device_wOffset)._array, this_layer);

  }

  //update weights
  int numOfThreads = 1000,numOfBlocks;
  numOfBlocks = (int)(weights.size() / numOfThreads) + 1;
  
  updateWeights<<<numOfBlocks, numOfThreads>>>(convertToKernel(device_weights)._array, convertToKernel(device_d_weights)._array, weights.size());
  
	
   weights = device_weights;
}
 
int predict(thrust::host_vector<float> weights, thrust::host_vector<float> values, thrust::host_vector<int> offset){
  forwardPropagation(weights,values,offset);
  int i,index;
  float max = 0;
  for(i=offset[offset.size()-2];i<offset[offset.size()-1];i++){
    if (values[i] > max){
      max = values[i];
      index = i-offset[offset.size()-2];
    }
    
  }
  return index;
  
} 
 
 
int main(int argc, char *argv[]) {
 
   
  if(argc != 5)
  { cout << "Give 'the training set image_path', 'the training set label_path' 'the test set image_path' and 'the test set label_path'\n"; exit(1); }
  string image_path = argv[1];
  string label_path = argv[2];
  string test_image_path = argv[3];
  string test_label_path = argv[4];
  thrust::host_vector<float> imageSet = read_image(image_path);
  int* labelSet = read_label(label_path);
   
  thrust::host_vector<float> test_imageSet = read_image(test_image_path);
  int* test_labelSet = read_label(test_label_path); 

  vector<int> NeuralNetwork_layers(4);
  NeuralNetwork_layers[0] = 784;
  NeuralNetwork_layers[1] = 30;
  NeuralNetwork_layers[2] = 40;
  NeuralNetwork_layers[3] = 10;

 
  NeuralNetwork NN = InitializeNeuralNetwork(NeuralNetwork_layers);
  int i,j;
  cout << "Training begins now with batch size: "<<BATCH_SIZE << " for "<<EPOCHS<<" epochs "<<endl;
  
  
  thrust::host_vector<float> host_values(NN.values.size() * BATCH_SIZE);
  thrust::host_vector<float> host_delta(NN.delta.size() * BATCH_SIZE);
  thrust::host_vector<float> host_d_weights(NN.d_weights.size() * BATCH_SIZE);

gettimeofday (&startwtime, NULL);

//Give to the biases of each layer the value -1
  for (j=0;j<BATCH_SIZE;j++){
    for (i=1;i<NN.offset.size();i++){
	host_values[NN.offset[i]-1 + j*NN.offset[NN.numLayers]] = -1;
    }
  }


  int times_to_run = EPOCHS*BATCH_SIZE,counter=0;
  i = 0;
  while(counter<times_to_run){
      counter+=BATCH_SIZE;
      i= (i +BATCH_SIZE)%60000;  
      for (j=0;j<BATCH_SIZE;j++){
	  
	   thrust::copy(imageSet.begin()+ (i+j) *784, imageSet.begin() + (i+j+1)*784, host_values.begin()+NN.offset[NN.numLayers]*j);
      }
      forwardPropagation(NN.weights, host_values, NN.offset);
	NN.values = host_values;
      backPropagation(labelSet[i],NN.weights,NN.values,host_delta,NN.offset,host_d_weights);
      if (counter%500==0) cout <<counter<<endl;
  }
  
gettimeofday (&endwtime, NULL);
seq_time = (double)((endwtime.tv_usec - startwtime.tv_usec)/1.0e6
		      + endwtime.tv_sec - startwtime.tv_sec);
cout<<"The NeuralNetwork is trained for: " << EPOCHS*BATCH_SIZE << " images in: "<<seq_time <<" seconds" << endl;
  
cout<< "Evaluating the NeuralNetwork"<< endl;
  float test_sum = 0;
  for(int i=0;i<9900;i++){
      for (j=0;j<BATCH_SIZE;j++){  
	  thrust::copy(test_imageSet.begin()+ (i+j) *784, test_imageSet.begin() + (i+j+1)*784, 
host_values.begin()+NN.offset[NN.numLayers]*j);
      }
     
     int predicted_label = predict(NN.weights,host_values,NN.offset);
     if (predicted_label==test_labelSet[i]) test_sum++;
   }
   cout <<"The NeuralNetwork's accuracy is: "<<(test_sum/100)<<"%"<<endl;
   
}









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

                                        # End of file scope inline assembly
	.section	.rodata.cst4,"aM",@progbits,4
	.p2align	2, 0x0                          # -- Begin function _Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE
.LCPI0_0:
	.long	0x30000000                      # float 4.65661287E-10
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0
.LCPI0_1:
	.quad	0xbfe0000000000000              # double -0.5
.LCPI0_2:
	.quad	0x3fe0000000000000              # double 0.5
	.text
	.globl	_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE
	.type	_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE,@function
_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE: # @_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdi, %rbx
	xorl	%edi, %edi
	callq	time
	movl	%eax, %edi
	callq	srand
	cmpq	$0, 24(%rbx)
	je	.LBB0_3
# %bb.1:                                # %.lr.ph
	xorl	%r14d, %r14d
.LBB0_2:                                # =>This Inner Loop Header: Depth=1
	callq	rand
	xorps	%xmm0, %xmm0
	cvtsi2ss	%eax, %xmm0
	mulss	.LCPI0_0(%rip), %xmm0
	movq	8(%rbx), %rax
	movss	%xmm0, (%rax,%r14,4)
	movq	8(%rbx), %rax
	xorps	%xmm0, %xmm0
	cvtss2sd	(%rax,%r14,4), %xmm0
	addsd	.LCPI0_1(%rip), %xmm0
	mulsd	.LCPI0_2(%rip), %xmm0
	cvtsd2ss	%xmm0, %xmm0
	movss	%xmm0, (%rax,%r14,4)
	incq	%r14
	cmpq	%r14, 24(%rbx)
	ja	.LBB0_2
.LBB0_3:                                # %._crit_edge
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end0:
	.size	_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE, .Lfunc_end0-_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE
	.cfi_endproc
                                        # -- End function
	.globl	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE # -- Begin function _Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
	.type	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE,@function
_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE: # @_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	addq	$8, %rdi
	xorl	%eax, %eax
	movq	%rax, 32(%rbx)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 48(%rbx)
	movq	%rax, 64(%rbx)
	movups	%xmm0, 80(%rbx)
	movq	%rax, 96(%rbx)
	movups	%xmm0, 112(%rbx)
	movq	%rax, 128(%rbx)
	movups	%xmm0, 144(%rbx)
	movq	%rax, 160(%rbx)
	movups	%xmm0, 176(%rbx)
	movq	%rax, 192(%rbx)
	movq	(%rsi), %rsi
	movq	8(%r14), %rdx
.Ltmp0:
	callq	_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE
.Ltmp1:
# %bb.1:                                # %_ZN6thrust11host_vectorIiSaIiEEaSIiS1_EERS2_RKSt6vectorIT_T0_E.exit
	leaq	40(%rbx), %rdi
	movq	32(%rbx), %rsi
	incq	%rsi
.Ltmp2:
	callq	_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm
.Ltmp3:
# %bb.2:
	movq	48(%rbx), %rax
	movl	$0, (%rax)
	movq	8(%r14), %rax
	subq	(%r14), %rax
	leaq	48(%rbx), %r12
	shrq	$2, %rax
	movl	%eax, (%rbx)
	testl	%eax, %eax
	jle	.LBB1_3
# %bb.4:                                # %.lr.ph
	leaq	16(%rbx), %rax
	movq	%rax, (%rsp)                    # 8-byte Spill
	movq	(%rax), %rax
	xorl	%ebp, %ebp
	xorl	%r15d, %r15d
	xorl	%r13d, %r13d
.LBB1_5:                                # =>This Inner Loop Header: Depth=1
	testq	%rbp, %rbp
	je	.LBB1_7
# %bb.6:                                #   in Loop: Header=BB1_5 Depth=1
	movl	-4(%rax,%rbp,4), %ecx
	imull	(%rax,%rbp,4), %ecx
	addl	%ecx, %r15d
.LBB1_7:                                # %._crit_edge45
                                        #   in Loop: Header=BB1_5 Depth=1
	incl	(%rax,%rbp,4)
	movq	(%r12), %rax
	movq	(%rsp), %rcx                    # 8-byte Reload
	movq	(%rcx), %rcx
	movl	(%rcx,%rbp,4), %ecx
	addl	(%rax,%rbp,4), %ecx
	movl	%ecx, 4(%rax,%rbp,4)
.Ltmp5:
	movl	$_ZSt4cout, %edi
	movl	$.L.str, %esi
	movl	$7, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp6:
# %bb.8:                                #   in Loop: Header=BB1_5 Depth=1
	movq	(%r12), %rax
	movl	4(%rax,%rbp,4), %esi
.Ltmp7:
	movl	$_ZSt4cout, %edi
	callq	_ZNSolsEi
.Ltmp8:
# %bb.9:                                #   in Loop: Header=BB1_5 Depth=1
	movq	%rax, %r14
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%r14, %rdi
.Ltmp9:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp10:
# %bb.10:                               # %.noexc
                                        #   in Loop: Header=BB1_5 Depth=1
.Ltmp11:
	movsbl	%al, %esi
	movq	%r14, %rdi
	callq	_ZNSo3putEc
.Ltmp12:
# %bb.11:                               # %.noexc28
                                        #   in Loop: Header=BB1_5 Depth=1
.Ltmp13:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp14:
# %bb.12:                               #   in Loop: Header=BB1_5 Depth=1
	movq	16(%rbx), %rax
	addl	(%rax,%rbp,4), %r13d
	incq	%rbp
	movslq	(%rbx), %rcx
	cmpq	%rcx, %rbp
	jl	.LBB1_5
# %bb.13:                               # %._crit_edge.loopexit
	movslq	%r15d, %r15
	jmp	.LBB1_14
.LBB1_3:
	xorl	%r13d, %r13d
	xorl	%r15d, %r15d
.LBB1_14:                               # %._crit_edge
	leaq	136(%rbx), %r14
.Ltmp16:
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
.Ltmp17:
# %bb.15:
	leaq	168(%rbx), %rdi
.Ltmp18:
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
.Ltmp19:
# %bb.16:
	leaq	72(%rbx), %rdi
	movslq	%r13d, %r15
.Ltmp20:
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
.Ltmp21:
# %bb.17:
	movq	16(%rbx), %rax
	leaq	104(%rbx), %rdi
	movslq	(%rax), %rax
	subq	%rax, %r15
.Ltmp22:
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
.Ltmp23:
# %bb.18:                               # %.preheader
	movl	(%rbx), %eax
	testl	%eax, %eax
	jle	.LBB1_21
# %bb.19:                               # %.lr.ph37
	movq	%rbx, %rcx
	addq	$80, %rcx
	xorl	%edx, %edx
.LBB1_20:                               # =>This Inner Loop Header: Depth=1
	movq	(%r12), %rsi
	movslq	4(%rsi,%rdx,4), %rsi
	incq	%rdx
	movq	(%rcx), %rdi
	movl	$-1082130432, -4(%rdi,%rsi,4)   # imm = 0xBF800000
	cmpq	%rdx, %rax
	jne	.LBB1_20
.LBB1_21:                               # %._crit_edge38
	movq	%r14, %rdi
	callq	_Z15rand_initializeRN6thrust11host_vectorIfSaIfEEE
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB1_24:
	.cfi_def_cfa_offset 64
.Ltmp4:
	jmp	.LBB1_25
.LBB1_23:                               # %.loopexit.split-lp
.Ltmp24:
	jmp	.LBB1_25
.LBB1_22:                               # %.loopexit
.Ltmp15:
.LBB1_25:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	_ZN13NeuralNetworkD2Ev
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end1:
	.size	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE, .Lfunc_end1-_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table1:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 1 <<
	.uleb128 .Ltmp3-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp3
	.uleb128 .Ltmp4-.Lfunc_begin0           #     jumps to .Ltmp4
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp5-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp14-.Ltmp5                 #   Call between .Ltmp5 and .Ltmp14
	.uleb128 .Ltmp15-.Lfunc_begin0          #     jumps to .Ltmp15
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp16-.Lfunc_begin0          # >> Call Site 3 <<
	.uleb128 .Ltmp23-.Ltmp16                #   Call between .Ltmp16 and .Ltmp23
	.uleb128 .Ltmp24-.Lfunc_begin0          #     jumps to .Ltmp24
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp23-.Lfunc_begin0          # >> Call Site 4 <<
	.uleb128 .Lfunc_end1-.Ltmp23            #   Call between .Ltmp23 and .Lfunc_end1
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm,@function
_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm: # @_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	movq	24(%rdi), %rcx
	movq	%rsi, %rax
	subq	%rcx, %rax
	jae	.LBB2_2
# %bb.1:
	movq	8(%rbx), %rax
	leaq	(%rax,%rsi,4), %r14
	leaq	(%rax,%rcx,4), %r15
	leaq	15(%rsp), %rdi
	movq	%r15, %rsi
	movq	%r15, %rdx
	movq	%r14, %rcx
	callq	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	subq	%r15, %r14
	sarq	$2, %r14
	addq	%r14, 24(%rbx)
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB2_2:
	.cfi_def_cfa_offset 48
	movq	%rbx, %rdi
	movq	%rax, %rsi
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm # TAILCALL
.Lfunc_end2:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm, .Lfunc_end2-_ZN6thrust6detail11vector_baseIiSaIiEE6resizeEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm,@function
_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm: # @_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	movq	24(%rdi), %rcx
	movq	%rsi, %rax
	subq	%rcx, %rax
	jae	.LBB3_2
# %bb.1:
	movq	8(%rbx), %rax
	leaq	(%rax,%rsi,4), %r14
	leaq	(%rax,%rcx,4), %r15
	leaq	15(%rsp), %rdi
	movq	%r15, %rsi
	movq	%r15, %rdx
	movq	%r14, %rcx
	callq	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	subq	%r15, %r14
	sarq	$2, %r14
	addq	%r14, 24(%rbx)
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB3_2:
	.cfi_def_cfa_offset 48
	movq	%rbx, %rdi
	movq	%rax, %rsi
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm # TAILCALL
.Lfunc_end3:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm, .Lfunc_end3-_ZN6thrust6detail11vector_baseIfSaIfEE6resizeEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN13NeuralNetworkD2Ev,"axG",@progbits,_ZN13NeuralNetworkD2Ev,comdat
	.weak	_ZN13NeuralNetworkD2Ev          # -- Begin function _ZN13NeuralNetworkD2Ev
	.p2align	1, 0x90
	.type	_ZN13NeuralNetworkD2Ev,@function
_ZN13NeuralNetworkD2Ev:                 # @_ZN13NeuralNetworkD2Ev
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	cmpq	$0, 184(%rdi)
	je	.LBB4_2
# %bb.1:
	movq	176(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 176(%rbx)
.LBB4_2:                                # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit
	cmpq	$0, 152(%rbx)
	je	.LBB4_4
# %bb.3:
	movq	144(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 144(%rbx)
.LBB4_4:                                # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit2
	cmpq	$0, 120(%rbx)
	je	.LBB4_6
# %bb.5:
	movq	112(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 112(%rbx)
.LBB4_6:                                # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit4
	cmpq	$0, 88(%rbx)
	je	.LBB4_8
# %bb.7:
	movq	80(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 80(%rbx)
.LBB4_8:                                # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit6
	cmpq	$0, 56(%rbx)
	je	.LBB4_10
# %bb.9:
	movq	48(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 48(%rbx)
.LBB4_10:                               # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit
	cmpq	$0, 24(%rbx)
	je	.LBB4_12
# %bb.11:
	movq	16(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rbx)
.LBB4_12:                               # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit9
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end4:
	.size	_ZN13NeuralNetworkD2Ev, .Lfunc_end4-_ZN13NeuralNetworkD2Ev
	.cfi_endproc
                                        # -- End function
	.text
	.globl	_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i # -- Begin function _Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.type	_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i,@function
_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i: # @_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$144, %rsp
	.cfi_def_cfa_offset 192
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	80(%rsp), %rax
	movq	%rdi, (%rax)
	movl	%esi, 8(%rax)
	leaq	64(%rsp), %rsi
	movq	%rdx, (%rsi)
	movl	%ecx, 8(%rsi)
	leaq	24(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	16(%rsp), %rdx
	movq	%r9, (%rdx)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rsi, 8(%rbx)
	movq	%rcx, 16(%rbx)
	movq	%rdx, 24(%rbx)
	leaq	192(%rsp), %rax
	movq	%rax, 32(%rbx)
	leaq	200(%rsp), %rax
	movq	%rax, 40(%rbx)
	leaq	48(%rsp), %r14
	leaq	32(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rsp, %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$160, %rsp
	.cfi_adjust_cfa_offset -160
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end5:
	.size	_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i, .Lfunc_end5-_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.cfi_endproc
                                        # -- End function
	.globl	_Z10reverseInti                 # -- Begin function _Z10reverseInti
	.type	_Z10reverseInti,@function
_Z10reverseInti:                        # @_Z10reverseInti
	.cfi_startproc
# %bb.0:
	movl	%edi, %eax
	bswapl	%eax
	retq
.Lfunc_end6:
	.size	_Z10reverseInti, .Lfunc_end6-_Z10reverseInti
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0                          # -- Begin function _Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LCPI7_0:
	.quad	0x405fe00000000000              # double 127.5
.LCPI7_1:
	.quad	0xbff0000000000000              # double -1
	.text
	.globl	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$552, %rsp                      # imm = 0x228
	.cfi_def_cfa_offset 608
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdi, %rbx
	movq	(%rsi), %rsi
	leaq	32(%rsp), %r14
	movq	%r14, %rdi
	movl	$8, %edx
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
	xorl	%eax, %eax
	leaq	28(%rsp), %rsi
	movl	%eax, (%rsi)
	movl	%eax, 16(%rsp)
	movl	%eax, 20(%rsp)
	movl	%eax, 24(%rsp)
.Ltmp25:
	movl	$4, %edx
	movq	%r14, %rdi
	callq	_ZNSi4readEPcl
.Ltmp26:
# %bb.1:
	movl	28(%rsp), %eax
	bswapl	%eax
	movl	%eax, 28(%rsp)
.Ltmp27:
	leaq	32(%rsp), %rdi
	leaq	16(%rsp), %rsi
	movl	$4, %edx
	callq	_ZNSi4readEPcl
.Ltmp28:
# %bb.2:
	movl	16(%rsp), %eax
	bswapl	%eax
	movl	%eax, 16(%rsp)
.Ltmp29:
	leaq	32(%rsp), %rdi
	leaq	20(%rsp), %rsi
	movl	$4, %edx
	callq	_ZNSi4readEPcl
.Ltmp30:
# %bb.3:
	movl	20(%rsp), %eax
	bswapl	%eax
	movl	%eax, 20(%rsp)
.Ltmp31:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	movl	$4, %edx
	callq	_ZNSi4readEPcl
.Ltmp32:
# %bb.4:
	movl	24(%rsp), %eax
	bswapl	%eax
	movl	%eax, 24(%rsp)
	movslq	20(%rsp), %rcx
	movslq	%eax, %rbp
	imulq	%rcx, %rbp
	movslq	16(%rsp), %rsi
	imulq	%rbp, %rsi
.Ltmp34:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
.Ltmp35:
# %bb.5:                                # %_ZN6thrust11host_vectorIfSaIfEEC2Em.exit
	movl	16(%rsp), %eax
	imull	%ebp, %eax
	testl	%eax, %eax
	jle	.LBB7_9
# %bb.6:                                # %.lr.ph
	leaq	8(%rbx), %r12
	xorl	%r13d, %r13d
	leaq	32(%rsp), %r14
	leaq	15(%rsp), %r15
	movslq	%ebp, %rbp
.LBB7_7:                                # =>This Inner Loop Header: Depth=1
	movb	$0, 15(%rsp)
.Ltmp37:
	movl	$1, %edx
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	_ZNSi4readEPcl
.Ltmp38:
# %bb.8:                                #   in Loop: Header=BB7_7 Depth=1
	movzbl	15(%rsp), %eax
	movq	(%r12), %rcx
	xorps	%xmm0, %xmm0
	cvtsi2sd	%eax, %xmm0
	divsd	.LCPI7_0(%rip), %xmm0
	addsd	.LCPI7_1(%rip), %xmm0
	cvtsd2ss	%xmm0, %xmm0
	movss	%xmm0, (%rcx,%r13,4)
	incq	%r13
	movslq	16(%rsp), %rax
	imulq	%rbp, %rax
	cmpq	%rax, %r13
	jl	.LBB7_7
.LBB7_9:                                # %._crit_edge
	leaq	32(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	%rbx, %rax
	addq	$552, %rsp                      # imm = 0x228
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB7_10:
	.cfi_def_cfa_offset 608
.Ltmp36:
	jmp	.LBB7_12
.LBB7_11:
.Ltmp33:
.LBB7_12:                               # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit
	movq	%rax, %r14
	jmp	.LBB7_15
.LBB7_13:
.Ltmp39:
	movq	%rax, %r14
	cmpq	$0, 16(%rbx)
	je	.LBB7_15
# %bb.14:
	movq	(%r12), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r12)
.LBB7_15:                               # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit
	leaq	32(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end7:
	.size	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end7-_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table7:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Lfunc_begin1-.Lfunc_begin1    # >> Call Site 1 <<
	.uleb128 .Ltmp25-.Lfunc_begin1          #   Call between .Lfunc_begin1 and .Ltmp25
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp25-.Lfunc_begin1          # >> Call Site 2 <<
	.uleb128 .Ltmp32-.Ltmp25                #   Call between .Ltmp25 and .Ltmp32
	.uleb128 .Ltmp33-.Lfunc_begin1          #     jumps to .Ltmp33
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp34-.Lfunc_begin1          # >> Call Site 3 <<
	.uleb128 .Ltmp35-.Ltmp34                #   Call between .Ltmp34 and .Ltmp35
	.uleb128 .Ltmp36-.Lfunc_begin1          #     jumps to .Ltmp36
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp37-.Lfunc_begin1          # >> Call Site 4 <<
	.uleb128 .Ltmp38-.Ltmp37                #   Call between .Ltmp37 and .Ltmp38
	.uleb128 .Ltmp39-.Lfunc_begin1          #     jumps to .Ltmp39
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp38-.Lfunc_begin1          # >> Call Site 5 <<
	.uleb128 .Lfunc_end7-.Ltmp38            #   Call between .Ltmp38 and .Lfunc_end7
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$536, %rsp                      # imm = 0x218
	.cfi_def_cfa_offset 576
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rsi
	leaq	16(%rsp), %rbx
	movq	%rbx, %rdi
	movl	$8, %edx
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode
	xorl	%eax, %eax
	leaq	12(%rsp), %rsi
	movl	%eax, (%rsi)
	movl	%eax, 8(%rsp)
.Ltmp40:
	movl	$4, %edx
	movq	%rbx, %rdi
	callq	_ZNSi4readEPcl
.Ltmp41:
# %bb.1:
	movl	12(%rsp), %eax
	bswapl	%eax
	movl	%eax, 12(%rsp)
.Ltmp42:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	movl	$4, %edx
	callq	_ZNSi4readEPcl
.Ltmp43:
# %bb.2:
	movl	8(%rsp), %r14d
	bswapl	%r14d
	movl	%r14d, 8(%rsp)
	leaq	(,%r14,4), %rax
	testl	%r14d, %r14d
	movq	$-1, %rdi
	cmovnsq	%rax, %rdi
.Ltmp45:
	callq	_Znam
.Ltmp46:
# %bb.3:
	movq	%rax, %rbx
	testl	%r14d, %r14d
	jle	.LBB8_7
# %bb.4:                                # %.lr.ph.preheader
	xorl	%r12d, %r12d
	leaq	16(%rsp), %r14
	leaq	7(%rsp), %r15
.LBB8_5:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
.Ltmp48:
	movl	$1, %edx
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	_ZNSi4readEPcl
.Ltmp49:
# %bb.6:                                #   in Loop: Header=BB8_5 Depth=1
	movzbl	7(%rsp), %eax
	movl	%eax, (%rbx,%r12,4)
	incq	%r12
	movslq	8(%rsp), %rax
	cmpq	%rax, %r12
	jl	.LBB8_5
.LBB8_7:                                # %._crit_edge
	leaq	16(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	%rbx, %rax
	addq	$536, %rsp                      # imm = 0x218
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB8_9:
	.cfi_def_cfa_offset 576
.Ltmp47:
	jmp	.LBB8_11
.LBB8_8:
.Ltmp44:
	jmp	.LBB8_11
.LBB8_10:
.Ltmp50:
.LBB8_11:
	movq	%rax, %rbx
	leaq	16(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end8:
	.size	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end8-_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table8:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Lfunc_begin2-.Lfunc_begin2    # >> Call Site 1 <<
	.uleb128 .Ltmp40-.Lfunc_begin2          #   Call between .Lfunc_begin2 and .Ltmp40
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp40-.Lfunc_begin2          # >> Call Site 2 <<
	.uleb128 .Ltmp43-.Ltmp40                #   Call between .Ltmp40 and .Ltmp43
	.uleb128 .Ltmp44-.Lfunc_begin2          #     jumps to .Ltmp44
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp45-.Lfunc_begin2          # >> Call Site 3 <<
	.uleb128 .Ltmp46-.Ltmp45                #   Call between .Ltmp45 and .Ltmp46
	.uleb128 .Ltmp47-.Lfunc_begin2          #     jumps to .Ltmp47
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp48-.Lfunc_begin2          # >> Call Site 4 <<
	.uleb128 .Ltmp49-.Ltmp48                #   Call between .Ltmp48 and .Ltmp49
	.uleb128 .Ltmp50-.Lfunc_begin2          #     jumps to .Ltmp50
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp49-.Lfunc_begin2          # >> Call Site 5 <<
	.uleb128 .Lfunc_end8-.Ltmp49            #   Call between .Ltmp49 and .Lfunc_end8
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_Z34__device_stub__computeOutputDelta2PfPKfiPKi # -- Begin function _Z34__device_stub__computeOutputDelta2PfPKfiPKi
	.type	_Z34__device_stub__computeOutputDelta2PfPKfiPKi,@function
_Z34__device_stub__computeOutputDelta2PfPKfiPKi: # @_Z34__device_stub__computeOutputDelta2PfPKfiPKi
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$112, %rsp
	.cfi_def_cfa_offset 160
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	40(%rsp), %rax
	movq	%rdi, (%rax)
	leaq	32(%rsp), %rdi
	movq	%rsi, (%rdi)
	leaq	4(%rsp), %rsi
	movl	%edx, (%rsi)
	leaq	24(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	80(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	leaq	64(%rsp), %r14
	leaq	48(%rsp), %r15
	leaq	16(%rsp), %r12
	leaq	8(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z19computeOutputDelta2PfPKfiPKi, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$128, %rsp
	.cfi_adjust_cfa_offset -128
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end9:
	.size	_Z34__device_stub__computeOutputDelta2PfPKfiPKi, .Lfunc_end9-_Z34__device_stub__computeOutputDelta2PfPKfiPKi
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function _Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
.LCPI10_0:
	.zero	16
	.text
	.globl	_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
	.type	_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE,@function
_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE: # @_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
.Lfunc_begin3:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception3
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$224, %rsp
	.cfi_def_cfa_offset 272
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rsi, %rbx
	movq	%rdi, %r15
	.cfi_escape 0x2e, 0x00
	leaq	64(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp51:
	.cfi_escape 0x2e, 0x00
	leaq	160(%rsp), %rdi
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp52:
# %bb.1:                                # %_ZN6thrust13device_vectorIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS_6detail11vector_baseIT_T0_EE.exit
.Ltmp54:
	.cfi_escape 0x2e, 0x00
	leaq	192(%rsp), %rdi
	movq	%r14, %rsi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE
.Ltmp55:
# %bb.2:                                # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS_6detail11vector_baseIT_T0_EE.exit
.Ltmp57:
	.cfi_escape 0x2e, 0x00
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
.Ltmp58:
# %bb.3:
	movq	%rax, 32(%rsp)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 40(%rsp)
	movq	$0, 56(%rsp)
.Ltmp60:
	.cfi_escape 0x2e, 0x00
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
.Ltmp61:
# %bb.4:
	movq	%rax, (%rsp)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rsp)
	movq	$0, 24(%rsp)
	movq	24(%r14), %rsi
	decq	%rsi
.Ltmp63:
	.cfi_escape 0x2e, 0x00
	leaq	96(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
.Ltmp64:
# %bb.5:                                # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit
	movq	24(%r14), %rsi
	decq	%rsi
.Ltmp66:
	.cfi_escape 0x2e, 0x00
	leaq	128(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
.Ltmp67:
# %bb.6:                                # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit57.preheader
	movq	24(%r14), %rax
	decq	%rax
	je	.LBB10_12
# %bb.7:                                # %.lr.ph
	xorl	%ecx, %ecx
.LBB10_8:                               # =>This Inner Loop Header: Depth=1
	movq	8(%r14), %rdx
	movl	4(%rdx,%rcx,4), %edi
	movq	104(%rsp), %rsi
	subl	(%rdx,%rcx,4), %edi
	movl	%edi, (%rsi,%rcx,4)
	testq	%rcx, %rcx
	je	.LBB10_10
# %bb.9:                                #   in Loop: Header=BB10_8 Depth=1
	movq	104(%rsp), %rsi
	movl	(%rsi,%rcx,4), %edx
	decl	%edx
	imull	-4(%rsi,%rcx,4), %edx
	movq	136(%rsp), %rdi
	addl	-4(%rdi,%rcx,4), %edx
	movl	%edx, (%rdi,%rcx,4)
	jmp	.LBB10_11
.LBB10_10:                              #   in Loop: Header=BB10_8 Depth=1
	movq	136(%rsp), %rdx
	movl	$0, (%rdx)
.LBB10_11:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit57
                                        #   in Loop: Header=BB10_8 Depth=1
	incq	%rcx
	cmpq	%rcx, %rax
	jne	.LBB10_8
	jmp	.LBB10_13
.LBB10_12:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit57.preheader._ZN6thrust11host_vectorIiSaIiEEC2Em.exit57._crit_edge_crit_edge
	movq	104(%rsp), %rsi
.LBB10_13:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit57._crit_edge
	movq	120(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp69:
	.cfi_escape 0x2e, 0x00
	leaq	32(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp70:
# %bb.14:                               # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit
	movq	136(%rsp), %rsi
	movq	152(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp71:
	.cfi_escape 0x2e, 0x00
	movq	%rsp, %rdi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp72:
# %bb.15:                               # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit58.preheader
	movq	24(%r14), %rax
	addq	$-3, %rax
	cmpq	$-3, %rax
	ja	.LBB10_21
# %bb.16:                               # %.lr.ph121
	movl	$1, %r13d
	movabsq	$4294968296, %r15               # imm = 0x1000003E8
.LBB10_17:                              # =>This Inner Loop Header: Depth=1
	movq	200(%rsp), %r12
	movq	104(%rsp), %rax
	movl	(%rax,%r13,4), %edx
	decl	%edx
	btsq	$32, %rdx
.Ltmp73:
	.cfi_escape 0x2e, 0x00
	movq	%r15, %rdi
	movl	$1, %esi
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp74:
# %bb.18:                               #   in Loop: Header=BB10_17 Depth=1
	testl	%eax, %eax
	jne	.LBB10_20
# %bb.19:                               #   in Loop: Header=BB10_17 Depth=1
	movq	72(%rsp), %rdi
	movl	88(%rsp), %esi
	movq	168(%rsp), %rdx
	movl	184(%rsp), %ecx
	movq	40(%rsp), %r9
.Ltmp76:
	.cfi_escape 0x2e, 0x10
	movq	%r12, %r8
	pushq	%r13
	.cfi_adjust_cfa_offset 8
	pushq	16(%rsp)
	.cfi_adjust_cfa_offset 8
	callq	_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
.Ltmp77:
.LBB10_20:                              # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit58
                                        #   in Loop: Header=BB10_17 Depth=1
	incq	%r13
	movq	24(%r14), %rax
	decq	%rax
	cmpq	%r13, %rax
	ja	.LBB10_17
.LBB10_21:                              # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit58._crit_edge
	movq	72(%rsp), %rsi
	movq	88(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp79:
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp80:
# %bb.22:                               # %_ZN6thrust11host_vectorIfSaIfEEaSIfNS_16device_allocatorIfEEEERS2_RKNS_6detail11vector_baseIT_T0_EE.exit
	cmpq	$0, 144(%rsp)
	je	.LBB10_24
# %bb.23:
	movq	136(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB10_24:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit
	cmpq	$0, 112(%rsp)
	je	.LBB10_26
# %bb.25:
	movq	104(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB10_26:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit68
	movq	16(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_28
# %bb.27:
	movq	(%rsp), %rax
	movq	8(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp97:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp98:
.LBB10_28:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit
	movq	48(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_30
# %bb.29:
	movq	32(%rsp), %rax
	movq	40(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp100:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp101:
.LBB10_30:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit69
	movq	208(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_32
# %bb.31:
	movq	192(%rsp), %rax
	movq	200(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp103:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp104:
.LBB10_32:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit70
	movq	176(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_34
# %bb.33:
	movq	160(%rsp), %rax
	movq	168(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp106:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp107:
.LBB10_34:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit
	movq	80(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_36
# %bb.35:
	movq	64(%rsp), %rax
	movq	72(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp109:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp110:
.LBB10_36:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit71
	addq	$224, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB10_37:
	.cfi_def_cfa_offset 272
.Ltmp111:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_38:
.Ltmp108:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_39:
.Ltmp105:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_40:
.Ltmp102:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_41:
.Ltmp99:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_43:
.Ltmp68:
	movq	%rax, %rbx
	jmp	.LBB10_54
.LBB10_44:
.Ltmp65:
	movq	%rax, %rbx
	jmp	.LBB10_56
.LBB10_45:
.Ltmp62:
	movq	%rax, %rbx
	jmp	.LBB10_58
.LBB10_46:
.Ltmp59:
	movq	%rax, %rbx
	jmp	.LBB10_60
.LBB10_47:
.Ltmp56:
	movq	%rax, %rbx
	jmp	.LBB10_62
.LBB10_48:
.Ltmp53:
	movq	%rax, %rbx
	jmp	.LBB10_64
.LBB10_49:
.Ltmp81:
	jmp	.LBB10_52
.LBB10_50:
.Ltmp78:
	jmp	.LBB10_52
.LBB10_51:
.Ltmp75:
.LBB10_52:
	movq	%rax, %rbx
	cmpq	$0, 144(%rsp)
	je	.LBB10_54
# %bb.53:
	movq	136(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB10_54:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit73
	cmpq	$0, 112(%rsp)
	je	.LBB10_56
# %bb.55:
	movq	104(%rsp), %rdi
	.cfi_escape 0x2e, 0x00
	callq	_ZdlPv
.LBB10_56:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit75
	movq	16(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_58
# %bb.57:
	movq	(%rsp), %rax
	movq	8(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp82:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp83:
.LBB10_58:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit76
	movq	48(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_60
# %bb.59:
	movq	32(%rsp), %rax
	movq	40(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp85:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp86:
.LBB10_60:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit77
	movq	208(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_62
# %bb.61:
	movq	192(%rsp), %rax
	movq	200(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp88:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp89:
.LBB10_62:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit78
	movq	176(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_64
# %bb.63:
	movq	160(%rsp), %rax
	movq	168(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp91:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp92:
.LBB10_64:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit79
	movq	80(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB10_66
# %bb.65:
	movq	64(%rsp), %rax
	movq	72(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp94:
	.cfi_escape 0x2e, 0x00
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp95:
.LBB10_66:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit80
	.cfi_escape 0x2e, 0x00
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB10_67:
.Ltmp96:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_68:
.Ltmp93:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_69:
.Ltmp90:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_70:
.Ltmp87:
	.cfi_escape 0x2e, 0x00
	jmp	.LBB10_42
.LBB10_71:
.Ltmp84:
	.cfi_escape 0x2e, 0x00
.LBB10_42:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end10:
	.size	_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE, .Lfunc_end10-_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table10:
.Lexception3:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase0-.Lttbaseref0
.Lttbaseref0:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
	.uleb128 .Lfunc_begin3-.Lfunc_begin3    # >> Call Site 1 <<
	.uleb128 .Ltmp51-.Lfunc_begin3          #   Call between .Lfunc_begin3 and .Ltmp51
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp51-.Lfunc_begin3          # >> Call Site 2 <<
	.uleb128 .Ltmp52-.Ltmp51                #   Call between .Ltmp51 and .Ltmp52
	.uleb128 .Ltmp53-.Lfunc_begin3          #     jumps to .Ltmp53
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp54-.Lfunc_begin3          # >> Call Site 3 <<
	.uleb128 .Ltmp55-.Ltmp54                #   Call between .Ltmp54 and .Ltmp55
	.uleb128 .Ltmp56-.Lfunc_begin3          #     jumps to .Ltmp56
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp57-.Lfunc_begin3          # >> Call Site 4 <<
	.uleb128 .Ltmp58-.Ltmp57                #   Call between .Ltmp57 and .Ltmp58
	.uleb128 .Ltmp59-.Lfunc_begin3          #     jumps to .Ltmp59
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp60-.Lfunc_begin3          # >> Call Site 5 <<
	.uleb128 .Ltmp61-.Ltmp60                #   Call between .Ltmp60 and .Ltmp61
	.uleb128 .Ltmp62-.Lfunc_begin3          #     jumps to .Ltmp62
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp63-.Lfunc_begin3          # >> Call Site 6 <<
	.uleb128 .Ltmp64-.Ltmp63                #   Call between .Ltmp63 and .Ltmp64
	.uleb128 .Ltmp65-.Lfunc_begin3          #     jumps to .Ltmp65
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp66-.Lfunc_begin3          # >> Call Site 7 <<
	.uleb128 .Ltmp67-.Ltmp66                #   Call between .Ltmp66 and .Ltmp67
	.uleb128 .Ltmp68-.Lfunc_begin3          #     jumps to .Ltmp68
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp69-.Lfunc_begin3          # >> Call Site 8 <<
	.uleb128 .Ltmp72-.Ltmp69                #   Call between .Ltmp69 and .Ltmp72
	.uleb128 .Ltmp81-.Lfunc_begin3          #     jumps to .Ltmp81
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp73-.Lfunc_begin3          # >> Call Site 9 <<
	.uleb128 .Ltmp74-.Ltmp73                #   Call between .Ltmp73 and .Ltmp74
	.uleb128 .Ltmp75-.Lfunc_begin3          #     jumps to .Ltmp75
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp76-.Lfunc_begin3          # >> Call Site 10 <<
	.uleb128 .Ltmp77-.Ltmp76                #   Call between .Ltmp76 and .Ltmp77
	.uleb128 .Ltmp78-.Lfunc_begin3          #     jumps to .Ltmp78
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp79-.Lfunc_begin3          # >> Call Site 11 <<
	.uleb128 .Ltmp80-.Ltmp79                #   Call between .Ltmp79 and .Ltmp80
	.uleb128 .Ltmp81-.Lfunc_begin3          #     jumps to .Ltmp81
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp97-.Lfunc_begin3          # >> Call Site 12 <<
	.uleb128 .Ltmp98-.Ltmp97                #   Call between .Ltmp97 and .Ltmp98
	.uleb128 .Ltmp99-.Lfunc_begin3          #     jumps to .Ltmp99
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp100-.Lfunc_begin3         # >> Call Site 13 <<
	.uleb128 .Ltmp101-.Ltmp100              #   Call between .Ltmp100 and .Ltmp101
	.uleb128 .Ltmp102-.Lfunc_begin3         #     jumps to .Ltmp102
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp103-.Lfunc_begin3         # >> Call Site 14 <<
	.uleb128 .Ltmp104-.Ltmp103              #   Call between .Ltmp103 and .Ltmp104
	.uleb128 .Ltmp105-.Lfunc_begin3         #     jumps to .Ltmp105
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp106-.Lfunc_begin3         # >> Call Site 15 <<
	.uleb128 .Ltmp107-.Ltmp106              #   Call between .Ltmp106 and .Ltmp107
	.uleb128 .Ltmp108-.Lfunc_begin3         #     jumps to .Ltmp108
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp109-.Lfunc_begin3         # >> Call Site 16 <<
	.uleb128 .Ltmp110-.Ltmp109              #   Call between .Ltmp109 and .Ltmp110
	.uleb128 .Ltmp111-.Lfunc_begin3         #     jumps to .Ltmp111
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp82-.Lfunc_begin3          # >> Call Site 17 <<
	.uleb128 .Ltmp83-.Ltmp82                #   Call between .Ltmp82 and .Ltmp83
	.uleb128 .Ltmp84-.Lfunc_begin3          #     jumps to .Ltmp84
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp85-.Lfunc_begin3          # >> Call Site 18 <<
	.uleb128 .Ltmp86-.Ltmp85                #   Call between .Ltmp85 and .Ltmp86
	.uleb128 .Ltmp87-.Lfunc_begin3          #     jumps to .Ltmp87
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp88-.Lfunc_begin3          # >> Call Site 19 <<
	.uleb128 .Ltmp89-.Ltmp88                #   Call between .Ltmp88 and .Ltmp89
	.uleb128 .Ltmp90-.Lfunc_begin3          #     jumps to .Ltmp90
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp91-.Lfunc_begin3          # >> Call Site 20 <<
	.uleb128 .Ltmp92-.Ltmp91                #   Call between .Ltmp91 and .Ltmp92
	.uleb128 .Ltmp93-.Lfunc_begin3          #     jumps to .Ltmp93
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp94-.Lfunc_begin3          # >> Call Site 21 <<
	.uleb128 .Ltmp95-.Ltmp94                #   Call between .Ltmp94 and .Ltmp95
	.uleb128 .Ltmp96-.Lfunc_begin3          #     jumps to .Ltmp96
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp95-.Lfunc_begin3          # >> Call Site 22 <<
	.uleb128 .Lfunc_end10-.Ltmp95           #   Call between .Ltmp95 and .Lfunc_end10
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end3:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase0:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i # -- Begin function _Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
	.type	_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i,@function
_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i: # @_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$160, %rsp
	.cfi_def_cfa_offset 208
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	56(%rsp), %rax
	movq	%rdi, (%rax)
	leaq	48(%rsp), %rdi
	movq	%rsi, (%rdi)
	leaq	40(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	32(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	24(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	16(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	208(%rsp), %rax
	movq	%rax, 48(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rsp, %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z17computeLayerDeltaPfS_S_PiS0_S0_i, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$176, %rsp
	.cfi_adjust_cfa_offset -176
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end11:
	.size	_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i, .Lfunc_end11-_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
	.cfi_endproc
                                        # -- End function
	.globl	_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i # -- Begin function _Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.type	_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i,@function
_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i: # @_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$160, %rsp
	.cfi_def_cfa_offset 208
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	56(%rsp), %rax
	movq	%rdi, (%rax)
	leaq	48(%rsp), %rdi
	movq	%rsi, (%rdi)
	leaq	40(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	32(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	24(%rsp), %rcx
	movq	%r8, (%rcx)
	leaq	16(%rsp), %r8
	movq	%r9, (%r8)
	leaq	96(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	movq	%rcx, 32(%rbx)
	movq	%r8, 40(%rbx)
	leaq	208(%rsp), %rax
	movq	%rax, 48(%rbx)
	leaq	80(%rsp), %r14
	leaq	64(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rsp, %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$176, %rsp
	.cfi_adjust_cfa_offset -176
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end12:
	.size	_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i, .Lfunc_end12-_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.cfi_endproc
                                        # -- End function
	.globl	_Z28__device_stub__updateWeightsPfS_i # -- Begin function _Z28__device_stub__updateWeightsPfS_i
	.type	_Z28__device_stub__updateWeightsPfS_i,@function
_Z28__device_stub__updateWeightsPfS_i:  # @_Z28__device_stub__updateWeightsPfS_i
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$112, %rsp
	.cfi_def_cfa_offset 160
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	40(%rsp), %rax
	movq	%rdi, (%rax)
	leaq	32(%rsp), %rcx
	movq	%rsi, (%rcx)
	leaq	12(%rsp), %rsi
	movl	%edx, (%rsi)
	leaq	80(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rcx, 8(%rbx)
	movq	%rsi, 16(%rbx)
	leaq	64(%rsp), %r14
	leaq	48(%rsp), %r15
	leaq	24(%rsp), %r12
	leaq	16(%rsp), %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z13updateWeightsPfS_i, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$128, %rsp
	.cfi_adjust_cfa_offset -128
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end13:
	.size	_Z28__device_stub__updateWeightsPfS_i, .Lfunc_end13-_Z28__device_stub__updateWeightsPfS_i
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function _Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_
.LCPI14_0:
	.zero	16
	.text
	.globl	_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_
	.type	_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_,@function
_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_: # @_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_
.Lfunc_begin4:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception4
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$296, %rsp                      # imm = 0x128
	.cfi_def_cfa_offset 352
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%r9, %r15
	movq	%r8, %r14
	movq	%rcx, %r12
	movq	%rsi, %rbx
	movl	%edi, %ebp
	leaq	200(%rsp), %rdi
	movq	%rdx, %rsi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp112:
	leaq	104(%rsp), %rdi
	movq	%rbx, %rsi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp113:
# %bb.1:                                # %_ZN6thrust13device_vectorIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS_6detail11vector_baseIT_T0_EE.exit
.Ltmp115:
	leaq	168(%rsp), %rdi
	movq	%r12, %rsi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp116:
# %bb.2:                                # %_ZN6thrust13device_vectorIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS_6detail11vector_baseIT_T0_EE.exit153
.Ltmp118:
	leaq	136(%rsp), %rdi
	movq	%r14, %rsi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE
.Ltmp119:
# %bb.3:                                # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS_6detail11vector_baseIT_T0_EE.exit
.Ltmp121:
	leaq	264(%rsp), %rdi
	movq	%r15, %rsi
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Ltmp122:
# %bb.4:                                # %_ZN6thrust13device_vectorIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS_6detail11vector_baseIT_T0_EE.exit154
.Ltmp124:
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
.Ltmp125:
# %bb.5:
	movq	%rax, 40(%rsp)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 48(%rsp)
	movq	$0, 64(%rsp)
.Ltmp127:
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
.Ltmp128:
# %bb.6:
	movq	%rax, 8(%rsp)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movq	$0, 32(%rsp)
	movq	24(%r14), %rsi
	decq	%rsi
.Ltmp130:
	leaq	72(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
.Ltmp131:
# %bb.7:                                # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit
	movq	24(%r14), %rsi
	decq	%rsi
.Ltmp133:
	leaq	232(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
.Ltmp134:
# %bb.8:                                # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit156.preheader
	movq	24(%r14), %rax
	decq	%rax
	je	.LBB14_14
# %bb.9:                                # %.lr.ph
	xorl	%ecx, %ecx
.LBB14_10:                              # =>This Inner Loop Header: Depth=1
	movq	8(%r14), %rdx
	movl	4(%rdx,%rcx,4), %edi
	movq	80(%rsp), %rsi
	subl	(%rdx,%rcx,4), %edi
	movl	%edi, (%rsi,%rcx,4)
	testq	%rcx, %rcx
	je	.LBB14_12
# %bb.11:                               #   in Loop: Header=BB14_10 Depth=1
	movq	80(%rsp), %rsi
	movl	(%rsi,%rcx,4), %edx
	decl	%edx
	imull	-4(%rsi,%rcx,4), %edx
	movq	240(%rsp), %rdi
	addl	-4(%rdi,%rcx,4), %edx
	movl	%edx, (%rdi,%rcx,4)
	jmp	.LBB14_13
.LBB14_12:                              #   in Loop: Header=BB14_10 Depth=1
	movq	240(%rsp), %rdx
	movl	$0, (%rdx)
.LBB14_13:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit156
                                        #   in Loop: Header=BB14_10 Depth=1
	incq	%rcx
	cmpq	%rcx, %rax
	jne	.LBB14_10
	jmp	.LBB14_15
.LBB14_14:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit156.preheader._ZN6thrust11host_vectorIiSaIiEEC2Em.exit156._crit_edge_crit_edge
	movq	80(%rsp), %rsi
.LBB14_15:                              # %_ZN6thrust11host_vectorIiSaIiEEC2Em.exit156._crit_edge
	movq	96(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp136:
	leaq	40(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp137:
# %bb.16:                               # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit
	movq	240(%rsp), %rsi
	movq	256(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp138:
	leaq	8(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp139:
# %bb.17:                               # %_ZN6thrust13device_vectorIiNS_16device_allocatorIiEEEaSIiSaIiEEERS3_RKNS_6detail11vector_baseIT_T0_EE.exit157
.Ltmp140:
	movabsq	$4294968296, %rdi               # imm = 0x1000003E8
	movabsq	$4294967306, %rdx               # imm = 0x10000000A
	movl	$1, %esi
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp141:
# %bb.18:
	testl	%eax, %eax
	jne	.LBB14_20
# %bb.19:
	movq	176(%rsp), %rdi
	movq	208(%rsp), %rsi
	movq	144(%rsp), %rcx
.Ltmp143:
	movl	%ebp, %edx
	callq	_Z34__device_stub__computeOutputDelta2PfPKfiPKi
.Ltmp144:
.LBB14_20:
	movabsq	$4294967296, %r12               # imm = 0x100000000
	movq	24(%r14), %rax
	leal	-3(%rax), %ecx
	testl	%ecx, %ecx
	jle	.LBB14_27
# %bb.21:                               # %.lr.ph285
	movl	%ecx, %r13d
	movabsq	$4294968296, %r15               # imm = 0x1000003E8
.LBB14_22:                              # =>This Inner Loop Header: Depth=1
	movq	80(%rsp), %rax
	movl	(%rax,%r13,4), %edx
	decl	%edx
	orq	%r12, %rdx
.Ltmp146:
	movq	%r15, %rdi
	movl	$1, %esi
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp147:
# %bb.23:                               #   in Loop: Header=BB14_22 Depth=1
	testl	%eax, %eax
	jne	.LBB14_25
# %bb.24:                               #   in Loop: Header=BB14_22 Depth=1
	movq	176(%rsp), %rdi
	movq	112(%rsp), %rsi
	movq	208(%rsp), %rdx
	movq	144(%rsp), %rcx
	movq	48(%rsp), %r8
	movq	16(%rsp), %r9
.Ltmp149:
	movl	%r13d, (%rsp)
	callq	_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
.Ltmp150:
.LBB14_25:                              #   in Loop: Header=BB14_22 Depth=1
	leaq	-1(%r13), %rax
	cmpq	$1, %r13
	movq	%rax, %r13
	jg	.LBB14_22
# %bb.26:                               # %.preheader.loopexit
	movq	24(%r14), %rax
.LBB14_27:                              # %.preheader
	addq	$-3, %rax
	cmpq	$-3, %rax
	ja	.LBB14_33
# %bb.28:                               # %.lr.ph287
	movl	$1, %r13d
	movabsq	$4294968296, %r15               # imm = 0x1000003E8
.LBB14_29:                              # =>This Inner Loop Header: Depth=1
	movq	80(%rsp), %rax
	movl	(%rax,%r13,4), %edx
	decl	%edx
	orq	%r12, %rdx
.Ltmp152:
	movq	%r15, %rdi
	movl	$1, %esi
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp153:
# %bb.30:                               #   in Loop: Header=BB14_29 Depth=1
	testl	%eax, %eax
	jne	.LBB14_32
# %bb.31:                               #   in Loop: Header=BB14_29 Depth=1
	movq	272(%rsp), %rdi
	movq	176(%rsp), %rsi
	movq	208(%rsp), %rdx
	movq	144(%rsp), %rcx
	movq	48(%rsp), %r8
	movq	16(%rsp), %r9
.Ltmp155:
	movl	%r13d, (%rsp)
	callq	_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
.Ltmp156:
.LBB14_32:                              #   in Loop: Header=BB14_29 Depth=1
	incq	%r13
	movq	24(%r14), %rax
	decq	%rax
	cmpq	%r13, %rax
	ja	.LBB14_29
.LBB14_33:                              # %._crit_edge
	movq	24(%rbx), %rax
	shrq	$3, %rax
	movabsq	$2361183241434822607, %rcx      # imm = 0x20C49BA5E353F7CF
	mulq	%rcx
	shrq	$4, %rdx
	leal	1(%rdx), %edi
	orq	%r12, %rdi
.Ltmp158:
	movabsq	$4294968296, %rdx               # imm = 0x1000003E8
	movl	$1, %esi
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp159:
# %bb.34:
	testl	%eax, %eax
	jne	.LBB14_36
# %bb.35:
	movq	112(%rsp), %rdi
	movq	272(%rsp), %rsi
	movl	24(%rbx), %edx
.Ltmp160:
	callq	_Z28__device_stub__updateWeightsPfS_i
.Ltmp161:
.LBB14_36:
	movq	112(%rsp), %rsi
	movq	128(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp163:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE
.Ltmp164:
# %bb.37:                               # %_ZN6thrust11host_vectorIfSaIfEEaSIfNS_16device_allocatorIfEEEERS2_RKNS_6detail11vector_baseIT_T0_EE.exit
	cmpq	$0, 248(%rsp)
	je	.LBB14_39
# %bb.38:
	movq	240(%rsp), %rdi
	callq	_ZdlPv
.LBB14_39:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit
	cmpq	$0, 88(%rsp)
	je	.LBB14_41
# %bb.40:
	movq	80(%rsp), %rdi
	callq	_ZdlPv
.LBB14_41:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit191
	movq	24(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_43
# %bb.42:
	movq	8(%rsp), %rax
	movq	16(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp187:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp188:
.LBB14_43:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit
	movq	56(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_45
# %bb.44:
	movq	40(%rsp), %rax
	movq	48(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp190:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp191:
.LBB14_45:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit192
	movq	280(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_47
# %bb.46:
	movq	264(%rsp), %rax
	movq	272(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp193:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp194:
.LBB14_47:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit
	movq	152(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_49
# %bb.48:
	movq	136(%rsp), %rax
	movq	144(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp196:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp197:
.LBB14_49:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit193
	movq	184(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_51
# %bb.50:
	movq	168(%rsp), %rax
	movq	176(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp199:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp200:
.LBB14_51:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit194
	movq	120(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_53
# %bb.52:
	movq	104(%rsp), %rax
	movq	112(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp202:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp203:
.LBB14_53:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit195
	movq	216(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_55
# %bb.54:
	movq	200(%rsp), %rax
	movq	208(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp205:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp206:
.LBB14_55:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit196
	addq	$296, %rsp                      # imm = 0x128
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB14_56:
	.cfi_def_cfa_offset 352
.Ltmp162:
	jmp	.LBB14_80
.LBB14_57:
.Ltmp145:
	jmp	.LBB14_80
.LBB14_58:
.Ltmp207:
	jmp	.LBB14_65
.LBB14_59:
.Ltmp204:
	jmp	.LBB14_65
.LBB14_60:
.Ltmp201:
	jmp	.LBB14_65
.LBB14_61:
.Ltmp198:
	jmp	.LBB14_65
.LBB14_62:
.Ltmp195:
	jmp	.LBB14_65
.LBB14_63:
.Ltmp192:
	jmp	.LBB14_65
.LBB14_64:
.Ltmp189:
	jmp	.LBB14_65
.LBB14_66:
.Ltmp135:
	movq	%rax, %rbx
	jmp	.LBB14_82
.LBB14_67:
.Ltmp132:
	movq	%rax, %rbx
	jmp	.LBB14_84
.LBB14_68:
.Ltmp129:
	movq	%rax, %rbx
	jmp	.LBB14_86
.LBB14_69:
.Ltmp126:
	movq	%rax, %rbx
	jmp	.LBB14_88
.LBB14_70:
.Ltmp123:
	movq	%rax, %rbx
	jmp	.LBB14_90
.LBB14_71:
.Ltmp120:
	movq	%rax, %rbx
	jmp	.LBB14_92
.LBB14_72:
.Ltmp117:
	movq	%rax, %rbx
	jmp	.LBB14_94
.LBB14_73:
.Ltmp114:
	movq	%rax, %rbx
	jmp	.LBB14_96
.LBB14_74:
.Ltmp165:
	jmp	.LBB14_80
.LBB14_75:                              # %.loopexit.split-lp.loopexit.split-lp
.Ltmp142:
	jmp	.LBB14_80
.LBB14_76:
.Ltmp157:
	jmp	.LBB14_80
.LBB14_77:
.Ltmp151:
	jmp	.LBB14_80
.LBB14_78:                              # %.loopexit
.Ltmp154:
	jmp	.LBB14_80
.LBB14_79:                              # %.loopexit.split-lp.loopexit
.Ltmp148:
.LBB14_80:                              # %.loopexit.split-lp
	movq	%rax, %rbx
	cmpq	$0, 248(%rsp)
	je	.LBB14_82
# %bb.81:
	movq	240(%rsp), %rdi
	callq	_ZdlPv
.LBB14_82:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit198
	cmpq	$0, 88(%rsp)
	je	.LBB14_84
# %bb.83:
	movq	80(%rsp), %rdi
	callq	_ZdlPv
.LBB14_84:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit200
	movq	24(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_86
# %bb.85:
	movq	8(%rsp), %rax
	movq	16(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp166:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp167:
.LBB14_86:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit201
	movq	56(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_88
# %bb.87:
	movq	40(%rsp), %rax
	movq	48(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp169:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp170:
.LBB14_88:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit202
	movq	280(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_90
# %bb.89:
	movq	264(%rsp), %rax
	movq	272(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp172:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp173:
.LBB14_90:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit203
	movq	152(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_92
# %bb.91:
	movq	136(%rsp), %rax
	movq	144(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp175:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp176:
.LBB14_92:                              # %_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEED2Ev.exit204
	movq	184(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_94
# %bb.93:
	movq	168(%rsp), %rax
	movq	176(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp178:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp179:
.LBB14_94:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit205
	movq	120(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_96
# %bb.95:
	movq	104(%rsp), %rax
	movq	112(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp181:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp182:
.LBB14_96:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit206
	movq	216(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB14_98
# %bb.97:
	movq	200(%rsp), %rax
	movq	208(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp184:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp185:
.LBB14_98:                              # %_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEED2Ev.exit207
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB14_99:
.Ltmp186:
	jmp	.LBB14_65
.LBB14_100:
.Ltmp183:
	jmp	.LBB14_65
.LBB14_101:
.Ltmp180:
	jmp	.LBB14_65
.LBB14_102:
.Ltmp177:
	jmp	.LBB14_65
.LBB14_103:
.Ltmp174:
	jmp	.LBB14_65
.LBB14_104:
.Ltmp171:
	jmp	.LBB14_65
.LBB14_105:
.Ltmp168:
.LBB14_65:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end14:
	.size	_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_, .Lfunc_end14-_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table14:
.Lexception4:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase1-.Lttbaseref1
.Lttbaseref1:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end4-.Lcst_begin4
.Lcst_begin4:
	.uleb128 .Lfunc_begin4-.Lfunc_begin4    # >> Call Site 1 <<
	.uleb128 .Ltmp112-.Lfunc_begin4         #   Call between .Lfunc_begin4 and .Ltmp112
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp112-.Lfunc_begin4         # >> Call Site 2 <<
	.uleb128 .Ltmp113-.Ltmp112              #   Call between .Ltmp112 and .Ltmp113
	.uleb128 .Ltmp114-.Lfunc_begin4         #     jumps to .Ltmp114
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp115-.Lfunc_begin4         # >> Call Site 3 <<
	.uleb128 .Ltmp116-.Ltmp115              #   Call between .Ltmp115 and .Ltmp116
	.uleb128 .Ltmp117-.Lfunc_begin4         #     jumps to .Ltmp117
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp118-.Lfunc_begin4         # >> Call Site 4 <<
	.uleb128 .Ltmp119-.Ltmp118              #   Call between .Ltmp118 and .Ltmp119
	.uleb128 .Ltmp120-.Lfunc_begin4         #     jumps to .Ltmp120
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp121-.Lfunc_begin4         # >> Call Site 5 <<
	.uleb128 .Ltmp122-.Ltmp121              #   Call between .Ltmp121 and .Ltmp122
	.uleb128 .Ltmp123-.Lfunc_begin4         #     jumps to .Ltmp123
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp124-.Lfunc_begin4         # >> Call Site 6 <<
	.uleb128 .Ltmp125-.Ltmp124              #   Call between .Ltmp124 and .Ltmp125
	.uleb128 .Ltmp126-.Lfunc_begin4         #     jumps to .Ltmp126
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp127-.Lfunc_begin4         # >> Call Site 7 <<
	.uleb128 .Ltmp128-.Ltmp127              #   Call between .Ltmp127 and .Ltmp128
	.uleb128 .Ltmp129-.Lfunc_begin4         #     jumps to .Ltmp129
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp130-.Lfunc_begin4         # >> Call Site 8 <<
	.uleb128 .Ltmp131-.Ltmp130              #   Call between .Ltmp130 and .Ltmp131
	.uleb128 .Ltmp132-.Lfunc_begin4         #     jumps to .Ltmp132
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp133-.Lfunc_begin4         # >> Call Site 9 <<
	.uleb128 .Ltmp134-.Ltmp133              #   Call between .Ltmp133 and .Ltmp134
	.uleb128 .Ltmp135-.Lfunc_begin4         #     jumps to .Ltmp135
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp136-.Lfunc_begin4         # >> Call Site 10 <<
	.uleb128 .Ltmp141-.Ltmp136              #   Call between .Ltmp136 and .Ltmp141
	.uleb128 .Ltmp142-.Lfunc_begin4         #     jumps to .Ltmp142
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp143-.Lfunc_begin4         # >> Call Site 11 <<
	.uleb128 .Ltmp144-.Ltmp143              #   Call between .Ltmp143 and .Ltmp144
	.uleb128 .Ltmp145-.Lfunc_begin4         #     jumps to .Ltmp145
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp146-.Lfunc_begin4         # >> Call Site 12 <<
	.uleb128 .Ltmp147-.Ltmp146              #   Call between .Ltmp146 and .Ltmp147
	.uleb128 .Ltmp148-.Lfunc_begin4         #     jumps to .Ltmp148
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp149-.Lfunc_begin4         # >> Call Site 13 <<
	.uleb128 .Ltmp150-.Ltmp149              #   Call between .Ltmp149 and .Ltmp150
	.uleb128 .Ltmp151-.Lfunc_begin4         #     jumps to .Ltmp151
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp152-.Lfunc_begin4         # >> Call Site 14 <<
	.uleb128 .Ltmp153-.Ltmp152              #   Call between .Ltmp152 and .Ltmp153
	.uleb128 .Ltmp154-.Lfunc_begin4         #     jumps to .Ltmp154
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp155-.Lfunc_begin4         # >> Call Site 15 <<
	.uleb128 .Ltmp156-.Ltmp155              #   Call between .Ltmp155 and .Ltmp156
	.uleb128 .Ltmp157-.Lfunc_begin4         #     jumps to .Ltmp157
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp158-.Lfunc_begin4         # >> Call Site 16 <<
	.uleb128 .Ltmp159-.Ltmp158              #   Call between .Ltmp158 and .Ltmp159
	.uleb128 .Ltmp165-.Lfunc_begin4         #     jumps to .Ltmp165
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp160-.Lfunc_begin4         # >> Call Site 17 <<
	.uleb128 .Ltmp161-.Ltmp160              #   Call between .Ltmp160 and .Ltmp161
	.uleb128 .Ltmp162-.Lfunc_begin4         #     jumps to .Ltmp162
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp163-.Lfunc_begin4         # >> Call Site 18 <<
	.uleb128 .Ltmp164-.Ltmp163              #   Call between .Ltmp163 and .Ltmp164
	.uleb128 .Ltmp165-.Lfunc_begin4         #     jumps to .Ltmp165
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp187-.Lfunc_begin4         # >> Call Site 19 <<
	.uleb128 .Ltmp188-.Ltmp187              #   Call between .Ltmp187 and .Ltmp188
	.uleb128 .Ltmp189-.Lfunc_begin4         #     jumps to .Ltmp189
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp190-.Lfunc_begin4         # >> Call Site 20 <<
	.uleb128 .Ltmp191-.Ltmp190              #   Call between .Ltmp190 and .Ltmp191
	.uleb128 .Ltmp192-.Lfunc_begin4         #     jumps to .Ltmp192
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp193-.Lfunc_begin4         # >> Call Site 21 <<
	.uleb128 .Ltmp194-.Ltmp193              #   Call between .Ltmp193 and .Ltmp194
	.uleb128 .Ltmp195-.Lfunc_begin4         #     jumps to .Ltmp195
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp196-.Lfunc_begin4         # >> Call Site 22 <<
	.uleb128 .Ltmp197-.Ltmp196              #   Call between .Ltmp196 and .Ltmp197
	.uleb128 .Ltmp198-.Lfunc_begin4         #     jumps to .Ltmp198
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp199-.Lfunc_begin4         # >> Call Site 23 <<
	.uleb128 .Ltmp200-.Ltmp199              #   Call between .Ltmp199 and .Ltmp200
	.uleb128 .Ltmp201-.Lfunc_begin4         #     jumps to .Ltmp201
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp202-.Lfunc_begin4         # >> Call Site 24 <<
	.uleb128 .Ltmp203-.Ltmp202              #   Call between .Ltmp202 and .Ltmp203
	.uleb128 .Ltmp204-.Lfunc_begin4         #     jumps to .Ltmp204
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp205-.Lfunc_begin4         # >> Call Site 25 <<
	.uleb128 .Ltmp206-.Ltmp205              #   Call between .Ltmp205 and .Ltmp206
	.uleb128 .Ltmp207-.Lfunc_begin4         #     jumps to .Ltmp207
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp166-.Lfunc_begin4         # >> Call Site 26 <<
	.uleb128 .Ltmp167-.Ltmp166              #   Call between .Ltmp166 and .Ltmp167
	.uleb128 .Ltmp168-.Lfunc_begin4         #     jumps to .Ltmp168
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp169-.Lfunc_begin4         # >> Call Site 27 <<
	.uleb128 .Ltmp170-.Ltmp169              #   Call between .Ltmp169 and .Ltmp170
	.uleb128 .Ltmp171-.Lfunc_begin4         #     jumps to .Ltmp171
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp172-.Lfunc_begin4         # >> Call Site 28 <<
	.uleb128 .Ltmp173-.Ltmp172              #   Call between .Ltmp172 and .Ltmp173
	.uleb128 .Ltmp174-.Lfunc_begin4         #     jumps to .Ltmp174
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp175-.Lfunc_begin4         # >> Call Site 29 <<
	.uleb128 .Ltmp176-.Ltmp175              #   Call between .Ltmp175 and .Ltmp176
	.uleb128 .Ltmp177-.Lfunc_begin4         #     jumps to .Ltmp177
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp178-.Lfunc_begin4         # >> Call Site 30 <<
	.uleb128 .Ltmp179-.Ltmp178              #   Call between .Ltmp178 and .Ltmp179
	.uleb128 .Ltmp180-.Lfunc_begin4         #     jumps to .Ltmp180
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp181-.Lfunc_begin4         # >> Call Site 31 <<
	.uleb128 .Ltmp182-.Ltmp181              #   Call between .Ltmp181 and .Ltmp182
	.uleb128 .Ltmp183-.Lfunc_begin4         #     jumps to .Ltmp183
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp184-.Lfunc_begin4         # >> Call Site 32 <<
	.uleb128 .Ltmp185-.Ltmp184              #   Call between .Ltmp184 and .Ltmp185
	.uleb128 .Ltmp186-.Lfunc_begin4         #     jumps to .Ltmp186
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp185-.Lfunc_begin4         # >> Call Site 33 <<
	.uleb128 .Lfunc_end14-.Ltmp185          #   Call between .Ltmp185 and .Lfunc_end14
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end4:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase1:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE # -- Begin function _Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE
	.type	_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE,@function
_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE: # @_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE
.Lfunc_begin5:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception5
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	subq	$72, %rsp
	.cfi_def_cfa_offset 96
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r14
	movq	%rsi, %rbx
	movq	%rdi, %rsi
	leaq	40(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp208:
	leaq	8(%rsp), %rdi
	movq	%r14, %rsi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
.Ltmp209:
# %bb.1:                                # %_ZN6thrust11host_vectorIiSaIiEEC2ERKS2_.exit
.Ltmp211:
	leaq	40(%rsp), %rdi
	leaq	8(%rsp), %rdx
	movq	%rbx, %rsi
	callq	_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
.Ltmp212:
# %bb.2:
	cmpq	$0, 24(%rsp)
	je	.LBB15_4
# %bb.3:
	movq	16(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
.LBB15_4:                               # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit
	cmpq	$0, 56(%rsp)
	je	.LBB15_6
# %bb.5:
	movq	48(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 48(%rsp)
.LBB15_6:                               # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit
	movq	8(%r14), %rax
	movq	24(%r14), %rcx
	movslq	-8(%rax,%rcx,4), %rsi
	movslq	-4(%rax,%rcx,4), %rcx
                                        # implicit-def: $eax
	cmpl	%ecx, %esi
	jge	.LBB15_9
# %bb.7:                                # %.lr.ph
	leaq	(,%rsi,4), %rdx
	addq	8(%rbx), %rdx
	subq	%rsi, %rcx
	xorps	%xmm0, %xmm0
	xorl	%esi, %esi
                                        # implicit-def: $eax
.LBB15_8:                               # =>This Inner Loop Header: Depth=1
	movss	(%rdx,%rsi,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
	ucomiss	%xmm0, %xmm1
	cmoval	%esi, %eax
	maxss	%xmm0, %xmm1
	incq	%rsi
	movaps	%xmm1, %xmm0
	cmpq	%rsi, %rcx
	jne	.LBB15_8
.LBB15_9:                               # %._crit_edge
	addq	$72, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.LBB15_11:
	.cfi_def_cfa_offset 96
.Ltmp213:
	movq	%rax, %rbx
	cmpq	$0, 24(%rsp)
	je	.LBB15_13
# %bb.12:
	movq	16(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	jmp	.LBB15_13
.LBB15_10:
.Ltmp210:
	movq	%rax, %rbx
.LBB15_13:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit16
	cmpq	$0, 56(%rsp)
	je	.LBB15_15
# %bb.14:
	movq	48(%rsp), %rdi
	callq	_ZdlPv
.LBB15_15:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit18
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end15:
	.size	_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE, .Lfunc_end15-_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table15:
.Lexception5:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end5-.Lcst_begin5
.Lcst_begin5:
	.uleb128 .Lfunc_begin5-.Lfunc_begin5    # >> Call Site 1 <<
	.uleb128 .Ltmp208-.Lfunc_begin5         #   Call between .Lfunc_begin5 and .Ltmp208
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp208-.Lfunc_begin5         # >> Call Site 2 <<
	.uleb128 .Ltmp209-.Ltmp208              #   Call between .Ltmp208 and .Ltmp209
	.uleb128 .Ltmp210-.Lfunc_begin5         #     jumps to .Ltmp210
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp211-.Lfunc_begin5         # >> Call Site 3 <<
	.uleb128 .Ltmp212-.Ltmp211              #   Call between .Ltmp211 and .Ltmp212
	.uleb128 .Ltmp213-.Lfunc_begin5         #     jumps to .Ltmp213
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp212-.Lfunc_begin5         # >> Call Site 4 <<
	.uleb128 .Lfunc_end15-.Ltmp212          #   Call between .Ltmp212 and .Lfunc_end15
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end5:
	.p2align	2, 0x0
                                        # -- End function
	.section	.rodata.cst16,"aM",@progbits,16
	.p2align	4, 0x0                          # -- Begin function main
.LCPI16_0:
	.long	784                             # 0x310
	.long	30                              # 0x1e
	.long	40                              # 0x28
	.long	10                              # 0xa
.LCPI16_4:
	.zero	16
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0
.LCPI16_1:
	.quad	0x412e848000000000              # double 1.0E+6
	.section	.rodata.cst4,"aM",@progbits,4
	.p2align	2, 0x0
.LCPI16_2:
	.long	0x3f800000                      # float 1
.LCPI16_3:
	.long	0x42c80000                      # float 100
	.text
	.globl	main
	.type	main,@function
main:                                   # @main
.Lfunc_begin6:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception6
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$952, %rsp                      # imm = 0x3B8
	.cfi_def_cfa_offset 1008
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	cmpl	$5, %edi
	jne	.LBB16_134
# %bb.1:
	movq	%rsi, %rbx
	movq	8(%rsi), %rsi
	leaq	896(%rsp), %rdi
	leaq	320(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	movq	16(%rbx), %rsi
.Ltmp214:
	leaq	864(%rsp), %rdi
	leaq	320(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp215:
# %bb.2:
	movq	24(%rbx), %rsi
.Ltmp217:
	leaq	832(%rsp), %rdi
	leaq	320(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp218:
# %bb.3:
	movq	32(%rbx), %rsi
.Ltmp220:
	leaq	800(%rsp), %rdi
	leaq	320(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp221:
# %bb.4:
	leaq	784(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	896(%rsp), %rsi
	movq	904(%rsp), %rdx
	addq	%rsi, %rdx
.Ltmp223:
	leaq	768(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp224:
# %bb.5:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit
.Ltmp226:
	leaq	616(%rsp), %rdi
	leaq	768(%rsp), %rsi
	callq	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp227:
# %bb.6:
	movq	768(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB16_8
# %bb.7:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB16_8:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	leaq	752(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	864(%rsp), %rsi
	movq	872(%rsp), %rdx
	addq	%rsi, %rdx
.Ltmp229:
	leaq	736(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp230:
# %bb.9:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit120
.Ltmp232:
	leaq	736(%rsp), %rdi
	callq	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	movq	%rax, 8(%rsp)                   # 8-byte Spill
.Ltmp233:
# %bb.10:
	movq	736(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB16_12
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i121
	callq	_ZdlPv
.LBB16_12:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit123
	leaq	720(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	832(%rsp), %rsi
	movq	840(%rsp), %rdx
	addq	%rsi, %rdx
.Ltmp235:
	leaq	704(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp236:
# %bb.13:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit124
.Ltmp238:
	leaq	584(%rsp), %rdi
	leaq	704(%rsp), %rsi
	callq	_Z10read_imageNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp239:
# %bb.14:
	movq	704(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB16_16
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i125
	callq	_ZdlPv
.LBB16_16:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit127
	leaq	688(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	800(%rsp), %rsi
	movq	808(%rsp), %rdx
	addq	%rsi, %rdx
.Ltmp241:
	leaq	672(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp242:
# %bb.17:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit128
.Ltmp244:
	leaq	672(%rsp), %rdi
	callq	_Z10read_labelNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	movq	%rax, 56(%rsp)                  # 8-byte Spill
.Ltmp245:
# %bb.18:
	movq	672(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB16_20
# %bb.19:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i129
	callq	_ZdlPv
.LBB16_20:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit131
.Ltmp247:
	movl	$16, %edi
	callq	_Znwm
.Ltmp248:
# %bb.21:
	leaq	928(%rsp), %rsi
	movq	%rax, (%rsi)
	movq	%rax, %rcx
	addq	$16, %rcx
	movq	%rcx, 16(%rsi)
	movq	%rcx, 8(%rsi)
	movapd	.LCPI16_0(%rip), %xmm0          # xmm0 = [784,30,40,10]
	movupd	%xmm0, (%rax)
.Ltmp250:
	leaq	648(%rsp), %rdi
	callq	_ZNSt6vectorIiSaIiEEC2ERKS1_
.Ltmp251:
# %bb.22:
.Ltmp253:
	leaq	320(%rsp), %rdi
	leaq	648(%rsp), %rsi
	callq	_Z23InitializeNeuralNetworkSt6vectorIiSaIiEE
.Ltmp254:
# %bb.23:
	movq	648(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB16_25
# %bb.24:
	callq	_ZdlPv
.LBB16_25:                              # %_ZNSt6vectorIiSaIiEED2Ev.exit
.Ltmp256:
	movl	$_ZSt4cout, %edi
	movl	$.L.str.2, %esi
	movl	$37, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp257:
# %bb.26:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
.Ltmp258:
	movl	$_ZSt4cout, %edi
	movl	$1000, %esi                     # imm = 0x3E8
	callq	_ZNSolsEi
.Ltmp259:
# %bb.27:
.Ltmp260:
	movq	%rax, %rbx
	movl	$.L.str.3, %esi
	movl	$5, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp261:
# %bb.28:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit132
.Ltmp262:
	movq	%rbx, %rdi
	movl	$1000, %esi                     # imm = 0x3E8
	callq	_ZNSolsEi
.Ltmp263:
# %bb.29:
.Ltmp264:
	movq	%rax, %rbx
	movl	$.L.str.4, %esi
	movl	$8, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp265:
# %bb.30:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit133
	movq	(%rbx), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
.Ltmp266:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp267:
# %bb.31:                               # %.noexc
.Ltmp268:
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
.Ltmp269:
# %bb.32:                               # %.noexc250
.Ltmp270:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp271:
# %bb.33:                               # %_ZNSolsEPFRSoS_E.exit
	imulq	$1000, 416(%rsp), %rsi          # imm = 0x3E8
.Ltmp273:
	leaq	24(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
.Ltmp274:
# %bb.34:                               # %_ZN6thrust11host_vectorIfSaIfEEC2Em.exit
	imulq	$1000, 448(%rsp), %rsi          # imm = 0x3E8
.Ltmp276:
	leaq	552(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
.Ltmp277:
# %bb.35:                               # %_ZN6thrust11host_vectorIfSaIfEEC2Em.exit134
	imulq	$1000, 512(%rsp), %rsi          # imm = 0x3E8
.Ltmp279:
	leaq	520(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
.Ltmp280:
# %bb.36:                               # %_ZN6thrust11host_vectorIfSaIfEEC2Em.exit135
	leaq	392(%rsp), %r14
	xorl	%ebx, %ebx
	movl	$startwtime, %edi
	xorl	%esi, %esi
	callq	gettimeofday
	movq	-8(%r14), %rax
	movslq	-72(%r14), %rcx
.LBB16_37:                              # %.preheader276
                                        # =>This Loop Header: Depth=1
                                        #     Child Loop BB16_39 Depth 2
	cmpq	$2, %rax
	jb	.LBB16_40
# %bb.38:                               # %.lr.ph.preheader
                                        #   in Loop: Header=BB16_37 Depth=1
	movl	$1, %edx
	movslq	%ebx, %rsi
.LBB16_39:                              # %.lr.ph
                                        #   Parent Loop BB16_37 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	movq	368(%rsp), %rdi
	movslq	(%rdi,%rdx,4), %r8
	movslq	(%rdi,%rcx,4), %rdi
	imulq	%rsi, %rdi
	addq	%r8, %rdi
	movq	32(%rsp), %r8
	movl	$-1082130432, -4(%r8,%rdi,4)    # imm = 0xBF800000
	incq	%rdx
	cmpq	%rdx, %rax
	jne	.LBB16_39
.LBB16_40:                              # %._crit_edge
                                        #   in Loop: Header=BB16_37 Depth=1
	incl	%ebx
	cmpl	$1000, %ebx                     # imm = 0x3E8
	jne	.LBB16_37
# %bb.41:                               # %.preheader275
	xorl	%ebx, %ebx
	xorl	%eax, %eax
	movq	%rax, (%rsp)                    # 8-byte Spill
.LBB16_42:                              # =>This Loop Header: Depth=1
                                        #     Child Loop BB16_43 Depth 2
	addl	$1000, %ebx                     # imm = 0x3E8
	movslq	%ebx, %rbx
	imulq	$1172812403, %rbx, %rax         # imm = 0x45E7B273
	movq	%rax, %rcx
	shrq	$63, %rcx
	sarq	$46, %rax
	addl	%ecx, %eax
	imull	$60000, %eax, %eax              # imm = 0xEA60
	subl	%eax, %ebx
	movslq	%ebx, %rcx
	movq	32(%rsp), %r14
	movq	368(%rsp), %r12
	movslq	320(%rsp), %r15
	movq	%rcx, %rax
	movq	%rcx, 16(%rsp)                  # 8-byte Spill
	imulq	$3136, %rcx, %r13               # imm = 0xC40
	addq	624(%rsp), %r13
	xorl	%ebp, %ebp
.LBB16_43:                              # %_ZN6thrust4copyINS_6detail15normal_iteratorIPfEES4_EET0_T_S6_S5_.exit
                                        #   Parent Loop BB16_42 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	movslq	(%r12,%r15,4), %rax
	imulq	%rbp, %rax
	leaq	(%r14,%rax,4), %rdi
	movl	$3136, %edx                     # imm = 0xC40
	movq	%r13, %rsi
	callq	memmove@PLT
	incq	%rbp
	addq	$3136, %r13                     # imm = 0xC40
	cmpq	$1000, %rbp                     # imm = 0x3E8
	jne	.LBB16_43
# %bb.44:                               #   in Loop: Header=BB16_42 Depth=1
.Ltmp282:
	leaq	288(%rsp), %r14
	movq	%r14, %rdi
	leaq	456(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp283:
	leaq	256(%rsp), %r15
	leaq	224(%rsp), %r12
# %bb.45:                               # %_ZN6thrust11host_vectorIfSaIfEEC2ERKS2_.exit
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp284:
	movq	%r15, %rdi
	leaq	360(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
.Ltmp285:
# %bb.46:                               # %_ZN6thrust11host_vectorIiSaIiEEC2ERKS2_.exit
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp287:
	movq	%r14, %rdi
	leaq	24(%rsp), %rsi
	movq	%r15, %rdx
	callq	_Z18forwardPropagationN6thrust11host_vectorIfSaIfEEERS2_NS0_IiSaIiEEE
.Ltmp288:
# %bb.47:                               #   in Loop: Header=BB16_42 Depth=1
	cmpq	$0, 272(%rsp)
	je	.LBB16_49
# %bb.48:                               #   in Loop: Header=BB16_42 Depth=1
	movq	264(%rsp), %rdi
	callq	_ZdlPv
	leaq	264(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_49:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit
                                        #   in Loop: Header=BB16_42 Depth=1
	cmpq	$0, 304(%rsp)
	je	.LBB16_51
# %bb.50:                               #   in Loop: Header=BB16_42 Depth=1
	movq	296(%rsp), %rdi
	callq	_ZdlPv
	leaq	296(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_51:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit
                                        #   in Loop: Header=BB16_42 Depth=1
	movq	32(%rsp), %rsi
	movq	48(%rsp), %rax
	leaq	(%rsi,%rax,4), %rdx
.Ltmp290:
	leaq	392(%rsp), %rdi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE
.Ltmp291:
# %bb.52:                               # %_ZN6thrust11host_vectorIfSaIfEEaSERKS2_.exit
                                        #   in Loop: Header=BB16_42 Depth=1
	movq	8(%rsp), %rax                   # 8-byte Reload
	movq	16(%rsp), %rcx                  # 8-byte Reload
	movl	(%rax,%rcx,4), %r13d
.Ltmp292:
	movq	%r12, %rdi
	leaq	392(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp293:
# %bb.53:                               # %_ZN6thrust11host_vectorIfSaIfEEC2ERKS2_.exit154
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp294:
	leaq	64(%rsp), %rdi
	leaq	552(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp295:
# %bb.54:                               # %_ZN6thrust11host_vectorIfSaIfEEC2ERKS2_.exit155
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp297:
	leaq	192(%rsp), %r14
	movq	%r14, %rdi
	leaq	360(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
.Ltmp298:
# %bb.55:                               # %_ZN6thrust11host_vectorIiSaIiEEC2ERKS2_.exit156
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp300:
	movl	%r13d, %edi
	leaq	456(%rsp), %rsi
	movq	%r12, %rdx
	leaq	64(%rsp), %rcx
	movq	%r14, %r8
	leaq	520(%rsp), %r9
	callq	_Z15backPropagationiRN6thrust11host_vectorIfSaIfEEES2_S2_NS0_IiSaIiEEES3_
.Ltmp301:
# %bb.56:                               #   in Loop: Header=BB16_42 Depth=1
	cmpq	$0, 208(%rsp)
	je	.LBB16_58
# %bb.57:                               #   in Loop: Header=BB16_42 Depth=1
	movq	200(%rsp), %rdi
	callq	_ZdlPv
	leaq	200(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_58:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit158
                                        #   in Loop: Header=BB16_42 Depth=1
	cmpq	$0, 80(%rsp)
	je	.LBB16_60
# %bb.59:                               #   in Loop: Header=BB16_42 Depth=1
	movq	72(%rsp), %rdi
	callq	_ZdlPv
	leaq	72(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_60:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit160
                                        #   in Loop: Header=BB16_42 Depth=1
	cmpq	$0, 240(%rsp)
	je	.LBB16_62
# %bb.61:                               #   in Loop: Header=BB16_42 Depth=1
	movq	232(%rsp), %rdi
	callq	_ZdlPv
	leaq	232(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_62:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit162
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp303:
	movq	(%rsp), %rax                    # 8-byte Reload
	leal	1000(%rax), %r13d
	movl	$_ZSt4cout, %edi
	movl	%r13d, %esi
	callq	_ZNSolsEi
.Ltmp304:
# %bb.63:                               #   in Loop: Header=BB16_42 Depth=1
	movq	%rax, %rbp
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%rbp, %rdi
.Ltmp305:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp306:
# %bb.64:                               # %.noexc252
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp307:
	movsbl	%al, %esi
	movq	%rbp, %rdi
	callq	_ZNSo3putEc
.Ltmp308:
# %bb.65:                               # %.noexc253
                                        #   in Loop: Header=BB16_42 Depth=1
.Ltmp309:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp310:
# %bb.66:                               # %_ZNSolsEPFRSoS_E.exit163
                                        #   in Loop: Header=BB16_42 Depth=1
	cmpl	$999000, (%rsp)                 # 4-byte Folded Reload
                                        # imm = 0xF3E58
	movl	%r13d, %eax
	movq	%rax, (%rsp)                    # 8-byte Spill
	jb	.LBB16_42
# %bb.67:
	movl	$endwtime, %edi
	xorl	%esi, %esi
	callq	gettimeofday
	movq	endwtime+8(%rip), %rax
	subq	startwtime+8(%rip), %rax
	xorps	%xmm0, %xmm0
	cvtsi2sd	%rax, %xmm0
	divsd	.LCPI16_1(%rip), %xmm0
	cvtsi2sdq	endwtime(%rip), %xmm1
	addsd	%xmm0, %xmm1
	xorps	%xmm0, %xmm0
	cvtsi2sdq	startwtime(%rip), %xmm0
	subsd	%xmm0, %xmm1
	movsd	%xmm1, seq_time(%rip)
.Ltmp312:
	movl	$_ZSt4cout, %edi
	movl	$.L.str.5, %esi
	movl	$34, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp313:
# %bb.68:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit174
.Ltmp314:
	movl	$_ZSt4cout, %edi
	movl	$1000000, %esi                  # imm = 0xF4240
	callq	_ZNSolsEi
.Ltmp315:
# %bb.69:
.Ltmp316:
	movq	%rax, %rbx
	movl	$.L.str.6, %esi
	movl	$12, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp317:
# %bb.70:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit175
	movsd	seq_time(%rip), %xmm0           # xmm0 = mem[0],zero
.Ltmp318:
	movq	%rbx, %rdi
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp319:
# %bb.71:                               # %_ZNSolsEd.exit
.Ltmp320:
	movq	%rax, %rbx
	movl	$.L.str.7, %esi
	movl	$8, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp321:
# %bb.72:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit176
	movq	(%rbx), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
.Ltmp322:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp323:
# %bb.73:                               # %.noexc256
.Ltmp324:
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
.Ltmp325:
# %bb.74:                               # %.noexc257
.Ltmp326:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp327:
# %bb.75:                               # %_ZNSolsEPFRSoS_E.exit177
.Ltmp328:
	movl	$_ZSt4cout, %ebx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.8, %esi
	movl	$28, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp329:
# %bb.76:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit178
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %rbx
.Ltmp330:
	movq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp331:
# %bb.77:                               # %.noexc260
.Ltmp332:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp333:
# %bb.78:                               # %.noexc261
.Ltmp334:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp335:
# %bb.79:                               # %_ZNSolsEPFRSoS_E.exit179.preheader
	xorpd	%xmm0, %xmm0
	movss	%xmm0, (%rsp)                   # 4-byte Spill
	xorl	%r15d, %r15d
	xorl	%ebx, %ebx
.LBB16_80:                              # %.preheader
                                        # =>This Loop Header: Depth=1
                                        #     Child Loop BB16_81 Depth 2
	movss	(%rsp), %xmm0                   # 4-byte Reload
                                        # xmm0 = mem[0],zero,zero,zero
	movss	%xmm0, 8(%rsp)                  # 4-byte Spill
	movq	32(%rsp), %rbp
	movq	368(%rsp), %r14
	movslq	320(%rsp), %r12
	movq	592(%rsp), %r13
	movq	%r15, 16(%rsp)                  # 8-byte Spill
	addq	%r15, %r13
	xorl	%r15d, %r15d
.LBB16_81:                              # %_ZN6thrust4copyINS_6detail15normal_iteratorIPfEES4_EET0_T_S6_S5_.exit184
                                        #   Parent Loop BB16_80 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	movslq	(%r14,%r12,4), %rax
	movslq	%r15d, %rcx
	imulq	%rax, %rcx
	leaq	(,%rcx,4), %rdi
	addq	%rbp, %rdi
	movl	$3136, %edx                     # imm = 0xC40
	movq	%r13, %rsi
	callq	memmove@PLT
	incq	%r15
	addq	$3136, %r13                     # imm = 0xC40
	cmpq	$1000, %r15                     # imm = 0x3E8
	jne	.LBB16_81
# %bb.82:                               #   in Loop: Header=BB16_80 Depth=1
.Ltmp337:
	leaq	160(%rsp), %r14
	movq	%r14, %rdi
	leaq	456(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp338:
# %bb.83:                               # %_ZN6thrust11host_vectorIfSaIfEEC2ERKS2_.exit185
                                        #   in Loop: Header=BB16_80 Depth=1
.Ltmp340:
	leaq	128(%rsp), %r12
	movq	%r12, %rdi
	leaq	24(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Ltmp341:
	movq	16(%rsp), %r15                  # 8-byte Reload
	leaq	96(%rsp), %r13
# %bb.84:                               # %_ZN6thrust11host_vectorIfSaIfEEC2ERKS2_.exit186
                                        #   in Loop: Header=BB16_80 Depth=1
.Ltmp343:
	movq	%r13, %rdi
	leaq	360(%rsp), %rsi
	callq	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
.Ltmp344:
# %bb.85:                               # %_ZN6thrust11host_vectorIiSaIiEEC2ERKS2_.exit187
                                        #   in Loop: Header=BB16_80 Depth=1
.Ltmp346:
	movq	%r14, %rdi
	movq	%r12, %rsi
	movq	%r13, %rdx
	callq	_Z7predictN6thrust11host_vectorIfSaIfEEES2_NS0_IiSaIiEEE
.Ltmp347:
# %bb.86:                               #   in Loop: Header=BB16_80 Depth=1
	movl	%eax, %ebp
	cmpq	$0, 112(%rsp)
	je	.LBB16_88
# %bb.87:                               #   in Loop: Header=BB16_80 Depth=1
	movq	104(%rsp), %rdi
	callq	_ZdlPv
	leaq	104(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_88:                              # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit189
                                        #   in Loop: Header=BB16_80 Depth=1
	cmpq	$0, 144(%rsp)
	je	.LBB16_90
# %bb.89:                               #   in Loop: Header=BB16_80 Depth=1
	movq	136(%rsp), %rdi
	callq	_ZdlPv
	leaq	136(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_90:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit191
                                        #   in Loop: Header=BB16_80 Depth=1
	cmpq	$0, 176(%rsp)
	je	.LBB16_92
# %bb.91:                               #   in Loop: Header=BB16_80 Depth=1
	movq	168(%rsp), %rdi
	callq	_ZdlPv
	leaq	168(%rsp), %rax
	xorpd	%xmm0, %xmm0
	movupd	%xmm0, (%rax)
.LBB16_92:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit193
                                        #   in Loop: Header=BB16_80 Depth=1
	movss	8(%rsp), %xmm0                  # 4-byte Reload
                                        # xmm0 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm1
	addss	.LCPI16_2(%rip), %xmm1
	movss	%xmm1, (%rsp)                   # 4-byte Spill
	movq	56(%rsp), %rax                  # 8-byte Reload
	cmpl	(%rax,%rbx,4), %ebp
	je	.LBB16_94
# %bb.93:                               # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit193
                                        #   in Loop: Header=BB16_80 Depth=1
	movss	%xmm0, (%rsp)                   # 4-byte Spill
.LBB16_94:                              # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit193
                                        #   in Loop: Header=BB16_80 Depth=1
	incq	%rbx
	addq	$3136, %r15                     # imm = 0xC40
	cmpq	$9900, %rbx                     # imm = 0x26AC
	jne	.LBB16_80
# %bb.95:
.Ltmp349:
	movl	$_ZSt4cout, %edi
	movl	$.L.str.9, %esi
	movl	$33, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp350:
# %bb.96:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit180
	movss	(%rsp), %xmm0                   # 4-byte Reload
                                        # xmm0 = mem[0],zero,zero,zero
	divss	.LCPI16_3(%rip), %xmm0
	cvtss2sd	%xmm0, %xmm0
.Ltmp351:
	movl	$_ZSt4cout, %edi
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp352:
# %bb.97:                               # %_ZNSolsEf.exit
.Ltmp353:
	movq	%rax, %rbx
	movl	$.L.str.10, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp354:
# %bb.98:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit200
	movq	(%rbx), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
.Ltmp355:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp356:
# %bb.99:                               # %.noexc264
.Ltmp357:
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
.Ltmp358:
# %bb.100:                              # %.noexc265
.Ltmp359:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp360:
# %bb.101:                              # %_ZNSolsEPFRSoS_E.exit201
	cmpq	$0, 536(%rsp)
	je	.LBB16_103
# %bb.102:
	movq	528(%rsp), %rdi
	callq	_ZdlPv
.LBB16_103:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit203
	cmpq	$0, 568(%rsp)
	je	.LBB16_105
# %bb.104:
	movq	560(%rsp), %rdi
	callq	_ZdlPv
.LBB16_105:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit205
	cmpq	$0, 40(%rsp)
	je	.LBB16_107
# %bb.106:
	movq	32(%rsp), %rdi
	callq	_ZdlPv
.LBB16_107:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit207
	cmpq	$0, 504(%rsp)
	je	.LBB16_109
# %bb.108:
	movq	496(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 496(%rsp)
.LBB16_109:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit.i
	cmpq	$0, 472(%rsp)
	je	.LBB16_111
# %bb.110:
	movq	464(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 464(%rsp)
.LBB16_111:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit2.i
	cmpq	$0, 440(%rsp)
	je	.LBB16_113
# %bb.112:
	movq	432(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 432(%rsp)
.LBB16_113:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit4.i
	cmpq	$0, 408(%rsp)
	je	.LBB16_115
# %bb.114:
	movq	400(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 400(%rsp)
.LBB16_115:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit6.i
	cmpq	$0, 376(%rsp)
	je	.LBB16_117
# %bb.116:
	movq	368(%rsp), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	leaq	392(%rsp), %rax
	movups	%xmm0, -24(%rax)
.LBB16_117:                             # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit.i
	cmpq	$0, 344(%rsp)
	je	.LBB16_119
# %bb.118:
	movq	336(%rsp), %rdi
	callq	_ZdlPv
.LBB16_119:                             # %_ZN13NeuralNetworkD2Ev.exit
	movq	928(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB16_121
# %bb.120:
	callq	_ZdlPv
.LBB16_121:                             # %_ZNSt6vectorIiSaIiEED2Ev.exit209
	cmpq	$0, 600(%rsp)
	je	.LBB16_123
# %bb.122:
	movq	592(%rsp), %rdi
	callq	_ZdlPv
.LBB16_123:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit211
	cmpq	$0, 632(%rsp)
	je	.LBB16_125
# %bb.124:
	movq	624(%rsp), %rdi
	callq	_ZdlPv
.LBB16_125:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit213
	leaq	816(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_127
# %bb.126:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i214
	callq	_ZdlPv
.LBB16_127:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit216
	leaq	848(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_129
# %bb.128:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i217
	callq	_ZdlPv
.LBB16_129:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit219
	leaq	880(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_131
# %bb.130:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i220
	callq	_ZdlPv
.LBB16_131:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit222
	leaq	912(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_133
# %bb.132:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i223
	callq	_ZdlPv
.LBB16_133:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit225
	xorl	%eax, %eax
	addq	$952, %rsp                      # imm = 0x3B8
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB16_134:
	.cfi_def_cfa_offset 1008
	movl	$_ZSt4cout, %edi
	movl	$.L.str.1, %esi
	callq	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
	movl	$1, %edi
	callq	exit
.LBB16_135:
.Ltmp281:
	movq	%rax, %rbx
	jmp	.LBB16_187
.LBB16_136:
.Ltmp278:
	movq	%rax, %rbx
	jmp	.LBB16_189
.LBB16_137:
.Ltmp275:
	jmp	.LBB16_158
.LBB16_138:
.Ltmp255:
	movq	%rax, %rbx
	movq	648(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB16_192
# %bb.139:
	callq	_ZdlPv
	jmp	.LBB16_192
.LBB16_140:
.Ltmp252:
	movq	%rax, %rbx
	jmp	.LBB16_192
.LBB16_141:
.Ltmp249:
	jmp	.LBB16_144
.LBB16_142:
.Ltmp246:
	movq	%rax, %rbx
	movq	672(%rsp), %rdi
	cmpq	%r14, %rdi
	jne	.LBB16_193
	jmp	.LBB16_194
.LBB16_143:
.Ltmp243:
.LBB16_144:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit147
	movq	%rax, %rbx
	jmp	.LBB16_194
.LBB16_145:
.Ltmp240:
	movq	%rax, %rbx
	movq	704(%rsp), %rdi
	jmp	.LBB16_148
.LBB16_146:
.Ltmp237:
	jmp	.LBB16_150
.LBB16_147:
.Ltmp234:
	movq	%rax, %rbx
	movq	736(%rsp), %rdi
.LBB16_148:
	cmpq	%r14, %rdi
	jne	.LBB16_196
	jmp	.LBB16_197
.LBB16_149:
.Ltmp231:
.LBB16_150:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit141
	movq	%rax, %rbx
	jmp	.LBB16_197
.LBB16_151:
.Ltmp228:
	movq	%rax, %rbx
	movq	768(%rsp), %rdi
	cmpq	%r14, %rdi
	jne	.LBB16_199
	jmp	.LBB16_200
.LBB16_152:
.Ltmp225:
	movq	%rax, %rbx
	jmp	.LBB16_200
.LBB16_153:
.Ltmp222:
	movq	%rax, %rbx
	jmp	.LBB16_202
.LBB16_154:
.Ltmp219:
	movq	%rax, %rbx
	jmp	.LBB16_204
.LBB16_155:
.Ltmp216:
	movq	%rax, %rbx
	jmp	.LBB16_206
.LBB16_156:
.Ltmp361:
	jmp	.LBB16_184
.LBB16_157:
.Ltmp272:
.LBB16_158:
	movq	%rax, %rbx
	jmp	.LBB16_191
.LBB16_159:                             # %.loopexit.split-lp
.Ltmp336:
	jmp	.LBB16_184
.LBB16_160:
.Ltmp339:
	jmp	.LBB16_184
.LBB16_161:
.Ltmp342:
	movq	%rax, %rbx
	jmp	.LBB16_167
.LBB16_162:
.Ltmp345:
	movq	%rax, %rbx
	jmp	.LBB16_165
.LBB16_163:
.Ltmp348:
	movq	%rax, %rbx
	cmpq	$0, 112(%rsp)
	je	.LBB16_165
# %bb.164:
	movq	104(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	104(%rsp), %rax
	movupd	%xmm0, (%rax)
.LBB16_165:                             # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit195
	cmpq	$0, 144(%rsp)
	je	.LBB16_167
# %bb.166:
	movq	136(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	136(%rsp), %rax
	movupd	%xmm0, (%rax)
.LBB16_167:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit197
	cmpq	$0, 176(%rsp)
	je	.LBB16_185
# %bb.168:
	movq	168(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	168(%rsp), %rax
	jmp	.LBB16_174
.LBB16_169:
.Ltmp286:
	movq	%rax, %rbx
	jmp	.LBB16_172
.LBB16_170:
.Ltmp289:
	movq	%rax, %rbx
	cmpq	$0, 272(%rsp)
	je	.LBB16_172
# %bb.171:
	movq	264(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	264(%rsp), %rax
	movupd	%xmm0, (%rax)
.LBB16_172:                             # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit165
	cmpq	$0, 304(%rsp)
	je	.LBB16_185
# %bb.173:
	movq	296(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	296(%rsp), %rax
	jmp	.LBB16_174
.LBB16_175:
.Ltmp296:
	movq	%rax, %rbx
	jmp	.LBB16_181
.LBB16_176:
.Ltmp299:
	movq	%rax, %rbx
	jmp	.LBB16_179
.LBB16_177:
.Ltmp302:
	movq	%rax, %rbx
	cmpq	$0, 208(%rsp)
	je	.LBB16_179
# %bb.178:
	movq	200(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	200(%rsp), %rax
	movupd	%xmm0, (%rax)
.LBB16_179:                             # %_ZN6thrust6detail11vector_baseIiSaIiEED2Ev.exit169
	cmpq	$0, 80(%rsp)
	je	.LBB16_181
# %bb.180:
	movq	72(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	72(%rsp), %rax
	movupd	%xmm0, (%rax)
.LBB16_181:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit171
	cmpq	$0, 240(%rsp)
	je	.LBB16_185
# %bb.182:
	movq	232(%rsp), %rdi
	callq	_ZdlPv
	xorpd	%xmm0, %xmm0
	leaq	232(%rsp), %rax
.LBB16_174:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit167
	movupd	%xmm0, (%rax)
	jmp	.LBB16_185
.LBB16_183:                             # %.loopexit
.Ltmp311:
.LBB16_184:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit167
	movq	%rax, %rbx
.LBB16_185:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit167
	cmpq	$0, 536(%rsp)
	je	.LBB16_187
# %bb.186:
	movq	528(%rsp), %rdi
	callq	_ZdlPv
.LBB16_187:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit227
	cmpq	$0, 568(%rsp)
	je	.LBB16_189
# %bb.188:
	movq	560(%rsp), %rdi
	callq	_ZdlPv
.LBB16_189:                             # %_ZN6thrust6detail11vector_baseIfSaIfEED2Ev.exit229
	cmpq	$0, 40(%rsp)
	je	.LBB16_191
# %bb.190:
	movq	32(%rsp), %rdi
	callq	_ZdlPv
.LBB16_191:
	leaq	320(%rsp), %rdi
	callq	_ZN13NeuralNetworkD2Ev
.LBB16_192:                             # %_ZNSt6vectorIiSaIiEED2Ev.exit149
	movq	928(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB16_194
.LBB16_193:
	callq	_ZdlPv
.LBB16_194:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit147
	cmpq	$0, 600(%rsp)
	je	.LBB16_197
# %bb.195:
	movq	592(%rsp), %rdi
.LBB16_196:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit144
	callq	_ZdlPv
.LBB16_197:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit141
	cmpq	$0, 632(%rsp)
	je	.LBB16_200
# %bb.198:
	movq	624(%rsp), %rdi
.LBB16_199:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit138
	callq	_ZdlPv
.LBB16_200:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit138
	leaq	816(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_202
# %bb.201:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i238
	callq	_ZdlPv
.LBB16_202:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit240
	leaq	848(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_204
# %bb.203:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i241
	callq	_ZdlPv
.LBB16_204:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit243
	leaq	880(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_206
# %bb.205:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i244
	callq	_ZdlPv
.LBB16_206:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit246
	leaq	912(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB16_208
# %bb.207:                              # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i247
	callq	_ZdlPv
.LBB16_208:                             # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit249
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end16:
	.size	main, .Lfunc_end16-main
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table16:
.Lexception6:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end6-.Lcst_begin6
.Lcst_begin6:
	.uleb128 .Lfunc_begin6-.Lfunc_begin6    # >> Call Site 1 <<
	.uleb128 .Ltmp214-.Lfunc_begin6         #   Call between .Lfunc_begin6 and .Ltmp214
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp214-.Lfunc_begin6         # >> Call Site 2 <<
	.uleb128 .Ltmp215-.Ltmp214              #   Call between .Ltmp214 and .Ltmp215
	.uleb128 .Ltmp216-.Lfunc_begin6         #     jumps to .Ltmp216
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp217-.Lfunc_begin6         # >> Call Site 3 <<
	.uleb128 .Ltmp218-.Ltmp217              #   Call between .Ltmp217 and .Ltmp218
	.uleb128 .Ltmp219-.Lfunc_begin6         #     jumps to .Ltmp219
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp220-.Lfunc_begin6         # >> Call Site 4 <<
	.uleb128 .Ltmp221-.Ltmp220              #   Call between .Ltmp220 and .Ltmp221
	.uleb128 .Ltmp222-.Lfunc_begin6         #     jumps to .Ltmp222
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp223-.Lfunc_begin6         # >> Call Site 5 <<
	.uleb128 .Ltmp224-.Ltmp223              #   Call between .Ltmp223 and .Ltmp224
	.uleb128 .Ltmp225-.Lfunc_begin6         #     jumps to .Ltmp225
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp226-.Lfunc_begin6         # >> Call Site 6 <<
	.uleb128 .Ltmp227-.Ltmp226              #   Call between .Ltmp226 and .Ltmp227
	.uleb128 .Ltmp228-.Lfunc_begin6         #     jumps to .Ltmp228
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp229-.Lfunc_begin6         # >> Call Site 7 <<
	.uleb128 .Ltmp230-.Ltmp229              #   Call between .Ltmp229 and .Ltmp230
	.uleb128 .Ltmp231-.Lfunc_begin6         #     jumps to .Ltmp231
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp232-.Lfunc_begin6         # >> Call Site 8 <<
	.uleb128 .Ltmp233-.Ltmp232              #   Call between .Ltmp232 and .Ltmp233
	.uleb128 .Ltmp234-.Lfunc_begin6         #     jumps to .Ltmp234
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp235-.Lfunc_begin6         # >> Call Site 9 <<
	.uleb128 .Ltmp236-.Ltmp235              #   Call between .Ltmp235 and .Ltmp236
	.uleb128 .Ltmp237-.Lfunc_begin6         #     jumps to .Ltmp237
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp238-.Lfunc_begin6         # >> Call Site 10 <<
	.uleb128 .Ltmp239-.Ltmp238              #   Call between .Ltmp238 and .Ltmp239
	.uleb128 .Ltmp240-.Lfunc_begin6         #     jumps to .Ltmp240
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp241-.Lfunc_begin6         # >> Call Site 11 <<
	.uleb128 .Ltmp242-.Ltmp241              #   Call between .Ltmp241 and .Ltmp242
	.uleb128 .Ltmp243-.Lfunc_begin6         #     jumps to .Ltmp243
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp244-.Lfunc_begin6         # >> Call Site 12 <<
	.uleb128 .Ltmp245-.Ltmp244              #   Call between .Ltmp244 and .Ltmp245
	.uleb128 .Ltmp246-.Lfunc_begin6         #     jumps to .Ltmp246
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp247-.Lfunc_begin6         # >> Call Site 13 <<
	.uleb128 .Ltmp248-.Ltmp247              #   Call between .Ltmp247 and .Ltmp248
	.uleb128 .Ltmp249-.Lfunc_begin6         #     jumps to .Ltmp249
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp250-.Lfunc_begin6         # >> Call Site 14 <<
	.uleb128 .Ltmp251-.Ltmp250              #   Call between .Ltmp250 and .Ltmp251
	.uleb128 .Ltmp252-.Lfunc_begin6         #     jumps to .Ltmp252
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp253-.Lfunc_begin6         # >> Call Site 15 <<
	.uleb128 .Ltmp254-.Ltmp253              #   Call between .Ltmp253 and .Ltmp254
	.uleb128 .Ltmp255-.Lfunc_begin6         #     jumps to .Ltmp255
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp256-.Lfunc_begin6         # >> Call Site 16 <<
	.uleb128 .Ltmp271-.Ltmp256              #   Call between .Ltmp256 and .Ltmp271
	.uleb128 .Ltmp272-.Lfunc_begin6         #     jumps to .Ltmp272
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp273-.Lfunc_begin6         # >> Call Site 17 <<
	.uleb128 .Ltmp274-.Ltmp273              #   Call between .Ltmp273 and .Ltmp274
	.uleb128 .Ltmp275-.Lfunc_begin6         #     jumps to .Ltmp275
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp276-.Lfunc_begin6         # >> Call Site 18 <<
	.uleb128 .Ltmp277-.Ltmp276              #   Call between .Ltmp276 and .Ltmp277
	.uleb128 .Ltmp278-.Lfunc_begin6         #     jumps to .Ltmp278
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp279-.Lfunc_begin6         # >> Call Site 19 <<
	.uleb128 .Ltmp280-.Ltmp279              #   Call between .Ltmp279 and .Ltmp280
	.uleb128 .Ltmp281-.Lfunc_begin6         #     jumps to .Ltmp281
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp280-.Lfunc_begin6         # >> Call Site 20 <<
	.uleb128 .Ltmp282-.Ltmp280              #   Call between .Ltmp280 and .Ltmp282
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp282-.Lfunc_begin6         # >> Call Site 21 <<
	.uleb128 .Ltmp283-.Ltmp282              #   Call between .Ltmp282 and .Ltmp283
	.uleb128 .Ltmp311-.Lfunc_begin6         #     jumps to .Ltmp311
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp284-.Lfunc_begin6         # >> Call Site 22 <<
	.uleb128 .Ltmp285-.Ltmp284              #   Call between .Ltmp284 and .Ltmp285
	.uleb128 .Ltmp286-.Lfunc_begin6         #     jumps to .Ltmp286
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp287-.Lfunc_begin6         # >> Call Site 23 <<
	.uleb128 .Ltmp288-.Ltmp287              #   Call between .Ltmp287 and .Ltmp288
	.uleb128 .Ltmp289-.Lfunc_begin6         #     jumps to .Ltmp289
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp290-.Lfunc_begin6         # >> Call Site 24 <<
	.uleb128 .Ltmp293-.Ltmp290              #   Call between .Ltmp290 and .Ltmp293
	.uleb128 .Ltmp311-.Lfunc_begin6         #     jumps to .Ltmp311
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp294-.Lfunc_begin6         # >> Call Site 25 <<
	.uleb128 .Ltmp295-.Ltmp294              #   Call between .Ltmp294 and .Ltmp295
	.uleb128 .Ltmp296-.Lfunc_begin6         #     jumps to .Ltmp296
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp297-.Lfunc_begin6         # >> Call Site 26 <<
	.uleb128 .Ltmp298-.Ltmp297              #   Call between .Ltmp297 and .Ltmp298
	.uleb128 .Ltmp299-.Lfunc_begin6         #     jumps to .Ltmp299
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp300-.Lfunc_begin6         # >> Call Site 27 <<
	.uleb128 .Ltmp301-.Ltmp300              #   Call between .Ltmp300 and .Ltmp301
	.uleb128 .Ltmp302-.Lfunc_begin6         #     jumps to .Ltmp302
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp303-.Lfunc_begin6         # >> Call Site 28 <<
	.uleb128 .Ltmp310-.Ltmp303              #   Call between .Ltmp303 and .Ltmp310
	.uleb128 .Ltmp311-.Lfunc_begin6         #     jumps to .Ltmp311
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp312-.Lfunc_begin6         # >> Call Site 29 <<
	.uleb128 .Ltmp335-.Ltmp312              #   Call between .Ltmp312 and .Ltmp335
	.uleb128 .Ltmp336-.Lfunc_begin6         #     jumps to .Ltmp336
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp335-.Lfunc_begin6         # >> Call Site 30 <<
	.uleb128 .Ltmp337-.Ltmp335              #   Call between .Ltmp335 and .Ltmp337
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp337-.Lfunc_begin6         # >> Call Site 31 <<
	.uleb128 .Ltmp338-.Ltmp337              #   Call between .Ltmp337 and .Ltmp338
	.uleb128 .Ltmp339-.Lfunc_begin6         #     jumps to .Ltmp339
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp340-.Lfunc_begin6         # >> Call Site 32 <<
	.uleb128 .Ltmp341-.Ltmp340              #   Call between .Ltmp340 and .Ltmp341
	.uleb128 .Ltmp342-.Lfunc_begin6         #     jumps to .Ltmp342
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp343-.Lfunc_begin6         # >> Call Site 33 <<
	.uleb128 .Ltmp344-.Ltmp343              #   Call between .Ltmp343 and .Ltmp344
	.uleb128 .Ltmp345-.Lfunc_begin6         #     jumps to .Ltmp345
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp346-.Lfunc_begin6         # >> Call Site 34 <<
	.uleb128 .Ltmp347-.Ltmp346              #   Call between .Ltmp346 and .Ltmp347
	.uleb128 .Ltmp348-.Lfunc_begin6         #     jumps to .Ltmp348
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp349-.Lfunc_begin6         # >> Call Site 35 <<
	.uleb128 .Ltmp360-.Ltmp349              #   Call between .Ltmp349 and .Ltmp360
	.uleb128 .Ltmp361-.Lfunc_begin6         #     jumps to .Ltmp361
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp360-.Lfunc_begin6         # >> Call Site 36 <<
	.uleb128 .Lfunc_end16-.Ltmp360          #   Call between .Ltmp360 and .Lfunc_end16
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end6:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_ # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	leaq	16(%rdi), %rax
	movq	%rax, (%rdi)
	testq	%rsi, %rsi
	je	.LBB17_1
# %bb.2:
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movq	%rsi, %rdi
	callq	strlen
	leaq	(%rax,%rbx), %rdx
	movq	%r14, %rdi
	movq	%rbx, %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag # TAILCALL
.LBB17_1:
	.cfi_def_cfa_offset 32
	movl	$.L.str.11, %edi
	callq	_ZSt19__throw_logic_errorPKc
.Lfunc_end17:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_, .Lfunc_end17-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIiSaIiEEC2ERKS1_,"axG",@progbits,_ZNSt6vectorIiSaIiEEC2ERKS1_,comdat
	.weak	_ZNSt6vectorIiSaIiEEC2ERKS1_    # -- Begin function _ZNSt6vectorIiSaIiEEC2ERKS1_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIiSaIiEEC2ERKS1_,@function
_ZNSt6vectorIiSaIiEEC2ERKS1_:           # @_ZNSt6vectorIiSaIiEEC2ERKS1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rsi), %rax
	movq	(%rsi), %rcx
	movq	%rax, %r12
	subq	%rcx, %r12
	sarq	$2, %r12
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	cmpq	%rcx, %rax
	je	.LBB18_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, %r15
	jmp	.LBB18_3
.LBB18_1:
	xorl	%r15d, %r15d
.LBB18_3:
	movq	%r15, (%rbx)
	movq	%r15, 8(%rbx)
	leaq	(%r15,%r12,4), %rax
	movq	%rax, 16(%rbx)
	movq	(%r14), %rsi
	movq	8(%r14), %r14
	subq	%rsi, %r14
	cmpq	$5, %r14
	jl	.LBB18_5
# %bb.4:
	movq	%r15, %rdi
	movq	%r14, %rdx
	callq	memmove@PLT
.LBB18_7:
	addq	%r14, %r15
	movq	%r15, 8(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB18_5:
	.cfi_def_cfa_offset 48
	cmpq	$4, %r14
	jne	.LBB18_7
# %bb.6:
	movl	(%rsi), %eax
	movl	%eax, (%r15)
	jmp	.LBB18_7
.Lfunc_end18:
	.size	_ZNSt6vectorIiSaIiEEC2ERKS1_, .Lfunc_end18-_ZNSt6vectorIiSaIiEEC2ERKS1_
	.cfi_endproc
                                        # -- End function
	.section	.text.__clang_call_terminate,"axG",@progbits,__clang_call_terminate,comdat
	.hidden	__clang_call_terminate          # -- Begin function __clang_call_terminate
	.weak	__clang_call_terminate
	.type	__clang_call_terminate,@function
__clang_call_terminate:                 # @__clang_call_terminate
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__cxa_begin_catch
	callq	_ZSt9terminatev
.Lfunc_end19:
	.size	__clang_call_terminate, .Lfunc_end19-__clang_call_terminate
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	subq	%rsi, %r14
	movq	%r14, (%rsp)
	cmpq	$15, %r14
	jbe	.LBB20_1
# %bb.2:
	movq	%rsp, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm
	movq	%rax, (%rbx)
	movq	(%r12), %rcx
	movq	%rcx, 16(%rbx)
	jmp	.LBB20_3
.LBB20_1:                               # %._crit_edge
	movq	(%rbx), %rax
.LBB20_3:
	testq	%r14, %r14
	je	.LBB20_7
# %bb.4:
	cmpq	$1, %r14
	jne	.LBB20_6
# %bb.5:
	movb	(%r15), %cl
	movb	%cl, (%rax)
	jmp	.LBB20_7
.LBB20_6:
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	memcpy@PLT
.LBB20_7:                               # %_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev.exit
	movq	(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rcx
	movb	$0, (%rcx,%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end20:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag, .Lfunc_end20-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	subq	%rsi, %r14
	movq	%r14, (%rsp)
	cmpq	$15, %r14
	jbe	.LBB21_1
# %bb.2:
	movq	%rsp, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm
	movq	%rax, (%rbx)
	movq	(%r12), %rcx
	movq	%rcx, 16(%rbx)
	jmp	.LBB21_3
.LBB21_1:                               # %._crit_edge
	movq	(%rbx), %rax
.LBB21_3:
	testq	%r14, %r14
	je	.LBB21_7
# %bb.4:
	cmpq	$1, %r14
	jne	.LBB21_6
# %bb.5:
	movb	(%r15), %cl
	movb	%cl, (%rax)
	jmp	.LBB21_7
.LBB21_6:
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	memcpy@PLT
.LBB21_7:                               # %_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tagEN6_GuardD2Ev.exit
	movq	(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rcx
	movb	$0, (%rcx,%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end21:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag, .Lfunc_end21-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE,@function
_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE: # @_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE
.Lfunc_begin7:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception7
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r15
	movq	%rsi, %rax
	movq	%rdi, %rbx
	subq	%rsi, %rdx
	movq	%rdx, %r14
	sarq	$2, %r14
	cmpq	16(%rdi), %r14
	jbe	.LBB22_7
# %bb.1:
	xorps	%xmm0, %xmm0
	movq	%rsp, %r8
	movups	%xmm0, 8(%r8)
.Ltmp362:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	movq	%r15, %rcx
	callq	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE
.Ltmp363:
# %bb.2:
	movq	8(%rbx), %rdi
	movq	8(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rdi, 8(%rsp)
	movq	16(%rbx), %rax
	movq	16(%rsp), %rcx
	movq	%rcx, 16(%rbx)
	movq	%rax, 16(%rsp)
	movq	%r14, 24(%rbx)
	testq	%rax, %rax
	je	.LBB22_16
# %bb.3:
	callq	_ZdlPv
	jmp	.LBB22_16
.LBB22_7:
	movq	24(%rbx), %rcx
	cmpq	%r14, %rcx
	jae	.LBB22_8
# %bb.10:
	leaq	(%rax,%rcx,4), %r12
	testq	%rcx, %rcx
	je	.LBB22_12
# %bb.11:
	shlq	$2, %rcx
	movq	8(%rbx), %rdi
	movq	%rax, %rsi
	movq	%rcx, %rdx
	callq	memmove@PLT
.LBB22_12:                              # %_ZN6thrust4copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEENS_6detail15normal_iteratorIPiEEEET0_T_SE_SD_.exit35
	cmpq	%r15, %r12
	je	.LBB22_15
# %bb.13:
	subq	%r12, %r15
	movq	24(%rbx), %rdi
	shlq	$2, %rdi
	addq	8(%rbx), %rdi
	movq	%r12, %rsi
	movq	%r15, %rdx
	jmp	.LBB22_14
.LBB22_8:
	cmpq	%rax, %r15
	je	.LBB22_15
# %bb.9:
	movq	8(%rbx), %rdi
	movq	%rax, %rsi
.LBB22_14:                              # %_ZN6thrust6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEENS0_15normal_iteratorIPiEET_SF_SE_.exit
	callq	memmove@PLT
.LBB22_15:                              # %_ZN6thrust6detail18contiguous_storageIiSaIiEE18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEENS0_15normal_iteratorIPiEET_SF_SE_.exit
	movq	%r14, 24(%rbx)
.LBB22_16:
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB22_4:
	.cfi_def_cfa_offset 64
.Ltmp364:
	movq	%rax, %rbx
	cmpq	$0, 16(%rsp)
	je	.LBB22_6
# %bb.5:
	movq	8(%rsp), %rdi
	callq	_ZdlPv
.LBB22_6:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEED2Ev.exit31
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end22:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE, .Lfunc_end22-_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE12range_assignIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvT_SC_NS_27random_access_traversal_tagE,comdat
	.p2align	2, 0x0
GCC_except_table22:
.Lexception7:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end7-.Lcst_begin7
.Lcst_begin7:
	.uleb128 .Ltmp362-.Lfunc_begin7         # >> Call Site 1 <<
	.uleb128 .Ltmp363-.Ltmp362              #   Call between .Ltmp362 and .Ltmp363
	.uleb128 .Ltmp364-.Lfunc_begin7         #     jumps to .Ltmp364
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp363-.Lfunc_begin7         # >> Call Site 2 <<
	.uleb128 .Lfunc_end22-.Ltmp363          #   Call between .Ltmp363 and .Lfunc_end22
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end7:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE,@function
_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE: # @_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE
.Lfunc_begin8:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception8
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB23_1
# %bb.3:
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB23_4
# %bb.7:                                # %_ZN6thrust6detail18contiguous_storageIiSaIiEE8allocateEm.exit
	movq	%rcx, %r14
	movq	%rdx, %r15
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movabsq	$2305843009213693951, %rax      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%rax, %r12
	cmovaeq	%rax, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	subq	%r15, %r14
	je	.LBB23_8
# %bb.9:
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	memmove@PLT                     # TAILCALL
.LBB23_1:
	.cfi_def_cfa_offset 48
	cmpq	$0, 16(%rbx)
	je	.LBB23_8
# %bb.2:
	movq	8(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
.LBB23_8:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEE10deallocateEv.exit
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB23_4:
	.cfi_def_cfa_offset 48
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp365:
	movl	$.L.str.12, %esi
	movq	%rax, %rdi
	callq	_ZNSt12length_errorC1EPKc
.Ltmp366:
# %bb.5:
	movl	$_ZTISt12length_error, %esi
	movl	$_ZNSt12length_errorD1Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB23_6:
.Ltmp367:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end23:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE, .Lfunc_end23-_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiS2_EEEEEvmT_SC_RNS0_18contiguous_storageIiS2_EE,comdat
	.p2align	2, 0x0
GCC_except_table23:
.Lexception8:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end8-.Lcst_begin8
.Lcst_begin8:
	.uleb128 .Lfunc_begin8-.Lfunc_begin8    # >> Call Site 1 <<
	.uleb128 .Ltmp365-.Lfunc_begin8         #   Call between .Lfunc_begin8 and .Ltmp365
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp365-.Lfunc_begin8         # >> Call Site 2 <<
	.uleb128 .Ltmp366-.Ltmp365              #   Call between .Ltmp365 and .Ltmp366
	.uleb128 .Ltmp367-.Lfunc_begin8         #     jumps to .Ltmp367
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp366-.Lfunc_begin8         # >> Call Site 3 <<
	.uleb128 .Lfunc_end23-.Ltmp366          #   Call between .Ltmp366 and .Lfunc_end23
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end8:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIiE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIiE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIiE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIiE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIiE8allocateEmPKv,@function
_ZNSt15__new_allocatorIiE8allocateEmPKv: # @_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB24_1
# %bb.3:
	shlq	$2, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB24_1:
	.cfi_def_cfa_offset 16
	shrq	$62, %rsi
	je	.LBB24_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB24_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end24:
	.size	_ZNSt15__new_allocatorIiE8allocateEmPKv, .Lfunc_end24-_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEE6appendEm,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEE6appendEm
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm,@function
_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm: # @_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm
	.cfi_startproc
# %bb.0:
	testq	%rsi, %rsi
	je	.LBB25_11
# %bb.1:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	16(%rdi), %rax
	movq	24(%rdi), %r13
	movq	%rax, %rcx
	subq	%r13, %rcx
	cmpq	%rsi, %rcx
	jae	.LBB25_2
# %bb.3:
	cmpq	%r14, %r13
	movq	%r14, %rcx
	cmovaq	%r13, %rcx
	addq	%r13, %rcx
	addq	%rax, %rax
	cmpq	%rax, %rcx
	cmovaq	%rcx, %rax
	movabsq	$2305843009213693951, %r15      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%r15, %rax
	cmovbq	%rax, %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rsp)
	testq	%rax, %rax
	je	.LBB25_4
# %bb.5:                                # %.noexc.i
	movq	%rsp, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, %r12
	movq	24(%rbx), %rax
	jmp	.LBB25_6
.LBB25_2:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEE19default_construct_nENS0_15normal_iteratorIPiEEm.exit
	leaq	(,%r13,4), %rdi
	addq	8(%rbx), %rdi
	leaq	(,%r14,4), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
	addq	%r14, %r13
	movq	%r13, 24(%rbx)
	jmp	.LBB25_10
.LBB25_4:
	xorl	%r12d, %r12d
	movq	%r13, %rax
.LBB25_6:
	movq	%r12, 8(%rsp)
	movq	%r15, 16(%rsp)
	leaq	(,%rax,4), %rbp
	negq	%rbp
	sarq	$2, %rbp
	negq	%rbp
	testq	%rax, %rax
	je	.LBB25_8
# %bb.7:
	movq	8(%rbx), %rsi
	leaq	(,%rbp,4), %rdx
	movq	%r12, %rdi
	callq	memmove@PLT
	movq	16(%rsp), %r15
.LBB25_8:
	leaq	(%r12,%rbp,4), %rdi
	leaq	(,%r14,4), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
	movq	8(%rbx), %rdi
	movq	8(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rdi, 8(%rsp)
	movq	16(%rbx), %rax
	movq	%r15, 16(%rbx)
	movq	%rax, 16(%rsp)
	addq	%r14, %r13
	movq	%r13, 24(%rbx)
	testq	%rax, %rax
	je	.LBB25_10
# %bb.9:
	callq	_ZdlPv
.LBB25_10:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	.cfi_restore %rbx
	.cfi_restore %r12
	.cfi_restore %r13
	.cfi_restore %r14
	.cfi_restore %r15
	.cfi_restore %rbp
.LBB25_11:
	retq
.Lfunc_end25:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm, .Lfunc_end25-_ZN6thrust6detail11vector_baseIiSaIiEE6appendEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,"axG",@progbits,_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,comdat
	.weak	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_ # -- Begin function _ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.type	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,@function
_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_: # @_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.cfi_startproc
# %bb.0:
	movq	%rcx, %rax
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	testq	%rcx, %rcx
	jle	.LBB26_8
# %bb.1:
	cmpq	%rsi, %rax
	js	.LBB26_8
# %bb.2:
	movq	%rdx, %rcx
	subq	%rax, %rcx
	testq	%rcx, %rcx
	jle	.LBB26_8
# %bb.3:
	movq	%rsi, %rdi
	subq	%rdx, %rdi
	movq	%rax, %rcx
	subq	%rdi, %rcx
	cmpq	%rdx, %rsi
	je	.LBB26_4
# %bb.5:                                # %.lr.ph.i.preheader
	sarq	$2, %rdi
	shlq	$2, %rdi
	subq	%rdi, %rax
	addq	$-4, %rax
.LBB26_6:                               # %.lr.ph.i
                                        # =>This Inner Loop Header: Depth=1
	movl	-4(%rdx), %edi
	addq	$-4, %rdx
	movl	%edi, (%rax)
	addq	$-4, %rax
	cmpq	%rsi, %rdx
	jne	.LBB26_6
.LBB26_4:
	movq	%rcx, %rax
	retq
.LBB26_7:                               # %.lr.ph.i10
                                        #   in Loop: Header=BB26_8 Depth=1
	movl	(%rsi), %ecx
	movl	%ecx, (%rax)
	addq	$4, %rsi
	addq	$4, %rax
.LBB26_8:                               # %.lr.ph.i10
                                        # =>This Inner Loop Header: Depth=1
	cmpq	%rdx, %rsi
	jne	.LBB26_7
# %bb.9:                                # %_ZN6thrust6detail24sequential_copy_backwardINS0_15normal_iteratorIPiEES4_EET0_T_S6_S5_.exit
	retq
.Lfunc_end26:
	.size	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_, .Lfunc_end26-_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPiEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE6appendEm,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE6appendEm
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm,@function
_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm: # @_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm
	.cfi_startproc
# %bb.0:
	testq	%rsi, %rsi
	je	.LBB27_11
# %bb.1:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	16(%rdi), %rax
	movq	24(%rdi), %r13
	movq	%rax, %rcx
	subq	%r13, %rcx
	cmpq	%rsi, %rcx
	jae	.LBB27_2
# %bb.3:
	cmpq	%r14, %r13
	movq	%r14, %rcx
	cmovaq	%r13, %rcx
	addq	%r13, %rcx
	addq	%rax, %rax
	cmpq	%rax, %rcx
	cmovaq	%rcx, %rax
	movabsq	$2305843009213693951, %r15      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%r15, %rax
	cmovbq	%rax, %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rsp)
	testq	%rax, %rax
	je	.LBB27_4
# %bb.5:                                # %.noexc.i
	movq	%rsp, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIfE8allocateEmPKv
	movq	%rax, %r12
	movq	24(%rbx), %rax
	jmp	.LBB27_6
.LBB27_2:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEE19default_construct_nENS0_15normal_iteratorIPfEEm.exit
	leaq	(,%r13,4), %rdi
	addq	8(%rbx), %rdi
	leaq	(,%r14,4), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
	addq	%r14, %r13
	movq	%r13, 24(%rbx)
	jmp	.LBB27_10
.LBB27_4:
	xorl	%r12d, %r12d
	movq	%r13, %rax
.LBB27_6:
	movq	%r12, 8(%rsp)
	movq	%r15, 16(%rsp)
	leaq	(,%rax,4), %rbp
	negq	%rbp
	sarq	$2, %rbp
	negq	%rbp
	testq	%rax, %rax
	je	.LBB27_8
# %bb.7:
	movq	8(%rbx), %rsi
	leaq	(,%rbp,4), %rdx
	movq	%r12, %rdi
	callq	memmove@PLT
	movq	16(%rsp), %r15
.LBB27_8:
	leaq	(%r12,%rbp,4), %rdi
	leaq	(,%r14,4), %rdx
	xorl	%esi, %esi
	callq	memset@PLT
	movq	8(%rbx), %rdi
	movq	8(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rdi, 8(%rsp)
	movq	16(%rbx), %rax
	movq	%r15, 16(%rbx)
	movq	%rax, 16(%rsp)
	addq	%r14, %r13
	movq	%r13, 24(%rbx)
	testq	%rax, %rax
	je	.LBB27_10
# %bb.9:
	callq	_ZdlPv
.LBB27_10:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	.cfi_restore %rbx
	.cfi_restore %r12
	.cfi_restore %r13
	.cfi_restore %r14
	.cfi_restore %r15
	.cfi_restore %rbp
.LBB27_11:
	retq
.Lfunc_end27:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm, .Lfunc_end27-_ZN6thrust6detail11vector_baseIfSaIfEE6appendEm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,"axG",@progbits,_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,comdat
	.weak	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_ # -- Begin function _ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.type	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_,@function
_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_: # @_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.cfi_startproc
# %bb.0:
	movq	%rcx, %rax
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	testq	%rcx, %rcx
	jle	.LBB28_8
# %bb.1:
	cmpq	%rsi, %rax
	js	.LBB28_8
# %bb.2:
	movq	%rdx, %rcx
	subq	%rax, %rcx
	testq	%rcx, %rcx
	jle	.LBB28_8
# %bb.3:
	movq	%rsi, %rdi
	subq	%rdx, %rdi
	movq	%rax, %rcx
	subq	%rdi, %rcx
	cmpq	%rdx, %rsi
	je	.LBB28_4
# %bb.5:                                # %.lr.ph.i.preheader
	sarq	$2, %rdi
	shlq	$2, %rdi
	subq	%rdi, %rax
	addq	$-4, %rax
.LBB28_6:                               # %.lr.ph.i
                                        # =>This Inner Loop Header: Depth=1
	movss	-4(%rdx), %xmm0                 # xmm0 = mem[0],zero,zero,zero
	addq	$-4, %rdx
	movss	%xmm0, (%rax)
	addq	$-4, %rax
	cmpq	%rsi, %rdx
	jne	.LBB28_6
.LBB28_4:
	movq	%rcx, %rax
	retq
.LBB28_7:                               # %.lr.ph.i10
                                        #   in Loop: Header=BB28_8 Depth=1
	movss	(%rsi), %xmm0                   # xmm0 = mem[0],zero,zero,zero
	movss	%xmm0, (%rax)
	addq	$4, %rsi
	addq	$4, %rax
.LBB28_8:                               # %.lr.ph.i10
                                        # =>This Inner Loop Header: Depth=1
	cmpq	%rdx, %rsi
	jne	.LBB28_7
# %bb.9:                                # %_ZN6thrust6detail24sequential_copy_backwardINS0_15normal_iteratorIPfEES4_EET0_T_S6_S5_.exit
	retq
.Lfunc_end28:
	.size	_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_, .Lfunc_end28-_ZN6thrust6detail8dispatch15overlapped_copyINS_6system3cpp6detail3tagENS0_15normal_iteratorIPfEES9_EET1_RNS5_16execution_policyIT_EET0_SF_SA_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIfE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIfE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIfE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIfE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIfE8allocateEmPKv,@function
_ZNSt15__new_allocatorIfE8allocateEmPKv: # @_ZNSt15__new_allocatorIfE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB29_1
# %bb.3:
	shlq	$2, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB29_1:
	.cfi_def_cfa_offset 16
	shrq	$62, %rsi
	je	.LBB29_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB29_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end29:
	.size	_ZNSt15__new_allocatorIfE8allocateEmPKv, .Lfunc_end29-_ZNSt15__new_allocatorIfE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEEC2Em,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEEC2Em,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEEC2Em
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em,@function
_ZN6thrust6detail11vector_baseIfSaIfEEC2Em: # @_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
.Lfunc_begin9:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception9
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rdi)
	movq	$0, 24(%rdi)
	testq	%rsi, %rsi
	je	.LBB30_3
# %bb.1:                                # %_ZN6thrust6detail18contiguous_storageIfSaIfEE19default_construct_nENS0_15normal_iteratorIPfEEm.exit.i
.Ltmp368:
	movq	%rsi, %rbx
	movq	%rdi, %r14
	leaq	8(%rdi), %r15
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIfE8allocateEmPKv
.Ltmp369:
# %bb.2:                                # %.noexc
	movq	%rax, 8(%r14)
	movq	%rbx, 16(%r14)
	movq	%rbx, 24(%r14)
	shlq	$2, %rbx
	movq	%rax, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	memset@PLT                      # TAILCALL
.LBB30_3:                               # %_ZN6thrust6detail11vector_baseIfSaIfEE12default_initEm.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB30_4:
	.cfi_def_cfa_offset 32
.Ltmp370:
	movq	%rax, %rbx
	cmpq	$0, 16(%r14)
	je	.LBB30_6
# %bb.5:
	movq	(%r15), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r15)
.LBB30_6:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEED2Ev.exit
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end30:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEEC2Em, .Lfunc_end30-_ZN6thrust6detail11vector_baseIfSaIfEEC2Em
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEEC2Em,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEEC2Em,comdat
	.p2align	2, 0x0
GCC_except_table30:
.Lexception9:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end9-.Lcst_begin9
.Lcst_begin9:
	.uleb128 .Ltmp368-.Lfunc_begin9         # >> Call Site 1 <<
	.uleb128 .Ltmp369-.Ltmp368              #   Call between .Ltmp368 and .Ltmp369
	.uleb128 .Ltmp370-.Lfunc_begin9         #     jumps to .Ltmp370
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp369-.Lfunc_begin9         # >> Call Site 2 <<
	.uleb128 .Lfunc_end30-.Ltmp369          #   Call between .Ltmp369 and .Lfunc_end30
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end9:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE # -- Begin function _ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE,@function
_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE: # @_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
.Lfunc_begin10:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception10
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
	movq	%rax, (%rbx)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
	movq	$0, 24(%rbx)
	movq	8(%r14), %rdx
	movq	24(%r14), %r14
	leaq	(%rdx,%r14,4), %rcx
	shlq	$2, %r14
	negq	%r14
	sarq	$2, %r14
	negq	%r14
.Ltmp371:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%rbx, %r8
	callq	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE
.Ltmp372:
# %bb.1:
	movq	%r14, 24(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.LBB31_3:
	.cfi_def_cfa_offset 32
.Ltmp373:
	movq	%rax, %r14
.Ltmp374:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv
.Ltmp375:
# %bb.4:                                # %_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.LBB31_2:
.Ltmp376:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end31:
	.size	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE, .Lfunc_end31-_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEEC2IfSaIfEEERKNS1_IT_T0_EE,comdat
	.p2align	2, 0x0
GCC_except_table31:
.Lexception10:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase2-.Lttbaseref2
.Lttbaseref2:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end10-.Lcst_begin10
.Lcst_begin10:
	.uleb128 .Lfunc_begin10-.Lfunc_begin10  # >> Call Site 1 <<
	.uleb128 .Ltmp371-.Lfunc_begin10        #   Call between .Lfunc_begin10 and .Ltmp371
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp371-.Lfunc_begin10        # >> Call Site 2 <<
	.uleb128 .Ltmp372-.Ltmp371              #   Call between .Ltmp371 and .Ltmp372
	.uleb128 .Ltmp373-.Lfunc_begin10        #     jumps to .Ltmp373
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp374-.Lfunc_begin10        # >> Call Site 3 <<
	.uleb128 .Ltmp375-.Ltmp374              #   Call between .Ltmp374 and .Ltmp375
	.uleb128 .Ltmp376-.Lfunc_begin10        #     jumps to .Ltmp376
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp375-.Lfunc_begin10        # >> Call Site 4 <<
	.uleb128 .Lfunc_end31-.Ltmp375          #   Call between .Ltmp375 and .Lfunc_end31
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end10:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v,"axG",@progbits,_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v,comdat
	.weak	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v # -- Begin function _ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
	.type	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v,@function
_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v: # @_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
	.cfi_startproc
# %bb.0:
	movb	_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource(%rip), %al
	testb	%al, %al
	je	.LBB32_1
.LBB32_4:
	movl	$_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource, %eax
	retq
.LBB32_1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB32_3
# %bb.2:
	movq	$_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE+16, _ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource(%rip)
	callq	_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v
	movq	%rax, _ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource+8(%rip)
	movl	$_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource, %edi
	callq	__cxa_guard_release
.LBB32_3:
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	jmp	.LBB32_4
.Lfunc_end32:
	.size	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v, .Lfunc_end32-_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev,"axG",@progbits,_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev,comdat
	.weak	_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev # -- Begin function _ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev
	.p2align	1, 0x90
	.type	_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev,@function
_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev: # @_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev
	.cfi_startproc
# %bb.0:
	retq
.Lfunc_end33:
	.size	_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev, .Lfunc_end33-_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v,"axG",@progbits,_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v,comdat
	.weak	_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v # -- Begin function _ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v
	.type	_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v,@function
_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v: # @_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v
	.cfi_startproc
# %bb.0:
	movb	_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource(%rip), %al
	testb	%al, %al
	je	.LBB34_1
.LBB34_4:
	movl	$_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource, %eax
	retq
.LBB34_1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB34_3
# %bb.2:
	movl	$_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource, %edi
	callq	__cxa_guard_release
.LBB34_3:
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	jmp	.LBB34_4
.Lfunc_end34:
	.size	_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v, .Lfunc_end34-_ZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_v
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev,"axG",@progbits,_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev,comdat
	.weak	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev # -- Begin function _ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev,@function
_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev: # @_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev
	.cfi_startproc
# %bb.0:
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end35:
	.size	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev, .Lfunc_end35-_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm,"axG",@progbits,_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm,comdat
	.weak	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm # -- Begin function _ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm
	.p2align	1, 0x90
	.type	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm,@function
_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm: # @_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm
	.cfi_startproc
# %bb.0:
	movq	8(%rdi), %rdi
	jmp	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm # TAILCALL
.Lfunc_end36:
	.size	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm, .Lfunc_end36-_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm,"axG",@progbits,_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm,comdat
	.weak	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm # -- Begin function _ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm
	.p2align	1, 0x90
	.type	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm,@function
_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm: # @_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm
	.cfi_startproc
# %bb.0:
	movq	8(%rdi), %rdi
	jmp	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm # TAILCALL
.Lfunc_end37:
	.size	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm, .Lfunc_end37-_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_,"axG",@progbits,_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_,comdat
	.weak	_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_ # -- Begin function _ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_
	.p2align	1, 0x90
	.type	_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_,@function
_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_: # @_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_
	.cfi_startproc
# %bb.0:
	cmpq	%rsi, %rdi
	sete	%al
	retq
.Lfunc_end38:
	.size	_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_, .Lfunc_end38-_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev,"axG",@progbits,_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev,comdat
	.weak	_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev # -- Begin function _ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev
	.p2align	1, 0x90
	.type	_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev,@function
_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev: # @_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev
	.cfi_startproc
# %bb.0:
	retq
.Lfunc_end39:
	.size	_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev, .Lfunc_end39-_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev,"axG",@progbits,_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev,comdat
	.weak	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev # -- Begin function _ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev,@function
_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev: # @_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev
	.cfi_startproc
# %bb.0:
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end40:
	.size	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev, .Lfunc_end40-_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm,"axG",@progbits,_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm,comdat
	.weak	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm # -- Begin function _ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
	.p2align	1, 0x90
	.type	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm,@function
_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm: # @_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
.Lfunc_begin11:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception11
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	leaq	8(%rsp), %rdi
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB41_1
# %bb.16:
	movq	8(%rsp), %rax
	addq	$80, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB41_1:
	.cfi_def_cfa_offset 112
	movl	%eax, %ebp
	callq	hipGetLastError
	movl	$40, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp377:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp378:
# %bb.2:
	movq	(%rax), %rcx
.Ltmp379:
	leaq	16(%rsp), %rdi
	movq	%rax, %rsi
	movl	%ebp, %edx
	callq	*48(%rcx)
.Ltmp380:
# %bb.3:
	movq	16(%rsp), %rsi
.Ltmp382:
	leaq	48(%rsp), %rdi
	leaq	7(%rsp), %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_
.Ltmp383:
# %bb.4:
	movb	$1, %bpl
.Ltmp385:
	leaq	48(%rsp), %rsi
	movq	%rbx, %rdi
	callq	_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Ltmp386:
# %bb.5:
	xorl	%ebp, %ebp
.Ltmp387:
	movl	$_ZTIN6thrust6system6detail9bad_allocE, %esi
	movl	$_ZN6thrust6system6detail9bad_allocD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.Ltmp388:
# %bb.17:
.LBB41_7:
.Ltmp389:
	movq	%rax, %r14
	leaq	64(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB41_9
# %bb.8:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB41_9:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	leaq	32(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB41_11
# %bb.10:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit15
	callq	_ZdlPv
.LBB41_11:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit15
	testb	%bpl, %bpl
	jne	.LBB41_14
	jmp	.LBB41_15
.LBB41_12:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.thread
.Ltmp384:
	movq	%rax, %r14
	leaq	32(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB41_14
# %bb.13:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit15.thread26
	callq	_ZdlPv
	jmp	.LBB41_14
.LBB41_6:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit15.thread
.Ltmp381:
	movq	%rax, %r14
.LBB41_14:
	movq	%rbx, %rdi
	callq	__cxa_free_exception
.LBB41_15:
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end41:
	.size	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm, .Lfunc_end41-_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm,"aG",@progbits,_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm,comdat
	.p2align	2, 0x0
GCC_except_table41:
.Lexception11:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end11-.Lcst_begin11
.Lcst_begin11:
	.uleb128 .Lfunc_begin11-.Lfunc_begin11  # >> Call Site 1 <<
	.uleb128 .Ltmp377-.Lfunc_begin11        #   Call between .Lfunc_begin11 and .Ltmp377
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp377-.Lfunc_begin11        # >> Call Site 2 <<
	.uleb128 .Ltmp380-.Ltmp377              #   Call between .Ltmp377 and .Ltmp380
	.uleb128 .Ltmp381-.Lfunc_begin11        #     jumps to .Ltmp381
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp382-.Lfunc_begin11        # >> Call Site 3 <<
	.uleb128 .Ltmp383-.Ltmp382              #   Call between .Ltmp382 and .Ltmp383
	.uleb128 .Ltmp384-.Lfunc_begin11        #     jumps to .Ltmp384
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp385-.Lfunc_begin11        # >> Call Site 4 <<
	.uleb128 .Ltmp388-.Ltmp385              #   Call between .Ltmp385 and .Ltmp388
	.uleb128 .Ltmp389-.Lfunc_begin11        #     jumps to .Ltmp389
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp388-.Lfunc_begin11        # >> Call Site 5 <<
	.uleb128 .Lfunc_end41-.Ltmp388          #   Call between .Ltmp388 and .Lfunc_end41
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end11:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm,"axG",@progbits,_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm,comdat
	.weak	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm # -- Begin function _ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
	.p2align	1, 0x90
	.type	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm,@function
_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm: # @_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Lfunc_begin12:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception12
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %rdi
	callq	hipFree
	testl	%eax, %eax
	jne	.LBB42_1
# %bb.5:
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB42_1:
	.cfi_def_cfa_offset 32
	movl	%eax, %ebp
	callq	hipGetLastError
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp390:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp391:
# %bb.2:
.Ltmp392:
	movl	$.L.str.22, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp393:
# %bb.3:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB42_4:
.Ltmp394:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end42:
	.size	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm, .Lfunc_end42-_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm,"aG",@progbits,_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm,comdat
	.p2align	2, 0x0
GCC_except_table42:
.Lexception12:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end12-.Lcst_begin12
.Lcst_begin12:
	.uleb128 .Lfunc_begin12-.Lfunc_begin12  # >> Call Site 1 <<
	.uleb128 .Ltmp390-.Lfunc_begin12        #   Call between .Lfunc_begin12 and .Ltmp390
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp390-.Lfunc_begin12        # >> Call Site 2 <<
	.uleb128 .Ltmp393-.Ltmp390              #   Call between .Ltmp390 and .Ltmp393
	.uleb128 .Ltmp394-.Lfunc_begin12        #     jumps to .Ltmp394
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp393-.Lfunc_begin12        # >> Call Site 3 <<
	.uleb128 .Lfunc_end42-.Ltmp393          #   Call between .Ltmp393 and .Lfunc_end42
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end12:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_,"axG",@progbits,_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_,comdat
	.weak	_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_ # -- Begin function _ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_
	.p2align	1, 0x90
	.type	_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_,@function
_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_: # @_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_
	.cfi_startproc
# %bb.0:
	cmpq	%rsi, %rdi
	sete	%al
	retq
.Lfunc_end43:
	.size	_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_, .Lfunc_end43-_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system12hip_categoryEv,"axG",@progbits,_ZN6thrust6system12hip_categoryEv,comdat
	.weak	_ZN6thrust6system12hip_categoryEv # -- Begin function _ZN6thrust6system12hip_categoryEv
	.type	_ZN6thrust6system12hip_categoryEv,@function
_ZN6thrust6system12hip_categoryEv:      # @_ZN6thrust6system12hip_categoryEv
	.cfi_startproc
# %bb.0:
	movb	_ZGVZN6thrust6system12hip_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB44_1
.LBB44_4:
	movl	$_ZZN6thrust6system12hip_categoryEvE6result, %eax
	retq
.LBB44_1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust6system12hip_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB44_3
# %bb.2:
	movq	$_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE+16, _ZZN6thrust6system12hip_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system12hip_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system12hip_categoryEvE6result, %edi
	callq	__cxa_guard_release
.LBB44_3:
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	jmp	.LBB44_4
.Lfunc_end44:
	.size	_ZN6thrust6system12hip_categoryEv, .Lfunc_end44-_ZN6thrust6system12hip_categoryEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,"axG",@progbits,_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,comdat
	.weak	_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin13:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception13
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	$_ZTVN6thrust6system6detail9bad_allocE+16, (%rdi)
	leaq	8(%rdi), %r14
	leaq	24(%rdi), %rbp
	movq	%rbp, 8(%rdi)
	movq	$0, 16(%rdi)
	movb	$0, 24(%rdi)
	callq	_ZNKSt9bad_alloc4whatEv
	movq	%rax, %r12
	movq	16(%rbx), %r13
	movq	%rax, %rdi
	callq	strlen
.Ltmp395:
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%r13, %rdx
	movq	%r12, %rcx
	movq	%rax, %r8
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm
.Ltmp396:
# %bb.1:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc.exit
.Ltmp397:
	movl	$.L.str.20, %esi
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp398:
# %bb.2:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit
	movq	(%r15), %rsi
	movq	8(%r15), %rdx
.Ltmp399:
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp400:
# %bb.3:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB45_4:
	.cfi_def_cfa_offset 64
.Ltmp401:
	movq	%rax, %r15
	movq	(%r14), %rdi
	cmpq	%rbp, %rdi
	je	.LBB45_6
# %bb.5:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB45_6:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	%rbx, %rdi
	callq	_ZNSt9bad_allocD2Ev
	movq	%r15, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end45:
	.size	_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end45-_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,"aG",@progbits,_ZN6thrust6system6detail9bad_allocC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,comdat
	.p2align	2, 0x0
GCC_except_table45:
.Lexception13:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end13-.Lcst_begin13
.Lcst_begin13:
	.uleb128 .Ltmp395-.Lfunc_begin13        # >> Call Site 1 <<
	.uleb128 .Ltmp400-.Ltmp395              #   Call between .Ltmp395 and .Ltmp400
	.uleb128 .Ltmp401-.Lfunc_begin13        #     jumps to .Ltmp401
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp400-.Lfunc_begin13        # >> Call Site 2 <<
	.uleb128 .Lfunc_end45-.Ltmp400          #   Call between .Ltmp400 and .Lfunc_end45
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end13:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6system6detail9bad_allocD2Ev,"axG",@progbits,_ZN6thrust6system6detail9bad_allocD2Ev,comdat
	.weak	_ZN6thrust6system6detail9bad_allocD2Ev # -- Begin function _ZN6thrust6system6detail9bad_allocD2Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system6detail9bad_allocD2Ev,@function
_ZN6thrust6system6detail9bad_allocD2Ev: # @_ZN6thrust6system6detail9bad_allocD2Ev
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	$_ZTVN6thrust6system6detail9bad_allocE+16, (%rdi)
	movq	8(%rdi), %rdi
	leaq	24(%rbx), %rax
	cmpq	%rax, %rdi
	je	.LBB46_2
# %bb.1:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB46_2:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt9bad_allocD2Ev             # TAILCALL
.Lfunc_end46:
	.size	_ZN6thrust6system6detail9bad_allocD2Ev, .Lfunc_end46-_ZN6thrust6system6detail9bad_allocD2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system14error_categoryD2Ev,"axG",@progbits,_ZN6thrust6system14error_categoryD2Ev,comdat
	.weak	_ZN6thrust6system14error_categoryD2Ev # -- Begin function _ZN6thrust6system14error_categoryD2Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system14error_categoryD2Ev,@function
_ZN6thrust6system14error_categoryD2Ev:  # @_ZN6thrust6system14error_categoryD2Ev
	.cfi_startproc
# %bb.0:
	movq	$_ZTVN6thrust6system14error_categoryE+16, (%rdi)
	retq
.Lfunc_end47:
	.size	_ZN6thrust6system14error_categoryD2Ev, .Lfunc_end47-_ZN6thrust6system14error_categoryD2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev,"axG",@progbits,_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev,comdat
	.weak	_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev # -- Begin function _ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev,@function
_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev: # @_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev
	.cfi_startproc
# %bb.0:
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end48:
	.size	_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev, .Lfunc_end48-_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv,"axG",@progbits,_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv,comdat
	.weak	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv # -- Begin function _ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv
	.p2align	1, 0x90
	.type	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv,@function
_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv: # @_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv
	.cfi_startproc
# %bb.0:
	movl	$.L.str.14, %eax
	retq
.Lfunc_end49:
	.size	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv, .Lfunc_end49-_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi,comdat
	.weak	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi # -- Begin function _ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi
	.p2align	1, 0x90
	.type	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi,@function
_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi: # @_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movl	%esi, %ebx
	cmpl	$50, %esi
	jg	.LBB50_5
# %bb.1:
	movb	_ZGVZN6thrust6system12hip_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB50_2
.LBB50_4:                               # %_ZN6thrust6system20make_error_conditionENS0_11hip_rocprim4errc6errc_tE.exit
	movl	$_ZZN6thrust6system12hip_categoryEvE6result, %edx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.LBB50_5:
	.cfi_def_cfa_offset 16
	movb	_ZGVZN6thrust6system15system_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB50_6
.LBB50_8:                               # %_ZN6thrust6system15system_categoryEv.exit
	movq	_ZZN6thrust6system15system_categoryEvE6result(%rip), %rax
	movq	24(%rax), %rax
	movl	$_ZZN6thrust6system15system_categoryEvE6result, %edi
	movl	%ebx, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmpq	*%rax                           # TAILCALL
.LBB50_2:
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust6system12hip_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB50_4
# %bb.3:
	movq	$_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE+16, _ZZN6thrust6system12hip_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system12hip_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system12hip_categoryEvE6result, %edi
	callq	__cxa_guard_release
	jmp	.LBB50_4
.LBB50_6:
	movl	$_ZGVZN6thrust6system15system_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB50_8
# %bb.7:
	movq	$_ZTVN6thrust6system6detail21system_error_categoryE+16, _ZZN6thrust6system15system_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system15system_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system15system_categoryEvE6result, %edi
	callq	__cxa_guard_release
	jmp	.LBB50_8
.Lfunc_end50:
	.size	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi, .Lfunc_end50-_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE,"axG",@progbits,_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE,comdat
	.weak	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE # -- Begin function _ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.p2align	1, 0x90
	.type	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE,@function
_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE: # @_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdx, %rbx
	movq	(%rdi), %rax
	callq	*24(%rax)
	cmpq	8(%rbx), %rdx
	sete	%cl
	cmpl	(%rbx), %eax
	sete	%al
	andb	%cl, %al
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end51:
	.size	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE, .Lfunc_end51-_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi,"axG",@progbits,_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi,comdat
	.weak	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi # -- Begin function _ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.p2align	1, 0x90
	.type	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi,@function
_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi: # @_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.cfi_startproc
# %bb.0:
	cmpq	%rdi, 8(%rsi)
	sete	%cl
	cmpl	%edx, (%rsi)
	sete	%al
	andb	%cl, %al
	retq
.Lfunc_end52:
	.size	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi, .Lfunc_end52-_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei,comdat
	.weak	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei # -- Begin function _ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei
	.p2align	1, 0x90
	.type	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei,@function
_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei: # @_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei
.Lfunc_begin14:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception14
# %bb.0:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movl	%edx, %ebp
	movq	%rdi, %rbx
	movl	%edx, %edi
	callq	hipGetErrorString
	movq	%rax, %r15
	movl	%ebp, %edi
	callq	hipGetErrorName
	testq	%rax, %rax
	movl	$.L.str.19, %r14d
	cmovneq	%rax, %r14
	leaq	24(%rsp), %rax
	movq	%rax, -16(%rax)
	movq	%r14, %rdi
	callq	strlen
	leaq	(%rax,%r14), %rdx
	leaq	8(%rsp), %r12
	movq	%r12, %rdi
	movq	%r14, %rsi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
.Ltmp402:
	movl	$.L.str.20, %esi
	movq	%r12, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp403:
# %bb.1:                                # %.noexc
	movq	%rax, %r12
	leaq	56(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	(%rax), %rsi
	movq	%rax, %rbp
	addq	$16, %rbp
	cmpq	%rbp, %rsi
	je	.LBB53_2
# %bb.3:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	movq	%rsi, 40(%rsp)
	movq	16(%r12), %rax
	movq	%rax, 56(%rsp)
	movq	8(%r12), %r13
	jmp	.LBB53_4
.LBB53_2:
	movq	8(%r12), %r13
	leaq	1(%r13), %rdx
	movq	%r14, %rdi
	callq	memcpy@PLT
.LBB53_4:
	leaq	40(%rsp), %rdi
	movq	%r13, 8(%rdi)
	movq	%rbp, (%r12)
	movq	$0, 8(%r12)
	movb	$0, 16(%r12)
	testq	%r15, %r15
	movl	$.L.str.18, %esi
	cmovneq	%r15, %rsi
.Ltmp405:
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp406:
# %bb.5:                                # %.noexc16
	movq	%rax, %r15
	leaq	16(%rbx), %rdi
	movq	%rdi, (%rbx)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB53_6
# %bb.7:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i13
	movq	%rsi, (%rbx)
	movq	16(%r15), %rax
	movq	%rax, 16(%rbx)
	movq	8(%r15), %r13
	jmp	.LBB53_8
.LBB53_6:
	movq	8(%r15), %r13
	leaq	1(%r13), %rdx
	callq	memcpy@PLT
.LBB53_8:
	movq	%r13, 8(%rbx)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB53_10
# %bb.9:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i18
	callq	_ZdlPv
.LBB53_10:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	8(%rsp), %rdi
	leaq	24(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB53_12
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i19
	callq	_ZdlPv
.LBB53_12:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB53_14:
	.cfi_def_cfa_offset 128
.Ltmp407:
	movq	%rax, %rbx
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB53_16
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i22
	callq	_ZdlPv
	jmp	.LBB53_16
.LBB53_13:
.Ltmp404:
	movq	%rax, %rbx
.LBB53_16:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit24
	movq	8(%rsp), %rdi
	leaq	24(%rsp), %rax
	cmpq	%rax, %rdi
	je	.LBB53_18
# %bb.17:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i25
	callq	_ZdlPv
.LBB53_18:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit27
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end53:
	.size	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei, .Lfunc_end53-_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei
	.cfi_endproc
	.section	.gcc_except_table._ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei,"aG",@progbits,_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei,comdat
	.p2align	2, 0x0
GCC_except_table53:
.Lexception14:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end14-.Lcst_begin14
.Lcst_begin14:
	.uleb128 .Lfunc_begin14-.Lfunc_begin14  # >> Call Site 1 <<
	.uleb128 .Ltmp402-.Lfunc_begin14        #   Call between .Lfunc_begin14 and .Ltmp402
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp402-.Lfunc_begin14        # >> Call Site 2 <<
	.uleb128 .Ltmp403-.Ltmp402              #   Call between .Ltmp402 and .Ltmp403
	.uleb128 .Ltmp404-.Lfunc_begin14        #     jumps to .Ltmp404
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp403-.Lfunc_begin14        # >> Call Site 3 <<
	.uleb128 .Ltmp405-.Ltmp403              #   Call between .Ltmp403 and .Ltmp405
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp405-.Lfunc_begin14        # >> Call Site 4 <<
	.uleb128 .Ltmp406-.Ltmp405              #   Call between .Ltmp405 and .Ltmp406
	.uleb128 .Ltmp407-.Lfunc_begin14        #     jumps to .Ltmp407
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp406-.Lfunc_begin14        # >> Call Site 5 <<
	.uleb128 .Lfunc_end53-.Ltmp406          #   Call between .Ltmp406 and .Lfunc_end53
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end14:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6system14error_categoryD0Ev,"axG",@progbits,_ZN6thrust6system14error_categoryD0Ev,comdat
	.weak	_ZN6thrust6system14error_categoryD0Ev # -- Begin function _ZN6thrust6system14error_categoryD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system14error_categoryD0Ev,@function
_ZN6thrust6system14error_categoryD0Ev:  # @_ZN6thrust6system14error_categoryD0Ev
	.cfi_startproc
# %bb.0:
	ud2
.Lfunc_end54:
	.size	_ZN6thrust6system14error_categoryD0Ev, .Lfunc_end54-_ZN6thrust6system14error_categoryD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system14error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust6system14error_category23default_error_conditionEi,comdat
	.weak	_ZNK6thrust6system14error_category23default_error_conditionEi # -- Begin function _ZNK6thrust6system14error_category23default_error_conditionEi
	.p2align	1, 0x90
	.type	_ZNK6thrust6system14error_category23default_error_conditionEi,@function
_ZNK6thrust6system14error_category23default_error_conditionEi: # @_ZNK6thrust6system14error_category23default_error_conditionEi
	.cfi_startproc
# %bb.0:
	movl	%esi, %eax
	movq	%rdi, %rdx
	retq
.Lfunc_end55:
	.size	_ZNK6thrust6system14error_category23default_error_conditionEi, .Lfunc_end55-_ZNK6thrust6system14error_category23default_error_conditionEi
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system15system_categoryEv,"axG",@progbits,_ZN6thrust6system15system_categoryEv,comdat
	.weak	_ZN6thrust6system15system_categoryEv # -- Begin function _ZN6thrust6system15system_categoryEv
	.type	_ZN6thrust6system15system_categoryEv,@function
_ZN6thrust6system15system_categoryEv:   # @_ZN6thrust6system15system_categoryEv
	.cfi_startproc
# %bb.0:
	movb	_ZGVZN6thrust6system15system_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB56_1
.LBB56_4:
	movl	$_ZZN6thrust6system15system_categoryEvE6result, %eax
	retq
.LBB56_1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust6system15system_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB56_3
# %bb.2:
	movq	$_ZTVN6thrust6system6detail21system_error_categoryE+16, _ZZN6thrust6system15system_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system15system_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system15system_categoryEvE6result, %edi
	callq	__cxa_guard_release
.LBB56_3:
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	jmp	.LBB56_4
.Lfunc_end56:
	.size	_ZN6thrust6system15system_categoryEv, .Lfunc_end56-_ZN6thrust6system15system_categoryEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system6detail21system_error_categoryD0Ev,"axG",@progbits,_ZN6thrust6system6detail21system_error_categoryD0Ev,comdat
	.weak	_ZN6thrust6system6detail21system_error_categoryD0Ev # -- Begin function _ZN6thrust6system6detail21system_error_categoryD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system6detail21system_error_categoryD0Ev,@function
_ZN6thrust6system6detail21system_error_categoryD0Ev: # @_ZN6thrust6system6detail21system_error_categoryD0Ev
	.cfi_startproc
# %bb.0:
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end57:
	.size	_ZN6thrust6system6detail21system_error_categoryD0Ev, .Lfunc_end57-_ZN6thrust6system6detail21system_error_categoryD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail21system_error_category4nameEv,"axG",@progbits,_ZNK6thrust6system6detail21system_error_category4nameEv,comdat
	.weak	_ZNK6thrust6system6detail21system_error_category4nameEv # -- Begin function _ZNK6thrust6system6detail21system_error_category4nameEv
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail21system_error_category4nameEv,@function
_ZNK6thrust6system6detail21system_error_category4nameEv: # @_ZNK6thrust6system6detail21system_error_category4nameEv
	.cfi_startproc
# %bb.0:
	movl	$.L.str.15, %eax
	retq
.Lfunc_end58:
	.size	_ZNK6thrust6system6detail21system_error_category4nameEv, .Lfunc_end58-_ZNK6thrust6system6detail21system_error_category4nameEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail21system_error_category23default_error_conditionEi,"axG",@progbits,_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi,comdat
	.weak	_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi # -- Begin function _ZNK6thrust6system6detail21system_error_category23default_error_conditionEi
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi,@function
_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi: # @_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movl	%esi, %ebx
	leal	-9901(%rbx), %eax
	cmpl	$78, %eax
	ja	.LBB59_81
# %bb.1:
	jmpq	*.LJTI59_0(,%rax,8)
.LBB59_2:
	movl	$9901, %edi                     # imm = 0x26AD
	jmp	.LBB59_3
.LBB59_77:
	movl	$9979, %edi                     # imm = 0x26FB
	jmp	.LBB59_3
.LBB59_33:
	movl	$9961, %edi                     # imm = 0x26E9
	jmp	.LBB59_3
.LBB59_50:
	movl	$9968, %edi                     # imm = 0x26F0
	jmp	.LBB59_3
.LBB59_67:
	movl	$9974, %edi                     # imm = 0x26F6
	jmp	.LBB59_3
.LBB59_75:
	movl	$9977, %edi                     # imm = 0x26F9
	jmp	.LBB59_3
.LBB59_28:
	movl	$9945, %edi                     # imm = 0x26D9
	jmp	.LBB59_3
.LBB59_19:
	movl	$9952, %edi                     # imm = 0x26E0
	jmp	.LBB59_3
.LBB59_29:
	movl	$9958, %edi                     # imm = 0x26E6
	jmp	.LBB59_3
.LBB59_22:
	movl	$9955, %edi                     # imm = 0x26E3
	jmp	.LBB59_3
.LBB59_17:
	movl	$9951, %edi                     # imm = 0x26DF
	jmp	.LBB59_3
.LBB59_66:
	movl	$9933, %edi                     # imm = 0x26CD
	jmp	.LBB59_3
.LBB59_80:
	movl	$9941, %edi                     # imm = 0x26D5
	jmp	.LBB59_3
.LBB59_59:
	movl	$9928, %edi                     # imm = 0x26C8
	jmp	.LBB59_3
.LBB59_79:
	movl	$9940, %edi                     # imm = 0x26D4
	jmp	.LBB59_3
.LBB59_74:
	movl	$9938, %edi                     # imm = 0x26D2
	jmp	.LBB59_3
.LBB59_58:
	movl	$9927, %edi                     # imm = 0x26C7
	jmp	.LBB59_3
.LBB59_45:
	movl	$9921, %edi                     # imm = 0x26C1
	jmp	.LBB59_3
.LBB59_68:
	movl	$9975, %edi                     # imm = 0x26F7
	jmp	.LBB59_3
.LBB59_7:
	movl	$9946, %edi                     # imm = 0x26DA
	jmp	.LBB59_3
.LBB59_39:
	movl	$9917, %edi                     # imm = 0x26BD
	jmp	.LBB59_3
.LBB59_48:
	movl	$9966, %edi                     # imm = 0x26EE
	jmp	.LBB59_3
.LBB59_71:
	movl	$9934, %edi                     # imm = 0x26CE
	jmp	.LBB59_3
.LBB59_13:
	movl	$9906, %edi                     # imm = 0x26B2
	jmp	.LBB59_3
.LBB59_43:
	movl	$9919, %edi                     # imm = 0x26BF
	jmp	.LBB59_3
.LBB59_47:
	movl	$9922, %edi                     # imm = 0x26C2
	jmp	.LBB59_3
.LBB59_25:
	movl	$9942, %edi                     # imm = 0x26D6
	jmp	.LBB59_3
.LBB59_57:
	movl	$9926, %edi                     # imm = 0x26C6
	jmp	.LBB59_3
.LBB59_61:
	movl	$9929, %edi                     # imm = 0x26C9
	jmp	.LBB59_3
.LBB59_4:
	movl	$9902, %edi                     # imm = 0x26AE
	jmp	.LBB59_3
.LBB59_54:
	movl	$9924, %edi                     # imm = 0x26C4
	jmp	.LBB59_3
.LBB59_18:
	movl	$9910, %edi                     # imm = 0x26B6
	jmp	.LBB59_3
.LBB59_56:
	movl	$9971, %edi                     # imm = 0x26F3
	jmp	.LBB59_3
.LBB59_5:
	movl	$9903, %edi                     # imm = 0x26AF
	jmp	.LBB59_3
.LBB59_11:
	movl	$9905, %edi                     # imm = 0x26B1
	jmp	.LBB59_3
.LBB59_36:
	movl	$9914, %edi                     # imm = 0x26BA
	jmp	.LBB59_3
.LBB59_62:
	movl	$9930, %edi                     # imm = 0x26CA
	jmp	.LBB59_3
.LBB59_65:
	movl	$9932, %edi                     # imm = 0x26CC
	jmp	.LBB59_3
.LBB59_15:
	movl	$9908, %edi                     # imm = 0x26B4
	jmp	.LBB59_3
.LBB59_6:
	movl	$9904, %edi                     # imm = 0x26B0
	jmp	.LBB59_3
.LBB59_26:
	movl	$9911, %edi                     # imm = 0x26B7
	jmp	.LBB59_3
.LBB59_31:
	movl	$9943, %edi                     # imm = 0x26D7
	jmp	.LBB59_3
.LBB59_53:
	movl	$9923, %edi                     # imm = 0x26C3
	jmp	.LBB59_3
.LBB59_16:
	movl	$9909, %edi                     # imm = 0x26B5
	jmp	.LBB59_3
.LBB59_8:
	movl	$9947, %edi                     # imm = 0x26DB
	jmp	.LBB59_3
.LBB59_12:
	movl	$9950, %edi                     # imm = 0x26DE
	jmp	.LBB59_3
.LBB59_14:
	movl	$9907, %edi                     # imm = 0x26B3
	jmp	.LBB59_3
.LBB59_44:
	movl	$9920, %edi                     # imm = 0x26C0
	jmp	.LBB59_3
.LBB59_69:
	movl	$9976, %edi                     # imm = 0x26F8
	jmp	.LBB59_3
.LBB59_9:
	movl	$9948, %edi                     # imm = 0x26DC
	jmp	.LBB59_3
.LBB59_78:
	movl	$9939, %edi                     # imm = 0x26D3
	jmp	.LBB59_3
.LBB59_35:
	movl	$9913, %edi                     # imm = 0x26B9
	jmp	.LBB59_3
.LBB59_23:
	movl	$9956, %edi                     # imm = 0x26E4
	jmp	.LBB59_3
.LBB59_55:
	movl	$9925, %edi                     # imm = 0x26C5
	jmp	.LBB59_3
.LBB59_63:
	movl	$9931, %edi                     # imm = 0x26CB
	jmp	.LBB59_3
.LBB59_27:
	movl	$9912, %edi                     # imm = 0x26B8
	jmp	.LBB59_3
.LBB59_72:
	movl	$9935, %edi                     # imm = 0x26CF
	jmp	.LBB59_3
.LBB59_37:
	movl	$9915, %edi                     # imm = 0x26BB
	jmp	.LBB59_3
.LBB59_38:
	movl	$9916, %edi                     # imm = 0x26BC
	jmp	.LBB59_3
.LBB59_24:
	movl	$9957, %edi                     # imm = 0x26E5
	jmp	.LBB59_3
.LBB59_70:
	movl	$9944, %edi                     # imm = 0x26D8
	jmp	.LBB59_3
.LBB59_41:
	movl	$9918, %edi                     # imm = 0x26BE
	jmp	.LBB59_3
.LBB59_42:
	movl	$9964, %edi                     # imm = 0x26EC
	jmp	.LBB59_3
.LBB59_46:
	movl	$9965, %edi                     # imm = 0x26ED
	jmp	.LBB59_3
.LBB59_32:
	movl	$9960, %edi                     # imm = 0x26E8
	jmp	.LBB59_3
.LBB59_64:
	movl	$9973, %edi                     # imm = 0x26F5
	jmp	.LBB59_3
.LBB59_30:
	movl	$9959, %edi                     # imm = 0x26E7
	jmp	.LBB59_3
.LBB59_49:
	movl	$9967, %edi                     # imm = 0x26EF
	jmp	.LBB59_3
.LBB59_21:
	movl	$9954, %edi                     # imm = 0x26E2
	jmp	.LBB59_3
.LBB59_73:
	movl	$9936, %edi                     # imm = 0x26D0
	jmp	.LBB59_3
.LBB59_51:
	movl	$9969, %edi                     # imm = 0x26F1
	jmp	.LBB59_3
.LBB59_10:
	movl	$9949, %edi                     # imm = 0x26DD
	jmp	.LBB59_3
.LBB59_34:
	movl	$9962, %edi                     # imm = 0x26EA
	jmp	.LBB59_3
.LBB59_52:
	movl	$9970, %edi                     # imm = 0x26F2
	jmp	.LBB59_3
.LBB59_20:
	movl	$9953, %edi                     # imm = 0x26E1
	jmp	.LBB59_3
.LBB59_40:
	movl	$9963, %edi                     # imm = 0x26EB
	jmp	.LBB59_3
.LBB59_60:
	movl	$9972, %edi                     # imm = 0x26F4
	jmp	.LBB59_3
.LBB59_76:
	movl	$9978, %edi                     # imm = 0x26FA
.LBB59_3:
	callq	_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE
	movl	%eax, %ebx
.LBB59_82:
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.LBB59_81:
	.cfi_def_cfa_offset 16
	callq	_ZN6thrust6system15system_categoryEv
	movq	%rax, %rdx
	jmp	.LBB59_82
.Lfunc_end59:
	.size	_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi, .Lfunc_end59-_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi
	.cfi_endproc
	.section	.rodata._ZNK6thrust6system6detail21system_error_category23default_error_conditionEi,"aG",@progbits,_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi,comdat
	.p2align	3, 0x0
.LJTI59_0:
	.quad	.LBB59_2
	.quad	.LBB59_4
	.quad	.LBB59_5
	.quad	.LBB59_6
	.quad	.LBB59_11
	.quad	.LBB59_13
	.quad	.LBB59_14
	.quad	.LBB59_15
	.quad	.LBB59_16
	.quad	.LBB59_18
	.quad	.LBB59_26
	.quad	.LBB59_27
	.quad	.LBB59_35
	.quad	.LBB59_36
	.quad	.LBB59_37
	.quad	.LBB59_38
	.quad	.LBB59_39
	.quad	.LBB59_41
	.quad	.LBB59_43
	.quad	.LBB59_44
	.quad	.LBB59_45
	.quad	.LBB59_47
	.quad	.LBB59_53
	.quad	.LBB59_54
	.quad	.LBB59_55
	.quad	.LBB59_57
	.quad	.LBB59_58
	.quad	.LBB59_59
	.quad	.LBB59_61
	.quad	.LBB59_62
	.quad	.LBB59_63
	.quad	.LBB59_65
	.quad	.LBB59_66
	.quad	.LBB59_71
	.quad	.LBB59_72
	.quad	.LBB59_73
	.quad	.LBB59_81
	.quad	.LBB59_74
	.quad	.LBB59_78
	.quad	.LBB59_79
	.quad	.LBB59_80
	.quad	.LBB59_25
	.quad	.LBB59_31
	.quad	.LBB59_70
	.quad	.LBB59_28
	.quad	.LBB59_7
	.quad	.LBB59_8
	.quad	.LBB59_9
	.quad	.LBB59_10
	.quad	.LBB59_12
	.quad	.LBB59_17
	.quad	.LBB59_19
	.quad	.LBB59_20
	.quad	.LBB59_21
	.quad	.LBB59_22
	.quad	.LBB59_23
	.quad	.LBB59_24
	.quad	.LBB59_29
	.quad	.LBB59_30
	.quad	.LBB59_32
	.quad	.LBB59_33
	.quad	.LBB59_34
	.quad	.LBB59_40
	.quad	.LBB59_42
	.quad	.LBB59_46
	.quad	.LBB59_48
	.quad	.LBB59_49
	.quad	.LBB59_50
	.quad	.LBB59_51
	.quad	.LBB59_52
	.quad	.LBB59_56
	.quad	.LBB59_60
	.quad	.LBB59_64
	.quad	.LBB59_67
	.quad	.LBB59_68
	.quad	.LBB59_69
	.quad	.LBB59_75
	.quad	.LBB59_76
	.quad	.LBB59_77
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei,comdat
	.weak	_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei # -- Begin function _ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei,@function
_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei: # @_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %rbp, -16
	movl	%edx, %ebp
	movq	%rdi, %rbx
	movb	_ZGVZN6thrust6system16generic_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB60_1
.LBB60_3:                               # %_ZN6thrust6system16generic_categoryEv.exit
	movq	_ZZN6thrust6system16generic_categoryEvE6result(%rip), %rax
	movl	$_ZZN6thrust6system16generic_categoryEvE6result, %esi
	movq	%rbx, %rdi
	movl	%ebp, %edx
	callq	*48(%rax)
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB60_1:
	.cfi_def_cfa_offset 32
	movl	$_ZGVZN6thrust6system16generic_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB60_3
# %bb.2:
	movq	$_ZTVN6thrust6system6detail22generic_error_categoryE+16, _ZZN6thrust6system16generic_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system16generic_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system16generic_categoryEvE6result, %edi
	callq	__cxa_guard_release
	jmp	.LBB60_3
.Lfunc_end60:
	.size	_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei, .Lfunc_end60-_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE,"axG",@progbits,_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE,comdat
	.weak	_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE # -- Begin function _ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE
	.type	_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE,@function
_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE: # @_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movl	%edi, %ebx
	movb	_ZGVZN6thrust6system16generic_categoryEvE6result(%rip), %al
	testb	%al, %al
	je	.LBB61_1
.LBB61_3:                               # %_ZN6thrust6system16generic_categoryEv.exit
	movl	$_ZZN6thrust6system16generic_categoryEvE6result, %edx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.LBB61_1:
	.cfi_def_cfa_offset 16
	movl	$_ZGVZN6thrust6system16generic_categoryEvE6result, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB61_3
# %bb.2:
	movq	$_ZTVN6thrust6system6detail22generic_error_categoryE+16, _ZZN6thrust6system16generic_categoryEvE6result(%rip)
	movl	$_ZN6thrust6system14error_categoryD2Ev, %edi
	movl	$_ZZN6thrust6system16generic_categoryEvE6result, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZN6thrust6system16generic_categoryEvE6result, %edi
	callq	__cxa_guard_release
	jmp	.LBB61_3
.Lfunc_end61:
	.size	_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE, .Lfunc_end61-_ZN6thrust6system20make_error_conditionENS0_4errc6errc_tE
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system6detail22generic_error_categoryD0Ev,"axG",@progbits,_ZN6thrust6system6detail22generic_error_categoryD0Ev,comdat
	.weak	_ZN6thrust6system6detail22generic_error_categoryD0Ev # -- Begin function _ZN6thrust6system6detail22generic_error_categoryD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system6detail22generic_error_categoryD0Ev,@function
_ZN6thrust6system6detail22generic_error_categoryD0Ev: # @_ZN6thrust6system6detail22generic_error_categoryD0Ev
	.cfi_startproc
# %bb.0:
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end62:
	.size	_ZN6thrust6system6detail22generic_error_categoryD0Ev, .Lfunc_end62-_ZN6thrust6system6detail22generic_error_categoryD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail22generic_error_category4nameEv,"axG",@progbits,_ZNK6thrust6system6detail22generic_error_category4nameEv,comdat
	.weak	_ZNK6thrust6system6detail22generic_error_category4nameEv # -- Begin function _ZNK6thrust6system6detail22generic_error_category4nameEv
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail22generic_error_category4nameEv,@function
_ZNK6thrust6system6detail22generic_error_category4nameEv: # @_ZNK6thrust6system6detail22generic_error_category4nameEv
	.cfi_startproc
# %bb.0:
	movl	$.L.str.16, %eax
	retq
.Lfunc_end63:
	.size	_ZNK6thrust6system6detail22generic_error_category4nameEv, .Lfunc_end63-_ZNK6thrust6system6detail22generic_error_category4nameEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei,"axG",@progbits,_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei,comdat
	.weak	_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei # -- Begin function _ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei,@function
_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei: # @_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei
.Lfunc_begin15:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception15
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movl	%edx, %ebp
	movq	%rdi, %rbx
	movb	_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11(%rip), %al
	testb	%al, %al
	je	.LBB64_1
.LBB64_4:
	movl	%ebp, %edi
	callq	strerror
	movq	%rax, %r14
	leaq	16(%rbx), %rax
	movq	%rax, (%rbx)
	testq	%r14, %r14
	je	.LBB64_6
# %bb.5:
	movq	%r14, %rdi
	callq	strlen
	movq	%r14, %rdx
	addq	%rax, %rdx
	movq	%rbx, %rdi
	movq	%r14, %rsi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
	jmp	.LBB64_7
.LBB64_6:
	movq	_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11(%rip), %rsi
	movq	_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11+8(%rip), %rdx
	addq	%rsi, %rdx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.LBB64_7:
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB64_1:
	.cfi_def_cfa_offset 32
	movl	$_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, %edi
	callq	__cxa_guard_acquire
	testl	%eax, %eax
	je	.LBB64_4
# %bb.2:
	movq	$_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11+16, _ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11(%rip)
.Ltmp408:
	movl	$_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, %edi
	movl	$.L.str.17, %esi
	movl	$.L.str.17+13, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag
.Ltmp409:
# %bb.3:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit
	movl	$_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev, %edi
	movl	$_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movl	$_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, %edi
	callq	__cxa_guard_release
	jmp	.LBB64_4
.LBB64_8:                               # %.critedge17
.Ltmp410:
	movq	%rax, %rbx
	movl	$_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, %edi
	callq	__cxa_guard_abort
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end64:
	.size	_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei, .Lfunc_end64-_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei
	.cfi_endproc
	.section	.gcc_except_table._ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei,"aG",@progbits,_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei,comdat
	.p2align	2, 0x0
GCC_except_table64:
.Lexception15:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end15-.Lcst_begin15
.Lcst_begin15:
	.uleb128 .Lfunc_begin15-.Lfunc_begin15  # >> Call Site 1 <<
	.uleb128 .Ltmp408-.Lfunc_begin15        #   Call between .Lfunc_begin15 and .Ltmp408
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp408-.Lfunc_begin15        # >> Call Site 2 <<
	.uleb128 .Ltmp409-.Ltmp408              #   Call between .Ltmp408 and .Ltmp409
	.uleb128 .Ltmp410-.Lfunc_begin15        #     jumps to .Ltmp410
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp409-.Lfunc_begin15        # >> Call Site 3 <<
	.uleb128 .Lfunc_end64-.Ltmp409          #   Call between .Ltmp409 and .Lfunc_end64
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end15:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6system6detail9bad_allocD0Ev,"axG",@progbits,_ZN6thrust6system6detail9bad_allocD0Ev,comdat
	.weak	_ZN6thrust6system6detail9bad_allocD0Ev # -- Begin function _ZN6thrust6system6detail9bad_allocD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system6detail9bad_allocD0Ev,@function
_ZN6thrust6system6detail9bad_allocD0Ev: # @_ZN6thrust6system6detail9bad_allocD0Ev
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	$_ZTVN6thrust6system6detail9bad_allocE+16, (%rdi)
	movq	8(%rdi), %rdi
	leaq	24(%rbx), %rax
	cmpq	%rax, %rdi
	je	.LBB65_2
# %bb.1:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i
	callq	_ZdlPv
.LBB65_2:                               # %_ZN6thrust6system6detail9bad_allocD2Ev.exit
	movq	%rbx, %rdi
	callq	_ZNSt9bad_allocD2Ev
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end65:
	.size	_ZN6thrust6system6detail9bad_allocD0Ev, .Lfunc_end65-_ZN6thrust6system6detail9bad_allocD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system6detail9bad_alloc4whatEv,"axG",@progbits,_ZNK6thrust6system6detail9bad_alloc4whatEv,comdat
	.weak	_ZNK6thrust6system6detail9bad_alloc4whatEv # -- Begin function _ZNK6thrust6system6detail9bad_alloc4whatEv
	.p2align	1, 0x90
	.type	_ZNK6thrust6system6detail9bad_alloc4whatEv,@function
_ZNK6thrust6system6detail9bad_alloc4whatEv: # @_ZNK6thrust6system6detail9bad_alloc4whatEv
	.cfi_startproc
# %bb.0:
	movq	8(%rdi), %rax
	retq
.Lfunc_end66:
	.size	_ZNK6thrust6system6detail9bad_alloc4whatEv, .Lfunc_end66-_ZNK6thrust6system6detail9bad_alloc4whatEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc,"axG",@progbits,_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc,comdat
	.weak	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc # -- Begin function _ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
	.p2align	1, 0x90
	.type	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc,@function
_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc: # @_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%rdx, %rbx
	movl	%esi, %ebp
	movq	%rdi, %r14
	movq	%rcx, %rsi
	callq	_ZNSt13runtime_errorC2EPKc
	movq	$_ZTVN6thrust6system12system_errorE+16, (%r14)
	movl	%ebp, 16(%r14)
	movq	%rbx, 24(%r14)
	leaq	48(%r14), %rax
	movq	%rax, 32(%r14)
	movq	$0, 40(%r14)
	movb	$0, 48(%r14)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end67:
	.size	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc, .Lfunc_end67-_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system12system_errorD2Ev,"axG",@progbits,_ZN6thrust6system12system_errorD2Ev,comdat
	.weak	_ZN6thrust6system12system_errorD2Ev # -- Begin function _ZN6thrust6system12system_errorD2Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system12system_errorD2Ev,@function
_ZN6thrust6system12system_errorD2Ev:    # @_ZN6thrust6system12system_errorD2Ev
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	$_ZTVN6thrust6system12system_errorE+16, (%rdi)
	movq	32(%rdi), %rdi
	leaq	48(%rbx), %rax
	cmpq	%rax, %rdi
	je	.LBB68_2
# %bb.1:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB68_2:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt13runtime_errorD2Ev        # TAILCALL
.Lfunc_end68:
	.size	_ZN6thrust6system12system_errorD2Ev, .Lfunc_end68-_ZN6thrust6system12system_errorD2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust6system12system_errorD0Ev,"axG",@progbits,_ZN6thrust6system12system_errorD0Ev,comdat
	.weak	_ZN6thrust6system12system_errorD0Ev # -- Begin function _ZN6thrust6system12system_errorD0Ev
	.p2align	1, 0x90
	.type	_ZN6thrust6system12system_errorD0Ev,@function
_ZN6thrust6system12system_errorD0Ev:    # @_ZN6thrust6system12system_errorD0Ev
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	$_ZTVN6thrust6system12system_errorE+16, (%rdi)
	movq	32(%rdi), %rdi
	leaq	48(%rbx), %rax
	cmpq	%rax, %rdi
	je	.LBB69_2
# %bb.1:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i
	callq	_ZdlPv
.LBB69_2:                               # %_ZN6thrust6system12system_errorD2Ev.exit
	movq	%rbx, %rdi
	callq	_ZNSt13runtime_errorD2Ev
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.Lfunc_end69:
	.size	_ZN6thrust6system12system_errorD0Ev, .Lfunc_end69-_ZN6thrust6system12system_errorD0Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNK6thrust6system12system_error4whatEv,"axG",@progbits,_ZNK6thrust6system12system_error4whatEv,comdat
	.weak	_ZNK6thrust6system12system_error4whatEv # -- Begin function _ZNK6thrust6system12system_error4whatEv
	.p2align	1, 0x90
	.type	_ZNK6thrust6system12system_error4whatEv,@function
_ZNK6thrust6system12system_error4whatEv: # @_ZNK6thrust6system12system_error4whatEv
.Lfunc_begin16:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception16
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	32(%rdi), %r14
	cmpq	$0, 40(%rdi)
	je	.LBB70_3
.LBB70_1:
	movq	(%r14), %rbx
.LBB70_2:
	movq	%rbx, %rax
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB70_3:
	.cfi_def_cfa_offset 80
	movq	%rdi, %rbx
	callq	_ZNKSt13runtime_error4whatEv
	movq	%rax, %r15
	movq	40(%rbx), %r12
	movq	%rax, %rdi
	callq	strlen
.Ltmp411:
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%r12, %rdx
	movq	%r15, %rcx
	movq	%rax, %r8
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm
.Ltmp412:
# %bb.4:                                # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc.exit
	movl	16(%rbx), %edx
	testl	%edx, %edx
	je	.LBB70_1
# %bb.5:
	cmpq	$0, 40(%rbx)
	je	.LBB70_8
# %bb.6:
.Ltmp413:
	movl	$.L.str.20, %esi
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp414:
# %bb.7:                                # %._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit_crit_edge
	movl	16(%rbx), %edx
.LBB70_8:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit
	movq	24(%rbx), %rsi
	movq	(%rsi), %rax
.Ltmp416:
	leaq	8(%rsp), %rdi
	callq	*48(%rax)
.Ltmp417:
# %bb.9:                                # %_ZNK6thrust6system10error_code7messageB5cxx11Ev.exit
	movq	8(%rsp), %rsi
	movq	16(%rsp), %rdx
.Ltmp419:
	movq	%r14, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp420:
# %bb.10:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit
	leaq	24(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB70_1
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
	jmp	.LBB70_1
.LBB70_12:
.Ltmp421:
	movq	%rax, %r14
	leaq	24(%rsp), %rax
	movq	-16(%rax), %rdi
	cmpq	%rax, %rdi
	je	.LBB70_17
# %bb.13:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i4
	callq	_ZdlPv
	jmp	.LBB70_17
.LBB70_14:
.Ltmp418:
	jmp	.LBB70_16
.LBB70_15:
.Ltmp415:
.LBB70_16:
	movq	%rax, %r14
.LBB70_17:
	movq	%r14, %rdi
	callq	__cxa_begin_catch
	movq	%rbx, %rdi
	callq	_ZNKSt13runtime_error4whatEv
	movq	%rax, %rbx
.Ltmp422:
	callq	__cxa_end_catch
.Ltmp423:
	jmp	.LBB70_2
.LBB70_18:
.Ltmp424:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end70:
	.size	_ZNK6thrust6system12system_error4whatEv, .Lfunc_end70-_ZNK6thrust6system12system_error4whatEv
	.cfi_endproc
	.section	.gcc_except_table._ZNK6thrust6system12system_error4whatEv,"aG",@progbits,_ZNK6thrust6system12system_error4whatEv,comdat
	.p2align	2, 0x0
GCC_except_table70:
.Lexception16:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase3-.Lttbaseref3
.Lttbaseref3:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end16-.Lcst_begin16
.Lcst_begin16:
	.uleb128 .Ltmp411-.Lfunc_begin16        # >> Call Site 1 <<
	.uleb128 .Ltmp414-.Ltmp411              #   Call between .Ltmp411 and .Ltmp414
	.uleb128 .Ltmp415-.Lfunc_begin16        #     jumps to .Ltmp415
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp416-.Lfunc_begin16        # >> Call Site 2 <<
	.uleb128 .Ltmp417-.Ltmp416              #   Call between .Ltmp416 and .Ltmp417
	.uleb128 .Ltmp418-.Lfunc_begin16        #     jumps to .Ltmp418
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp419-.Lfunc_begin16        # >> Call Site 3 <<
	.uleb128 .Ltmp420-.Ltmp419              #   Call between .Ltmp419 and .Ltmp420
	.uleb128 .Ltmp421-.Lfunc_begin16        #     jumps to .Ltmp421
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp420-.Lfunc_begin16        # >> Call Site 4 <<
	.uleb128 .Ltmp422-.Ltmp420              #   Call between .Ltmp420 and .Ltmp422
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp422-.Lfunc_begin16        # >> Call Site 5 <<
	.uleb128 .Ltmp423-.Ltmp422              #   Call between .Ltmp422 and .Ltmp423
	.uleb128 .Ltmp424-.Lfunc_begin16        #     jumps to .Ltmp424
	.byte	1                               #   On action: 1
.Lcst_end16:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase3:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE # -- Begin function _ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE,@function
_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE: # @_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE
.Lfunc_begin17:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception17
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB71_9
# %bb.1:                                # %_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE8allocateEm.exit
	movq	%rcx, %r15
	movq	%rdx, %r14
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movq	(%rbx), %rax
	leaq	(,%r12,4), %rsi
	movq	8(%rax), %rdi
	movl	$4, %edx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	movq	%r14, %rcx
	subq	%r15, %rcx
	sarq	$2, %rcx
	negq	%rcx
.Ltmp425:
	leaq	6(%rsp), %rdi
	leaq	7(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rax, %r8
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Ltmp426:
# %bb.2:
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB71_9:
	.cfi_def_cfa_offset 48
	movq	%rbx, %rdi
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv # TAILCALL
.LBB71_3:
	.cfi_def_cfa_offset 48
.Ltmp427:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
.Ltmp428:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv
.Ltmp429:
# %bb.4:
.Ltmp430:
	callq	__cxa_rethrow
.Ltmp431:
# %bb.8:
.LBB71_5:
.Ltmp432:
	movq	%rax, %rbx
.Ltmp433:
	callq	__cxa_end_catch
.Ltmp434:
# %bb.6:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB71_7:
.Ltmp435:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end71:
	.size	_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE, .Lfunc_end71-_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfNS_16device_allocatorIfEEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_SA_RNS0_18contiguous_storageIfS3_EE,comdat
	.p2align	2, 0x0
GCC_except_table71:
.Lexception17:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase4-.Lttbaseref4
.Lttbaseref4:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end17-.Lcst_begin17
.Lcst_begin17:
	.uleb128 .Lfunc_begin17-.Lfunc_begin17  # >> Call Site 1 <<
	.uleb128 .Ltmp425-.Lfunc_begin17        #   Call between .Lfunc_begin17 and .Ltmp425
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp425-.Lfunc_begin17        # >> Call Site 2 <<
	.uleb128 .Ltmp426-.Ltmp425              #   Call between .Ltmp425 and .Ltmp426
	.uleb128 .Ltmp427-.Lfunc_begin17        #     jumps to .Ltmp427
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp426-.Lfunc_begin17        # >> Call Site 3 <<
	.uleb128 .Ltmp428-.Ltmp426              #   Call between .Ltmp426 and .Ltmp428
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp428-.Lfunc_begin17        # >> Call Site 4 <<
	.uleb128 .Ltmp431-.Ltmp428              #   Call between .Ltmp428 and .Ltmp431
	.uleb128 .Ltmp432-.Lfunc_begin17        #     jumps to .Ltmp432
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp433-.Lfunc_begin17        # >> Call Site 5 <<
	.uleb128 .Ltmp434-.Ltmp433              #   Call between .Ltmp433 and .Ltmp434
	.uleb128 .Ltmp435-.Lfunc_begin17        #     jumps to .Ltmp435
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp434-.Lfunc_begin17        # >> Call Site 6 <<
	.uleb128 .Lfunc_end71-.Ltmp434          #   Call between .Ltmp434 and .Lfunc_end71
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end17:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase4:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv,"axG",@progbits,_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv,comdat
	.weak	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv # -- Begin function _ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv
	.p2align	1, 0x90
	.type	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv,@function
_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv: # @_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv
	.cfi_startproc
# %bb.0:
	movq	16(%rdi), %rdx
	testq	%rdx, %rdx
	je	.LBB72_2
# %bb.1:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rax
	movq	8(%rdi), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
.LBB72_2:
	retq
.Lfunc_end72:
	.size	_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv, .Lfunc_end72-_ZN6thrust6detail18contiguous_storageIfNS_16device_allocatorIfEEE10deallocateEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"axG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.weak	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE # -- Begin function _ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.type	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,@function
_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE: # @_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Lfunc_begin18:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception18
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%r8, %rbx
	movq	%rcx, %r14
	testq	%rcx, %rcx
	je	.LBB73_6
# %bb.1:                                # %_ZN6thrust11hip_rocprim22trivial_copy_to_deviceIfEE10hipError_tPT_PKS3_mP12ihipStream_t.exit.i
	leaq	(,%r14,4), %rax
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	movq	%rax, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	callq	hipMemcpyWithStream
	movl	%eax, %ebp
	callq	hipGetLastError
	testl	%ebp, %ebp
	jne	.LBB73_2
.LBB73_6:                               # %_ZN6thrust11hip_rocprim6__copy19trivial_device_copyINS_6system3cpp6detail3tagENS0_3tagEfmEEvRNS5_16execution_policyIT_EERNS0_16execution_policyIT0_EEPT1_PKSG_T2_.exit
	leaq	(%rbx,%r14,4), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB73_2:
	.cfi_def_cfa_offset 32
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp436:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp437:
# %bb.3:
.Ltmp438:
	movl	$.L.str.23, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp439:
# %bb.4:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB73_5:
.Ltmp440:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end73:
	.size	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE, .Lfunc_end73-_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"aG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKfEEmNS_10device_ptrIfEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.p2align	2, 0x0
GCC_except_table73:
.Lexception18:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end18-.Lcst_begin18
.Lcst_begin18:
	.uleb128 .Lfunc_begin18-.Lfunc_begin18  # >> Call Site 1 <<
	.uleb128 .Ltmp436-.Lfunc_begin18        #   Call between .Lfunc_begin18 and .Ltmp436
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp436-.Lfunc_begin18        # >> Call Site 2 <<
	.uleb128 .Ltmp439-.Ltmp436              #   Call between .Ltmp436 and .Ltmp439
	.uleb128 .Ltmp440-.Lfunc_begin18        #     jumps to .Ltmp440
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp439-.Lfunc_begin18        # >> Call Site 3 <<
	.uleb128 .Lfunc_end73-.Ltmp439          #   Call between .Ltmp439 and .Lfunc_end73
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end18:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE # -- Begin function _ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE,@function
_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE: # @_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE
.Lfunc_begin19:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception19
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	callq	_ZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_v
	movq	%rax, (%rbx)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
	movq	$0, 24(%rbx)
	movq	8(%r14), %rdx
	movq	24(%r14), %r14
	leaq	(%rdx,%r14,4), %rcx
	shlq	$2, %r14
	negq	%r14
	sarq	$2, %r14
	negq	%r14
.Ltmp441:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%rbx, %r8
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE
.Ltmp442:
# %bb.1:
	movq	%r14, 24(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.LBB74_3:
	.cfi_def_cfa_offset 32
.Ltmp443:
	movq	%rax, %r14
.Ltmp444:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv
.Ltmp445:
# %bb.4:                                # %_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.LBB74_2:
.Ltmp446:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end74:
	.size	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE, .Lfunc_end74-_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEEC2IiSaIiEEERKNS1_IT_T0_EE,comdat
	.p2align	2, 0x0
GCC_except_table74:
.Lexception19:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase5-.Lttbaseref5
.Lttbaseref5:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end19-.Lcst_begin19
.Lcst_begin19:
	.uleb128 .Lfunc_begin19-.Lfunc_begin19  # >> Call Site 1 <<
	.uleb128 .Ltmp441-.Lfunc_begin19        #   Call between .Lfunc_begin19 and .Ltmp441
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp441-.Lfunc_begin19        # >> Call Site 2 <<
	.uleb128 .Ltmp442-.Ltmp441              #   Call between .Ltmp441 and .Ltmp442
	.uleb128 .Ltmp443-.Lfunc_begin19        #     jumps to .Ltmp443
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp444-.Lfunc_begin19        # >> Call Site 3 <<
	.uleb128 .Ltmp445-.Ltmp444              #   Call between .Ltmp444 and .Ltmp445
	.uleb128 .Ltmp446-.Lfunc_begin19        #     jumps to .Ltmp446
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp445-.Lfunc_begin19        # >> Call Site 4 <<
	.uleb128 .Lfunc_end74-.Ltmp445          #   Call between .Ltmp445 and .Lfunc_end74
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end19:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase5:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE # -- Begin function _ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE,@function
_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE: # @_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE
.Lfunc_begin20:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception20
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB75_9
# %bb.1:                                # %_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE8allocateEm.exit
	movq	%rcx, %r15
	movq	%rdx, %r14
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movq	(%rbx), %rax
	leaq	(,%r12,4), %rsi
	movq	8(%rax), %rdi
	movl	$4, %edx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	movq	%r14, %rcx
	subq	%r15, %rcx
	sarq	$2, %rcx
	negq	%rcx
.Ltmp447:
	leaq	6(%rsp), %rdi
	leaq	7(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rax, %r8
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Ltmp448:
# %bb.2:
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB75_9:
	.cfi_def_cfa_offset 48
	movq	%rbx, %rdi
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv # TAILCALL
.LBB75_3:
	.cfi_def_cfa_offset 48
.Ltmp449:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
.Ltmp450:
	movq	%rbx, %rdi
	callq	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv
.Ltmp451:
# %bb.4:
.Ltmp452:
	callq	__cxa_rethrow
.Ltmp453:
# %bb.8:
.LBB75_5:
.Ltmp454:
	movq	%rax, %rbx
.Ltmp455:
	callq	__cxa_end_catch
.Ltmp456:
# %bb.6:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB75_7:
.Ltmp457:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end75:
	.size	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE, .Lfunc_end75-_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE,comdat
	.p2align	2, 0x0
GCC_except_table75:
.Lexception20:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase6-.Lttbaseref6
.Lttbaseref6:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end20-.Lcst_begin20
.Lcst_begin20:
	.uleb128 .Lfunc_begin20-.Lfunc_begin20  # >> Call Site 1 <<
	.uleb128 .Ltmp447-.Lfunc_begin20        #   Call between .Lfunc_begin20 and .Ltmp447
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp447-.Lfunc_begin20        # >> Call Site 2 <<
	.uleb128 .Ltmp448-.Ltmp447              #   Call between .Ltmp447 and .Ltmp448
	.uleb128 .Ltmp449-.Lfunc_begin20        #     jumps to .Ltmp449
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp448-.Lfunc_begin20        # >> Call Site 3 <<
	.uleb128 .Ltmp450-.Ltmp448              #   Call between .Ltmp448 and .Ltmp450
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp450-.Lfunc_begin20        # >> Call Site 4 <<
	.uleb128 .Ltmp453-.Ltmp450              #   Call between .Ltmp450 and .Ltmp453
	.uleb128 .Ltmp454-.Lfunc_begin20        #     jumps to .Ltmp454
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp455-.Lfunc_begin20        # >> Call Site 5 <<
	.uleb128 .Ltmp456-.Ltmp455              #   Call between .Ltmp455 and .Ltmp456
	.uleb128 .Ltmp457-.Lfunc_begin20        #     jumps to .Ltmp457
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp456-.Lfunc_begin20        # >> Call Site 6 <<
	.uleb128 .Lfunc_end75-.Ltmp456          #   Call between .Ltmp456 and .Lfunc_end75
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end20:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase6:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv,"axG",@progbits,_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv,comdat
	.weak	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv # -- Begin function _ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv
	.p2align	1, 0x90
	.type	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv,@function
_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv: # @_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv
	.cfi_startproc
# %bb.0:
	movq	16(%rdi), %rdx
	testq	%rdx, %rdx
	je	.LBB76_2
# %bb.1:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rax
	movq	8(%rdi), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
.LBB76_2:
	retq
.Lfunc_end76:
	.size	_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv, .Lfunc_end76-_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEE10deallocateEv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"axG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.weak	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE # -- Begin function _ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.type	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,@function
_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE: # @_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Lfunc_begin21:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception21
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%r8, %rbx
	movq	%rcx, %r14
	testq	%rcx, %rcx
	je	.LBB77_6
# %bb.1:                                # %_ZN6thrust11hip_rocprim22trivial_copy_to_deviceIiEE10hipError_tPT_PKS3_mP12ihipStream_t.exit.i
	leaq	(,%r14,4), %rax
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	movq	%rax, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	callq	hipMemcpyWithStream
	movl	%eax, %ebp
	callq	hipGetLastError
	testl	%ebp, %ebp
	jne	.LBB77_2
.LBB77_6:                               # %_ZN6thrust11hip_rocprim6__copy19trivial_device_copyINS_6system3cpp6detail3tagENS0_3tagEimEEvRNS5_16execution_policyIT_EERNS0_16execution_policyIT0_EEPT1_PKSG_T2_.exit
	leaq	(%rbx,%r14,4), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB77_2:
	.cfi_def_cfa_offset 32
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp458:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp459:
# %bb.3:
.Ltmp460:
	movl	$.L.str.23, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp461:
# %bb.4:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB77_5:
.Ltmp462:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end77:
	.size	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE, .Lfunc_end77-_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"aG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.p2align	2, 0x0
GCC_except_table77:
.Lexception21:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end21-.Lcst_begin21
.Lcst_begin21:
	.uleb128 .Lfunc_begin21-.Lfunc_begin21  # >> Call Site 1 <<
	.uleb128 .Ltmp458-.Lfunc_begin21        #   Call between .Lfunc_begin21 and .Ltmp458
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp458-.Lfunc_begin21        # >> Call Site 2 <<
	.uleb128 .Ltmp461-.Ltmp458              #   Call between .Ltmp458 and .Ltmp461
	.uleb128 .Ltmp462-.Lfunc_begin21        #     jumps to .Ltmp462
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp461-.Lfunc_begin21        # >> Call Site 3 <<
	.uleb128 .Lfunc_end77-.Ltmp461          #   Call between .Ltmp461 and .Lfunc_end77
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end21:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEEC2Em,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEEC2Em,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEEC2Em
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em,@function
_ZN6thrust6detail11vector_baseIiSaIiEEC2Em: # @_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
.Lfunc_begin22:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception22
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rdi)
	movq	$0, 24(%rdi)
	testq	%rsi, %rsi
	je	.LBB78_3
# %bb.1:                                # %_ZN6thrust6detail18contiguous_storageIiSaIiEE19default_construct_nENS0_15normal_iteratorIPiEEm.exit.i
.Ltmp463:
	movq	%rsi, %rbx
	movq	%rdi, %r14
	leaq	8(%rdi), %r15
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
.Ltmp464:
# %bb.2:                                # %.noexc
	movq	%rax, 8(%r14)
	movq	%rbx, 16(%r14)
	movq	%rbx, 24(%r14)
	shlq	$2, %rbx
	movq	%rax, %rdi
	xorl	%esi, %esi
	movq	%rbx, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	memset@PLT                      # TAILCALL
.LBB78_3:                               # %_ZN6thrust6detail11vector_baseIiSaIiEE12default_initEm.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB78_4:
	.cfi_def_cfa_offset 32
.Ltmp465:
	movq	%rax, %rbx
	cmpq	$0, 16(%r14)
	je	.LBB78_6
# %bb.5:
	movq	(%r15), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r15)
.LBB78_6:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEED2Ev.exit
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end78:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEEC2Em, .Lfunc_end78-_ZN6thrust6detail11vector_baseIiSaIiEEC2Em
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiSaIiEEC2Em,"aG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEEC2Em,comdat
	.p2align	2, 0x0
GCC_except_table78:
.Lexception22:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end22-.Lcst_begin22
.Lcst_begin22:
	.uleb128 .Ltmp463-.Lfunc_begin22        # >> Call Site 1 <<
	.uleb128 .Ltmp464-.Ltmp463              #   Call between .Ltmp463 and .Ltmp464
	.uleb128 .Ltmp465-.Lfunc_begin22        #     jumps to .Ltmp465
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp464-.Lfunc_begin22        # >> Call Site 2 <<
	.uleb128 .Lfunc_end78-.Ltmp464          #   Call between .Ltmp464 and .Lfunc_end78
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end22:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE # -- Begin function _ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE,@function
_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE: # @_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
.Lfunc_begin23:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception23
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r15
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	%rsi, %r14
	subq	%r15, %r14
	sarq	$2, %r14
	negq	%r14
	cmpq	%r14, 16(%rdi)
	jae	.LBB79_4
# %bb.1:
	movq	(%rbx), %rax
	leaq	16(%rsp), %r8
	movq	%rax, (%r8)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%r8)
.Ltmp466:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%r15, %rcx
	callq	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_SA_RNS0_18contiguous_storageIiS3_EE
.Ltmp467:
# %bb.2:
	movq	8(%rbx), %rsi
	movq	24(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rsi, 24(%rsp)
	movq	16(%rbx), %rdx
	movq	32(%rsp), %rax
	movq	%rax, 16(%rbx)
	movq	%rdx, 32(%rsp)
	movq	(%rbx), %rax
	movq	16(%rsp), %rcx
	movq	%rcx, (%rbx)
	movq	%rax, 16(%rsp)
	movq	%r14, 24(%rbx)
	testq	%rdx, %rdx
	je	.LBB79_8
# %bb.3:
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp472:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp473:
	jmp	.LBB79_8
.LBB79_4:
	movq	24(%rbx), %rcx
	cmpq	%r14, %rcx
	jae	.LBB79_6
# %bb.5:
	leaq	(%rdx,%rcx,4), %r12
	shlq	$2, %rcx
	movq	8(%rbx), %r8
	negq	%rcx
	sarq	$2, %rcx
	negq	%rcx
	leaq	16(%rsp), %rdi
	leaq	15(%rsp), %rsi
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	movq	24(%rbx), %r8
	shlq	$2, %r8
	addq	8(%rbx), %r8
	movq	%r12, %rcx
	subq	%r15, %rcx
	sarq	$2, %rcx
	negq	%rcx
	leaq	15(%rsp), %rdi
	leaq	16(%rsp), %rsi
	movq	%r12, %rdx
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS_10device_ptrIiEEEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	jmp	.LBB79_7
.LBB79_6:
	movq	8(%rbx), %r8
	leaq	16(%rsp), %rdi
	leaq	15(%rsp), %rsi
	movq	%r14, %rcx
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
.LBB79_7:
	movq	%r14, 24(%rbx)
.LBB79_8:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB79_9:
	.cfi_def_cfa_offset 80
.Ltmp474:
	jmp	.LBB79_10
.LBB79_11:
.Ltmp468:
	movq	%rax, %rbx
	movq	32(%rsp), %rdx
	testq	%rdx, %rdx
	je	.LBB79_13
# %bb.12:
	movq	16(%rsp), %rax
	movq	24(%rsp), %rsi
	shlq	$2, %rdx
	movq	8(%rax), %rdi
.Ltmp469:
	movl	$4, %ecx
	callq	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
.Ltmp470:
.LBB79_13:                              # %_ZN6thrust6detail18contiguous_storageIiNS_16device_allocatorIiEEED2Ev.exit30
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB79_14:
.Ltmp471:
.LBB79_10:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end79:
	.size	_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE, .Lfunc_end79-_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiNS_16device_allocatorIiEEE12range_assignINS0_15normal_iteratorIPKiEEEEvT_SA_NS_27random_access_traversal_tagE,comdat
	.p2align	2, 0x0
GCC_except_table79:
.Lexception23:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase7-.Lttbaseref7
.Lttbaseref7:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end23-.Lcst_begin23
.Lcst_begin23:
	.uleb128 .Ltmp466-.Lfunc_begin23        # >> Call Site 1 <<
	.uleb128 .Ltmp467-.Ltmp466              #   Call between .Ltmp466 and .Ltmp467
	.uleb128 .Ltmp468-.Lfunc_begin23        #     jumps to .Ltmp468
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp472-.Lfunc_begin23        # >> Call Site 2 <<
	.uleb128 .Ltmp473-.Ltmp472              #   Call between .Ltmp472 and .Ltmp473
	.uleb128 .Ltmp474-.Lfunc_begin23        #     jumps to .Ltmp474
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp473-.Lfunc_begin23        # >> Call Site 3 <<
	.uleb128 .Ltmp469-.Ltmp473              #   Call between .Ltmp473 and .Ltmp469
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp469-.Lfunc_begin23        # >> Call Site 4 <<
	.uleb128 .Ltmp470-.Ltmp469              #   Call between .Ltmp469 and .Ltmp470
	.uleb128 .Ltmp471-.Lfunc_begin23        #     jumps to .Ltmp471
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp470-.Lfunc_begin23        # >> Call Site 5 <<
	.uleb128 .Lfunc_end79-.Ltmp470          #   Call between .Ltmp470 and .Lfunc_end79
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end23:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase7:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,"axG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,comdat
	.weak	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE # -- Begin function _ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	.type	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,@function
_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE: # @_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
.Lfunc_begin24:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception24
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%r8, %rbx
	movq	%rcx, %r14
	testq	%rcx, %rcx
	je	.LBB80_6
# %bb.1:                                # %_ZN6thrust11hip_rocprim22trivial_copy_to_deviceIiEE10hipError_tPT_PKS3_mP12ihipStream_t.exit.i
	leaq	(,%r14,4), %rax
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	movq	%rax, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	callq	hipMemcpyWithStream
	movl	%eax, %ebp
	callq	hipGetLastError
	testl	%ebp, %ebp
	jne	.LBB80_2
.LBB80_6:                               # %_ZN6thrust11hip_rocprim6__copy19trivial_device_copyINS_6system3cpp6detail3tagENS0_3tagEimEEvRNS5_16execution_policyIT_EERNS0_16execution_policyIT0_EEPT1_PKSG_T2_.exit
	leaq	(%rbx,%r14,4), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB80_2:
	.cfi_def_cfa_offset 32
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp475:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp476:
# %bb.3:
.Ltmp477:
	movl	$.L.str.23, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp478:
# %bb.4:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB80_5:
.Ltmp479:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end80:
	.size	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE, .Lfunc_end80-_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,"aG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS_6system3cpp6detail3tagENS0_3tagENS_6detail15normal_iteratorIPKiEEmNS9_INS_10device_ptrIiEEEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,comdat
	.p2align	2, 0x0
GCC_except_table80:
.Lexception24:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end24-.Lcst_begin24
.Lcst_begin24:
	.uleb128 .Lfunc_begin24-.Lfunc_begin24  # >> Call Site 1 <<
	.uleb128 .Ltmp475-.Lfunc_begin24        #   Call between .Lfunc_begin24 and .Ltmp475
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp475-.Lfunc_begin24        # >> Call Site 2 <<
	.uleb128 .Ltmp478-.Ltmp475              #   Call between .Ltmp475 and .Ltmp478
	.uleb128 .Ltmp479-.Lfunc_begin24        #     jumps to .Ltmp479
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp478-.Lfunc_begin24        # >> Call Site 3 <<
	.uleb128 .Lfunc_end80-.Ltmp478          #   Call between .Ltmp478 and .Lfunc_end80
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end24:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE,@function
_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE: # @_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE
.Lfunc_begin25:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception25
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$40, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r15
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	%r15, %r14
	subq	%rsi, %r14
	sarq	$2, %r14
	cmpq	16(%rdi), %r14
	jbe	.LBB81_7
# %bb.1:
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %r8
	movups	%xmm0, 8(%r8)
.Ltmp480:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%r15, %rcx
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE
.Ltmp481:
# %bb.2:
	movq	8(%rbx), %rdi
	movq	24(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rdi, 24(%rsp)
	movq	16(%rbx), %rax
	movq	32(%rsp), %rcx
	movq	%rcx, 16(%rbx)
	movq	%rax, 32(%rsp)
	movq	%r14, 24(%rbx)
	testq	%rax, %rax
	je	.LBB81_11
# %bb.3:
	callq	_ZdlPv
	jmp	.LBB81_11
.LBB81_7:
	movq	24(%rbx), %rcx
	cmpq	%r14, %rcx
	jae	.LBB81_8
# %bb.9:
	leaq	(%rdx,%rcx,4), %r12
	movq	8(%rbx), %r8
	leaq	16(%rsp), %rdi
	leaq	15(%rsp), %rsi
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	movq	24(%rbx), %r8
	shlq	$2, %r8
	addq	8(%rbx), %r8
	subq	%r12, %r15
	sarq	$2, %r15
	leaq	15(%rsp), %rdi
	leaq	16(%rsp), %rsi
	movq	%r12, %rdx
	movq	%r15, %rcx
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	jmp	.LBB81_10
.LBB81_8:
	movq	8(%rbx), %r8
	leaq	16(%rsp), %rdi
	leaq	15(%rsp), %rsi
	movq	%r14, %rcx
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
.LBB81_10:
	movq	%r14, 24(%rbx)
.LBB81_11:
	addq	$40, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB81_4:
	.cfi_def_cfa_offset 80
.Ltmp482:
	movq	%rax, %rbx
	cmpq	$0, 32(%rsp)
	je	.LBB81_6
# %bb.5:
	movq	24(%rsp), %rdi
	callq	_ZdlPv
.LBB81_6:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEED2Ev.exit31
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end81:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE, .Lfunc_end81-_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvT_SA_NS_27random_access_traversal_tagE,comdat
	.p2align	2, 0x0
GCC_except_table81:
.Lexception25:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end25-.Lcst_begin25
.Lcst_begin25:
	.uleb128 .Ltmp480-.Lfunc_begin25        # >> Call Site 1 <<
	.uleb128 .Ltmp481-.Ltmp480              #   Call between .Ltmp480 and .Ltmp481
	.uleb128 .Ltmp482-.Lfunc_begin25        #     jumps to .Ltmp482
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp481-.Lfunc_begin25        # >> Call Site 2 <<
	.uleb128 .Lfunc_end81-.Ltmp481          #   Call between .Ltmp481 and .Lfunc_end81
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end25:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE,@function
_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE: # @_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE
.Lfunc_begin26:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception26
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB82_1
# %bb.4:
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB82_5
# %bb.7:                                # %_ZN6thrust6detail18contiguous_storageIfSaIfEE8allocateEm.exit
	movq	%rcx, %r14
	movq	%rdx, %r15
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movabsq	$2305843009213693951, %rax      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%rax, %r12
	cmovaeq	%rax, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIfE8allocateEmPKv
	leaq	8(%rbx), %r13
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	subq	%r15, %r14
	sarq	$2, %r14
.Ltmp483:
	leaq	14(%rsp), %rdi
	leaq	15(%rsp), %rsi
	movq	%r15, %rdx
	movq	%r14, %rcx
	movq	%rax, %r8
	callq	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Ltmp484:
	jmp	.LBB82_3
.LBB82_1:
	cmpq	$0, 16(%rbx)
	je	.LBB82_3
# %bb.2:
	movq	8(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
.LBB82_3:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEE10deallocateEv.exit
	addq	$16, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB82_5:
	.cfi_def_cfa_offset 64
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp492:
	movl	$.L.str.12, %esi
	movq	%rax, %rdi
	callq	_ZNSt12length_errorC1EPKc
.Ltmp493:
# %bb.6:
	movl	$_ZTISt12length_error, %esi
	movl	$_ZNSt12length_errorD1Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB82_12:
.Ltmp494:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	jmp	.LBB82_13
.LBB82_8:
.Ltmp485:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	cmpq	$0, 16(%rbx)
	je	.LBB82_10
# %bb.9:
	movq	(%r13), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r13)
.LBB82_10:                              # %_ZN6thrust6detail18contiguous_storageIfSaIfEE10deallocateEv.exit24
.Ltmp486:
	callq	__cxa_rethrow
.Ltmp487:
# %bb.15:
.LBB82_11:
.Ltmp488:
	movq	%rax, %r14
.Ltmp489:
	callq	__cxa_end_catch
.Ltmp490:
.LBB82_13:
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.LBB82_14:
.Ltmp491:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end82:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE, .Lfunc_end82-_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorINS_10device_ptrIKfEEEEEEvmT_SA_RNS0_18contiguous_storageIfS2_EE,comdat
	.p2align	2, 0x0
GCC_except_table82:
.Lexception26:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase8-.Lttbaseref8
.Lttbaseref8:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end26-.Lcst_begin26
.Lcst_begin26:
	.uleb128 .Lfunc_begin26-.Lfunc_begin26  # >> Call Site 1 <<
	.uleb128 .Ltmp483-.Lfunc_begin26        #   Call between .Lfunc_begin26 and .Ltmp483
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp483-.Lfunc_begin26        # >> Call Site 2 <<
	.uleb128 .Ltmp484-.Ltmp483              #   Call between .Ltmp483 and .Ltmp484
	.uleb128 .Ltmp485-.Lfunc_begin26        #     jumps to .Ltmp485
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp484-.Lfunc_begin26        # >> Call Site 3 <<
	.uleb128 .Ltmp492-.Ltmp484              #   Call between .Ltmp484 and .Ltmp492
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp492-.Lfunc_begin26        # >> Call Site 4 <<
	.uleb128 .Ltmp493-.Ltmp492              #   Call between .Ltmp492 and .Ltmp493
	.uleb128 .Ltmp494-.Lfunc_begin26        #     jumps to .Ltmp494
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp493-.Lfunc_begin26        # >> Call Site 5 <<
	.uleb128 .Ltmp486-.Ltmp493              #   Call between .Ltmp493 and .Ltmp486
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp486-.Lfunc_begin26        # >> Call Site 6 <<
	.uleb128 .Ltmp487-.Ltmp486              #   Call between .Ltmp486 and .Ltmp487
	.uleb128 .Ltmp488-.Lfunc_begin26        #     jumps to .Ltmp488
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp489-.Lfunc_begin26        # >> Call Site 7 <<
	.uleb128 .Ltmp490-.Ltmp489              #   Call between .Ltmp489 and .Ltmp490
	.uleb128 .Ltmp491-.Lfunc_begin26        #     jumps to .Ltmp491
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp490-.Lfunc_begin26        # >> Call Site 8 <<
	.uleb128 .Lfunc_end82-.Ltmp490          #   Call between .Ltmp490 and .Lfunc_end82
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end26:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase8:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,"axG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,comdat
	.weak	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE # -- Begin function _ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	.type	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,@function
_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE: # @_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
.Lfunc_begin27:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception27
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%r8, %rbx
	movq	%rcx, %r14
	testq	%rcx, %rcx
	je	.LBB83_6
# %bb.1:                                # %_ZN6thrust11hip_rocprim24trivial_copy_from_deviceIfEE10hipError_tPT_PKS3_mP12ihipStream_t.exit.i
	leaq	(,%r14,4), %rax
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	movq	%rax, %rdx
	movl	$2, %ecx
	xorl	%r8d, %r8d
	callq	hipMemcpyWithStream
	movl	%eax, %ebp
	callq	hipGetLastError
	testl	%ebp, %ebp
	jne	.LBB83_2
.LBB83_6:                               # %_ZN6thrust11hip_rocprim6__copy19trivial_device_copyINS0_3tagENS_6system3cpp6detail3tagEfmEEvRNS0_16execution_policyIT_EERNS6_16execution_policyIT0_EEPT1_PKSG_T2_.exit
	leaq	(%rbx,%r14,4), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB83_2:
	.cfi_def_cfa_offset 32
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp495:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp496:
# %bb.3:
.Ltmp497:
	movl	$.L.str.24, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp498:
# %bb.4:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB83_5:
.Ltmp499:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end83:
	.size	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE, .Lfunc_end83-_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,"aG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmNS9_IPfEEEET3_RNS_16execution_policyIT_EERNSH_IT0_EET1_T2_SG_NS8_17integral_constantIbLb1EEE,comdat
	.p2align	2, 0x0
GCC_except_table83:
.Lexception27:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end27-.Lcst_begin27
.Lcst_begin27:
	.uleb128 .Lfunc_begin27-.Lfunc_begin27  # >> Call Site 1 <<
	.uleb128 .Ltmp495-.Lfunc_begin27        #   Call between .Lfunc_begin27 and .Ltmp495
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp495-.Lfunc_begin27        # >> Call Site 2 <<
	.uleb128 .Ltmp498-.Ltmp495              #   Call between .Ltmp495 and .Ltmp498
	.uleb128 .Ltmp499-.Lfunc_begin27        #     jumps to .Ltmp499
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp498-.Lfunc_begin27        # >> Call Site 3 <<
	.uleb128 .Lfunc_end83-.Ltmp498          #   Call between .Ltmp498 and .Lfunc_end83
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end27:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"axG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.weak	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE # -- Begin function _ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.type	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,@function
_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE: # @_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
.Lfunc_begin28:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception28
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %rbp, -16
	movq	%r8, %rbx
	movq	%rcx, %r14
	testq	%rcx, %rcx
	je	.LBB84_6
# %bb.1:                                # %_ZN6thrust11hip_rocprim24trivial_copy_from_deviceIfEE10hipError_tPT_PKS3_mP12ihipStream_t.exit.i
	leaq	(,%r14,4), %rax
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	movq	%rax, %rdx
	movl	$2, %ecx
	xorl	%r8d, %r8d
	callq	hipMemcpyWithStream
	movl	%eax, %ebp
	callq	hipGetLastError
	testl	%ebp, %ebp
	jne	.LBB84_2
.LBB84_6:                               # %_ZN6thrust11hip_rocprim6__copy19trivial_device_copyINS0_3tagENS_6system3cpp6detail3tagEfmEEvRNS0_16execution_policyIT_EERNS6_16execution_policyIT0_EEPT1_PKSG_T2_.exit
	leaq	(%rbx,%r14,4), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB84_2:
	.cfi_def_cfa_offset 32
	movl	$64, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp500:
	callq	_ZN6thrust6system12hip_categoryEv
.Ltmp501:
# %bb.3:
.Ltmp502:
	movl	$.L.str.24, %ecx
	movq	%rbx, %rdi
	movl	%ebp, %esi
	movq	%rax, %rdx
	callq	_ZN6thrust6system12system_errorC2EiRKNS0_14error_categoryEPKc
.Ltmp503:
# %bb.4:
	movl	$_ZTIN6thrust6system12system_errorE, %esi
	movl	$_ZN6thrust6system12system_errorD2Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB84_5:
.Ltmp504:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end84:
	.size	_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE, .Lfunc_end84-_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,"aG",@progbits,_ZN6thrust11hip_rocprim6__copy19cross_system_copy_nINS0_3tagENS_6system3cpp6detail3tagENS_6detail15normal_iteratorINS_10device_ptrIKfEEEEmPfEET3_RNS_16execution_policyIT_EERNSG_IT0_EET1_T2_SF_NS8_17integral_constantIbLb1EEE,comdat
	.p2align	2, 0x0
GCC_except_table84:
.Lexception28:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end28-.Lcst_begin28
.Lcst_begin28:
	.uleb128 .Lfunc_begin28-.Lfunc_begin28  # >> Call Site 1 <<
	.uleb128 .Ltmp500-.Lfunc_begin28        #   Call between .Lfunc_begin28 and .Ltmp500
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp500-.Lfunc_begin28        # >> Call Site 2 <<
	.uleb128 .Ltmp503-.Ltmp500              #   Call between .Ltmp500 and .Ltmp503
	.uleb128 .Ltmp504-.Lfunc_begin28        #     jumps to .Ltmp504
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp503-.Lfunc_begin28        # >> Call Site 3 <<
	.uleb128 .Lfunc_end84-.Ltmp503          #   Call between .Ltmp503 and .Lfunc_end84
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end28:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_ # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_,@function
_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_: # @_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
.Lfunc_begin29:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception29
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	leaq	8(%rdi), %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rdi)
	movq	$0, 24(%rdi)
	movq	8(%rsi), %rdx
	movq	24(%rsi), %r14
	leaq	(%rdx,%r14,4), %rcx
	shlq	$2, %r14
	negq	%r14
	sarq	$2, %r14
	negq	%r14
.Ltmp505:
	movq	%r14, %rsi
	movq	%rdi, %r8
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE
.Ltmp506:
# %bb.1:
	movq	%r14, 24(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB85_2:
	.cfi_def_cfa_offset 32
.Ltmp507:
	movq	%rax, %r14
	cmpq	$0, 16(%rbx)
	je	.LBB85_4
# %bb.3:
	movq	(%r15), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r15)
.LBB85_4:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end85:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_, .Lfunc_end85-_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEEC2ERKS3_,comdat
	.p2align	2, 0x0
GCC_except_table85:
.Lexception29:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end29-.Lcst_begin29
.Lcst_begin29:
	.uleb128 .Ltmp505-.Lfunc_begin29        # >> Call Site 1 <<
	.uleb128 .Ltmp506-.Ltmp505              #   Call between .Ltmp505 and .Ltmp506
	.uleb128 .Ltmp507-.Lfunc_begin29        #     jumps to .Ltmp507
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp506-.Lfunc_begin29        # >> Call Site 2 <<
	.uleb128 .Lfunc_end85-.Ltmp506          #   Call between .Ltmp506 and .Lfunc_end85
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end29:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE,@function
_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE: # @_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE
.Lfunc_begin30:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception30
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB86_1
# %bb.3:
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB86_4
# %bb.7:                                # %_ZN6thrust6detail18contiguous_storageIfSaIfEE8allocateEm.exit
	movq	%rcx, %r14
	movq	%rdx, %r15
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movabsq	$2305843009213693951, %rax      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%rax, %r12
	cmovaeq	%rax, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIfE8allocateEmPKv
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	cmpq	%r14, %r15
	je	.LBB86_8
# %bb.9:
	subq	%r15, %r14
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	memmove@PLT                     # TAILCALL
.LBB86_1:
	.cfi_def_cfa_offset 48
	cmpq	$0, 16(%rbx)
	je	.LBB86_8
# %bb.2:
	movq	8(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
.LBB86_8:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEE10deallocateEv.exit
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB86_4:
	.cfi_def_cfa_offset 48
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp508:
	movl	$.L.str.12, %esi
	movq	%rax, %rdi
	callq	_ZNSt12length_errorC1EPKc
.Ltmp509:
# %bb.5:
	movl	$_ZTISt12length_error, %esi
	movl	$_ZNSt12length_errorD1Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB86_6:
.Ltmp510:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end86:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE, .Lfunc_end86-_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE,comdat
	.p2align	2, 0x0
GCC_except_table86:
.Lexception30:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end30-.Lcst_begin30
.Lcst_begin30:
	.uleb128 .Lfunc_begin30-.Lfunc_begin30  # >> Call Site 1 <<
	.uleb128 .Ltmp508-.Lfunc_begin30        #   Call between .Lfunc_begin30 and .Ltmp508
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp508-.Lfunc_begin30        # >> Call Site 2 <<
	.uleb128 .Ltmp509-.Ltmp508              #   Call between .Ltmp508 and .Ltmp509
	.uleb128 .Ltmp510-.Lfunc_begin30        #     jumps to .Ltmp510
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp509-.Lfunc_begin30        # >> Call Site 3 <<
	.uleb128 .Lfunc_end86-.Ltmp509          #   Call between .Ltmp509 and .Lfunc_end86
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end30:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_ # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_,@function
_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_: # @_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
.Lfunc_begin31:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception31
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	leaq	8(%rdi), %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rdi)
	movq	$0, 24(%rdi)
	movq	8(%rsi), %rdx
	movq	24(%rsi), %r14
	leaq	(%rdx,%r14,4), %rcx
	shlq	$2, %r14
	negq	%r14
	sarq	$2, %r14
	negq	%r14
.Ltmp511:
	movq	%r14, %rsi
	movq	%rdi, %r8
	callq	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE
.Ltmp512:
# %bb.1:
	movq	%r14, 24(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB87_2:
	.cfi_def_cfa_offset 32
.Ltmp513:
	movq	%rax, %r14
	cmpq	$0, 16(%rbx)
	je	.LBB87_4
# %bb.3:
	movq	(%r15), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%r15)
.LBB87_4:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end87:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_, .Lfunc_end87-_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_,"aG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEEC2ERKS3_,comdat
	.p2align	2, 0x0
GCC_except_table87:
.Lexception31:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end31-.Lcst_begin31
.Lcst_begin31:
	.uleb128 .Ltmp511-.Lfunc_begin31        # >> Call Site 1 <<
	.uleb128 .Ltmp512-.Ltmp511              #   Call between .Ltmp511 and .Ltmp512
	.uleb128 .Ltmp513-.Lfunc_begin31        #     jumps to .Ltmp513
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp512-.Lfunc_begin31        # >> Call Site 2 <<
	.uleb128 .Lfunc_end87-.Ltmp512          #   Call between .Ltmp512 and .Lfunc_end87
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end31:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE,"axG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE,comdat
	.weak	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE # -- Begin function _ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE,@function
_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE: # @_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE
.Lfunc_begin32:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception32
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%r8, %rbx
	testq	%rsi, %rsi
	je	.LBB88_1
# %bb.3:
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB88_4
# %bb.7:                                # %_ZN6thrust6detail18contiguous_storageIiSaIiEE8allocateEm.exit
	movq	%rcx, %r14
	movq	%rdx, %r15
	movq	16(%rdi), %r12
	addq	%r12, %r12
	cmpq	%r12, %rsi
	cmovaq	%rsi, %r12
	movabsq	$2305843009213693951, %rax      # imm = 0x1FFFFFFFFFFFFFFF
	cmpq	%rax, %r12
	cmovaeq	%rax, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, 8(%rbx)
	movq	%r12, 16(%rbx)
	cmpq	%r14, %r15
	je	.LBB88_8
# %bb.9:
	subq	%r15, %r14
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	memmove@PLT                     # TAILCALL
.LBB88_1:
	.cfi_def_cfa_offset 48
	cmpq	$0, 16(%rbx)
	je	.LBB88_8
# %bb.2:
	movq	8(%rbx), %rdi
	callq	_ZdlPv
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
.LBB88_8:                               # %_ZN6thrust6detail18contiguous_storageIiSaIiEE10deallocateEv.exit
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB88_4:
	.cfi_def_cfa_offset 48
	movl	$16, %edi
	callq	__cxa_allocate_exception
	movq	%rax, %rbx
.Ltmp514:
	movl	$.L.str.12, %esi
	movq	%rax, %rdi
	callq	_ZNSt12length_errorC1EPKc
.Ltmp515:
# %bb.5:
	movl	$_ZTISt12length_error, %esi
	movl	$_ZNSt12length_errorD1Ev, %edx
	movq	%rbx, %rdi
	callq	__cxa_throw
.LBB88_6:
.Ltmp516:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	__cxa_free_exception
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end88:
	.size	_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE, .Lfunc_end88-_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE,"aG",@progbits,_ZN6thrust6detail11vector_baseIiSaIiEE17allocate_and_copyINS0_15normal_iteratorIPKiEEEEvmT_S9_RNS0_18contiguous_storageIiS2_EE,comdat
	.p2align	2, 0x0
GCC_except_table88:
.Lexception32:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end32-.Lcst_begin32
.Lcst_begin32:
	.uleb128 .Lfunc_begin32-.Lfunc_begin32  # >> Call Site 1 <<
	.uleb128 .Ltmp514-.Lfunc_begin32        #   Call between .Lfunc_begin32 and .Ltmp514
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp514-.Lfunc_begin32        # >> Call Site 2 <<
	.uleb128 .Ltmp515-.Ltmp514              #   Call between .Ltmp514 and .Ltmp515
	.uleb128 .Ltmp516-.Lfunc_begin32        #     jumps to .Ltmp516
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp515-.Lfunc_begin32        # >> Call Site 3 <<
	.uleb128 .Lfunc_end88-.Ltmp515          #   Call between .Ltmp515 and .Lfunc_end88
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end32:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE,"axG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE,comdat
	.weak	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE # -- Begin function _ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE
	.p2align	1, 0x90
	.type	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE,@function
_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE: # @_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE
.Lfunc_begin33:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception33
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r15
	movq	%rsi, %rax
	movq	%rdi, %rbx
	movq	%rsi, %r14
	subq	%rdx, %r14
	sarq	$2, %r14
	negq	%r14
	cmpq	%r14, 16(%rdi)
	jae	.LBB89_7
# %bb.1:
	xorps	%xmm0, %xmm0
	movq	%rsp, %r8
	movups	%xmm0, 8(%r8)
.Ltmp517:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	movq	%r15, %rcx
	callq	_ZN6thrust6detail11vector_baseIfSaIfEE17allocate_and_copyINS0_15normal_iteratorIPKfEEEEvmT_S9_RNS0_18contiguous_storageIfS2_EE
.Ltmp518:
# %bb.2:
	movq	8(%rbx), %rdi
	movq	8(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	%rdi, 8(%rsp)
	movq	16(%rbx), %rax
	movq	16(%rsp), %rcx
	movq	%rcx, 16(%rbx)
	movq	%rax, 16(%rsp)
	movq	%r14, 24(%rbx)
	testq	%rax, %rax
	je	.LBB89_16
# %bb.3:
	callq	_ZdlPv
	jmp	.LBB89_16
.LBB89_7:
	movq	24(%rbx), %rdx
	cmpq	%r14, %rdx
	jae	.LBB89_8
# %bb.10:
	leaq	(%rax,%rdx,4), %r12
	testq	%rdx, %rdx
	je	.LBB89_12
# %bb.11:
	movq	8(%rbx), %rdi
	shlq	$2, %rdx
	movq	%rax, %rsi
	callq	memmove@PLT
.LBB89_12:                              # %_ZN6thrust4copyINS_6detail15normal_iteratorIPKfEENS2_IPfEEEET0_T_S9_S8_.exit35
	cmpq	%r15, %r12
	je	.LBB89_15
# %bb.13:
	subq	%r12, %r15
	movq	24(%rbx), %rdi
	shlq	$2, %rdi
	addq	8(%rbx), %rdi
	movq	%r12, %rsi
	movq	%r15, %rdx
	jmp	.LBB89_14
.LBB89_8:
	cmpq	%r15, %rax
	je	.LBB89_15
# %bb.9:
	movq	8(%rbx), %rdi
	leaq	(,%r14,4), %rdx
	movq	%rax, %rsi
.LBB89_14:                              # %_ZN6thrust6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS0_15normal_iteratorIPKfEEEENS5_IPfEET_SB_SA_.exit
	callq	memmove@PLT
.LBB89_15:                              # %_ZN6thrust6detail18contiguous_storageIfSaIfEE18uninitialized_copyINS0_15normal_iteratorIPKfEEEENS5_IPfEET_SB_SA_.exit
	movq	%r14, 24(%rbx)
.LBB89_16:
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB89_4:
	.cfi_def_cfa_offset 64
.Ltmp519:
	movq	%rax, %rbx
	cmpq	$0, 16(%rsp)
	je	.LBB89_6
# %bb.5:
	movq	8(%rsp), %rdi
	callq	_ZdlPv
.LBB89_6:                               # %_ZN6thrust6detail18contiguous_storageIfSaIfEED2Ev.exit31
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end89:
	.size	_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE, .Lfunc_end89-_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE
	.cfi_endproc
	.section	.gcc_except_table._ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE,"aG",@progbits,_ZN6thrust6detail11vector_baseIfSaIfEE12range_assignINS0_15normal_iteratorIPKfEEEEvT_S9_NS_27random_access_traversal_tagE,comdat
	.p2align	2, 0x0
GCC_except_table89:
.Lexception33:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end33-.Lcst_begin33
.Lcst_begin33:
	.uleb128 .Ltmp517-.Lfunc_begin33        # >> Call Site 1 <<
	.uleb128 .Ltmp518-.Ltmp517              #   Call between .Ltmp517 and .Ltmp518
	.uleb128 .Ltmp519-.Lfunc_begin33        #     jumps to .Ltmp519
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp518-.Lfunc_begin33        # >> Call Site 2 <<
	.uleb128 .Lfunc_end89-.Ltmp518          #   Call between .Ltmp518 and .Lfunc_end89
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end33:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.p2align	4, 0x90                         # -- Begin function __hip_module_ctor
	.type	__hip_module_ctor,@function
__hip_module_ctor:                      # @__hip_module_ctor
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -16
	movq	__hip_gpubin_handle(%rip), %rbx
	testq	%rbx, %rbx
	jne	.LBB90_2
# %bb.1:
	movl	$__hip_fatbin_wrapper, %edi
	callq	__hipRegisterFatBinary
	movq	%rax, %rbx
	movq	%rax, __hip_gpubin_handle(%rip)
.LBB90_2:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, %esi
	movl	$.L__unnamed_1, %edx
	movl	$.L__unnamed_1, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z19computeOutputDelta2PfPKfiPKi, %esi
	movl	$.L__unnamed_2, %edx
	movl	$.L__unnamed_2, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z17computeLayerDeltaPfS_S_PiS0_S0_i, %esi
	movl	$.L__unnamed_3, %edx
	movl	$.L__unnamed_3, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, %esi
	movl	$.L__unnamed_4, %edx
	movl	$.L__unnamed_4, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z13updateWeightsPfS_i, %esi
	movl	$.L__unnamed_5, %edx
	movl	$.L__unnamed_5, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	movl	$__hip_module_dtor, %edi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit                          # TAILCALL
.Lfunc_end90:
	.size	__hip_module_ctor, .Lfunc_end90-__hip_module_ctor
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_dtor
	.type	__hip_module_dtor,@function
__hip_module_dtor:                      # @__hip_module_dtor
	.cfi_startproc
# %bb.0:
	movq	__hip_gpubin_handle(%rip), %rdi
	testq	%rdi, %rdi
	je	.LBB91_2
# %bb.1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__hipUnregisterFatBinary
	movq	$0, __hip_gpubin_handle(%rip)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
.LBB91_2:
	retq
.Lfunc_end91:
	.size	__hip_module_dtor, .Lfunc_end91-__hip_module_dtor
	.cfi_endproc
                                        # -- End function
	.type	startwtime,@object              # @startwtime
	.bss
	.globl	startwtime
	.p2align	3, 0x0
startwtime:
	.zero	16
	.size	startwtime, 16

	.type	endwtime,@object                # @endwtime
	.globl	endwtime
	.p2align	3, 0x0
endwtime:
	.zero	16
	.size	endwtime, 16

	.type	seq_time,@object                # @seq_time
	.globl	seq_time
	.p2align	3, 0x0
seq_time:
	.quad	0x0000000000000000              # double 0
	.size	seq_time, 8

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"offset "
	.size	.L.str, 8

	.type	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i,@object # @_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.section	.rodata,"a",@progbits
	.globl	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.p2align	3, 0x0
_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i:
	.quad	_Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.size	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, 8

	.type	_Z19computeOutputDelta2PfPKfiPKi,@object # @_Z19computeOutputDelta2PfPKfiPKi
	.globl	_Z19computeOutputDelta2PfPKfiPKi
	.p2align	3, 0x0
_Z19computeOutputDelta2PfPKfiPKi:
	.quad	_Z34__device_stub__computeOutputDelta2PfPKfiPKi
	.size	_Z19computeOutputDelta2PfPKfiPKi, 8

	.type	_Z17computeLayerDeltaPfS_S_PiS0_S0_i,@object # @_Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.globl	_Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.p2align	3, 0x0
_Z17computeLayerDeltaPfS_S_PiS0_S0_i:
	.quad	_Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
	.size	_Z17computeLayerDeltaPfS_S_PiS0_S0_i, 8

	.type	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i,@object # @_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.globl	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.p2align	3, 0x0
_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i:
	.quad	_Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.size	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, 8

	.type	_Z13updateWeightsPfS_i,@object  # @_Z13updateWeightsPfS_i
	.globl	_Z13updateWeightsPfS_i
	.p2align	3, 0x0
_Z13updateWeightsPfS_i:
	.quad	_Z28__device_stub__updateWeightsPfS_i
	.size	_Z13updateWeightsPfS_i, 8

	.type	.L.str.1,@object                # @.str.1
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.1:
	.asciz	"Give 'the training set image_path', 'the training set label_path' 'the test set image_path' and 'the test set label_path'\n"
	.size	.L.str.1, 123

	.type	.L.str.2,@object                # @.str.2
.L.str.2:
	.asciz	"Training begins now with batch size: "
	.size	.L.str.2, 38

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

	.type	.L.str.4,@object                # @.str.4
.L.str.4:
	.asciz	" epochs "
	.size	.L.str.4, 9

	.type	.L.str.5,@object                # @.str.5
.L.str.5:
	.asciz	"The NeuralNetwork is trained for: "
	.size	.L.str.5, 35

	.type	.L.str.6,@object                # @.str.6
.L.str.6:
	.asciz	" images in: "
	.size	.L.str.6, 13

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

	.type	.L.str.8,@object                # @.str.8
.L.str.8:
	.asciz	"Evaluating the NeuralNetwork"
	.size	.L.str.8, 29

	.type	.L.str.9,@object                # @.str.9
.L.str.9:
	.asciz	"The NeuralNetwork's accuracy is: "
	.size	.L.str.9, 34

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

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

	.type	.L.str.12,@object               # @.str.12
.L.str.12:
	.asciz	"assignment exceeds max_size()."
	.size	.L.str.12, 31

	.type	_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,@object # @_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.section	.bss._ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,"awG",@nobits,_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,comdat
	.weak	_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.p2align	3, 0x0
_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource:
	.zero	16
	.size	_ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource, 16

	.type	_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,@object # @_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.section	.bss._ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,"awG",@nobits,_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource,comdat
	.weak	_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.p2align	3, 0x0
_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource:
	.quad	0                               # 0x0
	.size	_ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource, 8

	.hidden	__dso_handle
	.type	_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,@object # @_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.section	.rodata._ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,"aG",@progbits,_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,comdat
	.weak	_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.p2align	3, 0x0
_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE:
	.quad	0
	.quad	_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.quad	_ZN6thrust2mr15memory_resourceINS_10device_ptrIvEEED2Ev
	.quad	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEED0Ev
	.quad	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE11do_allocateEmm
	.quad	_ZN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEE13do_deallocateENS_10device_ptrIvEEmm
	.quad	_ZNK6thrust2mr15memory_resourceINS_10device_ptrIvEEE11do_is_equalERKS4_
	.size	_ZTVN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE, 56

	.type	_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,@object # @_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.section	.rodata._ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,"aG",@progbits,_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,comdat
	.weak	_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE:
	.asciz	"N6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE"
	.size	_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE, 200

	.type	_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,@object # @_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.section	.rodata._ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,"aG",@progbits,_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,comdat
	.weak	_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE:
	.asciz	"N6thrust2mr15memory_resourceINS_10device_ptrIvEEEE"
	.size	_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE, 51

	.type	_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,@object # @_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.section	.rodata._ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,"aG",@progbits,_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE,comdat
	.weak	_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.p2align	3, 0x0
_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.size	_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE, 16

	.type	_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,@object # @_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.section	.rodata._ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,"aG",@progbits,_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE,comdat
	.weak	_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.p2align	3, 0x0
_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.quad	_ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.size	_ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE, 24

	.type	_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,@object # @_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.section	.data._ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,"awG",@progbits,_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,comdat
	.weak	_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.p2align	3, 0x0
_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource:
	.quad	_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE+16
	.size	_ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource, 8

	.type	_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,@object # @_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.section	.rodata._ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,"aG",@progbits,_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,comdat
	.weak	_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.p2align	3, 0x0
_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE:
	.quad	0
	.quad	_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.quad	_ZN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEED2Ev
	.quad	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEED0Ev
	.quad	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE11do_allocateEmm
	.quad	_ZN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEE13do_deallocateESA_mm
	.quad	_ZNK6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEE11do_is_equalERKS9_
	.size	_ZTVN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE, 56

	.type	_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,@object # @_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.section	.bss._ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,"awG",@nobits,_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource,comdat
	.weak	_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.p2align	3, 0x0
_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource:
	.quad	0                               # 0x0
	.size	_ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource, 8

	.type	_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,@object # @_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.section	.rodata._ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,"aG",@progbits,_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,comdat
	.weak	_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE:
	.asciz	"N6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE"
	.size	_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE, 166

	.type	_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,@object # @_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.section	.rodata._ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,"aG",@progbits,_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,comdat
	.weak	_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE:
	.asciz	"N6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE"
	.size	_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE, 113

	.type	_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,@object # @_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.section	.rodata._ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,"aG",@progbits,_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE,comdat
	.weak	_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.p2align	3, 0x0
_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.size	_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE, 16

	.type	_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,@object # @_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.section	.rodata._ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,"aG",@progbits,_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE,comdat
	.weak	_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.p2align	3, 0x0
_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.quad	_ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.size	_ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE, 24

	.type	_ZTSN6thrust6system6detail9bad_allocE,@object # @_ZTSN6thrust6system6detail9bad_allocE
	.section	.rodata._ZTSN6thrust6system6detail9bad_allocE,"aG",@progbits,_ZTSN6thrust6system6detail9bad_allocE,comdat
	.weak	_ZTSN6thrust6system6detail9bad_allocE
_ZTSN6thrust6system6detail9bad_allocE:
	.asciz	"N6thrust6system6detail9bad_allocE"
	.size	_ZTSN6thrust6system6detail9bad_allocE, 34

	.type	_ZTIN6thrust6system6detail9bad_allocE,@object # @_ZTIN6thrust6system6detail9bad_allocE
	.section	.rodata._ZTIN6thrust6system6detail9bad_allocE,"aG",@progbits,_ZTIN6thrust6system6detail9bad_allocE,comdat
	.weak	_ZTIN6thrust6system6detail9bad_allocE
	.p2align	3, 0x0
_ZTIN6thrust6system6detail9bad_allocE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system6detail9bad_allocE
	.quad	_ZTISt9bad_alloc
	.size	_ZTIN6thrust6system6detail9bad_allocE, 24

	.type	_ZZN6thrust6system12hip_categoryEvE6result,@object # @_ZZN6thrust6system12hip_categoryEvE6result
	.section	.bss._ZZN6thrust6system12hip_categoryEvE6result,"awG",@nobits,_ZZN6thrust6system12hip_categoryEvE6result,comdat
	.weak	_ZZN6thrust6system12hip_categoryEvE6result
	.p2align	3, 0x0
_ZZN6thrust6system12hip_categoryEvE6result:
	.zero	8
	.size	_ZZN6thrust6system12hip_categoryEvE6result, 8

	.type	_ZGVZN6thrust6system12hip_categoryEvE6result,@object # @_ZGVZN6thrust6system12hip_categoryEvE6result
	.section	.bss._ZGVZN6thrust6system12hip_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust6system12hip_categoryEvE6result,comdat
	.weak	_ZGVZN6thrust6system12hip_categoryEvE6result
	.p2align	3, 0x0
_ZGVZN6thrust6system12hip_categoryEvE6result:
	.quad	0                               # 0x0
	.size	_ZGVZN6thrust6system12hip_categoryEvE6result, 8

	.type	_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE,@object # @_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.section	.rodata._ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE,"aG",@progbits,_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE,comdat
	.weak	_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.p2align	3, 0x0
_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.quad	_ZN6thrust6system14error_categoryD2Ev
	.quad	_ZN6thrust6system11hip_rocprim6detail18hip_error_categoryD0Ev
	.quad	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category4nameEv
	.quad	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category23default_error_conditionEi
	.quad	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.quad	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.quad	_ZNK6thrust6system11hip_rocprim6detail18hip_error_category7messageB5cxx11Ei
	.size	_ZTVN6thrust6system11hip_rocprim6detail18hip_error_categoryE, 72

	.type	_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE,@object # @_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.section	.rodata._ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE,"aG",@progbits,_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE,comdat
	.weak	_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE
_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE:
	.asciz	"N6thrust6system11hip_rocprim6detail18hip_error_categoryE"
	.size	_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE, 57

	.type	_ZTSN6thrust6system14error_categoryE,@object # @_ZTSN6thrust6system14error_categoryE
	.section	.rodata._ZTSN6thrust6system14error_categoryE,"aG",@progbits,_ZTSN6thrust6system14error_categoryE,comdat
	.weak	_ZTSN6thrust6system14error_categoryE
_ZTSN6thrust6system14error_categoryE:
	.asciz	"N6thrust6system14error_categoryE"
	.size	_ZTSN6thrust6system14error_categoryE, 33

	.type	_ZTIN6thrust6system14error_categoryE,@object # @_ZTIN6thrust6system14error_categoryE
	.section	.rodata._ZTIN6thrust6system14error_categoryE,"aG",@progbits,_ZTIN6thrust6system14error_categoryE,comdat
	.weak	_ZTIN6thrust6system14error_categoryE
	.p2align	3, 0x0
_ZTIN6thrust6system14error_categoryE:
	.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
	.quad	_ZTSN6thrust6system14error_categoryE
	.size	_ZTIN6thrust6system14error_categoryE, 16

	.type	_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE,@object # @_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.section	.rodata._ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE,"aG",@progbits,_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE,comdat
	.weak	_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.p2align	3, 0x0
_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.quad	_ZTIN6thrust6system14error_categoryE
	.size	_ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE, 24

	.type	_ZTVN6thrust6system14error_categoryE,@object # @_ZTVN6thrust6system14error_categoryE
	.section	.rodata._ZTVN6thrust6system14error_categoryE,"aG",@progbits,_ZTVN6thrust6system14error_categoryE,comdat
	.weak	_ZTVN6thrust6system14error_categoryE
	.p2align	3, 0x0
_ZTVN6thrust6system14error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust6system14error_categoryE
	.quad	_ZN6thrust6system14error_categoryD2Ev
	.quad	_ZN6thrust6system14error_categoryD0Ev
	.quad	__cxa_pure_virtual
	.quad	_ZNK6thrust6system14error_category23default_error_conditionEi
	.quad	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.quad	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.quad	__cxa_pure_virtual
	.size	_ZTVN6thrust6system14error_categoryE, 72

	.type	.L.str.14,@object               # @.str.14
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.14:
	.asciz	"hip"
	.size	.L.str.14, 4

	.type	_ZZN6thrust6system15system_categoryEvE6result,@object # @_ZZN6thrust6system15system_categoryEvE6result
	.section	.bss._ZZN6thrust6system15system_categoryEvE6result,"awG",@nobits,_ZZN6thrust6system15system_categoryEvE6result,comdat
	.weak	_ZZN6thrust6system15system_categoryEvE6result
	.p2align	3, 0x0
_ZZN6thrust6system15system_categoryEvE6result:
	.zero	8
	.size	_ZZN6thrust6system15system_categoryEvE6result, 8

	.type	_ZGVZN6thrust6system15system_categoryEvE6result,@object # @_ZGVZN6thrust6system15system_categoryEvE6result
	.section	.bss._ZGVZN6thrust6system15system_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust6system15system_categoryEvE6result,comdat
	.weak	_ZGVZN6thrust6system15system_categoryEvE6result
	.p2align	3, 0x0
_ZGVZN6thrust6system15system_categoryEvE6result:
	.quad	0                               # 0x0
	.size	_ZGVZN6thrust6system15system_categoryEvE6result, 8

	.type	_ZTVN6thrust6system6detail21system_error_categoryE,@object # @_ZTVN6thrust6system6detail21system_error_categoryE
	.section	.rodata._ZTVN6thrust6system6detail21system_error_categoryE,"aG",@progbits,_ZTVN6thrust6system6detail21system_error_categoryE,comdat
	.weak	_ZTVN6thrust6system6detail21system_error_categoryE
	.p2align	3, 0x0
_ZTVN6thrust6system6detail21system_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust6system6detail21system_error_categoryE
	.quad	_ZN6thrust6system14error_categoryD2Ev
	.quad	_ZN6thrust6system6detail21system_error_categoryD0Ev
	.quad	_ZNK6thrust6system6detail21system_error_category4nameEv
	.quad	_ZNK6thrust6system6detail21system_error_category23default_error_conditionEi
	.quad	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.quad	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.quad	_ZNK6thrust6system6detail21system_error_category7messageB5cxx11Ei
	.size	_ZTVN6thrust6system6detail21system_error_categoryE, 72

	.type	_ZTSN6thrust6system6detail21system_error_categoryE,@object # @_ZTSN6thrust6system6detail21system_error_categoryE
	.section	.rodata._ZTSN6thrust6system6detail21system_error_categoryE,"aG",@progbits,_ZTSN6thrust6system6detail21system_error_categoryE,comdat
	.weak	_ZTSN6thrust6system6detail21system_error_categoryE
_ZTSN6thrust6system6detail21system_error_categoryE:
	.asciz	"N6thrust6system6detail21system_error_categoryE"
	.size	_ZTSN6thrust6system6detail21system_error_categoryE, 47

	.type	_ZTIN6thrust6system6detail21system_error_categoryE,@object # @_ZTIN6thrust6system6detail21system_error_categoryE
	.section	.rodata._ZTIN6thrust6system6detail21system_error_categoryE,"aG",@progbits,_ZTIN6thrust6system6detail21system_error_categoryE,comdat
	.weak	_ZTIN6thrust6system6detail21system_error_categoryE
	.p2align	3, 0x0
_ZTIN6thrust6system6detail21system_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system6detail21system_error_categoryE
	.quad	_ZTIN6thrust6system14error_categoryE
	.size	_ZTIN6thrust6system6detail21system_error_categoryE, 24

	.type	.L.str.15,@object               # @.str.15
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.15:
	.asciz	"system"
	.size	.L.str.15, 7

	.type	_ZZN6thrust6system16generic_categoryEvE6result,@object # @_ZZN6thrust6system16generic_categoryEvE6result
	.section	.bss._ZZN6thrust6system16generic_categoryEvE6result,"awG",@nobits,_ZZN6thrust6system16generic_categoryEvE6result,comdat
	.weak	_ZZN6thrust6system16generic_categoryEvE6result
	.p2align	3, 0x0
_ZZN6thrust6system16generic_categoryEvE6result:
	.zero	8
	.size	_ZZN6thrust6system16generic_categoryEvE6result, 8

	.type	_ZGVZN6thrust6system16generic_categoryEvE6result,@object # @_ZGVZN6thrust6system16generic_categoryEvE6result
	.section	.bss._ZGVZN6thrust6system16generic_categoryEvE6result,"awG",@nobits,_ZGVZN6thrust6system16generic_categoryEvE6result,comdat
	.weak	_ZGVZN6thrust6system16generic_categoryEvE6result
	.p2align	3, 0x0
_ZGVZN6thrust6system16generic_categoryEvE6result:
	.quad	0                               # 0x0
	.size	_ZGVZN6thrust6system16generic_categoryEvE6result, 8

	.type	_ZTVN6thrust6system6detail22generic_error_categoryE,@object # @_ZTVN6thrust6system6detail22generic_error_categoryE
	.section	.rodata._ZTVN6thrust6system6detail22generic_error_categoryE,"aG",@progbits,_ZTVN6thrust6system6detail22generic_error_categoryE,comdat
	.weak	_ZTVN6thrust6system6detail22generic_error_categoryE
	.p2align	3, 0x0
_ZTVN6thrust6system6detail22generic_error_categoryE:
	.quad	0
	.quad	_ZTIN6thrust6system6detail22generic_error_categoryE
	.quad	_ZN6thrust6system14error_categoryD2Ev
	.quad	_ZN6thrust6system6detail22generic_error_categoryD0Ev
	.quad	_ZNK6thrust6system6detail22generic_error_category4nameEv
	.quad	_ZNK6thrust6system14error_category23default_error_conditionEi
	.quad	_ZNK6thrust6system14error_category10equivalentEiRKNS0_15error_conditionE
	.quad	_ZNK6thrust6system14error_category10equivalentERKNS0_10error_codeEi
	.quad	_ZNK6thrust6system6detail22generic_error_category7messageB5cxx11Ei
	.size	_ZTVN6thrust6system6detail22generic_error_categoryE, 72

	.type	_ZTSN6thrust6system6detail22generic_error_categoryE,@object # @_ZTSN6thrust6system6detail22generic_error_categoryE
	.section	.rodata._ZTSN6thrust6system6detail22generic_error_categoryE,"aG",@progbits,_ZTSN6thrust6system6detail22generic_error_categoryE,comdat
	.weak	_ZTSN6thrust6system6detail22generic_error_categoryE
_ZTSN6thrust6system6detail22generic_error_categoryE:
	.asciz	"N6thrust6system6detail22generic_error_categoryE"
	.size	_ZTSN6thrust6system6detail22generic_error_categoryE, 48

	.type	_ZTIN6thrust6system6detail22generic_error_categoryE,@object # @_ZTIN6thrust6system6detail22generic_error_categoryE
	.section	.rodata._ZTIN6thrust6system6detail22generic_error_categoryE,"aG",@progbits,_ZTIN6thrust6system6detail22generic_error_categoryE,comdat
	.weak	_ZTIN6thrust6system6detail22generic_error_categoryE
	.p2align	3, 0x0
_ZTIN6thrust6system6detail22generic_error_categoryE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system6detail22generic_error_categoryE
	.quad	_ZTIN6thrust6system14error_categoryE
	.size	_ZTIN6thrust6system6detail22generic_error_categoryE, 24

	.type	.L.str.16,@object               # @.str.16
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.16:
	.asciz	"generic"
	.size	.L.str.16, 8

	.type	_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,@object # @_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.section	.bss._ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,"awG",@nobits,_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,comdat
	.weak	_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.p2align	3, 0x0
_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11:
	.zero	32
	.size	_ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, 32

	.type	_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,@object # @_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.section	.bss._ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,"awG",@nobits,_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11,comdat
	.weak	_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.p2align	3, 0x0
_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11:
	.quad	0                               # 0x0
	.size	_ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11, 8

	.type	.L.str.17,@object               # @.str.17
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.17:
	.asciz	"Unknown error"
	.size	.L.str.17, 14

	.type	.L.str.18,@object               # @.str.18
.L.str.18:
	.asciz	"unknown error"
	.size	.L.str.18, 14

	.type	.L.str.19,@object               # @.str.19
.L.str.19:
	.asciz	"hipErrorUnknown"
	.size	.L.str.19, 16

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

	.type	_ZTVN6thrust6system6detail9bad_allocE,@object # @_ZTVN6thrust6system6detail9bad_allocE
	.section	.rodata._ZTVN6thrust6system6detail9bad_allocE,"aG",@progbits,_ZTVN6thrust6system6detail9bad_allocE,comdat
	.weak	_ZTVN6thrust6system6detail9bad_allocE
	.p2align	3, 0x0
_ZTVN6thrust6system6detail9bad_allocE:
	.quad	0
	.quad	_ZTIN6thrust6system6detail9bad_allocE
	.quad	_ZN6thrust6system6detail9bad_allocD2Ev
	.quad	_ZN6thrust6system6detail9bad_allocD0Ev
	.quad	_ZNK6thrust6system6detail9bad_alloc4whatEv
	.size	_ZTVN6thrust6system6detail9bad_allocE, 40

	.type	.L.str.22,@object               # @.str.22
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.22:
	.asciz	"HIP free failed"
	.size	.L.str.22, 16

	.type	_ZTSN6thrust6system12system_errorE,@object # @_ZTSN6thrust6system12system_errorE
	.section	.rodata._ZTSN6thrust6system12system_errorE,"aG",@progbits,_ZTSN6thrust6system12system_errorE,comdat
	.weak	_ZTSN6thrust6system12system_errorE
_ZTSN6thrust6system12system_errorE:
	.asciz	"N6thrust6system12system_errorE"
	.size	_ZTSN6thrust6system12system_errorE, 31

	.type	_ZTIN6thrust6system12system_errorE,@object # @_ZTIN6thrust6system12system_errorE
	.section	.rodata._ZTIN6thrust6system12system_errorE,"aG",@progbits,_ZTIN6thrust6system12system_errorE,comdat
	.weak	_ZTIN6thrust6system12system_errorE
	.p2align	3, 0x0
_ZTIN6thrust6system12system_errorE:
	.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
	.quad	_ZTSN6thrust6system12system_errorE
	.quad	_ZTISt13runtime_error
	.size	_ZTIN6thrust6system12system_errorE, 24

	.type	_ZTVN6thrust6system12system_errorE,@object # @_ZTVN6thrust6system12system_errorE
	.section	.rodata._ZTVN6thrust6system12system_errorE,"aG",@progbits,_ZTVN6thrust6system12system_errorE,comdat
	.weak	_ZTVN6thrust6system12system_errorE
	.p2align	3, 0x0
_ZTVN6thrust6system12system_errorE:
	.quad	0
	.quad	_ZTIN6thrust6system12system_errorE
	.quad	_ZN6thrust6system12system_errorD2Ev
	.quad	_ZN6thrust6system12system_errorD0Ev
	.quad	_ZNK6thrust6system12system_error4whatEv
	.size	_ZTVN6thrust6system12system_errorE, 40

	.type	.L.str.23,@object               # @.str.23
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.23:
	.asciz	"__copy::trivial_device_copy H->D: failed"
	.size	.L.str.23, 41

	.type	.L.str.24,@object               # @.str.24
.L.str.24:
	.asciz	"trivial_device_copy D->H failed"
	.size	.L.str.24, 32

	.type	.L__unnamed_1,@object           # @0
.L__unnamed_1:
	.asciz	"_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i"
	.size	.L__unnamed_1, 47

	.type	.L__unnamed_2,@object           # @1
.L__unnamed_2:
	.asciz	"_Z19computeOutputDelta2PfPKfiPKi"
	.size	.L__unnamed_2, 33

	.type	.L__unnamed_3,@object           # @2
.L__unnamed_3:
	.asciz	"_Z17computeLayerDeltaPfS_S_PiS0_S0_i"
	.size	.L__unnamed_3, 37

	.type	.L__unnamed_4,@object           # @3
.L__unnamed_4:
	.asciz	"_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i"
	.size	.L__unnamed_4, 44

	.type	.L__unnamed_5,@object           # @4
.L__unnamed_5:
	.asciz	"_Z13updateWeightsPfS_i"
	.size	.L__unnamed_5, 23

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

	.type	__hip_gpubin_handle,@object     # @__hip_gpubin_handle
	.local	__hip_gpubin_handle
	.comm	__hip_gpubin_handle,8,8
	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	__hip_module_ctor
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym _Z29__device_stub__propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.addrsig_sym _Z34__device_stub__computeOutputDelta2PfPKfiPKi
	.addrsig_sym _Z32__device_stub__computeLayerDeltaPfS_S_PiS0_S0_i
	.addrsig_sym _Z39__device_stub__computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.addrsig_sym _Z28__device_stub__updateWeightsPfS_i
	.addrsig_sym __hip_module_ctor
	.addrsig_sym __hip_module_dtor
	.addrsig_sym _Unwind_Resume
	.addrsig_sym startwtime
	.addrsig_sym endwtime
	.addrsig_sym _ZSt4cout
	.addrsig_sym _Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.addrsig_sym _Z19computeOutputDelta2PfPKfiPKi
	.addrsig_sym _Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.addrsig_sym _Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.addrsig_sym _Z13updateWeightsPfS_i
	.addrsig_sym _ZTISt12length_error
	.addrsig_sym _ZTVN10__cxxabiv120__si_class_type_infoE
	.addrsig_sym _ZTISt13runtime_error
	.addrsig_sym _ZZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.addrsig_sym _ZGVZN6thrust2mr19get_global_resourceINS_26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS9_EENS_11use_defaultEEEEEEEEEPT_vE8resource
	.addrsig_sym __dso_handle
	.addrsig_sym _ZTSN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.addrsig_sym _ZTVN10__cxxabiv117__class_type_infoE
	.addrsig_sym _ZTSN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.addrsig_sym _ZTIN6thrust2mr15memory_resourceINS_10device_ptrIvEEEE
	.addrsig_sym _ZTIN6thrust26device_ptr_memory_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS7_EENS_11use_defaultEEEEEEE
	.addrsig_sym _ZZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.addrsig_sym _ZGVZN6thrust2mr19get_global_resourceINS_6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS8_EENS_11use_defaultEEEEEEEPT_vE8resource
	.addrsig_sym _ZTSN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.addrsig_sym _ZTSN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.addrsig_sym _ZTIN6thrust2mr15memory_resourceINS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS4_EENS_11use_defaultEEEEE
	.addrsig_sym _ZTIN6thrust6system3hip6detail19hip_memory_resourceIXadL_Z9hipMallocEEXadL_Z7hipFreeEENS_7pointerIvNS_11hip_rocprim3tagENS_16tagged_referenceIvS6_EENS_11use_defaultEEEEE
	.addrsig_sym _ZTSN6thrust6system6detail9bad_allocE
	.addrsig_sym _ZTISt9bad_alloc
	.addrsig_sym _ZTIN6thrust6system6detail9bad_allocE
	.addrsig_sym _ZZN6thrust6system12hip_categoryEvE6result
	.addrsig_sym _ZGVZN6thrust6system12hip_categoryEvE6result
	.addrsig_sym _ZTSN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.addrsig_sym _ZTSN6thrust6system14error_categoryE
	.addrsig_sym _ZTIN6thrust6system14error_categoryE
	.addrsig_sym _ZTIN6thrust6system11hip_rocprim6detail18hip_error_categoryE
	.addrsig_sym _ZZN6thrust6system15system_categoryEvE6result
	.addrsig_sym _ZGVZN6thrust6system15system_categoryEvE6result
	.addrsig_sym _ZTSN6thrust6system6detail21system_error_categoryE
	.addrsig_sym _ZTIN6thrust6system6detail21system_error_categoryE
	.addrsig_sym _ZZN6thrust6system16generic_categoryEvE6result
	.addrsig_sym _ZGVZN6thrust6system16generic_categoryEvE6result
	.addrsig_sym _ZTSN6thrust6system6detail22generic_error_categoryE
	.addrsig_sym _ZTIN6thrust6system6detail22generic_error_categoryE
	.addrsig_sym _ZZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.addrsig_sym _ZGVZNK6thrust6system6detail22generic_error_category7messageB5cxx11EiE11unknown_errB5cxx11
	.addrsig_sym _ZTSN6thrust6system12system_errorE
	.addrsig_sym _ZTIN6thrust6system12system_errorE
	.addrsig_sym __hip_fatbin
	.addrsig_sym __hip_fatbin_wrapper
	.addrsig_sym __hip_cuid_

	.text
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.protected	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i ; -- Begin function _Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.globl	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
	.p2align	8
	.type	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i,@function
_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i: ; @_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
; %bb.0:
	s_clause 0x1
	s_load_b32 s8, s[0:1], 0x38
	s_load_b128 s[4:7], s[0:1], 0x20
	v_mov_b32_e32 v5, 0
	s_waitcnt lgkmcnt(0)
	s_ashr_i32 s9, s8, 31
	s_delay_alu instid0(SALU_CYCLE_1)
	s_lshl_b64 s[10:11], s[8:9], 2
	s_load_b32 s9, s[4:5], 0x10
	s_add_u32 s2, s6, s10
	s_addc_u32 s3, s7, s11
	s_add_u32 s12, s2, -4
	s_addc_u32 s13, s3, -1
	s_add_u32 s2, s4, s10
	s_addc_u32 s3, s5, s11
	s_add_u32 s2, s2, -4
	s_addc_u32 s3, s3, -1
	s_load_b64 s[6:7], s[2:3], 0x0
	s_load_b64 s[2:3], s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	s_mul_i32 s9, s9, s15
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_add3_u32 v1, s9, s7, v0
	s_load_b32 s7, s[12:13], 0x0
	v_ashrrev_i32_e32 v2, 31, v1
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[1:2], 2, v[1:2]
	v_add_co_u32 v1, vcc_lo, s2, v1
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v2, vcc_lo, s3, v2, vcc_lo
	s_waitcnt lgkmcnt(0)
	s_cmp_lt_i32 s7, 1
	global_store_b32 v[1:2], v5, off
	s_cbranch_scc1 .LBB0_3
; %bb.1:                                ; %.lr.ph
	s_clause 0x1
	s_load_b64 s[12:13], s[0:1], 0x30
	s_load_b64 s[16:17], s[0:1], 0x10
	v_mov_b32_e32 v6, 0
	s_waitcnt lgkmcnt(0)
	s_add_u32 s0, s12, s10
	s_addc_u32 s1, s13, s11
	s_add_u32 s0, s0, -4
	s_addc_u32 s1, s1, -1
	s_load_b32 s0, s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	v_mad_u64_u32 v[3:4], null, s7, v0, s[0:1]
	s_add_i32 s0, s6, s9
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_ashr_i32 s1, s0, 31
	s_lshl_b64 s[10:11], s[0:1], 2
	s_add_i32 s1, s0, s7
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_ashrrev_i32_e32 v4, 31, v3
	s_add_u32 s6, s2, s10
	s_addc_u32 s7, s3, s11
	v_lshlrev_b64 v[3:4], 2, v[3:4]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_co_u32 v3, vcc_lo, s16, v3
	v_add_co_ci_u32_e32 v4, vcc_lo, s17, v4, vcc_lo
.LBB0_2:                                ; =>This Inner Loop Header: Depth=1
	global_load_b32 v7, v[3:4], off
	global_load_b32 v8, v5, s[6:7]
	v_add_co_u32 v3, vcc_lo, v3, 4
	s_add_i32 s0, s0, 1
	v_add_co_ci_u32_e32 v4, vcc_lo, 0, v4, vcc_lo
	s_add_u32 s6, s6, 4
	s_addc_u32 s7, s7, 0
	s_cmp_ge_i32 s0, s1
	s_waitcnt vmcnt(0)
	v_fmac_f32_e32 v6, v7, v8
	global_store_b32 v[1:2], v6, off
	s_cbranch_scc0 .LBB0_2
.LBB0_3:                                ; %._crit_edge
	v_cmp_ne_u32_e32 vcc_lo, 0, v0
	s_cmp_lg_u32 s8, 3
	s_waitcnt_vscnt null, 0x0
	s_cselect_b32 s0, -1, 0
	s_barrier
	s_or_b32 s0, vcc_lo, s0
	buffer_gl0_inv
	s_and_saveexec_b32 s1, s0
	s_delay_alu instid0(SALU_CYCLE_1)
	s_xor_b32 s0, exec_lo, s1
	s_cbranch_execz .LBB0_6
; %bb.4:
	s_cmp_gt_i32 s8, 2
	s_cbranch_scc1 .LBB0_6
; %bb.5:
	global_load_b32 v0, v[1:2], off
	s_waitcnt vmcnt(0)
	v_mul_f32_e32 v3, 0xbfb8aa3b, v0
	v_cmp_nlt_f32_e32 vcc_lo, 0x42ce8ed0, v0
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_rndne_f32_e32 v4, v3
	v_fma_f32 v5, 0xbfb8aa3b, v0, -v3
	v_sub_f32_e32 v3, v3, v4
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_fmamk_f32 v5, v0, 0xb2a5705f, v5
	v_cvt_i32_f32_e32 v4, v4
	v_add_f32_e32 v3, v3, v5
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_exp_f32_e32 v3, v3
	s_waitcnt_depctr 0xfff
	v_ldexp_f32 v3, v3, v4
	v_cndmask_b32_e32 v3, 0, v3, vcc_lo
	v_cmp_ngt_f32_e32 vcc_lo, 0xc2b17218, v0
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_cndmask_b32_e32 v0, 0x7f800000, v3, vcc_lo
	v_add_f32_e32 v0, 1.0, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_div_scale_f32 v3, null, v0, v0, 1.0
	v_rcp_f32_e32 v4, v3
	s_waitcnt_depctr 0xfff
	v_fma_f32 v5, -v3, v4, 1.0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_fmac_f32_e32 v4, v5, v4
	v_div_scale_f32 v5, vcc_lo, 1.0, v0, 1.0
	v_mul_f32_e32 v6, v5, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f32 v7, -v3, v6, v5
	v_fmac_f32_e32 v6, v7, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f32 v3, -v3, v6, v5
	v_div_fmas_f32 v3, v3, v4, v6
	s_delay_alu instid0(VALU_DEP_1)
	v_div_fixup_f32 v0, v3, v0, 1.0
	global_store_b32 v[1:2], v0, off
.LBB0_6:                                ; %Flow84
	s_and_not1_saveexec_b32 s6, s0
	s_cbranch_execz .LBB0_11
; %bb.7:
	s_load_b64 s[0:1], s[4:5], 0xc
	v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, 0
	s_waitcnt lgkmcnt(0)
	s_mul_i32 s1, s1, s15
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_add_i32 s0, s1, s0
	s_ashr_i32 s1, s0, 31
	s_mov_b32 s7, s0
	s_lshl_b64 s[4:5], s[0:1], 2
	s_add_i32 s1, s0, 10
	s_add_u32 s2, s2, s4
	s_addc_u32 s3, s3, s5
	s_delay_alu instid0(SALU_CYCLE_1)
	s_mov_b64 s[4:5], s[2:3]
.LBB0_8:                                ; =>This Inner Loop Header: Depth=1
	global_load_b32 v2, v1, s[4:5]
	s_add_i32 s7, s7, 1
	s_waitcnt vmcnt(0)
	v_mul_f32_e32 v3, 0x3fb8aa3b, v2
	v_cmp_ngt_f32_e32 vcc_lo, 0xc2ce8ed0, v2
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_fma_f32 v4, 0x3fb8aa3b, v2, -v3
	v_rndne_f32_e32 v5, v3
	v_dual_fmac_f32 v4, 0x32a5705f, v2 :: v_dual_sub_f32 v3, v3, v5
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add_f32_e32 v3, v3, v4
	v_cvt_i32_f32_e32 v4, v5
	v_exp_f32_e32 v3, v3
	s_waitcnt_depctr 0xfff
	v_ldexp_f32 v3, v3, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_cndmask_b32_e32 v3, 0, v3, vcc_lo
	v_cmp_nlt_f32_e32 vcc_lo, 0x42b17218, v2
	v_cndmask_b32_e32 v2, 0x7f800000, v3, vcc_lo
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v0, v0, v2
	global_store_b32 v1, v2, s[4:5]
	s_add_u32 s4, s4, 4
	s_addc_u32 s5, s5, 0
	s_cmp_lt_i32 s7, s1
	s_cbranch_scc1 .LBB0_8
; %bb.9:                                ; %.preheader.preheader
	v_mov_b32_e32 v1, 0
.LBB0_10:                               ; %.preheader
                                        ; =>This Inner Loop Header: Depth=1
	global_load_b32 v2, v1, s[2:3]
	s_add_i32 s0, s0, 1
	s_waitcnt vmcnt(0)
	v_div_scale_f32 v3, null, v0, v0, v2
	v_div_scale_f32 v6, vcc_lo, v2, v0, v2
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_rcp_f32_e32 v4, v3
	s_waitcnt_depctr 0xfff
	v_fma_f32 v5, -v3, v4, 1.0
	v_fmac_f32_e32 v4, v5, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_f32_e32 v5, v6, v4
	v_fma_f32 v7, -v3, v5, v6
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fmac_f32_e32 v5, v7, v4
	v_fma_f32 v3, -v3, v5, v6
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_div_fmas_f32 v3, v3, v4, v5
	v_div_fixup_f32 v2, v3, v0, v2
	global_store_b32 v1, v2, s[2:3]
	s_add_u32 s2, s2, 4
	s_addc_u32 s3, s3, 0
	s_cmp_ge_i32 s0, s1
	s_cbranch_scc0 .LBB0_10
.LBB0_11:                               ; %Flow85
	s_or_b32 exec_lo, exec_lo, s6
	s_waitcnt_vscnt null, 0x0
	s_barrier
	buffer_gl0_inv
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 60
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 9
		.amdhsa_next_free_sgpr 18
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end0:
	.size	_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i, .Lfunc_end0-_Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 1024
; NumSgprs: 20
; NumVgprs: 9
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 20
; NumVGPRsForWavesPerEU: 9
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z19computeOutputDelta2PfPKfiPKi ; -- Begin function _Z19computeOutputDelta2PfPKfiPKi
	.globl	_Z19computeOutputDelta2PfPKfiPKi
	.p2align	8
	.type	_Z19computeOutputDelta2PfPKfiPKi,@function
_Z19computeOutputDelta2PfPKfiPKi:       ; @_Z19computeOutputDelta2PfPKfiPKi
; %bb.0:
	s_clause 0x2
	s_load_b64 s[2:3], s[0:1], 0x18
	s_load_b128 s[4:7], s[0:1], 0x0
	s_load_b32 s0, s[0:1], 0x10
	s_waitcnt lgkmcnt(0)
	s_clause 0x1
	s_load_b64 s[8:9], s[2:3], 0xc
	s_load_b32 s1, s[2:3], 0x4
	s_waitcnt lgkmcnt(0)
	v_add_nc_u32_e32 v1, s8, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_mad_u64_u32 v[2:3], null, s9, s15, v[1:2]
	v_subrev_nc_u32_e32 v1, s1, v1
	s_sub_i32 s1, s9, s1
	v_ashrrev_i32_e32 v3, 31, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[2:3], 2, v[2:3]
	v_add_co_u32 v2, vcc_lo, s6, v2
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_4) | instid1(VALU_DEP_2)
	v_add_co_ci_u32_e32 v3, vcc_lo, s7, v3, vcc_lo
	v_cmp_eq_u32_e32 vcc_lo, s0, v0
	global_load_b32 v4, v[2:3], off
	v_mad_u64_u32 v[2:3], null, s1, s15, v[1:2]
	v_cndmask_b32_e64 v5, 0, 1.0, vcc_lo
	v_ashrrev_i32_e32 v3, 31, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[0:1], 2, v[2:3]
	v_add_co_u32 v0, vcc_lo, s4, v0
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v1, vcc_lo, s5, v1, vcc_lo
	s_waitcnt vmcnt(0)
	v_sub_f32_e32 v2, v4, v5
	global_store_b32 v[0:1], v2, off
	s_nop 0
	s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z19computeOutputDelta2PfPKfiPKi
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 32
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 6
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end1:
	.size	_Z19computeOutputDelta2PfPKfiPKi, .Lfunc_end1-_Z19computeOutputDelta2PfPKfiPKi
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 200
; NumSgprs: 18
; NumVgprs: 6
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 0
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 6
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z17computeLayerDeltaPfS_S_PiS0_S0_i ; -- Begin function _Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.globl	_Z17computeLayerDeltaPfS_S_PiS0_S0_i
	.p2align	8
	.type	_Z17computeLayerDeltaPfS_S_PiS0_S0_i,@function
_Z17computeLayerDeltaPfS_S_PiS0_S0_i:   ; @_Z17computeLayerDeltaPfS_S_PiS0_S0_i
; %bb.0:
	s_clause 0x1
	s_load_b32 s2, s[0:1], 0x30
	s_load_b256 s[4:11], s[0:1], 0x0
	v_mov_b32_e32 v6, 0
	s_waitcnt lgkmcnt(0)
	s_ashr_i32 s3, s2, 31
	s_load_b32 s16, s[10:11], 0x4
	s_lshl_b64 s[12:13], s[2:3], 2
	s_delay_alu instid0(SALU_CYCLE_1)
	s_add_u32 s2, s10, s12
	s_addc_u32 s3, s11, s13
	s_clause 0x1
	s_load_b32 s14, s[10:11], 0x10
	s_load_b64 s[10:11], s[2:3], 0x0
	s_load_b128 s[0:3], s[0:1], 0x20
	s_waitcnt lgkmcnt(0)
	s_sub_i32 s17, s14, s16
	v_add_nc_u32_e32 v1, s10, v0
	s_sub_i32 s10, s11, s16
	s_mul_i32 s17, s17, s15
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_4) | instid1(VALU_DEP_1)
	s_add_i32 s10, s10, s17
	s_add_u32 s0, s0, s12
	v_subrev_nc_u32_e32 v2, s16, v1
	s_addc_u32 s1, s1, s13
	s_load_b32 s16, s[0:1], 0x0
	v_add_nc_u32_e32 v2, s17, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_ashrrev_i32_e32 v3, 31, v2
	v_lshlrev_b64 v[2:3], 2, v[2:3]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_add_co_u32 v2, vcc_lo, s4, v2
	s_waitcnt lgkmcnt(0)
	s_add_i32 s0, s10, s16
	v_add_co_ci_u32_e32 v3, vcc_lo, s5, v3, vcc_lo
	s_add_i32 s0, s0, -1
	s_delay_alu instid0(SALU_CYCLE_1)
	s_cmp_ge_i32 s10, s0
	global_store_b32 v[2:3], v6, off
	s_cbranch_scc1 .LBB2_3
; %bb.1:                                ; %.lr.ph
	s_add_u32 s0, s2, s12
	s_addc_u32 s1, s3, s13
	s_ashr_i32 s11, s10, 31
	s_load_b32 s2, s[0:1], 0x0
	v_mov_b32_e32 v7, 0
	s_lshl_b64 s[0:1], s[10:11], 2
	v_mov_b32_e32 v6, 0
	s_add_u32 s0, s4, s0
	s_addc_u32 s1, s5, s1
	s_waitcnt lgkmcnt(0)
	v_add_nc_u32_e32 v4, s2, v0
	s_add_i32 s2, s16, -1
.LBB2_2:                                ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_ashrrev_i32_e32 v5, 31, v4
	v_lshlrev_b64 v[8:9], 2, v[4:5]
	v_add_nc_u32_e32 v4, s16, v4
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_co_u32 v8, vcc_lo, s6, v8
	v_add_co_ci_u32_e32 v9, vcc_lo, s7, v9, vcc_lo
	global_load_b32 v0, v7, s[0:1]
	global_load_b32 v5, v[8:9], off
	s_add_u32 s0, s0, 4
	s_addc_u32 s1, s1, 0
	s_add_i32 s2, s2, -1
	s_delay_alu instid0(SALU_CYCLE_1)
	s_cmp_lg_u32 s2, 0
	s_waitcnt vmcnt(0)
	v_fmac_f32_e32 v6, v5, v0
	global_store_b32 v[2:3], v6, off
	s_cbranch_scc1 .LBB2_2
.LBB2_3:                                ; %._crit_edge
	v_mad_u64_u32 v[4:5], null, s14, s15, v[1:2]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_ashrrev_i32_e32 v5, 31, v4
	v_lshlrev_b64 v[0:1], 2, v[4:5]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_co_u32 v0, vcc_lo, s8, v0
	v_add_co_ci_u32_e32 v1, vcc_lo, s9, v1, vcc_lo
	global_load_b32 v0, v[0:1], off
	s_waitcnt vmcnt(0)
	v_sub_f32_e32 v1, 1.0, v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mul_f32_e32 v0, v0, v1
	v_mul_f32_e32 v0, v6, v0
	global_store_b32 v[2:3], v0, off
	s_waitcnt_vscnt null, 0x0
	s_barrier
	buffer_gl0_inv
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z17computeLayerDeltaPfS_S_PiS0_S0_i
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 52
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 10
		.amdhsa_next_free_sgpr 18
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end2:
	.size	_Z17computeLayerDeltaPfS_S_PiS0_S0_i, .Lfunc_end2-_Z17computeLayerDeltaPfS_S_PiS0_S0_i
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 440
; NumSgprs: 20
; NumVgprs: 10
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 20
; NumVGPRsForWavesPerEU: 10
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i ; -- Begin function _Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.globl	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
	.p2align	8
	.type	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i,@function
_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i: ; @_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
; %bb.0:
	s_clause 0x1
	s_load_b32 s2, s[0:1], 0x30
	s_load_b256 s[4:11], s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	s_clause 0x1
	s_load_b32 s14, s[10:11], 0x4
	s_load_b32 s20, s[10:11], 0x10
	s_ashr_i32 s3, s2, 31
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_lshl_b64 s[12:13], s[2:3], 2
	s_add_u32 s2, s10, s12
	s_addc_u32 s3, s11, s13
	s_add_u32 s2, s2, -4
	s_addc_u32 s3, s3, -1
	s_load_b64 s[2:3], s[2:3], 0x0
	s_load_b128 s[16:19], s[0:1], 0x20
	s_waitcnt lgkmcnt(0)
	s_sub_i32 s21, s20, s14
	s_mul_i32 s20, s20, s15
	s_sub_i32 s3, s3, s14
	s_add_i32 s2, s2, s20
	s_add_u32 s0, s16, s12
	s_addc_u32 s1, s17, s13
	s_add_u32 s10, s0, -4
	s_addc_u32 s11, s1, -1
	s_load_b32 s14, s[10:11], 0x0
	s_load_b32 s16, s[18:19], 0xc
	s_add_u32 s10, s18, s12
	s_addc_u32 s11, s19, s13
	s_add_u32 s10, s10, -4
	s_addc_u32 s11, s11, -1
	s_mul_i32 s12, s21, s15
	s_load_b32 s10, s[10:11], 0x0
	s_waitcnt lgkmcnt(0)
	v_mul_lo_u32 v1, s14, v0
	s_mul_i32 s16, s16, s15
	s_add_i32 s11, s14, -1
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	s_add_i32 s13, s11, s2
	v_add3_u32 v1, s16, s10, v1
	s_add_i32 s10, s12, s3
	s_cmp_ge_i32 s2, s13
	s_cbranch_scc1 .LBB3_3
; %bb.1:                                ; %.lr.ph
	v_dual_mov_b32 v0, 0 :: v_dual_add_nc_u32 v3, s10, v0
	v_ashrrev_i32_e32 v2, 31, v1
	s_ashr_i32 s3, s2, 31
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	s_lshl_b64 s[2:3], s[2:3], 2
	v_ashrrev_i32_e32 v4, 31, v3
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_lshlrev_b64 v[5:6], 2, v[1:2]
	s_add_u32 s2, s8, s2
	s_addc_u32 s3, s9, s3
	v_lshlrev_b64 v[7:8], 2, v[3:4]
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_3)
	v_add_co_u32 v2, vcc_lo, s4, v5
	v_add_co_ci_u32_e32 v3, vcc_lo, s5, v6, vcc_lo
	s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_co_u32 v4, vcc_lo, s6, v7
	v_add_co_ci_u32_e32 v5, vcc_lo, s7, v8, vcc_lo
.LBB3_2:                                ; =>This Inner Loop Header: Depth=1
	global_load_b32 v6, v0, s[2:3]
	global_load_b32 v7, v[4:5], off
	global_load_b32 v8, v[2:3], off
	s_add_i32 s11, s11, -1
	s_add_u32 s2, s2, 4
	s_addc_u32 s3, s3, 0
	s_cmp_lg_u32 s11, 0
	s_waitcnt vmcnt(0)
	v_dual_fmac_f32 v8, v6, v7 :: v_dual_add_nc_u32 v1, 1, v1
	global_store_b32 v[2:3], v8, off
	v_add_co_u32 v2, vcc_lo, v2, 4
	v_add_co_ci_u32_e32 v3, vcc_lo, 0, v3, vcc_lo
	s_cbranch_scc1 .LBB3_2
.LBB3_3:                                ; %._crit_edge
	s_load_b32 s0, s[0:1], 0x0
	v_ashrrev_i32_e32 v2, 31, v1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_lshlrev_b64 v[0:1], 2, v[1:2]
	v_mov_b32_e32 v2, 0
	v_add_co_u32 v0, vcc_lo, s4, v0
	s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_2) | instid1(SALU_CYCLE_1)
	v_add_co_ci_u32_e32 v1, vcc_lo, s5, v1, vcc_lo
	s_waitcnt lgkmcnt(0)
	s_add_i32 s0, s10, s0
	s_add_i32 s0, s0, -1
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_ashr_i32 s1, s0, 31
	s_lshl_b64 s[0:1], s[0:1], 2
	s_delay_alu instid0(SALU_CYCLE_1)
	s_add_u32 s0, s6, s0
	s_addc_u32 s1, s7, s1
	global_load_b32 v3, v[0:1], off
	global_load_b32 v2, v2, s[0:1]
	s_waitcnt vmcnt(0)
	v_add_f32_e32 v2, v2, v3
	global_store_b32 v[0:1], v2, off
	s_waitcnt_vscnt null, 0x0
	s_barrier
	buffer_gl0_inv
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 52
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 9
		.amdhsa_next_free_sgpr 22
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end3:
	.size	_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i, .Lfunc_end3-_Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 512
; NumSgprs: 24
; NumVgprs: 9
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 24
; NumVGPRsForWavesPerEU: 9
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.protected	_Z13updateWeightsPfS_i  ; -- Begin function _Z13updateWeightsPfS_i
	.globl	_Z13updateWeightsPfS_i
	.p2align	8
	.type	_Z13updateWeightsPfS_i,@function
_Z13updateWeightsPfS_i:                 ; @_Z13updateWeightsPfS_i
; %bb.0:
	s_clause 0x1
	s_load_b32 s2, s[0:1], 0x24
	s_load_b32 s5, s[0:1], 0x10
	s_mov_b32 s4, exec_lo
	s_waitcnt lgkmcnt(0)
	s_and_b32 s2, s2, 0xffff
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mad_u64_u32 v[1:2], null, s15, s2, v[0:1]
	v_cmpx_gt_i32_e64 s5, v1
	s_cbranch_execz .LBB4_4
; %bb.1:                                ; %.preheader.preheader
	s_load_b128 s[0:3], s[0:1], 0x0
	v_mov_b32_e32 v0, 0
	v_mov_b32_e32 v4, 0
	v_mov_b32_e32 v2, v1
	s_movk_i32 s6, 0x3e8
.LBB4_2:                                ; %.preheader
                                        ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
	v_ashrrev_i32_e32 v3, 31, v2
	s_add_i32 s6, s6, -1
	s_cmp_lg_u32 s6, 0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)
	v_lshlrev_b64 v[5:6], 2, v[2:3]
	v_add_nc_u32_e32 v2, s5, v2
	s_waitcnt lgkmcnt(0)
	v_add_co_u32 v5, vcc_lo, s2, v5
	s_delay_alu instid0(VALU_DEP_3)
	v_add_co_ci_u32_e32 v6, vcc_lo, s3, v6, vcc_lo
	global_load_b32 v3, v[5:6], off
	global_store_b32 v[5:6], v4, off
	s_waitcnt vmcnt(0)
	v_add_f32_e32 v0, v0, v3
	s_cbranch_scc1 .LBB4_2
; %bb.3:
	v_ashrrev_i32_e32 v2, 31, v1
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_cvt_f64_f32_e32 v[3:4], v0
	v_lshlrev_b64 v[1:2], 2, v[1:2]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)
	v_add_co_u32 v1, vcc_lo, s0, v1
	v_add_co_ci_u32_e32 v2, vcc_lo, s1, v2, vcc_lo
	s_mov_b32 s0, 0xeb1c432d
	s_mov_b32 s1, 0xbf1a36e2
	global_load_b32 v5, v[1:2], off
	s_waitcnt vmcnt(0)
	v_cvt_f64_f32_e32 v[5:6], v5
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[3:4], v[3:4], s[0:1], v[5:6]
	v_cvt_f32_f64_e32 v0, v[3:4]
	global_store_b32 v[1:2], v0, off
.LBB4_4:                                ; %Flow
	s_or_b32 exec_lo, exec_lo, s4
	s_waitcnt_vscnt null, 0x0
	s_barrier
	buffer_gl0_inv
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z13updateWeightsPfS_i
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 280
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 7
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end4:
	.size	_Z13updateWeightsPfS_i, .Lfunc_end4-_Z13updateWeightsPfS_i
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 280
; NumSgprs: 18
; NumVgprs: 7
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 0
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 7
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgpu_metadata
---
amdhsa.kernels:
  - .args:
      - .offset:         0
        .size:           16
        .value_kind:     by_value
      - .offset:         16
        .size:           16
        .value_kind:     by_value
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         48
        .size:           8
        .value_kind:     global_buffer
      - .offset:         56
        .size:           4
        .value_kind:     by_value
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 60
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i
    .private_segment_fixed_size: 0
    .sgpr_count:     20
    .sgpr_spill_count: 0
    .symbol:         _Z14propagateLayer11KernelArrayIfES0_PiS1_S1_i.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     9
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .address_space:  global
        .offset:         0
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .offset:         16
        .size:           4
        .value_kind:     by_value
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 32
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z19computeOutputDelta2PfPKfiPKi
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z19computeOutputDelta2PfPKfiPKi.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     6
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .address_space:  global
        .offset:         0
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .offset:         48
        .size:           4
        .value_kind:     by_value
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 52
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z17computeLayerDeltaPfS_S_PiS0_S0_i
    .private_segment_fixed_size: 0
    .sgpr_count:     20
    .sgpr_spill_count: 0
    .symbol:         _Z17computeLayerDeltaPfS_S_PiS0_S0_i.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     10
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .address_space:  global
        .offset:         0
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         32
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         40
        .size:           8
        .value_kind:     global_buffer
      - .offset:         48
        .size:           4
        .value_kind:     by_value
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 52
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i
    .private_segment_fixed_size: 0
    .sgpr_count:     24
    .sgpr_spill_count: 0
    .symbol:         _Z24computePrevLayerDWeightsPfS_S_PiS0_S0_i.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     9
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:
      - .address_space:  global
        .offset:         0
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .offset:         16
        .size:           4
        .value_kind:     by_value
      - .offset:         24
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         28
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         32
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         36
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         38
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         40
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         42
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         44
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         46
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         64
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         72
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         80
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         88
        .size:           2
        .value_kind:     hidden_grid_dims
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 280
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z13updateWeightsPfS_i
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z13updateWeightsPfS_i.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     7
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
