aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2004-03-17 04:47:04 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2004-03-17 04:47:04 +0000
commitd093738d94d297f7986c757dbb41b1b10be75c6d (patch)
treefb5d87bb48bc66fabd7917712651e0434c060009 /gcc
parentb57051b2f5459e1a55f502cac3973a995f1aa8ff (diff)
downloadgcc-d093738d94d297f7986c757dbb41b1b10be75c6d.zip
gcc-d093738d94d297f7986c757dbb41b1b10be75c6d.tar.gz
gcc-d093738d94d297f7986c757dbb41b1b10be75c6d.tar.bz2
builtins.c (integer_valued_real_p): Add builtin rint.
* builtins.c (integer_valued_real_p): Add builtin rint. (fold_builtin): Likewise. * convert.c (convert_to_real): Likewise. testsuite: * gcc.dg/torture/builtin-integral-1.c: Also check for `rint'. From-SVN: r79572
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/builtins.c6
-rw-r--r--gcc/convert.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-integral-1.c1
5 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97453c1..42e3475 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * builtins.c (integer_valued_real_p): Add builtin rint.
+ (fold_builtin): Likewise.
+ * convert.c (convert_to_real): Likewise.
+
* convert.c (convert_to_real): Fix typos in `long double'
builtins.
diff --git a/gcc/builtins.c b/gcc/builtins.c
index a206b7c..d394a40 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -5795,6 +5795,9 @@ integer_valued_real_p (tree t)
case BUILT_IN_NEARBYINT:
case BUILT_IN_NEARBYINTF:
case BUILT_IN_NEARBYINTL:
+ case BUILT_IN_RINT:
+ case BUILT_IN_RINTF:
+ case BUILT_IN_RINTL:
case BUILT_IN_ROUND:
case BUILT_IN_ROUNDF:
case BUILT_IN_ROUNDL:
@@ -7044,6 +7047,9 @@ fold_builtin (tree exp)
case BUILT_IN_NEARBYINT:
case BUILT_IN_NEARBYINTF:
case BUILT_IN_NEARBYINTL:
+ case BUILT_IN_RINT:
+ case BUILT_IN_RINTF:
+ case BUILT_IN_RINTL:
return fold_trunc_transparent_mathfn (exp);
case BUILT_IN_FFS:
diff --git a/gcc/convert.c b/gcc/convert.c
index e8673bc..554cd48 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -175,6 +175,7 @@ convert_to_real (tree type, tree expr)
&& (((fcode == BUILT_IN_FLOORL
|| fcode == BUILT_IN_CEILL
|| fcode == BUILT_IN_ROUNDL
+ || fcode == BUILT_IN_RINTL
|| fcode == BUILT_IN_TRUNCL
|| fcode == BUILT_IN_NEARBYINTL)
&& (TYPE_MODE (type) == TYPE_MODE (double_type_node)
@@ -182,6 +183,7 @@ convert_to_real (tree type, tree expr)
|| ((fcode == BUILT_IN_FLOOR
|| fcode == BUILT_IN_CEIL
|| fcode == BUILT_IN_ROUND
+ || fcode == BUILT_IN_RINT
|| fcode == BUILT_IN_TRUNC
|| fcode == BUILT_IN_NEARBYINT)
&& (TYPE_MODE (type) == TYPE_MODE (float_type_node)))))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 029201b..fc3ea26 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/torture/builtin-integral-1.c: Also check for `rint'.
+
2004-03-16 Mark Mitchell <mark@codesourcery.com>
PR c++/14481
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-integral-1.c b/gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
index af26a75..1f2990d 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
@@ -28,6 +28,7 @@ void test(int i1, int i2)
CHECK_FN(ceil);
CHECK_FN(floor);
CHECK_FN(nearbyint);
+ CHECK_FN(rint);
CHECK_FN(round);
CHECK_FN(trunc);