__shfl() intrinsic for doubles

Hi,

In the documentation for CUDA 7.0 I read ‘Types other than int or float must first be cast in order to use the __shfl() intrinsics.’

However, in the file /usr/local/cuda-7.0/targets/x86_64-linux/include/sm_30_intrinsics.hpp, I find this code:

SM_30_INTRINSICS_DECL double __shfl_down(double var, unsigned int delta, int width) {
float lo, hi;
asm volatile(“mov.b64 {%0,%1}, %2;” : “=f”(lo), “=f”(hi) : “d”(var));
hi = __shfl_down(hi, delta, width);
lo = __shfl_down(lo, delta, width);
asm volatile(“mov.b64 %0, {%1,%2};” : “=d”(var) : “f”(lo), “f”(hi));
return var;
}

Am I able to use that function safely although it is not mentioned in the documentation?

Thank you,

R

I assume this is essentially a cross-posting from here:

http://stackoverflow.com/questions/35460114/cuda-shuffle-warp-reduce-not-working-as-inline-device-function

Note the disclaimer in the comments on the answer posted there.

Yes, thanks for the answer.