* expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
authorRichard Henderson <rth@redhat.com>
Mon, 17 Jun 2002 20:56:15 +0000 (13:56 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 17 Jun 2002 20:56:15 +0000 (13:56 -0700)
From-SVN: r54716

gcc/ChangeLog
gcc/expmed.c

index a5b3e3e0cd9d648d37f6bbcbff9b63b1bf46a3f8..2fb22489fb93b49250942170b6a8e72687b41ba6 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-17  Richard Henderson  <rth@redhat.com>
+
+       PR target/6922
+       * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
+
 2002-06-17  Tom Tromey  <tromey@redhat.com>
 
        * dwarfout.c: Include function.h.
index 60e9c2583ea21fb89a21e5d18b6d40187884ec34..8ef4fca585f96dcce5ac9e6d195088268bcf6d51 100644 (file)
@@ -4136,6 +4136,13 @@ make_tree (type, x)
                            build (TRUNC_DIV_EXPR, t,
                                   make_tree (t, XEXP (x, 0)),
                                   make_tree (t, XEXP (x, 1)))));
+
+    case SIGN_EXTEND:
+    case ZERO_EXTEND:
+      t = (*lang_hooks.types.type_for_mode) (GET_MODE (XEXP (x, 0)),
+                                            GET_CODE (x) == ZERO_EXTEND);
+      return fold (convert (type, make_tree (t, XEXP (x, 0))));
+
    default:
       t = make_node (RTL_EXPR);
       TREE_TYPE (t) = type;