[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