13.2.2 Internal Functions Corresponding to Builtins

These group of internal functions extend the corresponding BUILT_IN_X builtins to a wider set of types.

‘IFN_ACOS’

The IFN_ACOS internal function directly maps to the acos instruction pattern for floating-point modes.

‘IFN_ACOSH’

The IFN_ACOSH internal function directly maps to the acosh instruction pattern for floating-point modes.

‘IFN_ASIN’

The IFN_ASIN internal function directly maps to the asin instruction pattern for floating-point modes.

‘IFN_ASINH’

The IFN_ASINH internal function directly maps to the asinh instruction pattern for floating-point modes.

‘IFN_ATAN’

The IFN_ATAN internal function directly maps to the atan instruction pattern for floating-point modes.

‘IFN_ATANH’

The IFN_ATANH internal function directly maps to the atanh instruction pattern for floating-point modes.

‘IFN_COS’

The IFN_COS internal function directly maps to the cos instruction pattern for floating-point modes.

‘IFN_COSH’

The IFN_COSH internal function directly maps to the cosh instruction pattern for floating-point modes.

‘IFN_EXP’

The IFN_EXP internal function directly maps to the exp instruction pattern for floating-point modes.

‘IFN_EXP10’

The IFN_EXP10 internal function directly maps to the exp10 instruction pattern for floating-point modes.

‘IFN_EXP2’

The IFN_EXP2 internal function directly maps to the exp2 instruction pattern for floating-point modes.

‘IFN_EXPM1’

The IFN_EXPM1 internal function directly maps to the expm1 instruction pattern for floating-point modes.

‘IFN_LOG’

The IFN_LOG internal function directly maps to the log instruction pattern for floating-point modes.

‘IFN_LOG10’

The IFN_LOG10 internal function directly maps to the log10 instruction pattern for floating-point modes.

‘IFN_LOG1P’

The IFN_LOG1P internal function directly maps to the log1p instruction pattern for floating-point modes.

‘IFN_LOG2’

The IFN_LOG2 internal function directly maps to the log2 instruction pattern for floating-point modes.

‘IFN_LOGB’

The IFN_LOGB internal function directly maps to the logb instruction pattern for floating-point modes.

‘IFN_SIGNBIT’

The IFN_SIGNBIT internal function directly maps to the signbit instruction pattern for floating-point modes.

‘IFN_SIGNIFICAND’

The IFN_SIGNIFICAND internal function directly maps to the significand instruction pattern for floating-point modes.

‘IFN_SIN’

The IFN_SIN internal function directly maps to the sin instruction pattern for floating-point modes.

‘IFN_SINH’

The IFN_SINH internal function directly maps to the sinh instruction pattern for floating-point modes.

‘IFN_SQRT’

The IFN_SQRT internal function directly maps to the sqrt instruction pattern for floating-point modes including those for _Floatn

‘IFN_TAN’

The IFN_TAN internal function directly maps to the tan instruction pattern for floating-point modes.

‘IFN_TANH’

The IFN_TANH internal function directly maps to the tanh instruction pattern for floating-point modes.

‘IFN_ICEIL’

The IFN_ICEIL internal function directly maps to the lceil instruction pattern for floating-point modes.

‘IFN_IFLOOR’

The IFN_IFLOOR internal function directly maps to the lfloor instruction pattern for floating-point modes.

‘IFN_IRINT’

The IFN_IRINT internal function directly maps to the lrint instruction pattern for floating-point modes.

‘IFN_IROUND’

The IFN_IROUND internal function directly maps to the lround instruction pattern for floating-point modes.

‘IFN_LCEIL’

The IFN_LCEIL internal function directly maps to the lceil instruction pattern for floating-point modes.

‘IFN_LFLOOR’

The IFN_LFLOOR internal function directly maps to the lfloor instruction pattern for floating-point modes.

‘IFN_LRINT’

The IFN_LRINT internal function directly maps to the lrint instruction pattern for floating-point modes including those for _Floatn

‘IFN_LROUND’

The IFN_LROUND internal function directly maps to the lround instruction pattern for floating-point modes including those for _Floatn

‘IFN_LLCEIL’

The IFN_LLCEIL internal function directly maps to the lceil instruction pattern for floating-point modes.

‘IFN_LLFLOOR’

The IFN_LLFLOOR internal function directly maps to the lfloor instruction pattern for floating-point modes.

‘IFN_LLRINT’

The IFN_LLRINT internal function directly maps to the lrint instruction pattern for floating-point modes including those for _Floatn

‘IFN_LLROUND’

The IFN_LLROUND internal function directly maps to the lround instruction pattern for floating-point modes including those for _Floatn

‘IFN_CEIL’

The IFN_CEIL internal function directly maps to the ceil instruction pattern for floating-point modes including those for _Floatn

‘IFN_FLOOR’

The IFN_FLOOR internal function directly maps to the floor instruction pattern for floating-point modes including those for _Floatn

‘IFN_NEARBYINT’

The IFN_NEARBYINT internal function directly maps to the nearbyint instruction pattern for floating-point modes including those for _Floatn

‘IFN_RINT’

The IFN_RINT internal function directly maps to the rint instruction pattern for floating-point modes including those for _Floatn

‘IFN_ROUND’

The IFN_ROUND internal function directly maps to the round instruction pattern for floating-point modes including those for _Floatn

‘IFN_ROUNDEVEN’

The IFN_ROUNDEVEN internal function directly maps to the roundeven instruction pattern for floating-point modes including those for _Floatn

‘IFN_TRUNC’

The IFN_TRUNC internal function directly maps to the btrunc instruction pattern for floating-point modes including those for _Floatn

‘IFN_ATAN2’

The IFN_ATAN2 internal function directly maps to the atan2 instruction pattern for floating-point modes.

‘IFN_COPYSIGN’

The IFN_COPYSIGN internal function directly maps to the copysign instruction pattern for floating-point modes including those for _Floatn

‘IFN_FMOD’

The IFN_FMOD internal function directly maps to the fmod instruction pattern for floating-point modes.

‘IFN_HYPOT’

The IFN_HYPOT internal function directly maps to the hypot instruction pattern for floating-point modes.

‘IFN_POW’

The IFN_POW internal function directly maps to the pow instruction pattern for floating-point modes.

‘IFN_REMAINDER’

The IFN_REMAINDER internal function directly maps to the remainder instruction pattern for floating-point modes.

‘IFN_SCALB’

The IFN_SCALB internal function directly maps to the scalb instruction pattern for floating-point modes.

‘IFN_FMIN’

The IFN_FMIN internal function directly maps to the fmin instruction pattern for floating-point modes including those for _Floatn

‘IFN_FMAX’

The IFN_FMAX internal function directly maps to the fmax instruction pattern for floating-point modes including those for _Floatn

‘IFN_LDEXP’

The IFN_LDEXP internal function directly maps to the ldexp instruction pattern for floating-point modes including those for _Floatn

‘IFN_FMA’

The IFN_FMA internal function directly maps to the fma instruction pattern for floating-point modes including those for _Floatn

‘IFN_CLRSB’

The IFN_CLRSB internal function directly maps to the clrsb instruction pattern for integer and integer vector modes.

‘IFN_CLZ’

The IFN_CLZ internal function directly maps to the clz instruction pattern for integer and integer vector modes. The optional second argument is an int constant that gives the result for zero. Note, this is always a scalar value even for vector modes where it represents the scalar value of a lane. For a scalar call it can be any value. If the instruction gives another value for zero, the expansion compares the first argument with zero. For a vector call it must be the value for which CLZ_DEFINED_VALUE_AT_ZERO returns 2 for the vector mode. Without the second argument the result for zero is undefined.

‘IFN_CTZ’

The IFN_CTZ internal function directly maps to the ctz instruction pattern for integer and integer vector modes. The optional second argument is an int constant that gives the result for zero. Note, this is always a scalar value even for vector modes where it represents the scalar value of a lane. For a scalar call it can be any value. If the instruction gives another value for zero, the expansion compares the first argument with zero. For a vector call it must be the value for which CTZ_DEFINED_VALUE_AT_ZERO returns 2 for the vector mode. Without the second argument the result for zero is undefined.

‘IFN_FFS’

The IFN_FFS internal function directly maps to the ffs instruction pattern for integer and integer vector modes.

‘IFN_PARITY’

The IFN_PARITY internal function directly maps to the parity instruction pattern for integer and integer vector modes.

‘IFN_POPCOUNT’

The IFN_POPCOUNT internal function directly maps to the popcount instruction pattern for integer and integer vector modes.