aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);