diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2004-03-06 17:47:58 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2004-03-06 17:47:58 +0000 |
commit | 82b4201fd50bcfed39fe109308b5639ca97eb45f (patch) | |
tree | 824842680cdc4f64bb5553896090ab68f59a879f /gcc/fold-const.c | |
parent | 0c2cc7b37aca08ebab5341b409418c98d583507a (diff) | |
download | gcc-82b4201fd50bcfed39fe109308b5639ca97eb45f.zip gcc-82b4201fd50bcfed39fe109308b5639ca97eb45f.tar.gz gcc-82b4201fd50bcfed39fe109308b5639ca97eb45f.tar.bz2 |
tree.h (BUILTIN_EXP10_P, [...]): New macros.
* tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
* builtins.c (fold_builtin_logarithm, fold_builtin): Use new
macros.
* fold-const.c (fold_mathfn_compare, fold): Likewise.
From-SVN: r79023
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index cffa2ec..9bf3b7a 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4985,9 +4985,7 @@ fold_mathfn_compare (enum built_in_function fcode, enum tree_code code, { REAL_VALUE_TYPE c; - if (fcode == BUILT_IN_SQRT - || fcode == BUILT_IN_SQRTF - || fcode == BUILT_IN_SQRTL) + if (BUILTIN_SQRT_P (fcode)) { tree arg = TREE_VALUE (TREE_OPERAND (arg0, 1)); enum machine_mode mode = TYPE_MODE (TREE_TYPE (arg0)); @@ -6425,9 +6423,7 @@ fold (tree expr) enum built_in_function fcode1 = builtin_mathfn_code (arg1); /* Optimizations of sqrt(...)*sqrt(...). */ - if ((fcode0 == BUILT_IN_SQRT && fcode1 == BUILT_IN_SQRT) - || (fcode0 == BUILT_IN_SQRTF && fcode1 == BUILT_IN_SQRTF) - || (fcode0 == BUILT_IN_SQRTL && fcode1 == BUILT_IN_SQRTL)) + if (fcode0 == fcode1 && BUILTIN_SQRT_P (fcode0)) { tree sqrtfn, arg, arglist; tree arg00 = TREE_VALUE (TREE_OPERAND (arg0, 1)); @@ -6446,19 +6442,7 @@ fold (tree expr) } /* Optimize expN(x)*expN(y) as expN(x+y). */ - if (fcode0 == fcode1 - && (fcode0 == BUILT_IN_EXP - || fcode0 == BUILT_IN_EXPF - || fcode0 == BUILT_IN_EXPL - || fcode0 == BUILT_IN_EXP2 - || fcode0 == BUILT_IN_EXP2F - || fcode0 == BUILT_IN_EXP2L - || fcode0 == BUILT_IN_EXP10 - || fcode0 == BUILT_IN_EXP10F - || fcode0 == BUILT_IN_EXP10L - || fcode0 == BUILT_IN_POW10 - || fcode0 == BUILT_IN_POW10F - || fcode0 == BUILT_IN_POW10L)) + if (fcode0 == fcode1 && BUILTIN_EXPONENT_P (fcode0)) { tree expfn = TREE_OPERAND (TREE_OPERAND (arg0, 0), 0); tree arg = build (PLUS_EXPR, type, @@ -6791,18 +6775,7 @@ fold (tree expr) { enum built_in_function fcode = builtin_mathfn_code (arg1); /* Optimize x/expN(y) into x*expN(-y). */ - if (fcode == BUILT_IN_EXP - || fcode == BUILT_IN_EXPF - || fcode == BUILT_IN_EXPL - || fcode == BUILT_IN_EXP2 - || fcode == BUILT_IN_EXP2F - || fcode == BUILT_IN_EXP2L - || fcode == BUILT_IN_EXP10 - || fcode == BUILT_IN_EXP10F - || fcode == BUILT_IN_EXP10L - || fcode == BUILT_IN_POW10 - || fcode == BUILT_IN_POW10F - || fcode == BUILT_IN_POW10L) + if (BUILTIN_EXPONENT_P (fcode)) { tree expfn = TREE_OPERAND (TREE_OPERAND (arg1, 0), 0); tree arg = build1 (NEGATE_EXPR, type, |