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