[Libclc-dev] Adding fabs to libclc
Gabriel RodrÃguez
grodriguez at udc.es
Thu Mar 1 02:43:32 PST 2012
Dear all,
I have been trying to add support for fabs() to libclc and later to the LLVM-PTX backend.
This looked simple enough, but I am having trouble starting with the libclc part. I have added
the following files:
generic/include/clc/math/fabs.h ---------------------------
#undef fabs
#define fabs __clc_fabs
#define FUNCTION __clc_fabs
#define INTRINSIC "llvm.fabs"
#include <clc/math/unary_intrin.inc>
----------------------------------------------------------
generic/include/clc/math/native_fabs.h--------------------
#define native_fabs abs
----------------------------------------------------------
And I have added those files to generic/include/clc/clc.h. I expected this to generate
@llvm.fabs.[f32/f64] functions as happens for sqrt, for instance. However, I find that the
definition is already different in LLVM IR:
declare ptx_device double @llvm.fabs.f64(double)
declare double @llvm.sqrt.f64(double) nounwind readonly
Since I am unable to get LLVM to lower calls to llvm.fabs as "abs" instructions rather than
"call.uni", I suspect the declaration differences to be (at least in part) the culprit. Could someone
point me out in the right direction?
Thanks in advance,
Gabriel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20120301/9ca052bb/attachment-0002.html>
More information about the Libclc-dev
mailing list