Skip to content
Snippets Groups Projects
Commit 259a1155 authored by Jakub Jelinek's avatar Jakub Jelinek
Browse files

builtins: Add various complex builtins for _Float{16,32,64,128,32x,64x,128x}

The following patch adds some complex builtins which have libm
implementation in glibc 2.26 and later on various arches.
It is needed for libstdc++ _Float128 support when long double is not
IEEE quad.

2022-10-31  Jakub Jelinek  <jakub@redhat.com>

	* builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
	BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
	BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
	BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
	BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
	BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
	BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
	BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
	BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
	BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
	BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
	BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
	BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
	BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
	BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
	BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
	BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
	BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
	BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
	BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
	BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
	* builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
	CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
	(BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
	BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
	BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
	BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
	BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
	DEF_EXT_LIB_FLOATN_NX_BUILTINS.
	* fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
	fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
	CASE_CFN_* is present.
	* gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
	Likewise.
	* builtins.cc (expand_builtin, fold_builtin_1): Likewise.
	* fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
	tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
	tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
	Likewise.
parent 29490c2a
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment