#include<x86intrin.h>
#include<stdlib.h>
#include<stdio.h>
#include<stdint.h>

#define ITER 1000

int intcmp(const void *i1, const void *i2){

	return *(int *)i1 - *(int *)i2;
}

int main( int argc, char *argv[]){
	int i,j;
	uint64_t start, finish, avg;
	int *inputs;

        int nIterations = ITER;

	if(argc<2){
		printf("usage: %s nInputs\n", argv[0]);
		return -1;
	}
	int nInputs = atoi(argv[1]);

        inputs = (int *)malloc(nInputs*sizeof(int));	

	for(i=0; i < nInputs; i++)
		inputs[i] = rand()%1000;


	
/*	for(i=0; i<nInputs; i++)
		printf("%d ", inputs[i]);
	printf("\n"); */

        /* for(i=0; i<100; i++){*/
	start = __rdtsc();
	for(i=0; i<100; i++){
		for(j=0; j<nInputs; j++)
			inputs[j] = rand()%1000;
	      qsort(inputs, nInputs, sizeof(int), intcmp);
	}
	finish = __rdtsc();

	avg = (finish - start)/100;

	/* for(i=0; i<nInputs; i++)
		printf("%d ", inputs[i]);
	printf("\n"); */

	printf("%ld \n", avg);
}



