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