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