reg values

Hi

Why compiler using 21 gegister values in this code:

__global__ void BlurMultiKernel

                          ( 

        unsigned char* input_data, 

        unsigned char* output_data

        ) 

{

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

	int y = blockIdx.y*blockDim.y + threadIdx.y;

	for( int k = 0; k < define_MasSize; k++ )

  {

  int res = 0;

  float count = 0.0;

  float force = 0.0;  

 for(int j1 = (y) - define_blur_len; j1 <= (y) + define_blur_len; ++j1 )

  	{

  	if( j1 >=0 && j1 < define__height )

    {

    for( int i1 = (x) - define_blur_len; i1 <= (x) + define_blur_len; ++i1 )

    	{

    	if( i1 >= 0 && i1 < define__width )

      {

      // 0 - данная точка, 1.0 - на расстоянии blur_len

      force = 1 - pow ((sqrt (float((j1-(y))*(j1-(y)) + (i1-(x))*(i1-(x))))/ (float)define_blur_len)/2, define_blur_force);

      res += int(*(((input_data+k*define__width*define__height) + j1*define__width) + i1)* force);

      count += force;

      } // end if

    	} // end for i1

    } // end if

  	} // end for j1

  

  *((output_data+k*define__width*define__height) + (y)*define__width + (x)) = count ? int(res/count) : *( (input_data+k*define__width*define__height) + (y)*define__width + (x));

  } // end for k

}