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 >
