LLVM API Documentation

Enumerations | Functions
llvm::RTLIB Namespace Reference

Enumerations

enum  Libcall {
  SHL_I16, SHL_I32, SHL_I64, SHL_I128,
  SRL_I16, SRL_I32, SRL_I64, SRL_I128,
  SRA_I16, SRA_I32, SRA_I64, SRA_I128,
  MUL_I8, MUL_I16, MUL_I32, MUL_I64,
  MUL_I128, MULO_I32, MULO_I64, MULO_I128,
  SDIV_I8, SDIV_I16, SDIV_I32, SDIV_I64,
  SDIV_I128, UDIV_I8, UDIV_I16, UDIV_I32,
  UDIV_I64, UDIV_I128, SREM_I8, SREM_I16,
  SREM_I32, SREM_I64, SREM_I128, UREM_I8,
  UREM_I16, UREM_I32, UREM_I64, UREM_I128,
  SDIVREM_I8, SDIVREM_I16, SDIVREM_I32, SDIVREM_I64,
  SDIVREM_I128, UDIVREM_I8, UDIVREM_I16, UDIVREM_I32,
  UDIVREM_I64, UDIVREM_I128, NEG_I32, NEG_I64,
  ADD_F32, ADD_F64, ADD_F80, ADD_F128,
  ADD_PPCF128, SUB_F32, SUB_F64, SUB_F80,
  SUB_F128, SUB_PPCF128, MUL_F32, MUL_F64,
  MUL_F80, MUL_F128, MUL_PPCF128, DIV_F32,
  DIV_F64, DIV_F80, DIV_F128, DIV_PPCF128,
  REM_F32, REM_F64, REM_F80, REM_F128,
  REM_PPCF128, FMA_F32, FMA_F64, FMA_F80,
  FMA_F128, FMA_PPCF128, POWI_F32, POWI_F64,
  POWI_F80, POWI_F128, POWI_PPCF128, SQRT_F32,
  SQRT_F64, SQRT_F80, SQRT_F128, SQRT_PPCF128,
  LOG_F32, LOG_F64, LOG_F80, LOG_F128,
  LOG_PPCF128, LOG2_F32, LOG2_F64, LOG2_F80,
  LOG2_F128, LOG2_PPCF128, LOG10_F32, LOG10_F64,
  LOG10_F80, LOG10_F128, LOG10_PPCF128, EXP_F32,
  EXP_F64, EXP_F80, EXP_F128, EXP_PPCF128,
  EXP2_F32, EXP2_F64, EXP2_F80, EXP2_F128,
  EXP2_PPCF128, SIN_F32, SIN_F64, SIN_F80,
  SIN_F128, SIN_PPCF128, COS_F32, COS_F64,
  COS_F80, COS_F128, COS_PPCF128, SINCOS_F32,
  SINCOS_F64, SINCOS_F80, SINCOS_F128, SINCOS_PPCF128,
  POW_F32, POW_F64, POW_F80, POW_F128,
  POW_PPCF128, CEIL_F32, CEIL_F64, CEIL_F80,
  CEIL_F128, CEIL_PPCF128, TRUNC_F32, TRUNC_F64,
  TRUNC_F80, TRUNC_F128, TRUNC_PPCF128, RINT_F32,
  RINT_F64, RINT_F80, RINT_F128, RINT_PPCF128,
  NEARBYINT_F32, NEARBYINT_F64, NEARBYINT_F80, NEARBYINT_F128,
  NEARBYINT_PPCF128, ROUND_F32, ROUND_F64, ROUND_F80,
  ROUND_F128, ROUND_PPCF128, FLOOR_F32, FLOOR_F64,
  FLOOR_F80, FLOOR_F128, FLOOR_PPCF128, COPYSIGN_F32,
  COPYSIGN_F64, COPYSIGN_F80, COPYSIGN_F128, COPYSIGN_PPCF128,
  FPEXT_F64_F128, FPEXT_F32_F128, FPEXT_F32_F64, FPEXT_F16_F32,
  FPROUND_F32_F16, FPROUND_F64_F16, FPROUND_F80_F16, FPROUND_F128_F16,
  FPROUND_PPCF128_F16, FPROUND_F64_F32, FPROUND_F80_F32, FPROUND_F128_F32,
  FPROUND_PPCF128_F32, FPROUND_F80_F64, FPROUND_F128_F64, FPROUND_PPCF128_F64,
  FPTOSINT_F32_I8, FPTOSINT_F32_I16, FPTOSINT_F32_I32, FPTOSINT_F32_I64,
  FPTOSINT_F32_I128, FPTOSINT_F64_I8, FPTOSINT_F64_I16, FPTOSINT_F64_I32,
  FPTOSINT_F64_I64, FPTOSINT_F64_I128, FPTOSINT_F80_I32, FPTOSINT_F80_I64,
  FPTOSINT_F80_I128, FPTOSINT_F128_I32, FPTOSINT_F128_I64, FPTOSINT_F128_I128,
  FPTOSINT_PPCF128_I32, FPTOSINT_PPCF128_I64, FPTOSINT_PPCF128_I128, FPTOUINT_F32_I8,
  FPTOUINT_F32_I16, FPTOUINT_F32_I32, FPTOUINT_F32_I64, FPTOUINT_F32_I128,
  FPTOUINT_F64_I8, FPTOUINT_F64_I16, FPTOUINT_F64_I32, FPTOUINT_F64_I64,
  FPTOUINT_F64_I128, FPTOUINT_F80_I32, FPTOUINT_F80_I64, FPTOUINT_F80_I128,
  FPTOUINT_F128_I32, FPTOUINT_F128_I64, FPTOUINT_F128_I128, FPTOUINT_PPCF128_I32,
  FPTOUINT_PPCF128_I64, FPTOUINT_PPCF128_I128, SINTTOFP_I32_F32, SINTTOFP_I32_F64,
  SINTTOFP_I32_F80, SINTTOFP_I32_F128, SINTTOFP_I32_PPCF128, SINTTOFP_I64_F32,
  SINTTOFP_I64_F64, SINTTOFP_I64_F80, SINTTOFP_I64_F128, SINTTOFP_I64_PPCF128,
  SINTTOFP_I128_F32, SINTTOFP_I128_F64, SINTTOFP_I128_F80, SINTTOFP_I128_F128,
  SINTTOFP_I128_PPCF128, UINTTOFP_I32_F32, UINTTOFP_I32_F64, UINTTOFP_I32_F80,
  UINTTOFP_I32_F128, UINTTOFP_I32_PPCF128, UINTTOFP_I64_F32, UINTTOFP_I64_F64,
  UINTTOFP_I64_F80, UINTTOFP_I64_F128, UINTTOFP_I64_PPCF128, UINTTOFP_I128_F32,
  UINTTOFP_I128_F64, UINTTOFP_I128_F80, UINTTOFP_I128_F128, UINTTOFP_I128_PPCF128,
  OEQ_F32, OEQ_F64, OEQ_F128, UNE_F32,
  UNE_F64, UNE_F128, OGE_F32, OGE_F64,
  OGE_F128, OLT_F32, OLT_F64, OLT_F128,
  OLE_F32, OLE_F64, OLE_F128, OGT_F32,
  OGT_F64, OGT_F128, UO_F32, UO_F64,
  UO_F128, O_F32, O_F64, O_F128,
  MEMCPY, MEMSET, MEMMOVE, UNWIND_RESUME,
  SYNC_VAL_COMPARE_AND_SWAP_1, SYNC_VAL_COMPARE_AND_SWAP_2, SYNC_VAL_COMPARE_AND_SWAP_4, SYNC_VAL_COMPARE_AND_SWAP_8,
  SYNC_VAL_COMPARE_AND_SWAP_16, SYNC_LOCK_TEST_AND_SET_1, SYNC_LOCK_TEST_AND_SET_2, SYNC_LOCK_TEST_AND_SET_4,
  SYNC_LOCK_TEST_AND_SET_8, SYNC_LOCK_TEST_AND_SET_16, SYNC_FETCH_AND_ADD_1, SYNC_FETCH_AND_ADD_2,
  SYNC_FETCH_AND_ADD_4, SYNC_FETCH_AND_ADD_8, SYNC_FETCH_AND_ADD_16, SYNC_FETCH_AND_SUB_1,
  SYNC_FETCH_AND_SUB_2, SYNC_FETCH_AND_SUB_4, SYNC_FETCH_AND_SUB_8, SYNC_FETCH_AND_SUB_16,
  SYNC_FETCH_AND_AND_1, SYNC_FETCH_AND_AND_2, SYNC_FETCH_AND_AND_4, SYNC_FETCH_AND_AND_8,
  SYNC_FETCH_AND_AND_16, SYNC_FETCH_AND_OR_1, SYNC_FETCH_AND_OR_2, SYNC_FETCH_AND_OR_4,
  SYNC_FETCH_AND_OR_8, SYNC_FETCH_AND_OR_16, SYNC_FETCH_AND_XOR_1, SYNC_FETCH_AND_XOR_2,
  SYNC_FETCH_AND_XOR_4, SYNC_FETCH_AND_XOR_8, SYNC_FETCH_AND_XOR_16, SYNC_FETCH_AND_NAND_1,
  SYNC_FETCH_AND_NAND_2, SYNC_FETCH_AND_NAND_4, SYNC_FETCH_AND_NAND_8, SYNC_FETCH_AND_NAND_16,
  SYNC_FETCH_AND_MAX_1, SYNC_FETCH_AND_MAX_2, SYNC_FETCH_AND_MAX_4, SYNC_FETCH_AND_MAX_8,
  SYNC_FETCH_AND_MAX_16, SYNC_FETCH_AND_UMAX_1, SYNC_FETCH_AND_UMAX_2, SYNC_FETCH_AND_UMAX_4,
  SYNC_FETCH_AND_UMAX_8, SYNC_FETCH_AND_UMAX_16, SYNC_FETCH_AND_MIN_1, SYNC_FETCH_AND_MIN_2,
  SYNC_FETCH_AND_MIN_4, SYNC_FETCH_AND_MIN_8, SYNC_FETCH_AND_MIN_16, SYNC_FETCH_AND_UMIN_1,
  SYNC_FETCH_AND_UMIN_2, SYNC_FETCH_AND_UMIN_4, SYNC_FETCH_AND_UMIN_8, SYNC_FETCH_AND_UMIN_16,
  STACKPROTECTOR_CHECK_FAIL, UNKNOWN_LIBCALL
}

Functions

Libcall getFPEXT (EVT OpVT, EVT RetVT)
Libcall getFPROUND (EVT OpVT, EVT RetVT)
Libcall getFPTOSINT (EVT OpVT, EVT RetVT)
Libcall getFPTOUINT (EVT OpVT, EVT RetVT)
Libcall getSINTTOFP (EVT OpVT, EVT RetVT)
Libcall getUINTTOFP (EVT OpVT, EVT RetVT)

Enumeration Type Documentation

RTLIB::Libcall enum - This enum defines all of the runtime library calls the backend can emit. The various long double types cannot be merged, because 80-bit library functions use "xf" and 128-bit use "tf".

When adding PPCF128 functions here, note that their names generally need to be overridden for Darwin with the xxx$LDBL128 form. See PPCISelLowering.cpp.

Enumerator:
SHL_I16 
SHL_I32 
SHL_I64 
SHL_I128 
SRL_I16 
SRL_I32 
SRL_I64 
SRL_I128 
SRA_I16 
SRA_I32 
SRA_I64 
SRA_I128 
MUL_I8 
MUL_I16 
MUL_I32 
MUL_I64 
MUL_I128 
MULO_I32 
MULO_I64 
MULO_I128 
SDIV_I8 
SDIV_I16 
SDIV_I32 
SDIV_I64 
SDIV_I128 
UDIV_I8 
UDIV_I16 
UDIV_I32 
UDIV_I64 
UDIV_I128 
SREM_I8 
SREM_I16 
SREM_I32 
SREM_I64 
SREM_I128 
UREM_I8 
UREM_I16 
UREM_I32 
UREM_I64 
UREM_I128 
SDIVREM_I8 
SDIVREM_I16 
SDIVREM_I32 
SDIVREM_I64 
SDIVREM_I128 
UDIVREM_I8 
UDIVREM_I16 
UDIVREM_I32 
UDIVREM_I64 
UDIVREM_I128 
NEG_I32 
NEG_I64 
ADD_F32 
ADD_F64 
ADD_F80 
ADD_F128 
ADD_PPCF128 
SUB_F32 
SUB_F64 
SUB_F80 
SUB_F128 
SUB_PPCF128 
MUL_F32 
MUL_F64 
MUL_F80 
MUL_F128 
MUL_PPCF128 
DIV_F32 
DIV_F64 
DIV_F80 
DIV_F128 
DIV_PPCF128 
REM_F32 
REM_F64 
REM_F80 
REM_F128 
REM_PPCF128 
FMA_F32 
FMA_F64 
FMA_F80 
FMA_F128 
FMA_PPCF128 
POWI_F32 
POWI_F64 
POWI_F80 
POWI_F128 
POWI_PPCF128 
SQRT_F32 
SQRT_F64 
SQRT_F80 
SQRT_F128 
SQRT_PPCF128 
LOG_F32 
LOG_F64 
LOG_F80 
LOG_F128 
LOG_PPCF128 
LOG2_F32 
LOG2_F64 
LOG2_F80 
LOG2_F128 
LOG2_PPCF128 
LOG10_F32 
LOG10_F64 
LOG10_F80 
LOG10_F128 
LOG10_PPCF128 
EXP_F32 
EXP_F64 
EXP_F80 
EXP_F128 
EXP_PPCF128 
EXP2_F32 
EXP2_F64 
EXP2_F80 
EXP2_F128 
EXP2_PPCF128 
SIN_F32 
SIN_F64 
SIN_F80 
SIN_F128 
SIN_PPCF128 
COS_F32 
COS_F64 
COS_F80 
COS_F128 
COS_PPCF128 
SINCOS_F32 
SINCOS_F64 
SINCOS_F80 
SINCOS_F128 
SINCOS_PPCF128 
POW_F32 
POW_F64 
POW_F80 
POW_F128 
POW_PPCF128 
CEIL_F32 
CEIL_F64 
CEIL_F80 
CEIL_F128 
CEIL_PPCF128 
TRUNC_F32 
TRUNC_F64 
TRUNC_F80 
TRUNC_F128 
TRUNC_PPCF128 
RINT_F32 
RINT_F64 
RINT_F80 
RINT_F128 
RINT_PPCF128 
NEARBYINT_F32 
NEARBYINT_F64 
NEARBYINT_F80 
NEARBYINT_F128 
NEARBYINT_PPCF128 
ROUND_F32 
ROUND_F64 
ROUND_F80 
ROUND_F128 
ROUND_PPCF128 
FLOOR_F32 
FLOOR_F64 
FLOOR_F80 
FLOOR_F128 
FLOOR_PPCF128 
COPYSIGN_F32 
COPYSIGN_F64 
COPYSIGN_F80 
COPYSIGN_F128 
COPYSIGN_PPCF128 
FPEXT_F64_F128 
FPEXT_F32_F128 
FPEXT_F32_F64 
FPEXT_F16_F32 
FPROUND_F32_F16 
FPROUND_F64_F16 
FPROUND_F80_F16 
FPROUND_F128_F16 
FPROUND_PPCF128_F16 
FPROUND_F64_F32 
FPROUND_F80_F32 
FPROUND_F128_F32 
FPROUND_PPCF128_F32 
FPROUND_F80_F64 
FPROUND_F128_F64 
FPROUND_PPCF128_F64 
FPTOSINT_F32_I8 
FPTOSINT_F32_I16 
FPTOSINT_F32_I32 
FPTOSINT_F32_I64 
FPTOSINT_F32_I128 
FPTOSINT_F64_I8 
FPTOSINT_F64_I16 
FPTOSINT_F64_I32 
FPTOSINT_F64_I64 
FPTOSINT_F64_I128 
FPTOSINT_F80_I32 
FPTOSINT_F80_I64 
FPTOSINT_F80_I128 
FPTOSINT_F128_I32 
FPTOSINT_F128_I64 
FPTOSINT_F128_I128 
FPTOSINT_PPCF128_I32 
FPTOSINT_PPCF128_I64 
FPTOSINT_PPCF128_I128 
FPTOUINT_F32_I8 
FPTOUINT_F32_I16 
FPTOUINT_F32_I32 
FPTOUINT_F32_I64 
FPTOUINT_F32_I128 
FPTOUINT_F64_I8 
FPTOUINT_F64_I16 
FPTOUINT_F64_I32 
FPTOUINT_F64_I64 
FPTOUINT_F64_I128 
FPTOUINT_F80_I32 
FPTOUINT_F80_I64 
FPTOUINT_F80_I128 
FPTOUINT_F128_I32 
FPTOUINT_F128_I64 
FPTOUINT_F128_I128 
FPTOUINT_PPCF128_I32 
FPTOUINT_PPCF128_I64 
FPTOUINT_PPCF128_I128 
SINTTOFP_I32_F32 
SINTTOFP_I32_F64 
SINTTOFP_I32_F80 
SINTTOFP_I32_F128 
SINTTOFP_I32_PPCF128 
SINTTOFP_I64_F32 
SINTTOFP_I64_F64 
SINTTOFP_I64_F80 
SINTTOFP_I64_F128 
SINTTOFP_I64_PPCF128 
SINTTOFP_I128_F32 
SINTTOFP_I128_F64 
SINTTOFP_I128_F80 
SINTTOFP_I128_F128 
SINTTOFP_I128_PPCF128 
UINTTOFP_I32_F32 
UINTTOFP_I32_F64 
UINTTOFP_I32_F80 
UINTTOFP_I32_F128 
UINTTOFP_I32_PPCF128 
UINTTOFP_I64_F32 
UINTTOFP_I64_F64 
UINTTOFP_I64_F80 
UINTTOFP_I64_F128 
UINTTOFP_I64_PPCF128 
UINTTOFP_I128_F32 
UINTTOFP_I128_F64 
UINTTOFP_I128_F80 
UINTTOFP_I128_F128 
UINTTOFP_I128_PPCF128 
OEQ_F32 
OEQ_F64 
OEQ_F128 
UNE_F32 
UNE_F64 
UNE_F128 
OGE_F32 
OGE_F64 
OGE_F128 
OLT_F32 
OLT_F64 
OLT_F128 
OLE_F32 
OLE_F64 
OLE_F128 
OGT_F32 
OGT_F64 
OGT_F128 
UO_F32 
UO_F64 
UO_F128 
O_F32 
O_F64 
O_F128 
MEMCPY 
MEMSET 
MEMMOVE 
UNWIND_RESUME 
SYNC_VAL_COMPARE_AND_SWAP_1 
SYNC_VAL_COMPARE_AND_SWAP_2 
SYNC_VAL_COMPARE_AND_SWAP_4 
SYNC_VAL_COMPARE_AND_SWAP_8 
SYNC_VAL_COMPARE_AND_SWAP_16 
SYNC_LOCK_TEST_AND_SET_1 
SYNC_LOCK_TEST_AND_SET_2 
SYNC_LOCK_TEST_AND_SET_4 
SYNC_LOCK_TEST_AND_SET_8 
SYNC_LOCK_TEST_AND_SET_16 
SYNC_FETCH_AND_ADD_1 
SYNC_FETCH_AND_ADD_2 
SYNC_FETCH_AND_ADD_4 
SYNC_FETCH_AND_ADD_8 
SYNC_FETCH_AND_ADD_16 
SYNC_FETCH_AND_SUB_1 
SYNC_FETCH_AND_SUB_2 
SYNC_FETCH_AND_SUB_4 
SYNC_FETCH_AND_SUB_8 
SYNC_FETCH_AND_SUB_16 
SYNC_FETCH_AND_AND_1 
SYNC_FETCH_AND_AND_2 
SYNC_FETCH_AND_AND_4 
SYNC_FETCH_AND_AND_8 
SYNC_FETCH_AND_AND_16 
SYNC_FETCH_AND_OR_1 
SYNC_FETCH_AND_OR_2 
SYNC_FETCH_AND_OR_4 
SYNC_FETCH_AND_OR_8 
SYNC_FETCH_AND_OR_16 
SYNC_FETCH_AND_XOR_1 
SYNC_FETCH_AND_XOR_2 
SYNC_FETCH_AND_XOR_4 
SYNC_FETCH_AND_XOR_8 
SYNC_FETCH_AND_XOR_16 
SYNC_FETCH_AND_NAND_1 
SYNC_FETCH_AND_NAND_2 
SYNC_FETCH_AND_NAND_4 
SYNC_FETCH_AND_NAND_8 
SYNC_FETCH_AND_NAND_16 
SYNC_FETCH_AND_MAX_1 
SYNC_FETCH_AND_MAX_2 
SYNC_FETCH_AND_MAX_4 
SYNC_FETCH_AND_MAX_8 
SYNC_FETCH_AND_MAX_16 
SYNC_FETCH_AND_UMAX_1 
SYNC_FETCH_AND_UMAX_2 
SYNC_FETCH_AND_UMAX_4 
SYNC_FETCH_AND_UMAX_8 
SYNC_FETCH_AND_UMAX_16 
SYNC_FETCH_AND_MIN_1 
SYNC_FETCH_AND_MIN_2 
SYNC_FETCH_AND_MIN_4 
SYNC_FETCH_AND_MIN_8 
SYNC_FETCH_AND_MIN_16 
SYNC_FETCH_AND_UMIN_1 
SYNC_FETCH_AND_UMIN_2 
SYNC_FETCH_AND_UMIN_4 
SYNC_FETCH_AND_UMIN_8 
SYNC_FETCH_AND_UMIN_16 
STACKPROTECTOR_CHECK_FAIL 
UNKNOWN_LIBCALL 

Definition at line 30 of file RuntimeLibcalls.h.


Function Documentation

getFPEXT - Return the FPEXT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 425 of file TargetLoweringBase.cpp.

References llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, FPEXT_F16_F32, FPEXT_F32_F128, FPEXT_F32_F64, FPEXT_F64_F128, and UNKNOWN_LIBCALL.