Sigh, turns out there is a bug in the AMD OpenCL compiler that doesn't recognise the generic 64bit floating point extension convention