summaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-31 13:30:14 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-31 13:30:14 +0000
commitf027318741f078586eaed6e89caa867df74b0ee2 (patch)
treebed07263d70383cc8a400c78611b649ecb4ce46a /gcc/optabs.c
parent031951bfcfbacf30e6ef1b1628b14f0332826556 (diff)
downloadgcc-f027318741f078586eaed6e89caa867df74b0ee2.tar.gz
2005-10-31 J"orn Rennecke <joern.rennecke@st.com>
* optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106271 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index c043bb0c32b..d3e1db69edd 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);