https://gcc.gnu.org/g:10e202e107d23abb9e1d4363a3f823751abab916

commit r17-5176-g10e202e107d23abb9e1d4363a3f823751abab916
Author: Kewen Lin <[email protected]>
Date:   Wed Oct 14 01:44:50 2026 +0000

    builtins: Complete trigonometric pi-based builtin mappings
    
    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.
    
    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]>

Diff:
---
 gcc/builtins.cc | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index e31947bfed6d..3127e0e82a1c 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):

Reply via email to