LCOV - code coverage report
Current view: top level - gcc - internal-fn.def (source / functions) Coverage Total Hit
Test: gcc.info Lines: 91.0 % 234 213
Test Date: 2024-03-23 14:05:01 Functions: 47.8 % 180 86
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : /* Internal functions.
       2                 :             :    Copyright (C) 2011-2024 Free Software Foundation, Inc.
       3                 :             : 
       4                 :             : This file is part of GCC.
       5                 :             : 
       6                 :             : GCC is free software; you can redistribute it and/or modify it under
       7                 :             : the terms of the GNU General Public License as published by the Free
       8                 :             : Software Foundation; either version 3, or (at your option) any later
       9                 :             : version.
      10                 :             : 
      11                 :             : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      12                 :             : WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13                 :             : FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      14                 :             : for more details.
      15                 :             : 
      16                 :             : You should have received a copy of the GNU General Public License
      17                 :             : along with GCC; see the file COPYING3.  If not see
      18                 :             : <http://www.gnu.org/licenses/>.  */
      19                 :             : 
      20                 :             : /* This file specifies a list of internal "functions".  These functions
      21                 :             :    differ from built-in functions in that they have no linkage and cannot
      22                 :             :    be called directly by the user.  They represent operations that are only
      23                 :             :    synthesised by GCC itself.
      24                 :             : 
      25                 :             :    Internal functions are used instead of tree codes if the operation
      26                 :             :    and its operands are more naturally represented as a GIMPLE_CALL
      27                 :             :    than a GIMPLE_ASSIGN.
      28                 :             : 
      29                 :             :    Each entry in this file has one of the forms:
      30                 :             : 
      31                 :             :      DEF_INTERNAL_FN (NAME, FLAGS, FNSPEC)
      32                 :             :      DEF_INTERNAL_OPTAB_FN (NAME, FLAGS, OPTAB, TYPE)
      33                 :             :      DEF_INTERNAL_SIGNED_OPTAB_FN (NAME, FLAGS, SELECTOR, SIGNED_OPTAB,
      34                 :             :                                    UNSIGNED_OPTAB, TYPE)
      35                 :             :      DEF_INTERNAL_FLT_FN (NAME, FLAGS, OPTAB, TYPE)
      36                 :             :      DEF_INTERNAL_FLT_FLOATN_FN (NAME, FLAGS, OPTAB, TYPE)
      37                 :             :      DEF_INTERNAL_INT_FN (NAME, FLAGS, OPTAB, TYPE)
      38                 :             :      DEF_INTERNAL_INT_EXT_FN (NAME, FLAGS, OPTAB, TYPE)
      39                 :             :      DEF_INTERNAL_COND_FN (NAME, FLAGS, OPTAB, TYPE)
      40                 :             :      DEF_INTERNAL_SIGNED_COND_FN (NAME, FLAGS, OPTAB, TYPE)
      41                 :             :      DEF_INTERNAL_WIDENING_OPTAB_FN (NAME, FLAGS, SELECTOR, SOPTAB, UOPTAB,
      42                 :             :                                      TYPE)
      43                 :             : 
      44                 :             :    where NAME is the name of the function, FLAGS is a set of
      45                 :             :    ECF_* flags and FNSPEC is a string describing functions fnspec.
      46                 :             : 
      47                 :             :    DEF_INTERNAL_OPTAB_FN defines an internal function that maps to a
      48                 :             :    direct optab.  The function should only be called with a given
      49                 :             :    set of types if the associated optab is available for the modes
      50                 :             :    of those types.  OPTAB says what optab to use (without the trailing
      51                 :             :    "_optab") and TYPE categorizes the optab based on its inputs and
      52                 :             :    outputs.  The possible types of optab are:
      53                 :             : 
      54                 :             :    - mask_load: currently just maskload
      55                 :             :    - load_lanes: currently just vec_load_lanes
      56                 :             :    - mask_load_lanes: currently just vec_mask_load_lanes
      57                 :             :    - mask_len_load_lanes: currently just vec_mask_len_load_lanes
      58                 :             :    - gather_load: used for {mask_,mask_len_,}gather_load
      59                 :             :    - len_load: currently just len_load
      60                 :             :    - mask_len_load: currently just mask_len_load
      61                 :             : 
      62                 :             :    - mask_store: currently just maskstore
      63                 :             :    - store_lanes: currently just vec_store_lanes
      64                 :             :    - mask_store_lanes: currently just vec_mask_store_lanes
      65                 :             :    - mask_len_store_lanes: currently just vec_mask_len_store_lanes
      66                 :             :    - scatter_store: used for {mask_,mask_len_,}scatter_store
      67                 :             :    - len_store: currently just len_store
      68                 :             :    - mask_len_store: currently just mask_len_store
      69                 :             : 
      70                 :             :    - unary: a normal unary optab, such as vec_reverse_<mode>
      71                 :             :    - binary: a normal binary optab, such as vec_interleave_lo_<mode>
      72                 :             :    - ternary: a normal ternary optab, such as fma<mode>4
      73                 :             : 
      74                 :             :    - unary_convert: a single-input conversion optab, such as
      75                 :             :      lround<srcmode><dstmode>2.
      76                 :             : 
      77                 :             :    - cond_binary: a conditional binary optab, such as cond_add<mode>
      78                 :             :    - cond_unary: a conditional unary optab, such as cond_neg<mode>
      79                 :             :    - cond_ternary: a conditional ternary optab, such as cond_fma_rev<mode>
      80                 :             : 
      81                 :             :    - fold_left: for scalar = FN (scalar, vector), keyed off the vector mode
      82                 :             :    - check_ptrs: used for check_{raw,war}_ptrs
      83                 :             : 
      84                 :             :    - cond_len_unary: a conditional unary optab, such as cond_len_neg<mode>
      85                 :             :    - cond_len_binary: a conditional binary optab, such as cond_len_add<mode>
      86                 :             :    - cond_len_ternary: a conditional ternary optab, such as
      87                 :             :    cond_len_fma_rev<mode>
      88                 :             : 
      89                 :             :    DEF_INTERNAL_SIGNED_OPTAB_FN defines an internal function that
      90                 :             :    maps to one of two optabs, depending on the signedness of an input.
      91                 :             :    SIGNED_OPTAB and UNSIGNED_OPTAB are the optabs for signed and
      92                 :             :    unsigned inputs respectively, both without the trailing "_optab".
      93                 :             :    SELECTOR says which type in the tree_pair determines the signedness.
      94                 :             : 
      95                 :             :    DEF_INTERNAL_FLT_FN is like DEF_INTERNAL_OPTAB_FN, but in addition,
      96                 :             :    the function implements the computational part of a built-in math
      97                 :             :    function BUILT_IN_<NAME>{F,,L}.  Unlike some built-in functions,
      98                 :             :    these internal functions never set errno.
      99                 :             : 
     100                 :             :    DEF_INTERNAL_INT_FN is like DEF_INTERNAL_OPTAB_FN, but in addition
     101                 :             :    says that the function extends the C-level BUILT_IN_<NAME>{,L,LL,IMAX}
     102                 :             :    group of functions to any integral mode (including vector modes).
     103                 :             : 
     104                 :             :    DEF_INTERNAL_INT_EXT_FN is like DEF_INTERNAL_INT_FN, except that it
     105                 :             :    has expand_##NAME defined in internal-fn.cc to override the
     106                 :             :    DEF_INTERNAL_INT_FN expansion behavior.
     107                 :             : 
     108                 :             :    DEF_INTERNAL_WIDENING_OPTAB_FN is a wrapper that defines five internal
     109                 :             :    functions with DEF_INTERNAL_SIGNED_OPTAB_FN:
     110                 :             :    - one that describes a widening operation with the same number of elements
     111                 :             :    in the output and input vectors,
     112                 :             :    - two that describe a pair of high-low widening operations where the output
     113                 :             :    vectors each have half the number of elements of the input vectors,
     114                 :             :    corresponding to the result of the widening operation on the top half and
     115                 :             :    bottom half, these have the suffixes _HI and _LO,
     116                 :             :    - and two that describe a pair of even-odd widening operations where the
     117                 :             :    output vectors each have half the number of elements of the input vectors,
     118                 :             :    corresponding to the result of the widening operation on the even and odd
     119                 :             :    elements, these have the suffixes _EVEN and _ODD.
     120                 :             :    These five internal functions will require two optabs each, a SIGNED_OPTAB
     121                 :             :    and an UNSIGNED_OTPAB.
     122                 :             : 
     123                 :             :    DEF_INTERNAL_COND_FN is a wrapper that defines 2 internal functions with
     124                 :             :    DEF_INTERNAL_OPTAB_FN:
     125                 :             :    - One is COND_* operations that are predicated by mask only. Such operations
     126                 :             :      make sense for both vectors and scalars.
     127                 :             :    - The other is COND_LEN_* operations that are predicated by mask and len
     128                 :             :      both. Such operations only make sense for vectors.
     129                 :             : 
     130                 :             :    DEF_INTERNAL_SIGNED_COND_FN is like DEF_INTERNAL_COND_FN but defines intenal
     131                 :             :    functions with DEF_INTERNAL_SIGNED_OPTAB_FN.
     132                 :             : 
     133                 :             :    Each entry must have a corresponding expander of the form:
     134                 :             : 
     135                 :             :      void expand_NAME (gimple_call stmt)
     136                 :             : 
     137                 :             :    where STMT is the statement that performs the call.  These are generated
     138                 :             :    automatically for optab functions and call out to a function or macro
     139                 :             :    called expand_<TYPE>_optab_fn.  */
     140                 :             : 
     141                 :             : #ifndef DEF_INTERNAL_FN
     142                 :             : #define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC)
     143                 :             : #endif
     144                 :             : 
     145                 :             : #ifndef DEF_INTERNAL_OPTAB_FN
     146                 :             : #define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \
     147                 :             :   DEF_INTERNAL_FN (NAME, FLAGS | ECF_LEAF, NULL)
     148                 :             : #endif
     149                 :             : 
     150                 :             : #ifndef DEF_INTERNAL_SIGNED_OPTAB_FN
     151                 :             : #define DEF_INTERNAL_SIGNED_OPTAB_FN(NAME, FLAGS, SELECTOR, SIGNED_OPTAB, \
     152                 :             :                                      UNSIGNED_OPTAB, TYPE) \
     153                 :             :   DEF_INTERNAL_FN (NAME, FLAGS | ECF_LEAF, NULL)
     154                 :             : #endif
     155                 :             : 
     156                 :             : #ifndef DEF_INTERNAL_FLT_FN
     157                 :             : #define DEF_INTERNAL_FLT_FN(NAME, FLAGS, OPTAB, TYPE) \
     158                 :             :   DEF_INTERNAL_OPTAB_FN (NAME, FLAGS, OPTAB, TYPE)
     159                 :             : #endif
     160                 :             : 
     161                 :             : #ifndef DEF_INTERNAL_FLT_FLOATN_FN
     162                 :             : #define DEF_INTERNAL_FLT_FLOATN_FN(NAME, FLAGS, OPTAB, TYPE) \
     163                 :             :   DEF_INTERNAL_FLT_FN (NAME, FLAGS, OPTAB, TYPE)
     164                 :             : #endif
     165                 :             : 
     166                 :             : #ifndef DEF_INTERNAL_INT_FN
     167                 :             : #define DEF_INTERNAL_INT_FN(NAME, FLAGS, OPTAB, TYPE) \
     168                 :             :   DEF_INTERNAL_OPTAB_FN (NAME, FLAGS, OPTAB, TYPE)
     169                 :             : #endif
     170                 :             : 
     171                 :             : #ifndef DEF_INTERNAL_INT_EXT_FN
     172                 :             : #define DEF_INTERNAL_INT_EXT_FN(NAME, FLAGS, OPTAB, TYPE) \
     173                 :             :   DEF_INTERNAL_INT_FN (NAME, FLAGS, OPTAB, TYPE)
     174                 :             : #endif
     175                 :             : 
     176                 :             : #ifndef DEF_INTERNAL_WIDENING_OPTAB_FN
     177                 :             : #define DEF_INTERNAL_WIDENING_OPTAB_FN(NAME, FLAGS, SELECTOR, SOPTAB, UOPTAB, TYPE)                 \
     178                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (NAME, FLAGS, SELECTOR, SOPTAB, UOPTAB, TYPE)                        \
     179                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (NAME ## _LO, FLAGS, SELECTOR, SOPTAB##_lo, UOPTAB##_lo, TYPE)       \
     180                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (NAME ## _HI, FLAGS, SELECTOR, SOPTAB##_hi, UOPTAB##_hi, TYPE)       \
     181                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (NAME ## _EVEN, FLAGS, SELECTOR, SOPTAB##_even, UOPTAB##_even, TYPE) \
     182                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (NAME ## _ODD, FLAGS, SELECTOR, SOPTAB##_odd, UOPTAB##_odd, TYPE)
     183                 :             : #endif
     184                 :             : 
     185                 :             : #ifndef DEF_INTERNAL_COND_FN
     186                 :             : #define DEF_INTERNAL_COND_FN(NAME, FLAGS, OPTAB, TYPE)                         \
     187                 :             :   DEF_INTERNAL_OPTAB_FN (COND_##NAME, FLAGS, cond_##OPTAB, cond_##TYPE)        \
     188                 :             :   DEF_INTERNAL_OPTAB_FN (COND_LEN_##NAME, FLAGS, cond_len_##OPTAB,             \
     189                 :             :                          cond_len_##TYPE)
     190                 :             : #endif
     191                 :             : 
     192                 :             : #ifndef DEF_INTERNAL_SIGNED_COND_FN
     193                 :             : #define DEF_INTERNAL_SIGNED_COND_FN(NAME, FLAGS, SELECTOR, SIGNED_OPTAB,       \
     194                 :             :                                     UNSIGNED_OPTAB, TYPE)                      \
     195                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (COND_##NAME, FLAGS, SELECTOR,                  \
     196                 :             :                                 cond_##SIGNED_OPTAB, cond_##UNSIGNED_OPTAB,    \
     197                 :             :                                 cond_##TYPE)                                   \
     198                 :             :   DEF_INTERNAL_SIGNED_OPTAB_FN (COND_LEN_##NAME, FLAGS, SELECTOR,              \
     199                 :             :                                 cond_len_##SIGNED_OPTAB,                       \
     200                 :             :                                 cond_len_##UNSIGNED_OPTAB, cond_len_##TYPE)
     201                 :             : #endif
     202                 :             : 
     203                 :         547 : DEF_INTERNAL_OPTAB_FN (MASK_LOAD, ECF_PURE, maskload, mask_load)
     204                 :           0 : DEF_INTERNAL_OPTAB_FN (LOAD_LANES, ECF_CONST, vec_load_lanes, load_lanes)
     205                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LOAD_LANES, ECF_PURE,
     206                 :             :                        vec_mask_load_lanes, mask_load_lanes)
     207                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_LOAD_LANES, ECF_PURE,
     208                 :             :                        vec_mask_len_load_lanes, mask_load_lanes)
     209                 :             : 
     210                 :        9948 : DEF_INTERNAL_OPTAB_FN (GATHER_LOAD, ECF_PURE, gather_load, gather_load)
     211                 :       10030 : DEF_INTERNAL_OPTAB_FN (MASK_GATHER_LOAD, ECF_PURE,
     212                 :             :                        mask_gather_load, gather_load)
     213                 :       10030 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_GATHER_LOAD, ECF_PURE,
     214                 :             :                        mask_len_gather_load, gather_load)
     215                 :             : 
     216                 :           0 : DEF_INTERNAL_OPTAB_FN (LEN_LOAD, ECF_PURE, len_load, len_load)
     217                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_LOAD, ECF_PURE, mask_len_load, mask_len_load)
     218                 :             : 
     219                 :       16478 : DEF_INTERNAL_OPTAB_FN (SCATTER_STORE, 0, scatter_store, scatter_store)
     220                 :       16480 : DEF_INTERNAL_OPTAB_FN (MASK_SCATTER_STORE, 0,
     221                 :             :                        mask_scatter_store, scatter_store)
     222                 :       16480 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_SCATTER_STORE, 0,
     223                 :             :                        mask_len_scatter_store, scatter_store)
     224                 :             : 
     225                 :        1196 : DEF_INTERNAL_OPTAB_FN (MASK_STORE, 0, maskstore, mask_store)
     226                 :           0 : DEF_INTERNAL_OPTAB_FN (STORE_LANES, ECF_CONST, vec_store_lanes, store_lanes)
     227                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_STORE_LANES, 0,
     228                 :             :                        vec_mask_store_lanes, mask_store_lanes)
     229                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_STORE_LANES, 0,
     230                 :             :                        vec_mask_len_store_lanes, mask_store_lanes)
     231                 :             : 
     232                 :        8017 : DEF_INTERNAL_OPTAB_FN (VCOND, ECF_CONST | ECF_NOTHROW, vcond, vec_cond)
     233                 :         654 : DEF_INTERNAL_OPTAB_FN (VCONDU, ECF_CONST | ECF_NOTHROW, vcondu, vec_cond)
     234                 :          74 : DEF_INTERNAL_OPTAB_FN (VCONDEQ, ECF_CONST | ECF_NOTHROW, vcondeq, vec_cond)
     235                 :        2451 : DEF_INTERNAL_OPTAB_FN (VCOND_MASK, ECF_CONST | ECF_NOTHROW,
     236                 :             :                        vcond_mask, vec_cond_mask)
     237                 :           0 : DEF_INTERNAL_OPTAB_FN (VCOND_MASK_LEN, ECF_CONST | ECF_NOTHROW,
     238                 :             :                        vcond_mask_len, cond_len_unary)
     239                 :             : 
     240                 :         127 : DEF_INTERNAL_OPTAB_FN (VEC_SET, ECF_CONST | ECF_NOTHROW, vec_set, vec_set)
     241                 :           0 : DEF_INTERNAL_OPTAB_FN (VEC_EXTRACT, ECF_CONST | ECF_NOTHROW,
     242                 :             :                        vec_extract, vec_extract)
     243                 :             : 
     244                 :           0 : DEF_INTERNAL_OPTAB_FN (LEN_STORE, 0, len_store, len_store)
     245                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_STORE, 0, mask_len_store, mask_len_store)
     246                 :             : 
     247                 :          50 : DEF_INTERNAL_OPTAB_FN (WHILE_ULT, ECF_CONST | ECF_NOTHROW, while_ult, while)
     248                 :           0 : DEF_INTERNAL_OPTAB_FN (SELECT_VL, ECF_CONST | ECF_NOTHROW, select_vl, binary)
     249                 :          66 : DEF_INTERNAL_OPTAB_FN (CHECK_RAW_PTRS, ECF_CONST | ECF_NOTHROW,
     250                 :             :                        check_raw_ptrs, check_ptrs)
     251                 :        4624 : DEF_INTERNAL_OPTAB_FN (CHECK_WAR_PTRS, ECF_CONST | ECF_NOTHROW,
     252                 :             :                        check_war_ptrs, check_ptrs)
     253                 :             : 
     254                 :           0 : DEF_INTERNAL_OPTAB_FN (VEC_SHL_INSERT, ECF_CONST | ECF_NOTHROW,
     255                 :             :                        vec_shl_insert, binary)
     256                 :             : 
     257                 :       41723 : DEF_INTERNAL_OPTAB_FN (DIV_POW2, ECF_CONST | ECF_NOTHROW, sdiv_pow2, binary)
     258                 :             : 
     259                 :        6903 : DEF_INTERNAL_OPTAB_FN (FMS, ECF_CONST, fms, ternary)
     260                 :        5466 : DEF_INTERNAL_OPTAB_FN (FNMA, ECF_CONST, fnma, ternary)
     261                 :        1824 : DEF_INTERNAL_OPTAB_FN (FNMS, ECF_CONST, fnms, ternary)
     262                 :             : 
     263                 :        2223 : DEF_INTERNAL_SIGNED_OPTAB_FN (ABD, ECF_CONST | ECF_NOTHROW, first,
     264                 :             :                               sabd, uabd, binary)
     265                 :             : 
     266                 :        1369 : DEF_INTERNAL_SIGNED_OPTAB_FN (AVG_FLOOR, ECF_CONST | ECF_NOTHROW, first,
     267                 :             :                               savg_floor, uavg_floor, binary)
     268                 :         503 : DEF_INTERNAL_SIGNED_OPTAB_FN (AVG_CEIL, ECF_CONST | ECF_NOTHROW, first,
     269                 :             :                               savg_ceil, uavg_ceil, binary)
     270                 :             : 
     271                 :        2419 : DEF_INTERNAL_SIGNED_OPTAB_FN (MULH, ECF_CONST | ECF_NOTHROW, first,
     272                 :             :                               smul_highpart, umul_highpart, binary)
     273                 :          76 : DEF_INTERNAL_SIGNED_OPTAB_FN (MULHS, ECF_CONST | ECF_NOTHROW, first,
     274                 :             :                               smulhs, umulhs, binary)
     275                 :         122 : DEF_INTERNAL_SIGNED_OPTAB_FN (MULHRS, ECF_CONST | ECF_NOTHROW, first,
     276                 :             :                               smulhrs, umulhrs, binary)
     277                 :             : 
     278                 :       20575 : DEF_INTERNAL_COND_FN (ADD, ECF_CONST, add, binary)
     279                 :        1739 : DEF_INTERNAL_COND_FN (SUB, ECF_CONST, sub, binary)
     280                 :        1812 : DEF_INTERNAL_COND_FN (MUL, ECF_CONST, smul, binary)
     281                 :         740 : DEF_INTERNAL_SIGNED_COND_FN (DIV, ECF_CONST, first, sdiv, udiv, binary)
     282                 :         365 : DEF_INTERNAL_SIGNED_COND_FN (MOD, ECF_CONST, first, smod, umod, binary)
     283                 :         317 : DEF_INTERNAL_COND_FN (RDIV, ECF_CONST, sdiv, binary)
     284                 :         312 : DEF_INTERNAL_SIGNED_COND_FN (MIN, ECF_CONST, first, smin, umin, binary)
     285                 :         774 : DEF_INTERNAL_SIGNED_COND_FN (MAX, ECF_CONST, first, smax, umax, binary)
     286                 :           0 : DEF_INTERNAL_COND_FN (COPYSIGN, ECF_CONST, copysign, binary)
     287                 :           0 : DEF_INTERNAL_COND_FN (FMIN, ECF_CONST, fmin, binary)
     288                 :           0 : DEF_INTERNAL_COND_FN (FMAX, ECF_CONST, fmax, binary)
     289                 :         221 : DEF_INTERNAL_COND_FN (AND, ECF_CONST | ECF_NOTHROW, and, binary)
     290                 :        2031 : DEF_INTERNAL_COND_FN (IOR, ECF_CONST | ECF_NOTHROW, ior, binary)
     291                 :         477 : DEF_INTERNAL_COND_FN (XOR, ECF_CONST | ECF_NOTHROW, xor, binary)
     292                 :         555 : DEF_INTERNAL_COND_FN (SHL, ECF_CONST | ECF_NOTHROW, ashl, binary)
     293                 :         741 : DEF_INTERNAL_SIGNED_COND_FN (SHR, ECF_CONST | ECF_NOTHROW, first, ashr, lshr,
     294                 :             :                              binary)
     295                 :             : 
     296                 :         521 : DEF_INTERNAL_COND_FN (FMA, ECF_CONST, fma, ternary)
     297                 :         144 : DEF_INTERNAL_COND_FN (FMS, ECF_CONST, fms, ternary)
     298                 :         132 : DEF_INTERNAL_COND_FN (FNMA, ECF_CONST, fnma, ternary)
     299                 :         128 : DEF_INTERNAL_COND_FN (FNMS, ECF_CONST, fnms, ternary)
     300                 :             : 
     301                 :         357 : DEF_INTERNAL_COND_FN (NEG, ECF_CONST, neg, unary)
     302                 :          48 : DEF_INTERNAL_COND_FN (NOT, ECF_CONST, one_cmpl, unary)
     303                 :             : 
     304                 :         191 : DEF_INTERNAL_OPTAB_FN (RSQRT, ECF_CONST, rsqrt, unary)
     305                 :             : 
     306                 :       76026 : DEF_INTERNAL_OPTAB_FN (REDUC_PLUS, ECF_CONST | ECF_NOTHROW,
     307                 :             :                        reduc_plus_scal, unary)
     308                 :        2883 : DEF_INTERNAL_SIGNED_OPTAB_FN (REDUC_MAX, ECF_CONST | ECF_NOTHROW, first,
     309                 :             :                               reduc_smax_scal, reduc_umax_scal, unary)
     310                 :        6935 : DEF_INTERNAL_SIGNED_OPTAB_FN (REDUC_MIN, ECF_CONST | ECF_NOTHROW, first,
     311                 :             :                               reduc_smin_scal, reduc_umin_scal, unary)
     312                 :          21 : DEF_INTERNAL_OPTAB_FN (REDUC_FMAX, ECF_CONST | ECF_NOTHROW,
     313                 :             :                        reduc_fmax_scal, unary)
     314                 :          18 : DEF_INTERNAL_OPTAB_FN (REDUC_FMIN, ECF_CONST | ECF_NOTHROW,
     315                 :             :                        reduc_fmin_scal, unary)
     316                 :       14452 : DEF_INTERNAL_OPTAB_FN (REDUC_AND, ECF_CONST | ECF_NOTHROW,
     317                 :             :                        reduc_and_scal, unary)
     318                 :       38468 : DEF_INTERNAL_OPTAB_FN (REDUC_IOR, ECF_CONST | ECF_NOTHROW,
     319                 :             :                        reduc_ior_scal, unary)
     320                 :        1265 : DEF_INTERNAL_OPTAB_FN (REDUC_XOR, ECF_CONST | ECF_NOTHROW,
     321                 :             :                        reduc_xor_scal, unary)
     322                 :             : 
     323                 :             : /* Extract the last active element from a vector.  */
     324                 :           3 : DEF_INTERNAL_OPTAB_FN (EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
     325                 :             :                        extract_last, fold_left)
     326                 :             : 
     327                 :             : /* Same, but return the first argument if no elements are active.  */
     328                 :         626 : DEF_INTERNAL_OPTAB_FN (FOLD_EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
     329                 :             :                        fold_extract_last, fold_extract)
     330                 :             : 
     331                 :         626 : DEF_INTERNAL_OPTAB_FN (LEN_FOLD_EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
     332                 :             :                        len_fold_extract_last, fold_len_extract)
     333                 :             : 
     334                 :        2468 : DEF_INTERNAL_OPTAB_FN (FOLD_LEFT_PLUS, ECF_CONST | ECF_NOTHROW,
     335                 :             :                        fold_left_plus, fold_left)
     336                 :             : 
     337                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_FOLD_LEFT_PLUS, ECF_CONST | ECF_NOTHROW,
     338                 :             :                        mask_fold_left_plus, mask_fold_left)
     339                 :             : 
     340                 :           0 : DEF_INTERNAL_OPTAB_FN (MASK_LEN_FOLD_LEFT_PLUS, ECF_CONST | ECF_NOTHROW,
     341                 :             :                        mask_len_fold_left_plus, mask_len_fold_left)
     342                 :             : 
     343                 :             : /* Unary math functions.  */
     344                 :         164 : DEF_INTERNAL_FLT_FN (ACOS, ECF_CONST, acos, unary)
     345                 :         935 : DEF_INTERNAL_FLT_FN (ACOSH, ECF_CONST, acosh, unary)
     346                 :        1914 : DEF_INTERNAL_FLT_FN (ASIN, ECF_CONST, asin, unary)
     347                 :         509 : DEF_INTERNAL_FLT_FN (ASINH, ECF_CONST, asinh, unary)
     348                 :        1447 : DEF_INTERNAL_FLT_FN (ATAN, ECF_CONST, atan, unary)
     349                 :        1230 : DEF_INTERNAL_FLT_FN (ATANH, ECF_CONST, atanh, unary)
     350                 :        5539 : DEF_INTERNAL_FLT_FN (COS, ECF_CONST, cos, unary)
     351                 :        2883 : DEF_INTERNAL_FLT_FN (COSH, ECF_CONST, cosh, unary)
     352                 :       12739 : DEF_INTERNAL_FLT_FN (EXP, ECF_CONST, exp, unary)
     353                 :          12 : DEF_INTERNAL_FLT_FN (EXP10, ECF_CONST, exp10, unary)
     354                 :        2688 : DEF_INTERNAL_FLT_FN (EXP2, ECF_CONST, exp2, unary)
     355                 :         718 : DEF_INTERNAL_FLT_FN (EXPM1, ECF_CONST, expm1, unary)
     356                 :       12803 : DEF_INTERNAL_FLT_FN (LOG, ECF_CONST, log, unary)
     357                 :        2341 : DEF_INTERNAL_FLT_FN (LOG10, ECF_CONST, log10, unary)
     358                 :        1410 : DEF_INTERNAL_FLT_FN (LOG1P, ECF_CONST, log1p, unary)
     359                 :        1539 : DEF_INTERNAL_FLT_FN (LOG2, ECF_CONST, log2, unary)
     360                 :         885 : DEF_INTERNAL_FLT_FN (LOGB, ECF_CONST, logb, unary)
     361                 :       23812 : DEF_INTERNAL_FLT_FN (SIGNBIT, ECF_CONST, signbit, unary)
     362                 :         222 : DEF_INTERNAL_FLT_FN (SIGNIFICAND, ECF_CONST, significand, unary)
     363                 :        9989 : DEF_INTERNAL_FLT_FN (SIN, ECF_CONST, sin, unary)
     364                 :        2681 : DEF_INTERNAL_FLT_FN (SINH, ECF_CONST, sinh, unary)
     365                 :        7264 : DEF_INTERNAL_FLT_FLOATN_FN (SQRT, ECF_CONST, sqrt, unary)
     366                 :        2048 : DEF_INTERNAL_FLT_FN (TAN, ECF_CONST, tan, unary)
     367                 :         540 : DEF_INTERNAL_FLT_FN (TANH, ECF_CONST, tanh, unary)
     368                 :             : 
     369                 :             : /* Floating-point to integer conversions.
     370                 :             : 
     371                 :             :    ??? Here we preserve the I/L/LL prefix convention from the
     372                 :             :    corresponding built-in functions, rather than make the internal
     373                 :             :    functions polymorphic in both the argument and the return types.
     374                 :             :    Perhaps an alternative would be to pass a zero of the required
     375                 :             :    return type as a second parameter.  */
     376                 :         208 : DEF_INTERNAL_FLT_FN (ICEIL, ECF_CONST, lceil, unary_convert)
     377                 :         211 : DEF_INTERNAL_FLT_FN (IFLOOR, ECF_CONST, lfloor, unary_convert)
     378                 :         269 : DEF_INTERNAL_FLT_FN (IRINT, ECF_CONST, lrint, unary_convert)
     379                 :        1054 : DEF_INTERNAL_FLT_FN (IROUND, ECF_CONST, lround, unary_convert)
     380                 :        2170 : DEF_INTERNAL_FLT_FN (LCEIL, ECF_CONST, lceil, unary_convert)
     381                 :        2110 : DEF_INTERNAL_FLT_FN (LFLOOR, ECF_CONST, lfloor, unary_convert)
     382                 :         267 : DEF_INTERNAL_FLT_FLOATN_FN (LRINT, ECF_CONST, lrint, unary_convert)
     383                 :         168 : DEF_INTERNAL_FLT_FLOATN_FN (LROUND, ECF_CONST, lround, unary_convert)
     384                 :         396 : DEF_INTERNAL_FLT_FN (LLCEIL, ECF_CONST, lceil, unary_convert)
     385                 :         396 : DEF_INTERNAL_FLT_FN (LLFLOOR, ECF_CONST, lfloor, unary_convert)
     386                 :          32 : DEF_INTERNAL_FLT_FLOATN_FN (LLRINT, ECF_CONST, lrint, unary_convert)
     387                 :          32 : DEF_INTERNAL_FLT_FLOATN_FN (LLROUND, ECF_CONST, lround, unary_convert)
     388                 :             : 
     389                 :             : /* FP rounding.  */
     390                 :        1180 : DEF_INTERNAL_FLT_FLOATN_FN (CEIL, ECF_CONST, ceil, unary)
     391                 :         946 : DEF_INTERNAL_FLT_FLOATN_FN (FLOOR, ECF_CONST, floor, unary)
     392                 :         262 : DEF_INTERNAL_FLT_FLOATN_FN (NEARBYINT, ECF_CONST, nearbyint, unary)
     393                 :         533 : DEF_INTERNAL_FLT_FLOATN_FN (RINT, ECF_CONST, rint, unary)
     394                 :         375 : DEF_INTERNAL_FLT_FLOATN_FN (ROUND, ECF_CONST, round, unary)
     395                 :          26 : DEF_INTERNAL_FLT_FLOATN_FN (ROUNDEVEN, ECF_CONST, roundeven, unary)
     396                 :        1239 : DEF_INTERNAL_FLT_FLOATN_FN (TRUNC, ECF_CONST, btrunc, unary)
     397                 :             : 
     398                 :             : /* Binary math functions.  */
     399                 :        6733 : DEF_INTERNAL_FLT_FN (ATAN2, ECF_CONST, atan2, binary)
     400                 :       68289 : DEF_INTERNAL_FLT_FLOATN_FN (COPYSIGN, ECF_CONST, copysign, binary)
     401                 :        5904 : DEF_INTERNAL_FLT_FN (FMOD, ECF_CONST, fmod, binary)
     402                 :        1403 : DEF_INTERNAL_FLT_FN (HYPOT, ECF_CONST, hypot, binary)
     403                 :       23878 : DEF_INTERNAL_FLT_FN (POW, ECF_CONST, pow, binary)
     404                 :         258 : DEF_INTERNAL_FLT_FN (REMAINDER, ECF_CONST, remainder, binary)
     405                 :         407 : DEF_INTERNAL_FLT_FN (SCALB, ECF_CONST, scalb, binary)
     406                 :         229 : DEF_INTERNAL_FLT_FLOATN_FN (FMIN, ECF_CONST, fmin, binary)
     407                 :         277 : DEF_INTERNAL_FLT_FLOATN_FN (FMAX, ECF_CONST, fmax, binary)
     408                 :          42 : DEF_INTERNAL_OPTAB_FN (XORSIGN, ECF_CONST, xorsign, binary)
     409                 :         182 : DEF_INTERNAL_OPTAB_FN (COMPLEX_ADD_ROT90, ECF_CONST, cadd90, binary)
     410                 :          65 : DEF_INTERNAL_OPTAB_FN (COMPLEX_ADD_ROT270, ECF_CONST, cadd270, binary)
     411                 :         260 : DEF_INTERNAL_OPTAB_FN (COMPLEX_MUL, ECF_CONST, cmul, binary)
     412                 :          14 : DEF_INTERNAL_OPTAB_FN (COMPLEX_MUL_CONJ, ECF_CONST, cmul_conj, binary)
     413                 :        3595 : DEF_INTERNAL_OPTAB_FN (VEC_ADDSUB, ECF_CONST, vec_addsub, binary)
     414                 :      249276 : DEF_INTERNAL_WIDENING_OPTAB_FN (VEC_WIDEN_PLUS,
     415                 :             :                                 ECF_CONST | ECF_NOTHROW,
     416                 :             :                                 first,
     417                 :             :                                 vec_widen_sadd, vec_widen_uadd,
     418                 :             :                                 binary)
     419                 :       38562 : DEF_INTERNAL_WIDENING_OPTAB_FN (VEC_WIDEN_MINUS,
     420                 :             :                                 ECF_CONST | ECF_NOTHROW,
     421                 :             :                                 first,
     422                 :             :                                 vec_widen_ssub, vec_widen_usub,
     423                 :             :                                 binary)
     424                 :        4440 : DEF_INTERNAL_WIDENING_OPTAB_FN (VEC_WIDEN_ABD,
     425                 :             :                                 ECF_CONST | ECF_NOTHROW,
     426                 :             :                                 first,
     427                 :             :                                 vec_widen_sabd, vec_widen_uabd,
     428                 :             :                                 binary)
     429                 :        2382 : DEF_INTERNAL_OPTAB_FN (VEC_FMADDSUB, ECF_CONST, vec_fmaddsub, ternary)
     430                 :        1944 : DEF_INTERNAL_OPTAB_FN (VEC_FMSUBADD, ECF_CONST, vec_fmsubadd, ternary)
     431                 :             : 
     432                 :             : /* FP scales.  */
     433                 :         819 : DEF_INTERNAL_FLT_FN (LDEXP, ECF_CONST, ldexp, binary)
     434                 :             : 
     435                 :             : /* Ternary math functions.  */
     436                 :     4433820 : DEF_INTERNAL_FLT_FLOATN_FN (FMA, ECF_CONST, fma, ternary)
     437                 :          15 : DEF_INTERNAL_OPTAB_FN (COMPLEX_FMA, ECF_CONST, cmla, ternary)
     438                 :          14 : DEF_INTERNAL_OPTAB_FN (COMPLEX_FMA_CONJ, ECF_CONST, cmla_conj, ternary)
     439                 :           0 : DEF_INTERNAL_OPTAB_FN (COMPLEX_FMS, ECF_CONST, cmls, ternary)
     440                 :           0 : DEF_INTERNAL_OPTAB_FN (COMPLEX_FMS_CONJ, ECF_CONST, cmls_conj, ternary)
     441                 :             : 
     442                 :             : /* Unary integer ops.  */
     443                 :         947 : DEF_INTERNAL_INT_EXT_FN (CLRSB, ECF_CONST | ECF_NOTHROW, clrsb, unary)
     444                 :       78246 : DEF_INTERNAL_INT_EXT_FN (CLZ, ECF_CONST | ECF_NOTHROW, clz, unary)
     445                 :       11618 : DEF_INTERNAL_INT_EXT_FN (CTZ, ECF_CONST | ECF_NOTHROW, ctz, unary)
     446                 :        1654 : DEF_INTERNAL_INT_EXT_FN (FFS, ECF_CONST | ECF_NOTHROW, ffs, unary)
     447                 :        2182 : DEF_INTERNAL_INT_EXT_FN (PARITY, ECF_CONST | ECF_NOTHROW, parity, unary)
     448                 :        9534 : DEF_INTERNAL_INT_EXT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary)
     449                 :             : 
     450                 :      285289 : DEF_INTERNAL_FN (GOMP_TARGET_REV, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     451                 :      285289 : DEF_INTERNAL_FN (GOMP_USE_SIMT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     452                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_ENTER, ECF_LEAF | ECF_NOTHROW, NULL)
     453                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_ENTER_ALLOC, ECF_LEAF | ECF_NOTHROW, NULL)
     454                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_EXIT, ECF_LEAF | ECF_NOTHROW, NULL)
     455                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     456                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_VF, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     457                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_LAST_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     458                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_ORDERED_PRED, ECF_LEAF | ECF_NOTHROW, NULL)
     459                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_VOTE_ANY, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     460                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_XCHG_BFLY, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     461                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMT_XCHG_IDX, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     462                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMD_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     463                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMD_VF, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     464                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMD_LAST_LANE, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     465                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMD_ORDERED_START, ECF_LEAF | ECF_NOTHROW, NULL)
     466                 :      285289 : DEF_INTERNAL_FN (GOMP_SIMD_ORDERED_END, ECF_LEAF | ECF_NOTHROW, NULL)
     467                 :      285289 : DEF_INTERNAL_FN (LOOP_VECTORIZED, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     468                 :      285289 : DEF_INTERNAL_FN (LOOP_DIST_ALIAS, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     469                 :      285289 : DEF_INTERNAL_FN (ANNOTATE,  ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     470                 :      285289 : DEF_INTERNAL_FN (UBSAN_NULL, ECF_LEAF | ECF_NOTHROW, ". R . ")
     471                 :      285289 : DEF_INTERNAL_FN (UBSAN_BOUNDS, ECF_LEAF | ECF_NOTHROW, NULL)
     472                 :      285289 : DEF_INTERNAL_FN (UBSAN_VPTR, ECF_LEAF | ECF_NOTHROW, ". R R . . ")
     473                 :      285289 : DEF_INTERNAL_FN (UBSAN_CHECK_ADD, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     474                 :      285289 : DEF_INTERNAL_FN (UBSAN_CHECK_SUB, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     475                 :      285289 : DEF_INTERNAL_FN (UBSAN_CHECK_MUL, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     476                 :      285289 : DEF_INTERNAL_FN (UBSAN_PTR, ECF_LEAF | ECF_NOTHROW, ". R . ")
     477                 :      285289 : DEF_INTERNAL_FN (UBSAN_OBJECT_SIZE, ECF_LEAF | ECF_NOTHROW, NULL)
     478                 :      285289 : DEF_INTERNAL_FN (ABNORMAL_DISPATCHER, ECF_NORETURN, NULL)
     479                 :      285289 : DEF_INTERNAL_FN (BUILTIN_EXPECT, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     480                 :      285289 : DEF_INTERNAL_FN (HWASAN_ALLOCA_UNPOISON, ECF_LEAF | ECF_NOTHROW, ". R ")
     481                 :      285289 : DEF_INTERNAL_FN (HWASAN_CHOOSE_TAG, ECF_LEAF | ECF_NOTHROW, ". ")
     482                 :      285289 : DEF_INTERNAL_FN (HWASAN_CHECK, ECF_TM_PURE | ECF_LEAF | ECF_NOTHROW,
     483                 :             :                  ". . R . . ")
     484                 :      285289 : DEF_INTERNAL_FN (HWASAN_MARK, ECF_LEAF | ECF_NOTHROW, NULL)
     485                 :      285289 : DEF_INTERNAL_FN (HWASAN_SET_TAG,
     486                 :             :                  ECF_TM_PURE | ECF_PURE | ECF_LEAF | ECF_NOTHROW, ". R R ")
     487                 :      285289 : DEF_INTERNAL_FN (ASAN_CHECK, ECF_TM_PURE | ECF_LEAF | ECF_NOTHROW,
     488                 :             :                  ". . R . . ")
     489                 :      285289 : DEF_INTERNAL_FN (ASAN_MARK, ECF_LEAF | ECF_NOTHROW, NULL)
     490                 :      285289 : DEF_INTERNAL_FN (ASAN_POISON, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     491                 :      285289 : DEF_INTERNAL_FN (ASAN_POISON_USE, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     492                 :      285289 : DEF_INTERNAL_FN (ADD_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     493                 :      285289 : DEF_INTERNAL_FN (SUB_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     494                 :      285289 : DEF_INTERNAL_FN (MUL_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     495                 :      285289 : DEF_INTERNAL_FN (UADDC, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     496                 :      285289 : DEF_INTERNAL_FN (USUBC, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     497                 :      285289 : DEF_INTERNAL_FN (TSAN_FUNC_EXIT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     498                 :      285289 : DEF_INTERNAL_FN (VA_ARG, ECF_NOTHROW | ECF_LEAF, NULL)
     499                 :      285289 : DEF_INTERNAL_FN (VEC_CONVERT, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     500                 :      285289 : DEF_INTERNAL_FN (RAWMEMCHR, ECF_PURE | ECF_LEAF | ECF_NOTHROW, NULL)
     501                 :             : 
     502                 :             : /* An unduplicable, uncombinable function.  Generally used to preserve
     503                 :             :    a CFG property in the face of jump threading, tail merging or
     504                 :             :    other such optimizations.  The first argument distinguishes
     505                 :             :    between uses.  See internal-fn.h for usage.  */
     506                 :      285289 : DEF_INTERNAL_FN (UNIQUE, ECF_NOTHROW, NULL)
     507                 :      285289 : DEF_INTERNAL_FN (PHI, 0, NULL)
     508                 :             : 
     509                 :             : /* A function to represent an artifical initialization to an uninitialized
     510                 :             :    automatic variable.  */
     511                 :      285289 : DEF_INTERNAL_FN (DEFERRED_INIT, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     512                 :             : 
     513                 :             : /* DIM_SIZE and DIM_POS return the size of a particular compute
     514                 :             :    dimension and the executing thread's position within that
     515                 :             :    dimension.  DIM_POS is pure (and not const) so that it isn't
     516                 :             :    thought to clobber memory and can be gcse'd within a single
     517                 :             :    parallel region, but not across FORK/JOIN boundaries.  They take a
     518                 :             :    single INTEGER_CST argument.  This might be overly conservative.  */
     519                 :      285289 : DEF_INTERNAL_FN (GOACC_DIM_SIZE, ECF_CONST | ECF_NOTHROW | ECF_LEAF, NULL)
     520                 :      285289 : DEF_INTERNAL_FN (GOACC_DIM_POS, ECF_PURE | ECF_NOTHROW | ECF_LEAF, NULL)
     521                 :             : 
     522                 :             : /* OpenACC looping abstraction.  See internal-fn.h for usage.  */
     523                 :      285289 : DEF_INTERNAL_FN (GOACC_LOOP, ECF_PURE | ECF_NOTHROW, NULL)
     524                 :             : 
     525                 :             : /* OpenACC reduction abstraction.  See internal-fn.h  for usage.  */
     526                 :      285289 : DEF_INTERNAL_FN (GOACC_REDUCTION, ECF_NOTHROW | ECF_LEAF, NULL)
     527                 :             : 
     528                 :             : /* Openacc tile abstraction. Describes the spans of the element loop.
     529                 :             :    GOACC_TILE (num-loops, loop-no, tile-arg, tile-mask, element-mask).  */
     530                 :      285289 : DEF_INTERNAL_FN (GOACC_TILE, ECF_NOTHROW | ECF_LEAF, NULL)
     531                 :             : 
     532                 :             : /* Set errno to EDOM, if GCC knows how to do that directly for the
     533                 :             :    current target.  */
     534                 :      285289 : DEF_INTERNAL_FN (SET_EDOM, ECF_LEAF | ECF_NOTHROW, NULL)
     535                 :             : 
     536                 :             : /* Atomic functions.  These don't have ECF_NOTHROW because for
     537                 :             :    -fnon-call-exceptions they can throw, otherwise we set
     538                 :             :    gimple_call_nothrow_p on it.  */
     539                 :      285289 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_SET, ECF_LEAF, NULL)
     540                 :      285289 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_COMPLEMENT, ECF_LEAF, NULL)
     541                 :      285289 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_RESET, ECF_LEAF, NULL)
     542                 :      285289 : DEF_INTERNAL_FN (ATOMIC_COMPARE_EXCHANGE, ECF_LEAF, NULL)
     543                 :      285289 : DEF_INTERNAL_FN (ATOMIC_ADD_FETCH_CMP_0, ECF_LEAF, NULL)
     544                 :      285289 : DEF_INTERNAL_FN (ATOMIC_SUB_FETCH_CMP_0, ECF_LEAF, NULL)
     545                 :      285289 : DEF_INTERNAL_FN (ATOMIC_AND_FETCH_CMP_0, ECF_LEAF, NULL)
     546                 :      285289 : DEF_INTERNAL_FN (ATOMIC_OR_FETCH_CMP_0, ECF_LEAF, NULL)
     547                 :      285289 : DEF_INTERNAL_FN (ATOMIC_XOR_FETCH_CMP_0, ECF_LEAF, NULL)
     548                 :             : 
     549                 :             : /* To implement [[fallthrough]].  If the TREE_NOTHROW or GF_CALL_NOTHROW flag
     550                 :             :    is set on the call (normally redundant with ECF_NOTHROW), it marks
     551                 :             :    [[fallthrough]] at the end of C++ loop body.  */
     552                 :      285289 : DEF_INTERNAL_FN (FALLTHROUGH, ECF_LEAF | ECF_NOTHROW, NULL)
     553                 :             : 
     554                 :             : /* To implement __builtin_launder.  */
     555                 :      285289 : DEF_INTERNAL_FN (LAUNDER, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     556                 :             : 
     557                 :             : /* Divmod function.  */
     558                 :      285289 : DEF_INTERNAL_FN (DIVMOD, ECF_CONST | ECF_LEAF, NULL)
     559                 :             : 
     560                 :             : /* For coroutines.  */
     561                 :      285289 : DEF_INTERNAL_FN (CO_ACTOR, ECF_NOTHROW | ECF_LEAF, NULL)
     562                 :      285289 : DEF_INTERNAL_FN (CO_YIELD, ECF_NOTHROW, NULL)
     563                 :      285289 : DEF_INTERNAL_FN (CO_SUSPN, ECF_NOTHROW, NULL)
     564                 :      285289 : DEF_INTERNAL_FN (CO_FRAME, ECF_PURE | ECF_NOTHROW | ECF_LEAF, NULL)
     565                 :             : 
     566                 :             : /* A NOP function with arbitrary arguments and return value.  */
     567                 :      285289 : DEF_INTERNAL_FN (NOP, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     568                 :             : 
     569                 :             : /* Temporary vehicle for __builtin_shufflevector.  */
     570                 :      285289 : DEF_INTERNAL_FN (SHUFFLEVECTOR, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     571                 :             : 
     572                 :             : /* <=> optimization.  */
     573                 :      285289 : DEF_INTERNAL_FN (SPACESHIP, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     574                 :             : 
     575                 :             : /* [[assume (cond)]].  */
     576                 :      285289 : DEF_INTERNAL_FN (ASSUME, ECF_CONST | ECF_LEAF | ECF_NOTHROW
     577                 :             :                          | ECF_LOOPING_CONST_OR_PURE, NULL)
     578                 :             : 
     579                 :             : /* For if-conversion of inbranch SIMD clones.  */
     580                 :      285289 : DEF_INTERNAL_FN (MASK_CALL, ECF_NOVOPS, NULL)
     581                 :             : 
     582                 :             : /* _BitInt support.  */
     583                 :      285289 : DEF_INTERNAL_FN (MULBITINT, ECF_LEAF | ECF_NOTHROW, ". O . R . R . ")
     584                 :      285289 : DEF_INTERNAL_FN (DIVMODBITINT, ECF_LEAF, ". O . O . R . R . ")
     585                 :      285289 : DEF_INTERNAL_FN (FLOATTOBITINT, ECF_LEAF | ECF_NOTHROW, ". O . . ")
     586                 :      285289 : DEF_INTERNAL_FN (BITINTTOFLOAT, ECF_PURE | ECF_LEAF, ". R . ")
     587                 :             : 
     588                 :             : #undef DEF_INTERNAL_WIDENING_OPTAB_FN
     589                 :             : #undef DEF_INTERNAL_SIGNED_COND_FN
     590                 :             : #undef DEF_INTERNAL_COND_FN
     591                 :             : #undef DEF_INTERNAL_INT_EXT_FN
     592                 :             : #undef DEF_INTERNAL_INT_FN
     593                 :             : #undef DEF_INTERNAL_FLT_FN
     594                 :             : #undef DEF_INTERNAL_FLT_FLOATN_FN
     595                 :             : #undef DEF_INTERNAL_SIGNED_OPTAB_FN
     596                 :             : #undef DEF_INTERNAL_OPTAB_FN
     597                 :             : #undef DEF_INTERNAL_FN
        

Generated by: LCOV version 2.0-1

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.