From f52bfda061d208468d1a450c344b49af0011731d Mon Sep 17 00:00:00 2001 From: carlushuang Date: Wed, 12 Sep 2018 13:24:56 +0800 Subject: [PATCH] fix __longlong_as_double() problem, return the double value previous version return a long long valus *as* double, hence we may get the wrong result. this also affect atomicAdd(double * ...), which use long long pointer to mimic double pointer. Signed-off-by: carlushuang [ROCm/clr commit: 15281b7b842266b55b6f457415b3552c9b862de1] --- projects/clr/hipamd/include/hip/hcc_detail/device_functions.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/clr/hipamd/include/hip/hcc_detail/device_functions.h b/projects/clr/hipamd/include/hip/hcc_detail/device_functions.h index adf631d782..508a301344 100644 --- a/projects/clr/hipamd/include/hip/hcc_detail/device_functions.h +++ b/projects/clr/hipamd/include/hip/hcc_detail/device_functions.h @@ -593,7 +593,7 @@ __device__ static inline double __longlong_as_double(long long int x) { double tmp; __builtin_memcpy(&tmp, &x, sizeof(tmp)); - return x; + return tmp; } __device__ static inline double __uint2double_rn(int x) { return (double)x; }