在 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?

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