strange error in BuildProgram


I am getting very strange error when trying to build my OCL program (the hex numbers are different every run)

Error: Code selection failed to select: 0x1305d90: v4f32 = bit_convert 0x12963d0

I am using linux, with driver 256 building the program fine, but driver 258 dev beta (which I need for OpenCL 1.1 - using a lot of float3’s) makes this error

what does it mean? how am I to fix this?


EDIT: I have found the code that caused this:

struct triangle_s


 float3 spaceCoords[3];

 float3 normalCoords[3];

 float2 textureCoords[3];

 size_t objectIndex;



float intersectRayTri(__private struct ray_s ray, __private struct triangle_s triangle,__private float3 *baryCoords)


 __private float3 e1=triangle.spaceCoords[1]-triangle.spaceCoords[0];

 return length(e1);

strangely, changing the function parameters to struct pointers instead of structs solved the issue.