LCOV - code coverage report
Current view: top level - gcc - internal-fn.def (source / functions) Hit Total Coverage
Test: gcc.info Lines: 148 158 93.7 %
Date: 2020-04-04 11:58:09 Functions: 52 99 52.5 %
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-2020 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_INT_FN (NAME, FLAGS, OPTAB, TYPE)
      37                 :            : 
      38                 :            :    where NAME is the name of the function, FLAGS is a set of
      39                 :            :    ECF_* flags and FNSPEC is a string describing functions fnspec.
      40                 :            :    
      41                 :            :    DEF_INTERNAL_OPTAB_FN defines an internal function that maps to a
      42                 :            :    direct optab.  The function should only be called with a given
      43                 :            :    set of types if the associated optab is available for the modes
      44                 :            :    of those types.  OPTAB says what optab to use (without the trailing
      45                 :            :    "_optab") and TYPE categorizes the optab based on its inputs and
      46                 :            :    outputs.  The possible types of optab are:
      47                 :            : 
      48                 :            :    - mask_load: currently just maskload
      49                 :            :    - load_lanes: currently just vec_load_lanes
      50                 :            :    - mask_load_lanes: currently just vec_mask_load_lanes
      51                 :            :    - gather_load: used for {mask_,}gather_load
      52                 :            : 
      53                 :            :    - mask_store: currently just maskstore
      54                 :            :    - store_lanes: currently just vec_store_lanes
      55                 :            :    - mask_store_lanes: currently just vec_mask_store_lanes
      56                 :            :    - scatter_store: used for {mask_,}scatter_store
      57                 :            : 
      58                 :            :    - unary: a normal unary optab, such as vec_reverse_<mode>
      59                 :            :    - binary: a normal binary optab, such as vec_interleave_lo_<mode>
      60                 :            :    - ternary: a normal ternary optab, such as fma<mode>4
      61                 :            : 
      62                 :            :    - cond_binary: a conditional binary optab, such as cond_add<mode>
      63                 :            :    - cond_ternary: a conditional ternary optab, such as cond_fma_rev<mode>
      64                 :            : 
      65                 :            :    - fold_left: for scalar = FN (scalar, vector), keyed off the vector mode
      66                 :            :    - check_ptrs: used for check_{raw,war}_ptrs
      67                 :            : 
      68                 :            :    DEF_INTERNAL_SIGNED_OPTAB_FN defines an internal function that
      69                 :            :    maps to one of two optabs, depending on the signedness of an input.
      70                 :            :    SIGNED_OPTAB and UNSIGNED_OPTAB are the optabs for signed and
      71                 :            :    unsigned inputs respectively, both without the trailing "_optab".
      72                 :            :    SELECTOR says which type in the tree_pair determines the signedness.
      73                 :            : 
      74                 :            :    DEF_INTERNAL_FLT_FN is like DEF_INTERNAL_OPTAB_FN, but in addition,
      75                 :            :    the function implements the computational part of a built-in math
      76                 :            :    function BUILT_IN_<NAME>{F,,L}.  Unlike some built-in functions,
      77                 :            :    these internal functions never set errno.
      78                 :            : 
      79                 :            :    DEF_INTERNAL_INT_FN is like DEF_INTERNAL_OPTAB_FN, but in addition
      80                 :            :    says that the function extends the C-level BUILT_IN_<NAME>{,L,LL,IMAX}
      81                 :            :    group of functions to any integral mode (including vector modes).
      82                 :            : 
      83                 :            :    Each entry must have a corresponding expander of the form:
      84                 :            : 
      85                 :            :      void expand_NAME (gimple_call stmt)
      86                 :            : 
      87                 :            :    where STMT is the statement that performs the call.  These are generated
      88                 :            :    automatically for optab functions and call out to a function or macro
      89                 :            :    called expand_<TYPE>_optab_fn.  */
      90                 :            : 
      91                 :            : #ifndef DEF_INTERNAL_FN
      92                 :            : #define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC)
      93                 :            : #endif
      94                 :            : 
      95                 :            : #ifndef DEF_INTERNAL_OPTAB_FN
      96                 :            : #define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \
      97                 :            :   DEF_INTERNAL_FN (NAME, FLAGS | ECF_LEAF, NULL)
      98                 :            : #endif
      99                 :            : 
     100                 :            : #ifndef DEF_INTERNAL_SIGNED_OPTAB_FN
     101                 :            : #define DEF_INTERNAL_SIGNED_OPTAB_FN(NAME, FLAGS, SELECTOR, SIGNED_OPTAB, \
     102                 :            :                                      UNSIGNED_OPTAB, TYPE) \
     103                 :            :   DEF_INTERNAL_FN (NAME, FLAGS | ECF_LEAF, NULL)
     104                 :            : #endif
     105                 :            : 
     106                 :            : #ifndef DEF_INTERNAL_FLT_FN
     107                 :            : #define DEF_INTERNAL_FLT_FN(NAME, FLAGS, OPTAB, TYPE) \
     108                 :            :   DEF_INTERNAL_OPTAB_FN (NAME, FLAGS, OPTAB, TYPE)
     109                 :            : #endif
     110                 :            : 
     111                 :            : #ifndef DEF_INTERNAL_FLT_FLOATN_FN
     112                 :            : #define DEF_INTERNAL_FLT_FLOATN_FN(NAME, FLAGS, OPTAB, TYPE) \
     113                 :            :   DEF_INTERNAL_FLT_FN (NAME, FLAGS, OPTAB, TYPE)
     114                 :            : #endif
     115                 :            : 
     116                 :            : #ifndef DEF_INTERNAL_INT_FN
     117                 :            : #define DEF_INTERNAL_INT_FN(NAME, FLAGS, OPTAB, TYPE) \
     118                 :            :   DEF_INTERNAL_OPTAB_FN (NAME, FLAGS, OPTAB, TYPE)
     119                 :            : #endif
     120                 :            : 
     121                 :        255 : DEF_INTERNAL_OPTAB_FN (MASK_LOAD, ECF_PURE, maskload, mask_load)
     122                 :          0 : DEF_INTERNAL_OPTAB_FN (LOAD_LANES, ECF_CONST, vec_load_lanes, load_lanes)
     123                 :          0 : DEF_INTERNAL_OPTAB_FN (MASK_LOAD_LANES, ECF_PURE,
     124                 :            :                        vec_mask_load_lanes, mask_load_lanes)
     125                 :            : 
     126                 :       2082 : DEF_INTERNAL_OPTAB_FN (GATHER_LOAD, ECF_PURE, gather_load, gather_load)
     127                 :        116 : DEF_INTERNAL_OPTAB_FN (MASK_GATHER_LOAD, ECF_PURE,
     128                 :            :                        mask_gather_load, gather_load)
     129                 :            : 
     130                 :       4254 : DEF_INTERNAL_OPTAB_FN (SCATTER_STORE, 0, scatter_store, scatter_store)
     131                 :         47 : DEF_INTERNAL_OPTAB_FN (MASK_SCATTER_STORE, 0,
     132                 :            :                        mask_scatter_store, scatter_store)
     133                 :            : 
     134                 :        301 : DEF_INTERNAL_OPTAB_FN (MASK_STORE, 0, maskstore, mask_store)
     135                 :          0 : DEF_INTERNAL_OPTAB_FN (STORE_LANES, ECF_CONST, vec_store_lanes, store_lanes)
     136                 :          0 : DEF_INTERNAL_OPTAB_FN (MASK_STORE_LANES, 0,
     137                 :            :                        vec_mask_store_lanes, mask_store_lanes)
     138                 :            : 
     139                 :      13795 : DEF_INTERNAL_OPTAB_FN (WHILE_ULT, ECF_CONST | ECF_NOTHROW, while_ult, while)
     140                 :         88 : DEF_INTERNAL_OPTAB_FN (CHECK_RAW_PTRS, ECF_CONST | ECF_NOTHROW,
     141                 :            :                        check_raw_ptrs, check_ptrs)
     142                 :       4910 : DEF_INTERNAL_OPTAB_FN (CHECK_WAR_PTRS, ECF_CONST | ECF_NOTHROW,
     143                 :            :                        check_war_ptrs, check_ptrs)
     144                 :            : 
     145                 :          0 : DEF_INTERNAL_OPTAB_FN (VEC_SHL_INSERT, ECF_CONST | ECF_NOTHROW,
     146                 :            :                        vec_shl_insert, binary)
     147                 :            : 
     148                 :        572 : DEF_INTERNAL_OPTAB_FN (DIV_POW2, ECF_CONST | ECF_NOTHROW, sdiv_pow2, binary)
     149                 :            : 
     150                 :      10711 : DEF_INTERNAL_OPTAB_FN (FMS, ECF_CONST, fms, ternary)
     151                 :       4534 : DEF_INTERNAL_OPTAB_FN (FNMA, ECF_CONST, fnma, ternary)
     152                 :       2780 : DEF_INTERNAL_OPTAB_FN (FNMS, ECF_CONST, fnms, ternary)
     153                 :            : 
     154                 :        636 : DEF_INTERNAL_SIGNED_OPTAB_FN (AVG_FLOOR, ECF_CONST | ECF_NOTHROW, first,
     155                 :            :                               savg_floor, uavg_floor, binary)
     156                 :        183 : DEF_INTERNAL_SIGNED_OPTAB_FN (AVG_CEIL, ECF_CONST | ECF_NOTHROW, first,
     157                 :            :                               savg_ceil, uavg_ceil, binary)
     158                 :            : 
     159                 :         50 : DEF_INTERNAL_SIGNED_OPTAB_FN (MULHS, ECF_CONST | ECF_NOTHROW, first,
     160                 :            :                               smulhs, umulhs, binary)
     161                 :         38 : DEF_INTERNAL_SIGNED_OPTAB_FN (MULHRS, ECF_CONST | ECF_NOTHROW, first,
     162                 :            :                               smulhrs, umulhrs, binary)
     163                 :            : 
     164                 :       3446 : DEF_INTERNAL_OPTAB_FN (COND_ADD, ECF_CONST, cond_add, cond_binary)
     165                 :        354 : DEF_INTERNAL_OPTAB_FN (COND_SUB, ECF_CONST, cond_sub, cond_binary)
     166                 :        381 : DEF_INTERNAL_OPTAB_FN (COND_MUL, ECF_CONST, cond_smul, cond_binary)
     167                 :         52 : DEF_INTERNAL_SIGNED_OPTAB_FN (COND_DIV, ECF_CONST, first,
     168                 :            :                               cond_sdiv, cond_udiv, cond_binary)
     169                 :         49 : DEF_INTERNAL_SIGNED_OPTAB_FN (COND_MOD, ECF_CONST, first,
     170                 :            :                               cond_smod, cond_umod, cond_binary)
     171                 :         38 : DEF_INTERNAL_OPTAB_FN (COND_RDIV, ECF_CONST, cond_sdiv, cond_binary)
     172                 :         24 : DEF_INTERNAL_SIGNED_OPTAB_FN (COND_MIN, ECF_CONST, first,
     173                 :            :                               cond_smin, cond_umin, cond_binary)
     174                 :         50 : DEF_INTERNAL_SIGNED_OPTAB_FN (COND_MAX, ECF_CONST, first,
     175                 :            :                               cond_smax, cond_umax, cond_binary)
     176                 :        103 : DEF_INTERNAL_OPTAB_FN (COND_AND, ECF_CONST | ECF_NOTHROW,
     177                 :            :                        cond_and, cond_binary)
     178                 :        158 : DEF_INTERNAL_OPTAB_FN (COND_IOR, ECF_CONST | ECF_NOTHROW,
     179                 :            :                        cond_ior, cond_binary)
     180                 :        178 : DEF_INTERNAL_OPTAB_FN (COND_XOR, ECF_CONST | ECF_NOTHROW,
     181                 :            :                        cond_xor, cond_binary)
     182                 :         99 : DEF_INTERNAL_OPTAB_FN (COND_SHL, ECF_CONST | ECF_NOTHROW,
     183                 :            :                        cond_ashl, cond_binary)
     184                 :        101 : DEF_INTERNAL_SIGNED_OPTAB_FN (COND_SHR, ECF_CONST | ECF_NOTHROW, first,
     185                 :            :                               cond_ashr, cond_lshr, cond_binary)
     186                 :            : 
     187                 :          0 : DEF_INTERNAL_OPTAB_FN (COND_FMA, ECF_CONST, cond_fma, cond_ternary)
     188                 :          0 : DEF_INTERNAL_OPTAB_FN (COND_FMS, ECF_CONST, cond_fms, cond_ternary)
     189                 :          0 : DEF_INTERNAL_OPTAB_FN (COND_FNMA, ECF_CONST, cond_fnma, cond_ternary)
     190                 :          0 : DEF_INTERNAL_OPTAB_FN (COND_FNMS, ECF_CONST, cond_fnms, cond_ternary)
     191                 :            : 
     192                 :        104 : DEF_INTERNAL_OPTAB_FN (RSQRT, ECF_CONST, rsqrt, unary)
     193                 :            : 
     194                 :      20940 : DEF_INTERNAL_OPTAB_FN (REDUC_PLUS, ECF_CONST | ECF_NOTHROW,
     195                 :            :                        reduc_plus_scal, unary)
     196                 :        828 : DEF_INTERNAL_SIGNED_OPTAB_FN (REDUC_MAX, ECF_CONST | ECF_NOTHROW, first,
     197                 :            :                               reduc_smax_scal, reduc_umax_scal, unary)
     198                 :       2198 : DEF_INTERNAL_SIGNED_OPTAB_FN (REDUC_MIN, ECF_CONST | ECF_NOTHROW, first,
     199                 :            :                               reduc_smin_scal, reduc_umin_scal, unary)
     200                 :        134 : DEF_INTERNAL_OPTAB_FN (REDUC_AND, ECF_CONST | ECF_NOTHROW,
     201                 :            :                        reduc_and_scal, unary)
     202                 :        166 : DEF_INTERNAL_OPTAB_FN (REDUC_IOR, ECF_CONST | ECF_NOTHROW,
     203                 :            :                        reduc_ior_scal, unary)
     204                 :         82 : DEF_INTERNAL_OPTAB_FN (REDUC_XOR, ECF_CONST | ECF_NOTHROW,
     205                 :            :                        reduc_xor_scal, unary)
     206                 :            : 
     207                 :            : /* Extract the last active element from a vector.  */
     208                 :        789 : DEF_INTERNAL_OPTAB_FN (EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
     209                 :            :                        extract_last, fold_left)
     210                 :            : 
     211                 :            : /* Same, but return the first argument if no elements are active.  */
     212                 :        840 : DEF_INTERNAL_OPTAB_FN (FOLD_EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
     213                 :            :                        fold_extract_last, fold_extract)
     214                 :            : 
     215                 :        864 : DEF_INTERNAL_OPTAB_FN (FOLD_LEFT_PLUS, ECF_CONST | ECF_NOTHROW,
     216                 :            :                        fold_left_plus, fold_left)
     217                 :            : 
     218                 :          0 : DEF_INTERNAL_OPTAB_FN (MASK_FOLD_LEFT_PLUS, ECF_CONST | ECF_NOTHROW,
     219                 :            :                        mask_fold_left_plus, mask_fold_left)
     220                 :            : 
     221                 :            : /* Unary math functions.  */
     222                 :         99 : DEF_INTERNAL_FLT_FN (ACOS, ECF_CONST, acos, unary)
     223                 :        112 : DEF_INTERNAL_FLT_FN (ACOSH, ECF_CONST, acosh, unary)
     224                 :        203 : DEF_INTERNAL_FLT_FN (ASIN, ECF_CONST, asin, unary)
     225                 :         56 : DEF_INTERNAL_FLT_FN (ASINH, ECF_CONST, asinh, unary)
     226                 :        129 : DEF_INTERNAL_FLT_FN (ATAN, ECF_CONST, atan, unary)
     227                 :        162 : DEF_INTERNAL_FLT_FN (ATANH, ECF_CONST, atanh, unary)
     228                 :        444 : DEF_INTERNAL_FLT_FN (COS, ECF_CONST, cos, unary)
     229                 :        360 : DEF_INTERNAL_FLT_FN (COSH, ECF_CONST, cosh, unary)
     230                 :       1490 : DEF_INTERNAL_FLT_FN (EXP, ECF_CONST, exp, unary)
     231                 :         19 : DEF_INTERNAL_FLT_FN (EXP10, ECF_CONST, exp10, unary)
     232                 :        320 : DEF_INTERNAL_FLT_FN (EXP2, ECF_CONST, exp2, unary)
     233                 :         75 : DEF_INTERNAL_FLT_FN (EXPM1, ECF_CONST, expm1, unary)
     234                 :       1473 : DEF_INTERNAL_FLT_FN (LOG, ECF_CONST, log, unary)
     235                 :        207 : DEF_INTERNAL_FLT_FN (LOG10, ECF_CONST, log10, unary)
     236                 :        159 : DEF_INTERNAL_FLT_FN (LOG1P, ECF_CONST, log1p, unary)
     237                 :        133 : DEF_INTERNAL_FLT_FN (LOG2, ECF_CONST, log2, unary)
     238                 :        189 : DEF_INTERNAL_FLT_FN (LOGB, ECF_CONST, logb, unary)
     239                 :       2863 : DEF_INTERNAL_FLT_FN (SIGNBIT, ECF_CONST, signbit, unary)
     240                 :         20 : DEF_INTERNAL_FLT_FN (SIGNIFICAND, ECF_CONST, significand, unary)
     241                 :       1020 : DEF_INTERNAL_FLT_FN (SIN, ECF_CONST, sin, unary)
     242                 :        346 : DEF_INTERNAL_FLT_FN (SINH, ECF_CONST, sinh, unary)
     243                 :       9071 : DEF_INTERNAL_FLT_FLOATN_FN (SQRT, ECF_CONST, sqrt, unary)
     244                 :        136 : DEF_INTERNAL_FLT_FN (TAN, ECF_CONST, tan, unary)
     245                 :         53 : DEF_INTERNAL_FLT_FN (TANH, ECF_CONST, tanh, unary)
     246                 :            : 
     247                 :            : /* FP rounding.  */
     248                 :       1344 : DEF_INTERNAL_FLT_FLOATN_FN (CEIL, ECF_CONST, ceil, unary)
     249                 :        995 : DEF_INTERNAL_FLT_FLOATN_FN (FLOOR, ECF_CONST, floor, unary)
     250                 :        291 : DEF_INTERNAL_FLT_FLOATN_FN (NEARBYINT, ECF_CONST, nearbyint, unary)
     251                 :        567 : DEF_INTERNAL_FLT_FLOATN_FN (RINT, ECF_CONST, rint, unary)
     252                 :        542 : DEF_INTERNAL_FLT_FLOATN_FN (ROUND, ECF_CONST, round, unary)
     253                 :         12 : DEF_INTERNAL_FLT_FLOATN_FN (ROUNDEVEN, ECF_CONST, roundeven, unary)
     254                 :        810 : DEF_INTERNAL_FLT_FLOATN_FN (TRUNC, ECF_CONST, btrunc, unary)
     255                 :            : 
     256                 :            : /* Binary math functions.  */
     257                 :        384 : DEF_INTERNAL_FLT_FN (ATAN2, ECF_CONST, atan2, binary)
     258                 :      94547 : DEF_INTERNAL_FLT_FLOATN_FN (COPYSIGN, ECF_CONST, copysign, binary)
     259                 :        742 : DEF_INTERNAL_FLT_FN (FMOD, ECF_CONST, fmod, binary)
     260                 :         20 : DEF_INTERNAL_FLT_FN (HYPOT, ECF_CONST, hypot, binary)
     261                 :       1084 : DEF_INTERNAL_FLT_FN (POW, ECF_CONST, pow, binary)
     262                 :        183 : DEF_INTERNAL_FLT_FN (REMAINDER, ECF_CONST, remainder, binary)
     263                 :          7 : DEF_INTERNAL_FLT_FN (SCALB, ECF_CONST, scalb, binary)
     264                 :         10 : DEF_INTERNAL_FLT_FLOATN_FN (FMIN, ECF_CONST, fmin, binary)
     265                 :          8 : DEF_INTERNAL_FLT_FLOATN_FN (FMAX, ECF_CONST, fmax, binary)
     266                 :          4 : DEF_INTERNAL_OPTAB_FN (XORSIGN, ECF_CONST, xorsign, binary)
     267                 :            : 
     268                 :            : /* FP scales.  */
     269                 :        950 : DEF_INTERNAL_FLT_FN (LDEXP, ECF_CONST, ldexp, binary)
     270                 :            : 
     271                 :            : /* Ternary math functions.  */
     272                 :     483823 : DEF_INTERNAL_FLT_FLOATN_FN (FMA, ECF_CONST, fma, ternary)
     273                 :            : 
     274                 :            : /* Unary integer ops.  */
     275                 :         66 : DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST | ECF_NOTHROW, clrsb, unary)
     276                 :       4771 : DEF_INTERNAL_INT_FN (CLZ, ECF_CONST | ECF_NOTHROW, clz, unary)
     277                 :       1551 : DEF_INTERNAL_INT_FN (CTZ, ECF_CONST | ECF_NOTHROW, ctz, unary)
     278                 :        255 : DEF_INTERNAL_INT_FN (FFS, ECF_CONST | ECF_NOTHROW, ffs, unary)
     279                 :        309 : DEF_INTERNAL_INT_FN (PARITY, ECF_CONST | ECF_NOTHROW, parity, unary)
     280                 :        559 : DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary)
     281                 :            : 
     282                 :     200522 : DEF_INTERNAL_FN (GOMP_USE_SIMT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     283                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_ENTER, ECF_LEAF | ECF_NOTHROW, NULL)
     284                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_ENTER_ALLOC, ECF_LEAF | ECF_NOTHROW, NULL)
     285                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_EXIT, ECF_LEAF | ECF_NOTHROW, NULL)
     286                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     287                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_VF, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     288                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_LAST_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     289                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_ORDERED_PRED, ECF_LEAF | ECF_NOTHROW, NULL)
     290                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_VOTE_ANY, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     291                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_XCHG_BFLY, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     292                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMT_XCHG_IDX, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     293                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMD_LANE, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     294                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMD_VF, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     295                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMD_LAST_LANE, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     296                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMD_ORDERED_START, ECF_LEAF | ECF_NOTHROW, NULL)
     297                 :     200522 : DEF_INTERNAL_FN (GOMP_SIMD_ORDERED_END, ECF_LEAF | ECF_NOTHROW, NULL)
     298                 :     200522 : DEF_INTERNAL_FN (LOOP_VECTORIZED, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     299                 :     200522 : DEF_INTERNAL_FN (LOOP_DIST_ALIAS, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     300                 :     200522 : DEF_INTERNAL_FN (ANNOTATE,  ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     301                 :     200522 : DEF_INTERNAL_FN (UBSAN_NULL, ECF_LEAF | ECF_NOTHROW, ".R.")
     302                 :     200522 : DEF_INTERNAL_FN (UBSAN_BOUNDS, ECF_LEAF | ECF_NOTHROW, NULL)
     303                 :     200522 : DEF_INTERNAL_FN (UBSAN_VPTR, ECF_LEAF | ECF_NOTHROW, ".RR..")
     304                 :     200522 : DEF_INTERNAL_FN (UBSAN_CHECK_ADD, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     305                 :     200522 : DEF_INTERNAL_FN (UBSAN_CHECK_SUB, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     306                 :     200522 : DEF_INTERNAL_FN (UBSAN_CHECK_MUL, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     307                 :     200522 : DEF_INTERNAL_FN (UBSAN_PTR, ECF_LEAF | ECF_NOTHROW, ".R.")
     308                 :     200522 : DEF_INTERNAL_FN (UBSAN_OBJECT_SIZE, ECF_LEAF | ECF_NOTHROW, NULL)
     309                 :     200522 : DEF_INTERNAL_FN (ABNORMAL_DISPATCHER, ECF_NORETURN, NULL)
     310                 :     200522 : DEF_INTERNAL_FN (BUILTIN_EXPECT, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     311                 :     200522 : DEF_INTERNAL_FN (ASAN_CHECK, ECF_TM_PURE | ECF_LEAF | ECF_NOTHROW, "..R..")
     312                 :     200522 : DEF_INTERNAL_FN (ASAN_MARK, ECF_LEAF | ECF_NOTHROW, NULL)
     313                 :     200522 : DEF_INTERNAL_FN (ASAN_POISON, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     314                 :     200522 : DEF_INTERNAL_FN (ASAN_POISON_USE, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     315                 :     200522 : DEF_INTERNAL_FN (ADD_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     316                 :     200522 : DEF_INTERNAL_FN (SUB_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     317                 :     200522 : DEF_INTERNAL_FN (MUL_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     318                 :     200522 : DEF_INTERNAL_FN (TSAN_FUNC_EXIT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL)
     319                 :     200522 : DEF_INTERNAL_FN (VA_ARG, ECF_NOTHROW | ECF_LEAF, NULL)
     320                 :     200522 : DEF_INTERNAL_FN (VEC_CONVERT, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     321                 :            : 
     322                 :            : /* An unduplicable, uncombinable function.  Generally used to preserve
     323                 :            :    a CFG property in the face of jump threading, tail merging or
     324                 :            :    other such optimizations.  The first argument distinguishes
     325                 :            :    between uses.  See internal-fn.h for usage.  */
     326                 :     200522 : DEF_INTERNAL_FN (UNIQUE, ECF_NOTHROW, NULL)
     327                 :     200522 : DEF_INTERNAL_FN (PHI, 0, NULL)
     328                 :            : 
     329                 :            : /* DIM_SIZE and DIM_POS return the size of a particular compute
     330                 :            :    dimension and the executing thread's position within that
     331                 :            :    dimension.  DIM_POS is pure (and not const) so that it isn't
     332                 :            :    thought to clobber memory and can be gcse'd within a single
     333                 :            :    parallel region, but not across FORK/JOIN boundaries.  They take a
     334                 :            :    single INTEGER_CST argument.  This might be overly conservative.  */
     335                 :     200522 : DEF_INTERNAL_FN (GOACC_DIM_SIZE, ECF_CONST | ECF_NOTHROW | ECF_LEAF, ".")
     336                 :     200522 : DEF_INTERNAL_FN (GOACC_DIM_POS, ECF_PURE | ECF_NOTHROW | ECF_LEAF, ".")
     337                 :            : 
     338                 :            : /* OpenACC looping abstraction.  See internal-fn.h for usage.  */
     339                 :     200522 : DEF_INTERNAL_FN (GOACC_LOOP, ECF_PURE | ECF_NOTHROW, NULL)
     340                 :            : 
     341                 :            : /* OpenACC reduction abstraction.  See internal-fn.h  for usage.  */
     342                 :     200522 : DEF_INTERNAL_FN (GOACC_REDUCTION, ECF_NOTHROW | ECF_LEAF, NULL)
     343                 :            : 
     344                 :            : /* Openacc tile abstraction. Describes the spans of the element loop.
     345                 :            :    GOACC_TILE (num-loops, loop-no, tile-arg, tile-mask, element-mask).  */
     346                 :     200522 : DEF_INTERNAL_FN (GOACC_TILE, ECF_NOTHROW | ECF_LEAF, NULL)
     347                 :            : 
     348                 :            : /* Set errno to EDOM, if GCC knows how to do that directly for the
     349                 :            :    current target.  */
     350                 :     200522 : DEF_INTERNAL_FN (SET_EDOM, ECF_LEAF | ECF_NOTHROW, NULL)
     351                 :            : 
     352                 :            : /* Atomic functions.  These don't have ECF_NOTHROW because for
     353                 :            :    -fnon-call-exceptions they can throw, otherwise we set
     354                 :            :    gimple_call_nothrow_p on it.  */
     355                 :     200522 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_SET, ECF_LEAF, NULL)
     356                 :     200522 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_COMPLEMENT, ECF_LEAF, NULL)
     357                 :     200522 : DEF_INTERNAL_FN (ATOMIC_BIT_TEST_AND_RESET, ECF_LEAF, NULL)
     358                 :     200522 : DEF_INTERNAL_FN (ATOMIC_COMPARE_EXCHANGE, ECF_LEAF, NULL)
     359                 :            : 
     360                 :            : /* To implement [[fallthrough]].  */
     361                 :     200522 : DEF_INTERNAL_FN (FALLTHROUGH, ECF_LEAF | ECF_NOTHROW, NULL)
     362                 :            : 
     363                 :            : /* To implement __builtin_launder.  */
     364                 :     200522 : DEF_INTERNAL_FN (LAUNDER, ECF_LEAF | ECF_NOTHROW | ECF_NOVOPS, NULL)
     365                 :            : 
     366                 :            : /* Divmod function.  */
     367                 :     200522 : DEF_INTERNAL_FN (DIVMOD, ECF_CONST | ECF_LEAF, NULL)
     368                 :            : 
     369                 :            : /* For coroutines.  */
     370                 :     200522 : DEF_INTERNAL_FN (CO_ACTOR, ECF_NOTHROW | ECF_LEAF, NULL)
     371                 :     200522 : DEF_INTERNAL_FN (CO_YIELD, ECF_NOTHROW, NULL)
     372                 :     200522 : DEF_INTERNAL_FN (CO_SUSPN, ECF_NOTHROW, NULL)
     373                 :     200522 : DEF_INTERNAL_FN (CO_FRAME, ECF_PURE | ECF_NOTHROW | ECF_LEAF, NULL)
     374                 :            : 
     375                 :            : /* A NOP function with arbitrary arguments and return value.  */
     376                 :     200522 : DEF_INTERNAL_FN (NOP, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL)
     377                 :            : 
     378                 :            : #undef DEF_INTERNAL_INT_FN
     379                 :            : #undef DEF_INTERNAL_FLT_FN
     380                 :            : #undef DEF_INTERNAL_FLT_FLOATN_FN
     381                 :            : #undef DEF_INTERNAL_SIGNED_OPTAB_FN
     382                 :            : #undef DEF_INTERNAL_OPTAB_FN
     383                 :            : #undef DEF_INTERNAL_FN

Generated by: LCOV version 1.0

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 --enable-host-shared. GCC test suite is run with the built compiler.