aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/optabs.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e274da..cd55c36 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/optabs.c b/gcc/optabs.c
index c043bb0..d3e1db6 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -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);