C Language and Libraries Help (clang.hlp) (Table of Contents; Topic list)
intrinsic, function
                                             Up Contents Index Back
─────C/C++ Language─────────────────────────────────────────────────────────
 
  Pragma:   intrinsic, function
 
  Syntax:   #pragma intrinsic( function1 [, function2, ...] )
            #pragma function( function1 [, function2, ...] )
 
  Summary:  Specifies that calls to the specified functions will
            be intrinsic or normal.
 
     The intrinsic pragma option tells the compiler to generate
     intrinsic functions instead of function calls for specified
     functions. Alternatively, you can use the /Oi option to make
     intrinsic the default form for functions that have intrinsic
     forms. In this case, you can use the function pragma to override
     /Oi for specified functions.
 
     Intrinsic functions may be inline functions, or may use special
     argument-passing conventions. In some cases, they may do nothing.
     Programs that use intrinsic functions are faster because they do
     not include the overhead associated with function calls. However,
     they may be larger because of the additional code that is
     generated.
 
     The following functions have intrinsic forms:
 
          Function 16 32     Function 16 32
 
          _alloca      *     _outpw   *  *
          _disable  *  *     _rotl    *  *
          _enable   *  *     _rotr    *  *
          _fmemcmp  *        _setjmp     *
          _fmemcpy  *        _strset  *  *
          _fmemset  *        abs      *  *
          _fstrcat  *        fabs     *  *
          _fstrcmp  *        labs     *  *
          _fstrcpy  *        memcmp   *  *
          _fstrlen  *        memcpy   *  *
          _fstrset  *        memset   *  *
          _inp      *  *     strcat   *  *
          _inpw     *  *     strcmp   *  *
          _lrotl    *  *     strcpy   *  *
          _lrotr    *  *     strlen   *  *
          _outp     *  *
 
          In this table, a function's availability for 16- or 32-bit
          targets is specified by an '*' in either the 16 or the 32
          column.
 
     Intrinsic versions of the memset, memcpy, and memcmp functions in
     compact- and large-model programs cannot handle huge arrays or
     huge pointers. To use huge arrays or huge pointers with these
     functions, you must compile your program with the huge memory
     model.
 
     When the intrinsic pragma is used with the following functions,
     the function argument calling convention is changed to pass the
     arguments on the floating-point chip:
 
          Function 16 32     Function 16 32
 
          acos      *  *     _acosl    *
          asin      *  *     _asinl    *
          atan      *  *     _atanl    *
          atan2     *  *     _atan2l   *
          ceil      *        _ceill    *
          cos       *  *     _cosl     *
          cosh      *  *     _coshl    *
          exp       *  *     _expl     *
          floor     *        _floorl   *
          fmod      *  *     _fmodl    *
          log       *  *     _logl     *
          log10     *  *     _log10l   *
          pow       *  *     _powl     *
          sin       *  *     _sinl     *
          sinh      *  *     _sinhl    *
          sqrt      *  *     _sqrtl    *
          tan       *  *     _tanl     *
          tanh      *  *     _tanhl    *
 
          In this table, a function's availability for 16- or 32-bit
          targets is specified by an '*' in either the 16 or the 32
          column.
 
     The intrinsic pragma affects a specified function beginning where
     the pragma appears. The effect continues to the end of the source
     file or to the appearance of a function pragma specifying that
     function.
                                    -♦-