OpenCL Error:E010:Irreducible ControlFlow Detected

My OpenCL code work on CPU Core i5-750, work on GPU GeForce 9800GT, but don’t work on GPU Radeon 280X!


	status=clBuildProgram(program, 1,devices,NULL,NULL,NULL);

clBuildProgram return status with error
Error:E010:Irreducible ControlFlow Detected

How I can disable Irreducible ControlFlow Detection?

Example code which work on CPU, work on Geforce 9800GT, but crush on 280x.


void qwe(){
	int CUR = 2;
	int i=0;
	function_recur:;	
	if(i>=300)
		goto continuefor;
	i++;
	if (CUR == 0)
		goto endCUR;
	CUR--;
	goto function_recur;	
	returning:;
	CUR++;
	endCUR:;
	continuefor:;
	if (CUR <2)
		goto returning;
}

PS

when I start code with option


	const char options[]="-cl-strict-aliasing";
	status=clBuildProgram(program, 1,devices,options,NULL,NULL);

“qwe()” work correct
but my program greatly big and “-cl-strict-aliasing” don’t help.