/* Copyright (C) 2008-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */

PATCH_BUILTIN (BUILT_IN_ACOSHL)
PATCH_BUILTIN (BUILT_IN_ACOSL)
PATCH_BUILTIN (BUILT_IN_ASINHL)
PATCH_BUILTIN (BUILT_IN_ASINL)
PATCH_BUILTIN (BUILT_IN_ATAN2L)
PATCH_BUILTIN (BUILT_IN_ATANHL)
PATCH_BUILTIN (BUILT_IN_ATANL)
PATCH_BUILTIN (BUILT_IN_CABSL)
PATCH_BUILTIN (BUILT_IN_CACOSHL)
PATCH_BUILTIN (BUILT_IN_CACOSL)
PATCH_BUILTIN (BUILT_IN_CARGL)
PATCH_BUILTIN (BUILT_IN_CASINHL)
PATCH_BUILTIN (BUILT_IN_CASINL)
PATCH_BUILTIN (BUILT_IN_CATANHL)
PATCH_BUILTIN (BUILT_IN_CATANL)
PATCH_BUILTIN (BUILT_IN_CBRTL)
PATCH_BUILTIN (BUILT_IN_CCOSHL)
PATCH_BUILTIN (BUILT_IN_CCOSL)
PATCH_BUILTIN (BUILT_IN_CEILL)
PATCH_BUILTIN (BUILT_IN_CEXPL)
PATCH_BUILTIN (BUILT_IN_CIMAGL)
PATCH_BUILTIN (BUILT_IN_CLOGL)
PATCH_BUILTIN (BUILT_IN_CONJL)
PATCH_BUILTIN (BUILT_IN_COPYSIGNL)
PATCH_BUILTIN (BUILT_IN_COSHL)
PATCH_BUILTIN (BUILT_IN_COSL)
PATCH_BUILTIN (BUILT_IN_CPOWL)
PATCH_BUILTIN (BUILT_IN_CPROJL)
PATCH_BUILTIN (BUILT_IN_CREALL)
PATCH_BUILTIN (BUILT_IN_CSINHL)
PATCH_BUILTIN (BUILT_IN_CSINL)
PATCH_BUILTIN (BUILT_IN_CSQRTL)
PATCH_BUILTIN (BUILT_IN_CTANHL)
PATCH_BUILTIN (BUILT_IN_CTANL)
PATCH_BUILTIN (BUILT_IN_ERFCL)
PATCH_BUILTIN (BUILT_IN_ERFL)
PATCH_BUILTIN (BUILT_IN_EXP2L)
PATCH_BUILTIN (BUILT_IN_EXPL)
PATCH_BUILTIN (BUILT_IN_EXPM1L)
PATCH_BUILTIN (BUILT_IN_FABSL)
PATCH_BUILTIN (BUILT_IN_FDIML)
PATCH_BUILTIN (BUILT_IN_FLOORL)
PATCH_BUILTIN (BUILT_IN_FMAL)
PATCH_BUILTIN (BUILT_IN_FMAXL)
PATCH_BUILTIN (BUILT_IN_FMINL)
PATCH_BUILTIN (BUILT_IN_FMODL)
PATCH_BUILTIN (BUILT_IN_FREXPL)
PATCH_BUILTIN (BUILT_IN_HYPOTL)
PATCH_BUILTIN (BUILT_IN_ILOGBL)
PATCH_BUILTIN (BUILT_IN_LDEXPL)
PATCH_BUILTIN (BUILT_IN_LGAMMAL)
PATCH_BUILTIN (BUILT_IN_LLRINTL)
PATCH_BUILTIN (BUILT_IN_LLROUNDL)
PATCH_BUILTIN (BUILT_IN_LOG10L)
PATCH_BUILTIN (BUILT_IN_LOG1PL)
PATCH_BUILTIN (BUILT_IN_LOG2L)
PATCH_BUILTIN (BUILT_IN_LOGBL)
PATCH_BUILTIN (BUILT_IN_LOGL)
PATCH_BUILTIN (BUILT_IN_LRINTL)
PATCH_BUILTIN (BUILT_IN_LROUNDL)
PATCH_BUILTIN (BUILT_IN_MODFL)
PATCH_BUILTIN (BUILT_IN_NANL)
PATCH_BUILTIN (BUILT_IN_NEARBYINTL)
PATCH_BUILTIN (BUILT_IN_NEXTAFTERL)
PATCH_BUILTIN (BUILT_IN_NEXTTOWARDL)
PATCH_BUILTIN (BUILT_IN_POWL)
PATCH_BUILTIN (BUILT_IN_REMAINDERL)
PATCH_BUILTIN (BUILT_IN_REMQUOL)
PATCH_BUILTIN (BUILT_IN_RINTL)
PATCH_BUILTIN (BUILT_IN_ROUNDL)
PATCH_BUILTIN (BUILT_IN_SCALBLNL)
PATCH_BUILTIN (BUILT_IN_SCALBNL)
PATCH_BUILTIN (BUILT_IN_SINHL)
PATCH_BUILTIN (BUILT_IN_SINL)
PATCH_BUILTIN (BUILT_IN_SQRTL)
PATCH_BUILTIN (BUILT_IN_TANHL)
PATCH_BUILTIN (BUILT_IN_TANL)
PATCH_BUILTIN (BUILT_IN_TGAMMAL)
PATCH_BUILTIN (BUILT_IN_TRUNCL)

PATCH_BUILTIN_NO64 (BUILT_IN_VFPRINTF)
PATCH_BUILTIN_NO64 (BUILT_IN_VFSCANF)
PATCH_BUILTIN_NO64 (BUILT_IN_VPRINTF)
PATCH_BUILTIN_NO64 (BUILT_IN_VSCANF)
PATCH_BUILTIN_NO64 (BUILT_IN_VSNPRINTF)
PATCH_BUILTIN_NO64 (BUILT_IN_VSPRINTF)
PATCH_BUILTIN_NO64 (BUILT_IN_VSSCANF)

PATCH_BUILTIN_VARIADIC (BUILT_IN_FPRINTF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_FSCANF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_PRINTF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_SCANF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_SNPRINTF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_SPRINTF)
PATCH_BUILTIN_VARIADIC (BUILT_IN_SSCANF)
