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?

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