On Wed, Oct 14, 2026 at 3:54 AM Kewen Lin <[email protected]> wrote:
>
> 在 2026/10/13 17:08, Richard Biener 写道:
> > 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 Richi, pushed as r17-5176-g10e202e107d23a.
>
> Do we want it to be backported to gcc-16 branch?
> If yes, is it ok to backport after burn-in time?

Can you add a testcase then?  Then it's OK to backport.

>
> BR,
> Kewen
>
> >
> > 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