aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2002-06-12 00:27:03 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2002-06-12 00:27:03 +0000
commit5dc8d5361697ad7378b9ff360aaaec980091d6b4 (patch)
tree0c602a8e78c7e125321e4c564bea10ab0235bb82
parent169274cd2e214ea06a3478bd9dc14d83acd7fb9f (diff)
downloadgcc-5dc8d5361697ad7378b9ff360aaaec980091d6b4.zip
gcc-5dc8d5361697ad7378b9ff360aaaec980091d6b4.tar.gz
gcc-5dc8d5361697ad7378b9ff360aaaec980091d6b4.tar.bz2
rs6000.c (rs6000_emit_minmax): Treat unsigned max/mins as unsigned GE compares.
2002-06-11 Aldy Hernandez <aldyh@redhat.com> * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned max/mins as unsigned GE compares. From-SVN: r54539
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c11
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ae0e26d..5b18311 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-11 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
+ max/mins as unsigned GE compares.
+
2002-06-11 Jason Thorpe <thorpej@wasabisystems.com>
* config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 6dbb7e0..00f9aa7 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -7534,12 +7534,19 @@ rs6000_emit_minmax (dest, code, op0, op1)
rtx op1;
{
enum machine_mode mode = GET_MODE (op0);
+ enum rtx_code c;
rtx target;
+
+ if (code == SMAX || code == SMIN)
+ c = GE;
+ else
+ c = GEU;
+
if (code == SMAX || code == UMAX)
- target = emit_conditional_move (dest, GE, op0, op1, mode,
+ target = emit_conditional_move (dest, c, op0, op1, mode,
op0, op1, mode, 0);
else
- target = emit_conditional_move (dest, GE, op0, op1, mode,
+ target = emit_conditional_move (dest, c, op0, op1, mode,
op1, op0, mode, 0);
if (target == NULL_RTX)
abort ();