[llvm-dev] intrinsics

Friedman, Eli via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 11 11:16:13 PDT 2017


On 7/11/2017 10:26 AM, Anastasiya Ruzhanskaya via llvm-dev wrote:
> Hello,
> I would like to find out a detail about intrinsics functions. When I 
> use memset form a standard library it is always converted to llvm's 
> memset, however the usage of some others as sqrt, pow, sin do not lead 
> to the same. How can I get the same effect?

For math functions in particular, the intrinsics don't really match the 
semantics of the actual C library functions, so clang doesn't normally 
convert them.  (If you use -ffast-math, clang will convert them 
anyway.)  This is an area which could probably be improved, but it's 
complicated because we depend on the host's libm.

> Why there is no overall LLVM pass like IntrinsicLowerinPass.cpp (it 
> has only some specific ones)? There is only a function that does this.

Some intrinsics expose functionality which can't be expressed using IR 
instructions.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project



More information about the llvm-dev mailing list