[llvm-dev] mapping calls to exp() to expf opcode

Phil Tomson via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 31 15:40:01 PDT 2016


We've got both an sqrtf and an expf opcode in our architecture. If I call
sqrt() on the C side, I see the sqrtf opcode show up in the generated
assembly. However, if I call exp() on the C side, I don't see the expf
opcode show up on the generated assembly, I see a call to an exp function
from libm.

Here's what we've got in our TargetInstrinfo.td file for both of these
instructions:
def SQRTF64 : Other2ROp< 0b0001101, "sqrtF", fsqrt, OpInfo_F64, II_ELEMF3 >;
def SQRTF32 : Other2ROp< 0b0001101, "sqrtF", fsqrt, OpInfo_F32, II_ELEMF1 >;

def EXPF64 :   Other2ROp< 0b0001010, "expF", fexp2, OpInfo_F64, II_ELEMF3 >;
def EXPF32 :   Other2ROp< 0b0001010, "expF", fexp2, OpInfo_F32, II_ELEMF1 >;


..essentially the same kind of definition for both SQRTF and EXPF, but for
the latter I don't see expf opcodes being generated.

Any idea what might be missing for exp?

Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160831/65bd0eac/attachment.html>


More information about the llvm-dev mailing list