optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
authorJ"orn Rennecke <joern.rennecke@st.com>
Mon, 31 Oct 2005 13:30:14 +0000 (13:30 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Mon, 31 Oct 2005 13:30:14 +0000 (13:30 +0000)
2005-10-31  J"orn Rennecke <joern.rennecke@st.com>

* optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.

From-SVN: r106271

gcc/ChangeLog
gcc/optabs.c

index 6e274da..cd55c36 100644 (file)
@@ -1,3 +1,7 @@
+2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
+
+       * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
+
 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR middle-end/23492
index c043bb0..d3e1db6 100644 (file)
@@ -2434,7 +2434,9 @@ expand_unop (enum machine_mode mode, optab unoptab, rtx op0, rtx target,
 
            if (temp)
              {
-               if (class != MODE_INT)
+               if (class != MODE_INT
+                   || !TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (mode),
+                                              GET_MODE_BITSIZE (wider_mode)))
                  {
                    if (target == 0)
                      target = gen_reg_rtx (mode);