On Tue, Oct 13, 2026 at 9:50 AM Kewen Lin <[email protected]> wrote:
>
> Hi,
>
> When adding vector math lib support, I found trigonometric pi-based
> functions introduced by r16-710-g591d3d02664c7b are missing from
> macro SEQ_OF_CASE_MATHFN in function mathfn_built_in_2, which caused
> ICE as hanlder assumes there is a non-null function declaration but
> actually mathfn_built_in cannot map their combined_fn codes to
> type-specific builtin declarations.
>
> I think this is an oversight, so this patch is to add those
> trigonometric pi-based builtins to SEQ_OF_CASE_MATHFN, and keep
> builtin_with_linkage_p in sync as well.
>
> Bootstrapped and the regression-tested well, is it ok for trunk?

OK.

Thanks,
Richard.

> BR,
> Kewen
> -----
> gcc/ChangeLog:
>
>         * builtins.cc (mathfn_built_in_2): Add trigonometric pi-based
>         builtin functions to SEQ_OF_CASE_MATHFN.
>         (builtin_with_linkage_p): Treat trigonometric pi-based builtin
>         functions as library functions and adjust the order.
>
> Signed-off-by: Kewen Lin <[email protected]>
> ---
>  gcc/builtins.cc | 27 ++++++++++++++++++++++++---
>  1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/builtins.cc b/gcc/builtins.cc
> index e31947bfed6..3127e0e82a1 100644
> --- a/gcc/builtins.cc
> +++ b/gcc/builtins.cc
> @@ -1976,17 +1976,22 @@ mathfn_built_in_2 (tree type, combined_fn fn)
>  #define SEQ_OF_CASE_MATHFN                     \
>      CASE_MATHFN_FLOATN (ACOS)                  \
>      CASE_MATHFN_FLOATN (ACOSH)                 \
> +    CASE_MATHFN_FLOATN (ACOSPI)                        \
>      CASE_MATHFN_FLOATN (ASIN)                  \
>      CASE_MATHFN_FLOATN (ASINH)                 \
> +    CASE_MATHFN_FLOATN (ASINPI)                        \
>      CASE_MATHFN_FLOATN (ATAN)                  \
>      CASE_MATHFN_FLOATN (ATAN2)                 \
> +    CASE_MATHFN_FLOATN (ATAN2PI)               \
>      CASE_MATHFN_FLOATN (ATANH)                 \
> +    CASE_MATHFN_FLOATN (ATANPI)                        \
>      CASE_MATHFN_FLOATN (CBRT)                  \
>      CASE_MATHFN_FLOATN (CEIL)                  \
>      CASE_MATHFN (CEXPI)                                \
>      CASE_MATHFN_FLOATN (COPYSIGN)              \
>      CASE_MATHFN_FLOATN (COS)                   \
>      CASE_MATHFN_FLOATN (COSH)                  \
> +    CASE_MATHFN_FLOATN (COSPI)                 \
>      CASE_MATHFN (DREM)                         \
>      CASE_MATHFN_FLOATN (ERF)                   \
>      CASE_MATHFN_FLOATN (ERFC)                  \
> @@ -2054,9 +2059,11 @@ mathfn_built_in_2 (tree type, combined_fn fn)
>      CASE_MATHFN_FLOATN (SIN)                   \
>      CASE_MATHFN (SINCOS)                       \
>      CASE_MATHFN_FLOATN (SINH)                  \
> +    CASE_MATHFN_FLOATN (SINPI)                 \
>      CASE_MATHFN_FLOATN (SQRT)                  \
>      CASE_MATHFN_FLOATN (TAN)                   \
>      CASE_MATHFN_FLOATN (TANH)                  \
> +    CASE_MATHFN_FLOATN (TANPI)                 \
>      CASE_MATHFN_FLOATN (TGAMMA)                        \
>      CASE_MATHFN_FLOATN (TRUNC)                 \
>      CASE_MATHFN (Y0)                           \
> @@ -12610,16 +12617,24 @@ builtin_with_linkage_p (tree decl)
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOS):
>        CASE_FLT_FN (BUILT_IN_ACOSH):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOSH):
> +      CASE_FLT_FN (BUILT_IN_ACOSPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ACOSPI):
>        CASE_FLT_FN (BUILT_IN_ASIN):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASIN):
>        CASE_FLT_FN (BUILT_IN_ASINH):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASINH):
> +      CASE_FLT_FN (BUILT_IN_ASINPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ASINPI):
>        CASE_FLT_FN (BUILT_IN_ATAN):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN):
> -      CASE_FLT_FN (BUILT_IN_ATANH):
> -      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANH):
>        CASE_FLT_FN (BUILT_IN_ATAN2):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN2):
> +      CASE_FLT_FN (BUILT_IN_ATAN2PI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATAN2PI):
> +      CASE_FLT_FN (BUILT_IN_ATANH):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANH):
> +      CASE_FLT_FN (BUILT_IN_ATANPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_ATANPI):
>        CASE_FLT_FN (BUILT_IN_CBRT):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_CBRT):
>        CASE_FLT_FN (BUILT_IN_CEIL):
> @@ -12630,6 +12645,8 @@ builtin_with_linkage_p (tree decl)
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_COS):
>        CASE_FLT_FN (BUILT_IN_COSH):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_COSH):
> +      CASE_FLT_FN (BUILT_IN_COSPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_COSPI):
>        CASE_FLT_FN (BUILT_IN_ERF):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_ERF):
>        CASE_FLT_FN (BUILT_IN_ERFC):
> @@ -12707,15 +12724,19 @@ builtin_with_linkage_p (tree decl)
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_SCALBN):
>        CASE_FLT_FN (BUILT_IN_SIN):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_SIN):
> +      CASE_FLT_FN (BUILT_IN_SINCOS):
>        CASE_FLT_FN (BUILT_IN_SINH):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_SINH):
> -      CASE_FLT_FN (BUILT_IN_SINCOS):
> +      CASE_FLT_FN (BUILT_IN_SINPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_SINPI):
>        CASE_FLT_FN (BUILT_IN_SQRT):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_SQRT):
>        CASE_FLT_FN (BUILT_IN_TAN):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_TAN):
>        CASE_FLT_FN (BUILT_IN_TANH):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_TANH):
> +      CASE_FLT_FN (BUILT_IN_TANPI):
> +      CASE_FLT_FN_FLOATN_NX (BUILT_IN_TANPI):
>        CASE_FLT_FN (BUILT_IN_TGAMMA):
>        CASE_FLT_FN_FLOATN_NX (BUILT_IN_TGAMMA):
>        CASE_FLT_FN (BUILT_IN_TRUNC):
> --
> 2.34.1
>

Reply via email to