On 3/30/26 12:11, Richard Biener wrote:
The following adds documentation for internal function details.  I
have populated the internal function tables via macro expansion
of the internal-fn.def file, so it's quite boiler-plate and asks
for manual amending in more complicated places.

Without such a place it's quite difficult to tell people to document
things when they add new internal functions.  We might want to split
the table into two, separating direct internal functions from others.

I have added some overall sentences related to internal functions
and builtins but left the API section as a FIXME.

I'm not sure we need a separate index - I have used IFN_ prefixes
which separates them nicely.  Removing those would warrant a
separate index.

I've placed the contents after the GENERIC/GIMPLE chapters.

I have looked over the generated pdf and it looks reasonable.

Is this OK to push in this state?  Or is "bad" documentation
worse than none?

I was not able to get the patch to build as-is, using texinfo 7.2. There were a missing menu entry, two @nodes with the same name, some bad markup on a @table, and a stray preprocessor line directive that gave a misleading location for the last of those errors. I've attached a patch that goes on top of yours to fix those things, plus some punctuation and capitalization problems, typo/paste-o errors, etc.

I'd also like to see the long lines >= 80 characters wrapped before this is pushed. I didn't do that now because I thought it would obscure the other changes I made.

-Sandra
commit cd16ff1d776860cd8fd59751d86d876687b24ac9
Author: Sandra Loosemore <[email protected]>
Date:   Tue Mar 31 16:12:55 2026 +0000

    Fixes for ifn documentation

diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi
index be752db3cd4..30c5509ca41 100644
--- a/gcc/doc/gccint.texi
+++ b/gcc/doc/gccint.texi
@@ -113,6 +113,7 @@ Additional tutorial information is linked to from
 * poly_int::        Representation of runtime sizes and offsets.
 * GENERIC::         Language-independent representation generated by Front Ends
 * GIMPLE::          Tuple representation used by Tree SSA optimizers
+* Internal Functions:: Calls with pre-defined semantics that expand to RTL
 * Tree SSA::        Analysis and optimization of GIMPLE
 * RTL::             Machine-dependent low-level intermediate representation.
 * Control Flow::    Maintaining and manipulating the control flow graph.
diff --git a/gcc/doc/ifn.texi b/gcc/doc/ifn.texi
index 4fa51f0b5ca..3051b12445f 100644
--- a/gcc/doc/ifn.texi
+++ b/gcc/doc/ifn.texi
@@ -8,41 +8,41 @@
 @cindex @file{internal-fn.def}
 
 In addition to builtin functions specified in @file{builtins.def} and
-friends the GENERIC and GIMPLE intermediate languages use calls with
+friends, the GENERIC and GIMPLE intermediate languages use calls with
 pre-defined semantics that are inline expanded to RTL rather than to
-calls or lowered at some point during optimziation.
+calls or lowered at some point during optimization.
 
 Internal functions work like tree operation codes in that they are
 not strongly typed so there are no variants like @code{BUILT_IN_SIN}
-and @code{BUILT_IN_SINF} but just a single @code{IFN_SIN}.
+and @code{BUILT_IN_SINF}; just a single @code{IFN_SIN}.
 
 Internal functions are declared in @file{internal-fn.def}.
 
 @menu
-* Internal Function API:: The internal function related API.
-* Internal Functions::    Table of internal functions.
+* Internal Function API:: How to operate on internal functions.
+* Table of Internal Functions::
 @end menu
 
 @node Internal Function API
-@section The internal function related API
+@section Internal Function API
 
 Internal functions and builtin functions can be operated on
 transparently via the @code{combined_fn} enumeration type and
 the following set of helper functions.
 
-@c FIXME
+FIXME: not documented yet.
 
 The following are internal function specific helpers working
 on the @code{internal_fn} enumeration type.
 
-@c FIXME
+FIXME: not documented yet.
 
-@node Internal Functions
-@section Table of internal functions
+@node Table of Internal Functions
+@section Table of Internal Functions
 
 @menu
 * Direct Internal Functions::
-* Internal Functions corresponding to builtins::
+* Internal Functions Corresponding to Builtins::
 * Other Internal Functions::
 @end menu
 
@@ -471,86 +471,86 @@ The @code{IFN_BIT_IORN} internal function directly maps to the @code{iorn} instr
 
 @cindex @code{IFN_ABD} internal function
 @item @samp{IFN_ABD}
-The @code{IFN_ABD} internal function directly maps to the @code{sabd} and @code{uabd} instruction patterns depending on the sign of the first argument.
+The @code{IFN_ABD} internal function directly maps to the @code{sabd} and @code{uabd} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_AVG_FLOOR} internal function
 @item @samp{IFN_AVG_FLOOR}
-The @code{IFN_AVG_FLOOR} internal function directly maps to the @code{savg_floor} and @code{uavg_floor} instruction patterns depending on the sign of the first argument.
+The @code{IFN_AVG_FLOOR} internal function directly maps to the @code{savg_floor} and @code{uavg_floor} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_AVG_CEIL} internal function
 @item @samp{IFN_AVG_CEIL}
-The @code{IFN_AVG_CEIL} internal function directly maps to the @code{savg_ceil} and @code{uavg_ceil} instruction patterns depending on the sign of the first argument.
+The @code{IFN_AVG_CEIL} internal function directly maps to the @code{savg_ceil} and @code{uavg_ceil} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_MULH} internal function
 @item @samp{IFN_MULH}
-The @code{IFN_MULH} internal function directly maps to the @code{smul_highpart} and @code{umul_highpart} instruction patterns depending on the sign of the first argument.
+The @code{IFN_MULH} internal function directly maps to the @code{smul_highpart} and @code{umul_highpart} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_MULHS} internal function
 @item @samp{IFN_MULHS}
-The @code{IFN_MULHS} internal function directly maps to the @code{smulhs} and @code{umulhs} instruction patterns depending on the sign of the first argument.
+The @code{IFN_MULHS} internal function directly maps to the @code{smulhs} and @code{umulhs} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_MULHRS} internal function
 @item @samp{IFN_MULHRS}
-The @code{IFN_MULHRS} internal function directly maps to the @code{smulhrs} and @code{umulhrs} instruction patterns depending on the sign of the first argument.
+The @code{IFN_MULHRS} internal function directly maps to the @code{smulhrs} and @code{umulhrs} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_SAT_ADD} internal function
 @item @samp{IFN_SAT_ADD}
-The @code{IFN_SAT_ADD} internal function directly maps to the @code{ssadd} and @code{usadd} instruction patterns depending on the sign of the first argument.
+The @code{IFN_SAT_ADD} internal function directly maps to the @code{ssadd} and @code{usadd} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_SAT_SUB} internal function
 @item @samp{IFN_SAT_SUB}
-The @code{IFN_SAT_SUB} internal function directly maps to the @code{sssub} and @code{ussub} instruction patterns depending on the sign of the first argument.
+The @code{IFN_SAT_SUB} internal function directly maps to the @code{sssub} and @code{ussub} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_SAT_MUL} internal function
 @item @samp{IFN_SAT_MUL}
-The @code{IFN_SAT_MUL} internal function directly maps to the @code{ssmul} and @code{usmul} instruction patterns depending on the sign of the first argument.
+The @code{IFN_SAT_MUL} internal function directly maps to the @code{ssmul} and @code{usmul} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_SAT_TRUNC} internal function
 @item @samp{IFN_SAT_TRUNC}
-The @code{IFN_SAT_TRUNC} internal function directly maps to the @code{sstrunc} and @code{ustrunc} instruction patterns depending on the sign of the first argument.
+The @code{IFN_SAT_TRUNC} internal function directly maps to the @code{sstrunc} and @code{ustrunc} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_COND_DIV} internal function
 @item @samp{IFN_COND_DIV}
-The @code{IFN_COND_DIV} internal function directly maps to the @code{cond_sdiv} and @code{cond_udiv} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_DIV} internal function directly maps to the @code{cond_sdiv} and @code{cond_udiv} instruction patterns, depending on the sign of the first argument.
 @cindex @code{IFN_COND_LEN_DIV} internal function
 @item @samp{IFN_COND_LEN_DIV}
-The @code{IFN_COND_LEN_DIV} internal function directly maps to the @code{cond_len_sdiv} and @code{cond_len_udiv} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_LEN_DIV} internal function directly maps to the @code{cond_len_sdiv} and @code{cond_len_udiv} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_COND_MOD} internal function
 @item @samp{IFN_COND_MOD}
-The @code{IFN_COND_MOD} internal function directly maps to the @code{cond_smod} and @code{cond_umod} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_MOD} internal function directly maps to the @code{cond_smod} and @code{cond_umod} instruction patterns, depending on the sign of the first argument.
 @cindex @code{IFN_COND_LEN_MOD} internal function
 @item @samp{IFN_COND_LEN_MOD}
-The @code{IFN_COND_LEN_MOD} internal function directly maps to the @code{cond_len_smod} and @code{cond_len_umod} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_LEN_MOD} internal function directly maps to the @code{cond_len_smod} and @code{cond_len_umod} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_COND_MIN} internal function
 @item @samp{IFN_COND_MIN}
-The @code{IFN_COND_MIN} internal function directly maps to the @code{cond_smin} and @code{cond_umin} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_MIN} internal function directly maps to the @code{cond_smin} and @code{cond_umin} instruction patterns, depending on the sign of the first argument.
 @cindex @code{IFN_COND_LEN_MIN} internal function
 @item @samp{IFN_COND_LEN_MIN}
-The @code{IFN_COND_LEN_MIN} internal function directly maps to the @code{cond_len_smin} and @code{cond_len_umin} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_LEN_MIN} internal function directly maps to the @code{cond_len_smin} and @code{cond_len_umin} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_COND_MAX} internal function
 @item @samp{IFN_COND_MAX}
-The @code{IFN_COND_MAX} internal function directly maps to the @code{cond_smax} and @code{cond_umax} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_MAX} internal function directly maps to the @code{cond_smax} and @code{cond_umax} instruction patterns, depending on the sign of the first argument.
 @cindex @code{IFN_COND_LEN_MAX} internal function
 @item @samp{IFN_COND_LEN_MAX}
-The @code{IFN_COND_LEN_MAX} internal function directly maps to the @code{cond_len_smax} and @code{cond_len_umax} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_LEN_MAX} internal function directly maps to the @code{cond_len_smax} and @code{cond_len_umax} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_COND_SHR} internal function
 @item @samp{IFN_COND_SHR}
-The @code{IFN_COND_SHR} internal function directly maps to the @code{cond_ashr} and @code{cond_lshr} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_SHR} internal function directly maps to the @code{cond_ashr} and @code{cond_lshr} instruction patterns, depending on the sign of the first argument.
 @cindex @code{IFN_COND_LEN_SHR} internal function
 @item @samp{IFN_COND_LEN_SHR}
-The @code{IFN_COND_LEN_SHR} internal function directly maps to the @code{cond_len_ashr} and @code{cond_len_lshr} instruction patterns depending on the sign of the first argument.
+The @code{IFN_COND_LEN_SHR} internal function directly maps to the @code{cond_len_ashr} and @code{cond_len_lshr} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_REDUC_MAX} internal function
 @item @samp{IFN_REDUC_MAX}
-The @code{IFN_REDUC_MAX} internal function directly maps to the @code{reduc_smax_scal} and @code{reduc_umax_scal} instruction patterns depending on the sign of the first argument.
+The @code{IFN_REDUC_MAX} internal function directly maps to the @code{reduc_smax_scal} and @code{reduc_umax_scal} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_REDUC_MIN} internal function
 @item @samp{IFN_REDUC_MIN}
-The @code{IFN_REDUC_MIN} internal function directly maps to the @code{reduc_smin_scal} and @code{reduc_umin_scal} instruction patterns depending on the sign of the first argument.
+The @code{IFN_REDUC_MIN} internal function directly maps to the @code{reduc_smin_scal} and @code{reduc_umin_scal} instruction patterns, depending on the sign of the first argument.
 
 @cindex @code{IFN_VEC_WIDEN_PLUS} internal function
 @cindex @code{IFN_VEC_WIDEN_PLUS_LO} internal function
@@ -558,7 +558,7 @@ The @code{IFN_REDUC_MIN} internal function directly maps to the @code{reduc_smin
 @cindex @code{IFN_VEC_WIDEN_PLUS_EVEN} internal function
 @cindex @code{IFN_VEC_WIDEN_PLUS_ODD} internal function
 @item @samp{IFN_VEC_WIDEN_PLUS}
-The @code{IFN_VEC_WIDEN_PLUS} set of internal functions directly map to the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO} and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code {IFN_VEC_WIDEN_PLUS_ODD} functions work on the even and odd elements of a vector.
+The @code{IFN_VEC_WIDEN_PLUS} set of internal functions directly map to the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns, depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO} and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and high parts of a vector, the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code {IFN_VEC_WIDEN_PLUS_ODD} functions work on the even and odd elements of a vector.
 
 @cindex @code{IFN_VEC_WIDEN_MINUS} internal function
 @cindex @code{IFN_VEC_WIDEN_MINUS_LO} internal function
@@ -566,7 +566,7 @@ The @code{IFN_VEC_WIDEN_PLUS} set of internal functions directly map to the @cod
 @cindex @code{IFN_VEC_WIDEN_MINUS_EVEN} internal function
 @cindex @code{IFN_VEC_WIDEN_MINUS_ODD} internal function
 @item @samp{IFN_VEC_WIDEN_MINUS}
-The @code{IFN_VEC_WIDEN_MINUS} set of internal functions directly map to the @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO} and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code {IFN_VEC_WIDEN_MINUS_ODD} functions work on the even and odd elements of a vector.
+The @code{IFN_VEC_WIDEN_MINUS} set of internal functions directly map to the @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns, depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO} and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and high parts of a vector, the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code {IFN_VEC_WIDEN_MINUS_ODD} functions work on the even and odd elements of a vector.
 
 @cindex @code{IFN_VEC_WIDEN_ABD} internal function
 @cindex @code{IFN_VEC_WIDEN_ABD_LO} internal function
@@ -574,266 +574,264 @@ The @code{IFN_VEC_WIDEN_MINUS} set of internal functions directly map to the @co
 @cindex @code{IFN_VEC_WIDEN_ABD_EVEN} internal function
 @cindex @code{IFN_VEC_WIDEN_ABD_ODD} internal function
 @item @samp{IFN_VEC_WIDEN_ABD}
-The @code{IFN_VEC_WIDEN_ABD} set of internal functions directly map to the @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO} and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code {IFN_VEC_WIDEN_ABD_ODD} functions work on the even and odd elements of a vector.
+The @code{IFN_VEC_WIDEN_ABD} set of internal functions directly map to the @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns, depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO} and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and high parts of a vector, the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code {IFN_VEC_WIDEN_ABD_ODD} functions work on the even and odd elements of a vector.
 
 @end table
 
-@node Internal Functions corresponding to builtins
-@subsection Internal Functions corresponding to builtins
+@node Internal Functions Corresponding to Builtins
+@subsection Internal Functions Corresponding to Builtins
 
-These group of internal functions extend the @code{BUILT_IN_@var{X}}
-builtins to wider set of types.
+These group of internal functions extend the corresponding
+@code{BUILT_IN_@var{X}} builtins to a wider set of types.
 
 @table @asis
 
 @cindex @code{IFN_ACOS} internal function
 @item @samp{IFN_ACOS}
-The @code{IFN_ACOS} internal function directly maps to the @code{acos} instruction pattern for floating point modes.
+The @code{IFN_ACOS} internal function directly maps to the @code{acos} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ACOSH} internal function
 @item @samp{IFN_ACOSH}
-The @code{IFN_ACOSH} internal function directly maps to the @code{acosh} instruction pattern for floating point modes.
+The @code{IFN_ACOSH} internal function directly maps to the @code{acosh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ASIN} internal function
 @item @samp{IFN_ASIN}
-The @code{IFN_ASIN} internal function directly maps to the @code{asin} instruction pattern for floating point modes.
+The @code{IFN_ASIN} internal function directly maps to the @code{asin} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ASINH} internal function
 @item @samp{IFN_ASINH}
-The @code{IFN_ASINH} internal function directly maps to the @code{asinh} instruction pattern for floating point modes.
+The @code{IFN_ASINH} internal function directly maps to the @code{asinh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ATAN} internal function
 @item @samp{IFN_ATAN}
-The @code{IFN_ATAN} internal function directly maps to the @code{atan} instruction pattern for floating point modes.
+The @code{IFN_ATAN} internal function directly maps to the @code{atan} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ATANH} internal function
 @item @samp{IFN_ATANH}
-The @code{IFN_ATANH} internal function directly maps to the @code{atanh} instruction pattern for floating point modes.
+The @code{IFN_ATANH} internal function directly maps to the @code{atanh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_COS} internal function
 @item @samp{IFN_COS}
-The @code{IFN_COS} internal function directly maps to the @code{cos} instruction pattern for floating point modes.
+The @code{IFN_COS} internal function directly maps to the @code{cos} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_COSH} internal function
 @item @samp{IFN_COSH}
-The @code{IFN_COSH} internal function directly maps to the @code{cosh} instruction pattern for floating point modes.
+The @code{IFN_COSH} internal function directly maps to the @code{cosh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_EXP} internal function
 @item @samp{IFN_EXP}
-The @code{IFN_EXP} internal function directly maps to the @code{exp} instruction pattern for floating point modes.
+The @code{IFN_EXP} internal function directly maps to the @code{exp} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_EXP10} internal function
 @item @samp{IFN_EXP10}
-The @code{IFN_EXP10} internal function directly maps to the @code{exp10} instruction pattern for floating point modes.
+The @code{IFN_EXP10} internal function directly maps to the @code{exp10} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_EXP2} internal function
 @item @samp{IFN_EXP2}
-The @code{IFN_EXP2} internal function directly maps to the @code{exp2} instruction pattern for floating point modes.
+The @code{IFN_EXP2} internal function directly maps to the @code{exp2} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_EXPM1} internal function
 @item @samp{IFN_EXPM1}
-The @code{IFN_EXPM1} internal function directly maps to the @code{expm1} instruction pattern for floating point modes.
+The @code{IFN_EXPM1} internal function directly maps to the @code{expm1} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LOG} internal function
 @item @samp{IFN_LOG}
-The @code{IFN_LOG} internal function directly maps to the @code{log} instruction pattern for floating point modes.
+The @code{IFN_LOG} internal function directly maps to the @code{log} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LOG10} internal function
 @item @samp{IFN_LOG10}
-The @code{IFN_LOG10} internal function directly maps to the @code{log10} instruction pattern for floating point modes.
+The @code{IFN_LOG10} internal function directly maps to the @code{log10} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LOG1P} internal function
 @item @samp{IFN_LOG1P}
-The @code{IFN_LOG1P} internal function directly maps to the @code{log1p} instruction pattern for floating point modes.
+The @code{IFN_LOG1P} internal function directly maps to the @code{log1p} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LOG2} internal function
 @item @samp{IFN_LOG2}
-The @code{IFN_LOG2} internal function directly maps to the @code{log2} instruction pattern for floating point modes.
+The @code{IFN_LOG2} internal function directly maps to the @code{log2} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LOGB} internal function
 @item @samp{IFN_LOGB}
-The @code{IFN_LOGB} internal function directly maps to the @code{logb} instruction pattern for floating point modes.
+The @code{IFN_LOGB} internal function directly maps to the @code{logb} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SIGNBIT} internal function
 @item @samp{IFN_SIGNBIT}
-The @code{IFN_SIGNBIT} internal function directly maps to the @code{signbit} instruction pattern for floating point modes.
+The @code{IFN_SIGNBIT} internal function directly maps to the @code{signbit} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SIGNIFICAND} internal function
 @item @samp{IFN_SIGNIFICAND}
-The @code{IFN_SIGNIFICAND} internal function directly maps to the @code{significand} instruction pattern for floating point modes.
+The @code{IFN_SIGNIFICAND} internal function directly maps to the @code{significand} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SIN} internal function
 @item @samp{IFN_SIN}
-The @code{IFN_SIN} internal function directly maps to the @code{sin} instruction pattern for floating point modes.
+The @code{IFN_SIN} internal function directly maps to the @code{sin} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SINH} internal function
 @item @samp{IFN_SINH}
-The @code{IFN_SINH} internal function directly maps to the @code{sinh} instruction pattern for floating point modes.
+The @code{IFN_SINH} internal function directly maps to the @code{sinh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SQRT} internal function
 @item @samp{IFN_SQRT}
-The @code{IFN_SQRT} internal function directly maps to the @code{sqrt} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_SQRT} internal function directly maps to the @code{sqrt} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_TAN} internal function
 @item @samp{IFN_TAN}
-The @code{IFN_TAN} internal function directly maps to the @code{tan} instruction pattern for floating point modes.
+The @code{IFN_TAN} internal function directly maps to the @code{tan} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_TANH} internal function
 @item @samp{IFN_TANH}
-The @code{IFN_TANH} internal function directly maps to the @code{tanh} instruction pattern for floating point modes.
-# 399 "internal-fn.def"
+The @code{IFN_TANH} internal function directly maps to the @code{tanh} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_ICEIL} internal function
 @item @samp{IFN_ICEIL}
-The @code{IFN_ICEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.
+The @code{IFN_ICEIL} internal function directly maps to the @code{lceil} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_IFLOOR} internal function
 @item @samp{IFN_IFLOOR}
-The @code{IFN_IFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.
+The @code{IFN_IFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_IRINT} internal function
 @item @samp{IFN_IRINT}
-The @code{IFN_IRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes.
+The @code{IFN_IRINT} internal function directly maps to the @code{lrint} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_IROUND} internal function
 @item @samp{IFN_IROUND}
-The @code{IFN_IROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes.
+The @code{IFN_IROUND} internal function directly maps to the @code{lround} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LCEIL} internal function
 @item @samp{IFN_LCEIL}
-The @code{IFN_LCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.
+The @code{IFN_LCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LFLOOR} internal function
 @item @samp{IFN_LFLOOR}
-The @code{IFN_LFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.
+The @code{IFN_LFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LRINT} internal function
 @item @samp{IFN_LRINT}
-The @code{IFN_LRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_LRINT} internal function directly maps to the @code{lrint} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_LROUND} internal function
 @item @samp{IFN_LROUND}
-The @code{IFN_LROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_LROUND} internal function directly maps to the @code{lround} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_LLCEIL} internal function
 @item @samp{IFN_LLCEIL}
-The @code{IFN_LLCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.
+The @code{IFN_LLCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LLFLOOR} internal function
 @item @samp{IFN_LLFLOOR}
-The @code{IFN_LLFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.
+The @code{IFN_LLFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_LLRINT} internal function
 @item @samp{IFN_LLRINT}
-The @code{IFN_LLRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_LLRINT} internal function directly maps to the @code{lrint} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_LLROUND} internal function
 @item @samp{IFN_LLROUND}
-The @code{IFN_LLROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_LLROUND} internal function directly maps to the @code{lround} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_CEIL} internal function
 @item @samp{IFN_CEIL}
-The @code{IFN_CEIL} internal function directly maps to the @code{ceil} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_CEIL} internal function directly maps to the @code{ceil} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_FLOOR} internal function
 @item @samp{IFN_FLOOR}
-The @code{IFN_FLOOR} internal function directly maps to the @code{floor} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_FLOOR} internal function directly maps to the @code{floor} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_NEARBYINT} internal function
 @item @samp{IFN_NEARBYINT}
-The @code{IFN_NEARBYINT} internal function directly maps to the @code{nearbyint} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_NEARBYINT} internal function directly maps to the @code{nearbyint} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_RINT} internal function
 @item @samp{IFN_RINT}
-The @code{IFN_RINT} internal function directly maps to the @code{rint} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_RINT} internal function directly maps to the @code{rint} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_ROUND} internal function
 @item @samp{IFN_ROUND}
-The @code{IFN_ROUND} internal function directly maps to the @code{round} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_ROUND} internal function directly maps to the @code{round} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_ROUNDEVEN} internal function
 @item @samp{IFN_ROUNDEVEN}
-The @code{IFN_ROUNDEVEN} internal function directly maps to the @code{roundeven} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_ROUNDEVEN} internal function directly maps to the @code{roundeven} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_TRUNC} internal function
 @item @samp{IFN_TRUNC}
-The @code{IFN_TRUNC} internal function directly maps to the @code{btrunc} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_TRUNC} internal function directly maps to the @code{btrunc} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_ATAN2} internal function
 @item @samp{IFN_ATAN2}
-The @code{IFN_ATAN2} internal function directly maps to the @code{atan2} instruction pattern for floating point modes.
+The @code{IFN_ATAN2} internal function directly maps to the @code{atan2} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_COPYSIGN} internal function
 @item @samp{IFN_COPYSIGN}
-The @code{IFN_COPYSIGN} internal function directly maps to the @code{copysign} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_COPYSIGN} internal function directly maps to the @code{copysign} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_FMOD} internal function
 @item @samp{IFN_FMOD}
-The @code{IFN_FMOD} internal function directly maps to the @code{fmod} instruction pattern for floating point modes.
+The @code{IFN_FMOD} internal function directly maps to the @code{fmod} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_HYPOT} internal function
 @item @samp{IFN_HYPOT}
-The @code{IFN_HYPOT} internal function directly maps to the @code{hypot} instruction pattern for floating point modes.
+The @code{IFN_HYPOT} internal function directly maps to the @code{hypot} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_POW} internal function
 @item @samp{IFN_POW}
-The @code{IFN_POW} internal function directly maps to the @code{pow} instruction pattern for floating point modes.
+The @code{IFN_POW} internal function directly maps to the @code{pow} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_REMAINDER} internal function
 @item @samp{IFN_REMAINDER}
-The @code{IFN_REMAINDER} internal function directly maps to the @code{remainder} instruction pattern for floating point modes.
+The @code{IFN_REMAINDER} internal function directly maps to the @code{remainder} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_SCALB} internal function
 @item @samp{IFN_SCALB}
-The @code{IFN_SCALB} internal function directly maps to the @code{scalb} instruction pattern for floating point modes.
+The @code{IFN_SCALB} internal function directly maps to the @code{scalb} instruction pattern for floating-point modes.
 
 @cindex @code{IFN_FMIN} internal function
 @item @samp{IFN_FMIN}
-The @code{IFN_FMIN} internal function directly maps to the @code{fmin} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_FMIN} internal function directly maps to the @code{fmin} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_FMAX} internal function
 @item @samp{IFN_FMAX}
-The @code{IFN_FMAX} internal function directly maps to the @code{fmax} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_FMAX} internal function directly maps to the @code{fmax} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_LDEXP} internal function
 @item @samp{IFN_LDEXP}
-The @code{IFN_LDEXP} internal function directly maps to the @code{ldexp} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_LDEXP} internal function directly maps to the @code{ldexp} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_FMA} internal function
 @item @samp{IFN_FMA}
-The @code{IFN_FMA} internal function directly maps to the @code{fma} instruction pattern for floating point modes including those for @code{_Float@var{n}}
+The @code{IFN_FMA} internal function directly maps to the @code{fma} instruction pattern for floating-point modes including those for @code{_Float@var{n}}
 
 @cindex @code{IFN_CLRSB} internal function
 @item @samp{IFN_CLRSB}
-The @code{IFN_CLRSB} internal function directly maps to the @code{clrsb} instruction pattern for integer and integer vector point modes.
+The @code{IFN_CLRSB} internal function directly maps to the @code{clrsb} instruction pattern for integer and integer vector modes.
 
 @cindex @code{IFN_CLZ} internal function
 @item @samp{IFN_CLZ}
-The @code{IFN_CLZ} internal function directly maps to the @code{clz} instruction pattern for integer and integer vector point modes.
+The @code{IFN_CLZ} internal function directly maps to the @code{clz} instruction pattern for integer and integer vector modes.
 
 @cindex @code{IFN_CTZ} internal function
 @item @samp{IFN_CTZ}
-The @code{IFN_CTZ} internal function directly maps to the @code{ctz} instruction pattern for integer and integer vector point modes.
+The @code{IFN_CTZ} internal function directly maps to the @code{ctz} instruction pattern for integer and integer vector modes.
 
 @cindex @code{IFN_FFS} internal function
 @item @samp{IFN_FFS}
-The @code{IFN_FFS} internal function directly maps to the @code{ffs} instruction pattern for integer and integer vector point modes.
+The @code{IFN_FFS} internal function directly maps to the @code{ffs} instruction pattern for integer and integer vector modes.
 
 @cindex @code{IFN_PARITY} internal function
 @item @samp{IFN_PARITY}
-The @code{IFN_PARITY} internal function directly maps to the @code{parity} instruction pattern for integer and integer vector point modes.
+The @code{IFN_PARITY} internal function directly maps to the @code{parity} instruction pattern for integer and integer vector modes.
 
 @cindex @code{IFN_POPCOUNT} internal function
 @item @samp{IFN_POPCOUNT}
-The @code{IFN_POPCOUNT} internal function directly maps to the @code{popcount} instruction pattern for integer and integer vector point modes.
+The @code{IFN_POPCOUNT} internal function directly maps to the @code{popcount} instruction pattern for integer and integer vector modes.
 
 @end table
 
 @node Other Internal Functions
 @subsection Other Internal Functions
 
-@table
-@asis
+@table @asis
 
 @cindex @code{IFN_GOMP_TARGET_REV} internal function
 @item @samp{IFN_GOMP_TARGET_REV}

Reply via email to