r600: Use __clc_ldexp on asics that don't implement the intruction
authorJan Vesely <jan.vesely@rutgers.edu>
Wed, 6 May 2015 21:59:30 +0000 (21:59 +0000)
committerJan Vesely <jan.vesely@rutgers.edu>
Wed, 6 May 2015 21:59:30 +0000 (21:59 +0000)
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 236649

libclc/r600/lib/math/ldexp.cl

index 0461a53..80439ce 100644 (file)
 
 #include "../../../generic/lib/clcmacro.h"
 
+#ifdef __HAS_LDEXPF__
+#define BUILTINF __builtin_amdgpu_ldexpf
+#else
+#include "math/clc_ldexp.h"
+#define BUILTINF __clc_ldexp
+#endif
+
 // This defines all the ldexp(floatN, intN) variants.
-_CLC_DEFINE_BINARY_BUILTIN(float, ldexp, __builtin_amdgpu_ldexpf, float, int);
+_CLC_DEFINE_BINARY_BUILTIN(float, ldexp, BUILTINF, float, int);
 
 #ifdef cl_khr_fp64
   #pragma OPENCL EXTENSION cl_khr_fp64 : enable
@@ -36,3 +43,5 @@ _CLC_DEFINE_BINARY_BUILTIN(float, ldexp, __builtin_amdgpu_ldexpf, float, int);
 // This defines all the ldexp(GENTYPE, int);
 #define __CLC_BODY <../../../generic/lib/math/ldexp.inc>
 #include <clc/math/gentype.inc>
+
+#undef BUILTINF