summaryrefslogtreecommitdiff
path: root/amdgpu/lib/math/sqrt.cl
diff options
context:
space:
mode:
Diffstat (limited to 'amdgpu/lib/math/sqrt.cl')
-rw-r--r--amdgpu/lib/math/sqrt.cl7
1 files changed, 6 insertions, 1 deletions
diff --git a/amdgpu/lib/math/sqrt.cl b/amdgpu/lib/math/sqrt.cl
index 3e5b17c..395a3f9 100644
--- a/amdgpu/lib/math/sqrt.cl
+++ b/amdgpu/lib/math/sqrt.cl
@@ -30,6 +30,11 @@ _CLC_DEFINE_UNARY_BUILTIN(float, sqrt, __clc_sqrt, float)
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+#ifdef __AMDGCN__
+ #define __clc_builtin_rsq __builtin_amdgcn_rsq
+#else
+ #define __clc_builtin_rsq __builtin_r600_recipsqrt_ieee
+#endif
_CLC_OVERLOAD _CLC_DEF double sqrt(double x) {
@@ -38,7 +43,7 @@ _CLC_OVERLOAD _CLC_DEF double sqrt(double x) {
unsigned exp1 = vcc ? 0xffffff80 : 0;
double v01 = ldexp(x, exp0);
- double v23 = __builtin_amdgpu_rsq(v01);
+ double v23 = __clc_builtin_rsq(v01);
double v45 = v01 * v23;
v23 = v23 * 0.5;